The Dink Network

Recondite Twenty-Eight: The Sixth Day

June 19th, 10:09 PM
custom_king.png
redink1
King Male United States xbox steam bloop
A mother ducking wizard 
Recondite was an article that I used to write on The Dink Network to capture whatever random thoughts I had at the time. If my thoughts were butterflies, Recondite was an old man with a net and a penchant for entomological taxidermy. It eventually evolved into a pseudo-blog / status update for many things about The Dink Network that simply didn't fit into a forum message or a stand-alone news post.

It has been just over Ten Years since Recondite Twenty-Seven, and I can't quite comprehend that. Ten Years is a Long Time. That's twice as long as Bill Szczytko spent working on Quest for Dorinthia v2.5!

So read on, fellow Dinkers, and see what this edition entails.

Six Days Straight

Today is the sixth consecutive day that news has been posted on The Dink Network. This has not happened since... September 1998. I had updated redink1's Smallnet for 8 days in a row back then.

The Web

I am thrilled that Dink Smallwood HD and FreeDink are running successfully within web browsers. Not only does this lower the barrier of entry (you can start playing a D-Mod in two clicks), but I'm hopeful that this also means that Dink and D-Mods can be playable years from now.

Browser-based javascript/wasm games will almost assuredly continue to work for many many years, while I'm honestly not sure what operating system my computer or my phone will use five years from now. The Web handily won the platform wars, and now Dink is part of that.

From my view, the Web also trumps the gaming-specific platforms that some members of our community has been wishing Dink would be on (such as Steam or GOG). Now, playing Dink is a click away, and we just need to make it discoverable for those who might be interested.

Community D-Mod Jam

Sometime later this year, I am hoping to arrange a ludum-dare-ish game jam for a community D-Mod. The goal would be to schedule a 48 hour window to work on a D-Mod... but what if we all worked on the same D-Mod at the same time, and at the end we have a single D-Mod that everyone can play? We could coordinate through discord and twitch, and maybe use something like github to share the map and source code files.

Someone with no programming experience could suggest a joke in a discord chat room that we could include, players could beta test the in-work D-Mod on the fly in their browsers, three map designer could add decoration to map screens, and a programmer could add something crazy like a chess mini game.

This isn't exactly trivial. We'd need to come up with a few rules (for example, PG-13, no custom graphics, no custom hard.dat customizations, resolve how to handle conflicts, etc).

And, more importantly, we don't really have the right map editor to support something like this right now. Creating/merging script files is pretty easy with things like github, but I'm not sure how we'd merge changes to a map file. It'd be nice if we had a cross-platform solution, and it wasn't just a modified version of Windinkedit.

The D-Mod Improvement Project

Starting with Dink Smallwood v1.08, we've had various compatibility issues between the Dink engine and D-Mods. v1.08 added quite a lot of new features (yay), and unfortunately some of these features broke existing functionality (boo). FreeDink fixed quite a few things, and even supported a v1.07 compatibility mode. And Dink Smallwood HD has started fixing issues as well (after initially breaking a fair bit).

