The Dink Network

unDink

December 10th, 2020
2.67
Score : 8.5 good
peasantmb.gif
yeoldetoast
Peasant Australia steam
discord.gg/Ukugfbh 
Upon the Dink source release by RTSoft in 2003, numerous people took to work to go through it and examine what was going on underneath it all. Seth remarked that the main header file was so large that you'll probably want to poke out your eyes and bathe in lye. For those who decided to dive right into it, several failed or largely unnoticed projects emerged including Windemere, reDink, and unDink. In the case of reDink, several aspects of it became part of Dink 1.08 but unfortunately for unDink, it never really got a huge amount of recognition.

To get the engine exe to work, I first had to cobble together my own collection of Dink data. As FastFile archive files were never natively implemented, an external program is included to extract them all. In my case, however, I decided to just use the BMP zip as provided by RTSoft. The tiles, scripts, and sounds were then copied, and from there I decided to launch it in windowed mode. Unlike Dink 1.08 which more or less destroys your screen on Vista and 7 upon launch due to how it uses DirectDraw, unDink worked perfectly in this regard and I managed to move around and do stuff for at least a minute or so.

Unfortunately I soon ran into problems such as Dink running around the screen at an incredibly high speed as well as having sound effects stutter. I also experienced minor annoyances such as with input handling in which only the right CTRL button would select things in a choice menu. On top of this, there are minor differences in implementation from standard Dink such as how one screen moves to the next, with the Zelda-ish transition completely done away with. The fact that these differences are so incredibly minor is a testament to how good of a backwards-compatible engine rewrite unDink truly is. I didn't get around to testing DMOD support, however, and it honestly looks like most D-mod authors never bothered to even glance in its direction.

For the average D-mod author, unDink barely offers anything new apart from the chance to use more than 41 tile screens. Its other main feature is... slightly smaller save file sizes! This is a far cry from Windemere which was allegedly going to have all sorts of incredible fancy futuristic features but then never got a single release. For the average D-mod player, unDink offers basically nothing to them over 1.07/1.08 except for maybe Windowed mode. In fact it appears most people who did download it did so for the purpose of using the FastFile extractor rather than the engine itself. This only really leaves people who are interested in engine internals as the remaining demographic for whom unDink serves any real fascination.

Going through unDink's source code was a surprisingly pleasant experience. Unlike Dink 1.07 and 1.08 which have just about every aspect of the game rolled into just a few files thereby forcing you to CTRL+F for every function through your text editor and then guess what it does, every aspect of the unDink engine is found in its relevant separate file. For example if I want to learn how it parses save files, I can look in save.c, and for tiles, I look in tiles.c. All the functions and definitions are very clearly and properly labelled, and thus editing them should be quite straightforward. In fact I would suggest someone who's looking to make their own map editor or other Dink dev tools to go through the unDink source as their reference rather than using WC's half-baked guide as their starting point.

The author's compiler of choice for this was LCC rather than VC6 as was the case for Dink 1.07, and unfortunately I couldn't exert enough effort to get it to compile. I did almost manage to get the LCC IDE working, but it told me it couldn't find files somewhere so I just gave up. You probably also need DirectX 7's header files and Windows API installed as well which I also can't be bothered downloading. No help is provided from the author as to how to get compilation to work, and any such documentation about any of it is overall fairly scant.

It's a shame that unDink never got much traction as it's an engine rewrite with much potential even now. Sadly, due to it being Windows-only and having very little in the way of new features it just doesn't really have anything new to offer really anyone. Freedink's source comes with a whole ton of other interesting documentation such as Dink history as well as rather comprehensive build instructions. Had unDink featured GNU/Linux or Macintosh support or some sort of killer feature then it may very well have formed its own microcosm of activity similar to how 1.08 Aural Plus did for a while. However, it didn't, and as such it shall forever remain in obscurity.