The Dink Network

End of an Era?

June 3rd 2020, 04:33 PM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
Robj:
The 2.0 version of your version checking software is well written, nicely documented and easy to install and use. Nice work! Over the years, you have done much to augment the growth of the Dink Network and our list of dmods.

However, as far as I can tell...
#1 No one is officially maintaining the linux version of freedink right now.
#2 The official "Ubuntu Software" application (at least for releases/versions 16.04 and 18.04) right now installs dfarc 3.12 and Dink Smallwood 1.08[x] of the Dink Engine.
#3 Your version checking software reports that this is an outdated version of freedink and asks us to install a later version from dinknetwork.com.

The way I see it, despite the fact that the majority of the dmods on dinknetwork.com work well with the above mentioned linux setup, anyone who uses your "Version Checker" software in a dmod will be excluding all of those who use an older version of the dink engine, which is (I assume) almost all of the linux user community (at this time). So perhaps this means your "version checker" logic should not force users to abandon even trying to use the Dink Engine when greeted by the "You are running an outdated version of Free Dink/DinkHD. Please update and then try again! You can get the current version at The Dink Network (www.dinknetwork.com)" message. Perhaps a warning that a particular dmod MAY or MAY NOT be compatible would be better for encouraging growth of the Dink community?

Maybe someday, someone will (like Beuc) take on the task of maintaining the dink engine for the two major linux environments (ubuntu and fedora). But so far that has not happened.

Of course, the *source* for freedink 109.6 *is* available on dinknetwork.com; but as linux use has grown over the years, it has relied on a substantial part of the user base not being technical enough to download, compile, debug and install a debian or fedora version of this software. And even if they are skilled enough to do that, they are likely (IMHO) to wonder if it is worth the trouble when there are other linux freeware games that can be just installed and run.

I have a win32 WINE installation running on my linux platform. I can (sometimes) run Dink engine HD V1.91 on it. When I install your vcheck directory to where this version of the Dink engine is running from, it loads your Version Checker sceen, displays "Dink Smallwood HD 1.91" at the bottom of the graphics/title-01.bmp screen and allows me to start and sucessfully run your two screen small demo program. Looking at "**SECTION 3" of your "readme readme readme.txt" file, I'm not sure if this is a version of the dink engine that you consider outmoded or not.

if (&vcheck == 107)  //Dink Smallwood 1.07 is in use
if (&vcheck == 108) //Dink Smallwood 1.08 is in use
if (&vheck == 109) //An outdated versio of DinkHD is in use
if (&vcheck == 110) //Current version of DinkHD is in use
if (&vcheck == 1084) //An outdated version of FreeDink is in use
if (&vcheck == 1096) //Current Version of FreeDink is in use


I have a few questions for you.

1) Is the HD 1.91 version of the Dink engine considered "current"?

2) Does this version appear in the above list?

3) If this HD 1.91 is not current, am I to assume that https://www.dinknetwork.com/file/gnu_freedink/ should be used to install the 109.6 version? At present, that version does NOT run in my linux WINE environment.

4) What version of windoze would I need to try to emulate using WINE in order to run the "current" version of freedink and/or Dink HD?

5) Is there a list of compatibility problems across all versions of the dink engine?

It would be nice if the compatibility issues could be dealt with by installing a library of DinkC modules that could be called using extern() that would (for example) subtract 1 from the "soundbank number" for any command that uses a "soundbank number" as a parameter, whenever it was necessary to do so. Code from your version checker source could be used from this library of extern() called commands to determine what code changes would be needed to keep everything compatible.

Without such a compatibility library and/or list of incompatibilities, I'm afraid that otherwise, people like myself (*), could NOT continue to contribute dmods for us all to enjoy, without worrying about whether or not older DinkC code would work on newer platforms.

(*) (who [if I may humbly point out] have been producing a significant share of the new dmods that appear on this website for downloads, for a few years now)
June 4th 2020, 01:19 AM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
Ok, I'm replying using my smartphone since I'm not at home, so there may be spelling errors.

Your numbered questions are answered below.

When scripting version checker, I did it from a Windows standpoint, since that's what I use, but please keep in mind, I made version checker easy to edit, the way it's set up is just the default example.. Obviously if an author wants to change it they can. They can open vcheck.c, scroll down and there's custom procedures for each version and you can change what happens after the splash screen (can make all versions allowed to continue if you want). You can also allow the freedink 108.# version, which I believe is the version you referred to for Ubuntu.

I didn't think too much into how ppl would want it set up, or OS's and versions for the release since I believe it's up to the author to change that stuff to suit whichever versions they want to allow with their dmod.
You can even change it to your warning message example if you want

The v1.91 of Dink HD that you reference being able to run is indeed the current version, if not it would have shown the message and not allowed you to continue. For the release I basically enabled all the latest versions of the different engines just as an example, as I said, this is configurable in vcheck.c, and well commented.

1) yes 1.91 is the current version of DinkHD as referred to in the version checker readme.