But, nobody has really played through most D-Mods most platforms to ensure that everything works as expected. I think this limits the appeal of playing D-Mods in general; do you use FreeDink? DinkHD? If you get stuck in a way that is simply not possible to get around, you probably don't want to play more D-Mods.
So, the idea of this hypothetical 'D-Mod Improvement Project' would be to select a well regarded D-Mod (like Lyna's Story or Malachi the Jerk), and encourage everyone in the community to play it and ensure that it works on as many platforms as possible.

If anyone reports any issues, community members (or, the original author, if they are still around) would make fixes to whatever would need to be fixed, whether that was Dink Smallwood HD, FreeDink, or the D-Mod itself. The goal would be to make the D-Mod work as it was intended (fixing gameplay dead-ends, crashes, hardness errors, and maybe even spelling and depth dot errors). We wouldn't be adding brand-new graphics, fixing plot holes, or making them 'better' (like Ted Shutes had done for a few D-Mods). We'd just be making it possible to complete them.

Then, when we finished one D-Mod, we'd move onto the next. And, in 40 years, we'd finally fix Goblin Castle.

The Future

I joined this community back in June of 1998, and I've been hearing that 'Dink Smallwood is dying' since around August 1998.

I'm not sure if either of the crazy ideas I mentioned above will become reality, or if they'll even be remotely successful. Regardless of any success or failure, this community will prevail because it has a good heart. We'll continue to recruit the odd duck here-and-there. They'll check out the chat room or browse through the forum and think "hey, this place is pretty weird, but nice".

You are all awesome.
June 20th, 12:02 AM
dinkdead.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
Sometime later this year, I am hoping to arrange a ludum-dare-ish game jam for a community D-Mod. The goal would be to schedule a 48 hour window to work on a D-Mod... but what if we all worked on the same D-Mod at the same time, and at the end we have a single D-Mod that everyone can play? We could coordinate through discord and twitch, and maybe use something like github to share the map and source code files.

let's go. but with more time. like, say...as long as it takes
June 20th, 02:03 AM
wizardb.gif
Bluedy
Peasant Male Romania steam bloop
Flyest artist you know 
This is big stuff right here. Im thrilled about this whole post and all the ideas in it. While a community dmod jam would require not only a decent amount of members that would also be available any time in the span of those 48 hours, but it would also require a lot of coordonation. And while the first attempt at this (if we ever do it) would probably not give out the best results, it would have been a great learning experience for everyone involved and would offer the possibility for a better second attempt later. We could also document the whole progress and release it as an essay or a short documentary!

As for the dmod improvement project, Im willing to help as much as time and interest is going to let me.

But for both of those awesome ideas, especially the first one we would need a lot of people that are currently active in the dink community on a regular basis (not occasional returning lurkers) because I doubt that the number of daily active members even reaches 10. So IMO, we need to do what has been suggested by a lot of people over the years and that is, to make dink more popular. Now, Im not talking millions or thousands of people, of course. but we need a bigger number of people who join, say, per month. Because the truth is, if youve never heard about dink smallwood back in the day, chances are youll never hear about this community. Because most recent members (for example myself or bouncycles) thought about dink smallwood and decided to revisit it for nostalgia sake and stumbled across this community.

So long story short, in my humble opinion, we need to increase the number of new members before we could move on with any of those projects.
June 20th, 02:54 AM
duckdie.gif
liquid141
Peasant steam
Sons of liberty 
The web play function is amazing no doubt , i am going to post it around so that we can see how many people check it out but compared to steam/gog release , i think releasing the game on gog/steam could easily outmatch the numbers we see here everyday.

Just for a metric there is a wishlist feature on gog and more than 300 people have voted for dink smallwood https://www.gog.com/wishlist/games/dink_smallwood

My only reason for advocating a steam / gog release is that we can get new generations of people playing the game , creating dmods , sharing their dink experiences than just 5-10 of us thats here now.

I think tal suggested the prefect way dink can be released on those platforms without affecting anything here
June 26th, 08:08 AM
fairy.gif
Spinnerweb
Peasant Male Pakistan steam
Scream Aim Fire 
The D-Mod jam is a good idea. As for mapping, I guess other people could do the map design on paper or images or such and post it in Discord, and one person could then map it all in WinDinkEdit as everything else goes along?
June 26th, 11:53 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
About the D-Mod jam & mapping:

For those of you that do not know, the problem with binary files and version control systems (whether we use something as part of github or something else) has historically been conflict resolution.

With text files (such as DinkC text files) a lot of times things get added or changed in different places, so no conflict exists and merges are easy and can be done automatically. Even when two people make their changes in the same area with the same text file(*), resolving the conflicts visually is pretty easy too, if you get both authors to review the changes together.

Changes to different screens within the binary map file would be MUCH harder to identify, isolate and resolve. That being said, it would require an intimate knowledge of how the map file is constructed. However, if someone could develop a platform independent tool that could translate from the binary map file format into a human readable text format (and back again from text to binary), then we MIGHT be able to manage merging map file changes intelligently.

Anyone have any suggestions here? Do we have (or did we have in the past) any tools enough like the one mentioned above? Do we even have something a little bit like that which we could "build on" to get the tool that would be needed?

If not, then the only kind of merging and group work possible would be to have something "on paper or images or such" that would then require resolution and follow through by some agreed-upon-arbitrator-administrator that uses WinDinkEdit as needed. But this could be very awkward. Usually, I design screens in WinDinkEdit at the same time I code, adjusting each to each other on they fly. I suspect this is not uncommon for others as well. If there is no more robust solution for mapping, maybe the best idea would be to start with an existing map from our unfinished dmods section and assign sections of it for different people to work on. Merging would still be a bit clumsy and require an agreed-upon-arbitrator-administrator, but not quite as clumsy or error prone.

(*)Example: two different assignments to the same sound number in start.c, like (a)[load_sound("corkpop2.wav", 52);] and (b)[load_sound("ratdeath.wav", 52);].
June 26th, 03:42 PM
custom_striker.gif
Striker
Noble United States steam
Daniel, there are clowns. 
Community D-Mod Jam

...I may be down for this.
June 26th, 06:20 PM
wizardg.gif
LeprochaUn
Peasant Male Japan xbox steam bloop
Responsible for making things not look like ass 
You may just give the person the dmod for a specific day, and then they give it off to someone else the following day. You could also do a few days or a week. I wouldn't do anything more than a week though.

This method would ensure that everyone gets to add to it, and no conflict errors will pop up because only one person will be working on it at a specific time.
June 26th, 11:40 PM
pillbug.gif
I'm happy to contribute to the D-Mod Improvement Project. Def would like to play through some of the top rated Dmods and report any issues.
June 27th, 10:25 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@LeprochaUn:

This method would ensure that everyone gets to add to it, and [fewer] conflict errors will pop up because only one person will be working on it at a specific time.

It would still be possible for conflict errors of various types to come about(*), but your approach would certainly reduce the chances for them.

(*) For example: Someone could assume a certain behavior for a certain sprite (call it sprite X) as a "&current_sprite" in it's script in a screen when Dink enters and another could override that behavior as a result of some changes that they make when assigning a new script to the screen as a whole or even through some incompletely tested changes to the original sprite X script.
June 27th, 05:44 PM
wizardg.gif
LeprochaUn
Peasant Male Japan xbox steam bloop
Responsible for making things not look like ass 
It's pretty hard to mess with &current_sprite without realizing it. You could get script errors sure, but you shouldn't get any conflict errors. Conflict errors being that my version is different than yours. Conflict errors would make it so at least one person's work would have to be deleted, because you can only have one version.
June 28th, 10:27 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@LeprochaUn:
Consider the use of functions like sp() to get the runtime sprite number of a sprite that is not the current sprite for that script, but rather the current sprite of another sprite on the same screen at the same time, making conversations between two sprites.

Example:
Dink enters a room to buy something from a shop. Upon entering, he freezes and starts conversing with the shop keeper. The shop keeper replies (because DmodDeveloper-A used int sp(int editor_sprite) to get the run time active_sprite value of the shop keeper). Then Dink is unfrozen, and is free to go up to the counter to try to buy something. This can all be done in the script assigned to that screen(*), [shopcsrn.c].

DmodDeveloper-B then gets control of the dmod and decides to use the main(void){} section of the script assigned to the shopkeeper [shopkeep.c] to freeze Dink when he enters the shop and creates an entirely different conversation for the two of them to have. Then Dink is unfrozen and can go up to the counter to try to buy something.

(*) I refer here to the script assigned in the properties of that screen via WinDinkEditPlus2.exe.
June 28th, 11:42 AM
wizardg.gif
LeprochaUn
Peasant Male Japan xbox steam bloop
Responsible for making things not look like ass 
That's still not a conflict error though.

If DmodDevA works on a version and DmodDevB works on a version at the same time then you get conflict errors because now you have differences in the files. In this case only DmodDevA or DmodDevB's work can be kept(or you could spend a while resolving script issues).
If DmodDevA works on it and then DmodDevB works on it you won't get conflict errors because there is only that one version. DmodDevB will be able to start working on it (ideally) without issue. Any errors that pop up like for instance the use of functions like sp(), are not due to conflict errors, but because DmodDevA or DmodDevB did not write their scripts to avoid situations like this, or have/provide the information to prevent this. This is however still not a conflict error.
June 28th, 02:20 PM
duckdie.gif
liquid141
Peasant steam
Sons of liberty 
What would be better is making up a solid story first just a rough sketch , divide the parts into different people and then , release them to the community for feedback to see who gets the correct idea and then go in that direction.
June 28th, 06:51 PM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@LeprochaUn & liquid141:

(First, please accept thanks to both of you for your thoughts on the matter of how a "Community D-Mod Jam" would work).

If DmodDevA works on a version and DmodDevB works on a version at the same time then you get conflict errors because now you have differences in the files. In this case only DmodDevA's or DmodDevB's work can be kept(or you could spend a while resolving script issues).

Yes, there would be no conflict in the actual scripts. That is, since DmodDevA and DmodDevB each worked in different scripts (shopcsrn.c and shopkeep.c respectively), the version control system (assuming that we use one) would not detect the conflicts over two different conversations. Initially both shopcsrn.c and shopkeep.c would be "kept." And yes, in this simplified example, you could certainly "spend a while resolving script issues" once they were detected. Ideally, that resolution would require a dialogue between DmodDevA and DmodDevB. If we collect a few of these in the course of development, I'd say that it would make the "Community D-Mod Jam" process a bit tedious.

IF we go through with this "Community D-Mod Jam" idea, I agree that it makes sense to develop the "rough sketch" of a "solid story" first. As a next step different parts could be divided up into little teams. For Example, Team#1 could consist of DevModA fleshing out the story while Dink is in the town of SplatBang. If DmodDevB and DmodDevC agree with the storyline, then DmodDevB could do the mapping for the town. Finally DmodDevC could do the coding for various places in town. Then Team#2 could start on the DungeonOfDoom section of the story, mapping and coding, followed by Team#3 working on the same things for the ElysianFields section of the map.

One other factor here is something we have to be realistic about. Dmod development is (for most people) not the first and most important part of their lives, and there are dozens of unfinished dmods that testify the to reality that it takes time and commitment to develop a dmod, especially at this time in the history of Dinkdom. Many give up on the effort and therefore do not even end up uploading an incomplete dmod to be downloaded by Dink fans around the globe. Putting together a long list (well, it will seem like a long list for this small group of gaming fanatics) of people to work on a dmod practically guarantees (IMHO) that someone will stop producing or not produce fast enough to sustain the interest of all others involved.

June 29th, 02:52 AM
dinkdead.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
why are we making this way more complicated than it should be?

...oh, github, the aptly named site, was mentioned
June 30th, 01:11 AM
girl.gif
yeoldetoast
Peasant Female Australia steam
discord.gg/Ukugfbh 
Would it be all that different to the One Screen DMOD Competition?
June 30th, 06:21 PM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@ yeoldetoast:
Forgive me if I am either stating the obvious or just missing something, but the "One Screen DMOD Competition" was competitive. The "Community D-Mod Jam" would be a cooperative effort.

July 1st, 10:51 AM
girl.gif
yeoldetoast
Peasant Female Australia steam
discord.gg/Ukugfbh 
You're right. I didn't understand the concept properly. I hope it doesn't turn into a disaster (which it will).
July 1st, 11:38 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@ yeoldetoast:
Well, I'd hardly call the failed creation of a dmod a disaster. The worst thing that could happen is that only a handful of gaming fanatics might get their feather's ruffled.

A tsunami is a global disaster. The descent of a nation into tyranny is a disaster for an entire people. An earthquake is a disaster wherever it strikes. The loss of a loved one is a personal disaster.

To quote a famous tome of wisdom known throughout the galaxy, "Don't Panic".
July 1st, 12:01 PM
dinkdead.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
you don't realize the devastation a failed dmod event causes. you don't because the last time this happened, the vampire contest, the entire universe was reset.
July 1st, 02:10 PM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@ Skurn:
Please explain (unless you are joking somehow and think that your joke explains itself).
July 1st, 02:22 PM
duckdie.gif
liquid141
Peasant steam
Sons of liberty 
A failed dmod or a underappreciated dmod can certainly cause some people to take the hit very seriously and personally , we have seen it happen here a lot dont want to point out names there were lot of dmod makers who were very upset and sad when their dmods did not become a hit as much as they wanted(review score) or win that particular contests , we have to take everything into account seriously.
July 1st, 05:35 PM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@ liquid141:

Hmmmmm.

I see. I did not realize there was so much at stake.

If what you say is true then there must have been many who took "the hit very seriously and personally", based on the many low review numbers for various dmods, dink development tools, etc.

Thanks for explaining.
July 7th, 12:43 PM
wizardb.gif
Kyle
Peasant Male Belgium
 
Just tried DinkHD on the web, awesome experience, no framerate issues whatsoever! The midi music sounds different than I remember, but it's been over 10 years since I've listened to a standalone midi file... Probably normal!

The community project sounds cool
July 7th, 09:30 PM
dinkdead.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
sticky a thread exclusively about the challenge dmod thing
July 8th, 02:47 PM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
What is the "challenge dmod thing"?
July 8th, 06:16 PM
dinkdead.gif
Skurn
Peasant Male Equatorial Guinea xbox steam duck bloop
can't flim flam the glim glam 
the community dmod jam challenge dmod thingy extreme turbo edition pro
July 9th, 07:34 AM
spike.gif
SlipDink
Peasant Male United States bloop
2nd generation. No easy way to be free. 
@ Skurn:
Oh, you meant the "Community D-Mod Jam". Well yes, I agree that it makes sense to create a sticky discussion about it, though first I'd say we still need to work out a few things about how it might work before we actually do it.
July 9th, 11:51 AM
duck.gif
toof
Peasant Male
I disagree. 
Would that community project be like one continuous large dmod, or a mashed-up jumble from several different authors where each section is self contained? You know, like Scheherazade's stories, where ending of each part will have something like:
freeze(1);
wait(86400000);
unfreeze(1);