2) see above. The &vcheck == 110 is 1.91. This is saved to the &vcheck global directly from the get_version vanilla command, which Seth altered to return the value of "110" for the current (v1. 91) version of Dink HD.

3) 1.91 is current.

4) I don't have experience with Wine, however, maybe others can help? But as stated above the v1.91 is the most current of DinkHD and should work.

5) I don't think a list like that exists. However, I did recently post in the dmodding section
of the Dink Discord asking if anyone would be willing to collab with me to create an up to date, universal version of the DinkC reference which would include how the commands behave in different versions and their incompatibility issues/workarounds. I don't think anyone was interested. It'd be a big task, one that I don't feel like doing on my own.


As for the idea for the compatibility modules using external, you may have read my mind. I've been working on something like this for a while, not only to be able to be used by authors to call procedures for certain commands to make them universally compatible with different Dink Engines, but indeed to fix some vanilla commands that were never fixed across all version that have bugs. However there is a certain aspect of it that won't work with freedink 109.6, if an author chooses to make use of custom keys on Dink(1), Beuc made this work in freedink 109.6, in all other versions it crashes the game, while a very useful addition, there's no simple fix for that in other dink engines using an external module if it's used, that's why version checker helps, and it would be up to the author to either disallow all other versions OR to use the &vcheck global variable to check versions and script in an alternative means instead of using this feature, if a version other than 109.6 is used. The reason this is more complex to fix with external modules(impossible really) - it can't really be predicted how an author would be making use of these custom keys, so as I said, it's up to them.

If you think people would be more inclined to install my version checker and leave everything default, effectively excluding some other OS's from working, and dis-encouraging growth I can easily update version checker again to not disallow freedink 108.4 by default, but I did assume authors would use my settings as an example and change it to suit their dmod.

Anymore questions feel free.

EDIT: in light of your comments, I think it would be beneficial if I update the default script and just push warning messages as you suggested, I will also exclude freedink version 108.4 from showing a warning, since this version is the one used in the situations you pointed out above(ubuntu, Linux) , and pretty much mirrors vanilla 1.08's compatibility. This way no particular OS user is excluded. Also, I will update the documentation so it is stated that where it SAYS "current version of DinkHD" it is referring to v1.91 (which is the latest release anyway I believe).
I'll upload it tonight.

[if anyone could confirm if this sounds like a good idea/anything else I should change feel free, keeping in mind, it IS a configurable development file that should be configured by the author. Same as push and pull, well actually more so with that - it works as is when installed into a dmod, but has many customisation options]
June 4th 2020, 11:12 AM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
SlipDink, Version Checker has been updated and your suggestions have been applied!

No more version enforcing or game exit by default, only warning messages.

And FreeDink 108.4 runs with no warning, to allow for ubuntu users to play. It mirrors 1.08 anyway, so I don't know why I originally had the warning, I think in my mind I was just like "let's enforce all the latest versions!"

June 4th 2020, 04:35 PM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
Thanks for your quick response! The explanatory text in "**SECTION 3 - How it works and how to use it**" of your "readme readme readme.txt" has been substantially improved.

After deleting my current vcheck directories (in several locations for different versions of the Dink Engine), I installed one for the linux version of the Dink engine and then followed the instructions in "**SECTION 2 - Implementation**" for my current dmod, litleadv ("A Little Adventure").

When starting my "A Little Adventure" dmod today using your 2.01 version checker "vcheck.c" module, I see the "v1.08 FreeDink" message at the bottom of a black screen and a menu that says "Dink Smallwood v1.08, FreeDink or DinkHD is required to run this! Current version does not match! There may experience bugs or performance issues if you continue." The menu shows two options ("Continue anyway" and "Exit") which work as expected.

Yesterday, when I started the 2.00 version of your demo/dmod using the same version of the Dink Engine, I saw the "Free Dink (outdated build) - please update!" message at the bottom of a black screen and a menu that says "You are running an outdated version of Free Dink. Please update and then try again! You can get the latest version at The Dink Network (www.dinknetwork.com)" The menu shows one option ("Exit") which works as expected.

Today, when I started the 2.01 version of your demo/dmod using the same version of the Dink Engine, I see the "v1.08 FreeDink" message at the bottom of a black screen and NO menu. I am able to run your demo normally at this point.

Is that the way you wanted things to work? If not, then you may want to reword the menu a little and/or debug some logic a bit.

June 4th 2020, 07:55 PM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
In your example with running your dmod, "a little adventure" -

That warning message is only scripted to display if the script detects your running in 1.07 mode. Not sure why your Dmod is detecting it that way. That should not be possible, I just checked the script and even tested it with another random dmod.. Im on Windows though, but that shouldnt matter - I tested in freedink 108.4, which by the looks of it is the same one you were using for "a little adventure".

The scenario you reported in testing my demo.. that's the intended behaviour.
And I'm assuming you tested with the same version as with your dmod "a little adventure?".

If that's the case it Seems your Dmod is returning the wrong value in the same situation, so there's some sort of issue specifically running it with your dmod. Which is odd.. I tested this with a few dmods on my end in windows and it worked OK.

Also in all these examples when you say you see the version text "at the bottom of a black screen", what do you mean.. It should be displaying on the title screen just as the normal hard coded version text did.. Which is also working for me on Windows.. I hope Linux isn't being weird.

Are you able to send your dmod to me so I can debug it and see what the issue is
June 5th 2020, 11:39 AM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
In your example with running your dmod, "a little adventure" -

That warning message is only scripted to display if the script detects your running in 1.07 mode. Not sure why your Dmod is detecting it that way.

Me neither.

That should not be possible, I just checked the script and even tested it with another random dmod.. Im on Windows though, but that shouldnt matter - I tested in freedink 108.4, which by the looks of it is the same one you were using for "a little adventure".

The scenario you reported in testing my demo.. that's the intended behaviour.

Oh, okay.

And I'm assuming you tested with the same version as with your dmod "a little adventure?".

You assume correctly.

If that's the case it Seems your Dmod is returning the wrong value in the same situation, so there's some sort of issue specifically running it with your dmod. Which is odd.. I tested this with a few dmods on my end in windows and it worked OK.

Hmmm. This sounds like it will be interesting to debug.

Also in all these examples when you say you see the version text "at the bottom of a black screen", what do you mean..

Well, for "A Little Adventure", we first see [SCREEN #1] my loading screen (tiles/splash.bmp), displayed while loading takes place. Then we see a black screen [SCREEN #2] that acts as a backdrop for the confusing message/menu about 1.08. Then, after I select Continue from your menu, my dmod goes on to display my own message on a black screen [SCREEN #3] (from smplevchk.c [Simple Version Check]; code I used from your 1.0 version checker that I customized for my purposes months ago). This code displays the message "`%This LOOKS LIKE a compatible (v1.08?) version of Dink Smallwood." and `%(press any key).".

These two screens [#2, and #3] that follow the splash screen, both show the "V1.08 FreeDink" message at the bottom of them.

Then the next screen [SCREEN #4] is my rather standard title screen, along with the usual [Start], [Continue], [Cancel] buttons, etc.

I installed your 2.0 version checker as instructed into my "A Little Adventure" dmod, figuring that I could decide whether to use it instead of my smplvchk.c script, or incorporate parts of it into my smplvchk.c script or not use it at all. For now, I'll leave it in place to help us understand what might be going on.

As for the times I ran your 2.0 and 2.01 demo/dmod, both of these displayed your version checker title screen, (including the [Start], [Continue], [Cancel] buttons) upon startup. The difference was that your 2.0 code displayed that "You are running an outdated version of FreeDink... Exit" message and your 2.01 code displayed no such message, making the use of the [Start], [Continue], [Cancel] buttons possible.


It should be displaying on the title screen just as the normal hard coded version text did.. Which is also working for me on Windows.. I hope Linux isn't being weird.

Hmmm. I cannot say what the cause of the anomalies we are seeing could be as of yet.

Are you able to send your dmod to me so I can debug it and see what the issue is

Yes, I will trim down a subset of the dmod that reproduces the error and make it available on my google drive. I would prefer to only send a subset because I'm kind of excited about how this dmod is a bit different and I don't want anyone to see any secrets of the plot or mapping quite yet. I'll edit this message later once I have done that, so the URL will be available for your use.

EDIT: ========================================================

I have packed up a sample dmod or ("SAMPLE for VERSION TEST A Little Adventure v0.91" as it says in dmod.diz) for your testing purposes. It demonstrates the issues mentioned above and can start the first "intro1.c" script that introduces the player to the "A Little Adventure" dmod.

This is the URL that can allow you to download it for your use: [ https://drive.google.com/file/d/11_7xmg7SzujtdanUj3TIUaG2rZv02Qa8/view?usp=sharing ].

Good Luck!

June 6th 2020, 09:33 AM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
Ok.

I just wrote this whole post, and now have to rewrite it lol

This is my mistake. Somehow my vcheck.c in the story folder, does not match the one in the "scripts" folder that people will copy to put into their dmod, I am updating it again now. I think I accidentally uploaded the wrong package (an older one, that had that discrepency that got fixed, then I uploaded the broken version anyway, whoops!).

While doing so I guess I can also fix the typo in the choice menu.

EDIT: I have updated it to 2.02, and uploaded the CORRECT file that I was meant to upload last time. You can update vcheck.c with the new one now and all your problems will be solved.
This is limited to dmod problems, not life problems - version checker can't help with that
June 7th 2020, 12:03 PM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
You can update vcheck.c with the new one now and all your problems will be solved.
This is limited to dmod problems, not life problems - version checker can't help with that.

Well, I have to say I find that a bit disappointing. Next time please complete all the necessary changes so that more things are fixed!