Re: Looking for some basic DMOD-making advice
Hey everybody. Playing through all of these DMODs is causing me to come up with some ideas, and I am crazy enough to still like the idea of actually making something good 15-16 years too late. Will I ever learn?
I actually have an idea I'm working on for a genuine epic, and I've already got a lot of material planned (even just the bare-bones outline is over 2,000 words). I won't say anything about it except that it deals with extremely dark and depressing themes, as even mentioning the title would read like an announcement and lord knows there are enough of those floating around already. I am pretty excited about some of the story I've come up with, though.
Don't worry, you don't have to worry about me rushing to release something like the old days. You wouldn't see anything out of me until I had done a lot of work behind the scenes. I intend to plan maps out on paper so they don't look and navigate like total ass. Maybe I'd work on some sort of romp or minigame first to get my bearings.
(Incidentally, if by acclamation everybody would like me to never do this again, that would be fair enough considering my past with this sort of thing, and I suppose I'd go back to just writing.)
Here's my problem: I haven't made a DMOD since 2000, so I don't even know how one goes about it these days. Which current editor is the best? I always hated that clunky old Dinkedit, which would take a couple of minutes just to draw a map back in the day. WDE? WDE Plus? Is Skeleton S better than Skeleton B? Which tutorials are most helpful for someone who's very close to being a beginner? Any kind of information like this that you could point me to would be helpful. Thanks.
I actually have an idea I'm working on for a genuine epic, and I've already got a lot of material planned (even just the bare-bones outline is over 2,000 words). I won't say anything about it except that it deals with extremely dark and depressing themes, as even mentioning the title would read like an announcement and lord knows there are enough of those floating around already. I am pretty excited about some of the story I've come up with, though.
Don't worry, you don't have to worry about me rushing to release something like the old days. You wouldn't see anything out of me until I had done a lot of work behind the scenes. I intend to plan maps out on paper so they don't look and navigate like total ass. Maybe I'd work on some sort of romp or minigame first to get my bearings.
(Incidentally, if by acclamation everybody would like me to never do this again, that would be fair enough considering my past with this sort of thing, and I suppose I'd go back to just writing.)
Here's my problem: I haven't made a DMOD since 2000, so I don't even know how one goes about it these days. Which current editor is the best? I always hated that clunky old Dinkedit, which would take a couple of minutes just to draw a map back in the day. WDE? WDE Plus? Is Skeleton S better than Skeleton B? Which tutorials are most helpful for someone who's very close to being a beginner? Any kind of information like this that you could point me to would be helpful. Thanks.
I think my own tutorial works great for a beginner.
Robj has made quite a few video tutorials in this thread, you may prefer them.
Skeleton B still works pretty good as a skeleton, all of my DMODs except for the latest one were all based on Skeleton B. (Quel was based on my own skeleton, never released.) You may want to change the original hard.dat by redink's rewrite, it's pretty good.
As for the editor: Personally I use WDE, it's much better at doing screen borders and works quite a bit more intuitively than DinkEdit. I've never checked on all of the plus versions.
Looking at your writing skills a DMOD could be absolutely awesome.

Skeleton B still works pretty good as a skeleton, all of my DMODs except for the latest one were all based on Skeleton B. (Quel was based on my own skeleton, never released.) You may want to change the original hard.dat by redink's rewrite, it's pretty good.
As for the editor: Personally I use WDE, it's much better at doing screen borders and works quite a bit more intuitively than DinkEdit. I've never checked on all of the plus versions.
Looking at your writing skills a DMOD could be absolutely awesome.

Skeleton X (or whatever) by joshriot is the best there. It has basically everything you need. However I would recommend you try all of them out to see which works best for you.
Read through dinkc.chm in the Develop folder and look at the included dink scripts to figure out how to script again. Get a text editor with syntax highlighting like Notepad++ and get into good scripting habits. Look at other people's files to see how they do things. Scratcher has a particularly clean scripting style that is worthy of emulation.
In terms of mapping, WinDinkEdit Plus 2 is the newest rehash of WinDinkEdit which inherits all of the bugs of WDE(+) and adds a few new features. There is no "best" editor as all of them basically do the same thing at the end of the day. I would suggest you try them out and see which ones you like the best and stick with it.
DinkEdit is a lot faster these days because we have multi-gigahertz cpus meaning loading times are basically nil. If you're going to go down that path, use FreeDinkEdit included with Freedink (turn on developer mode and set the editor in dfarc) or else the colours will be screwed up. Apparently it also has a warp coordinate copy and paste feature although I don't know how to get it to work.
I believe that Mystery Island was scripted before it was mapped. Deciding on a good work-flow is particularly important as well. Most people do a sort of weird half-and-half thing. We'll all do our best to help you along the way. Good lucks!
Read through dinkc.chm in the Develop folder and look at the included dink scripts to figure out how to script again. Get a text editor with syntax highlighting like Notepad++ and get into good scripting habits. Look at other people's files to see how they do things. Scratcher has a particularly clean scripting style that is worthy of emulation.
In terms of mapping, WinDinkEdit Plus 2 is the newest rehash of WinDinkEdit which inherits all of the bugs of WDE(+) and adds a few new features. There is no "best" editor as all of them basically do the same thing at the end of the day. I would suggest you try them out and see which ones you like the best and stick with it.
DinkEdit is a lot faster these days because we have multi-gigahertz cpus meaning loading times are basically nil. If you're going to go down that path, use FreeDinkEdit included with Freedink (turn on developer mode and set the editor in dfarc) or else the colours will be screwed up. Apparently it also has a warp coordinate copy and paste feature although I don't know how to get it to work.
I believe that Mystery Island was scripted before it was mapped. Deciding on a good work-flow is particularly important as well. Most people do a sort of weird half-and-half thing. We'll all do our best to help you along the way. Good lucks!
Ah, yes. Script editors are a good point. If you want to go with notepad++ you should really check out Sparrowhawks DinkC plugin. Personally I use Cypry's editor as it has built in syntax checking which has saved my ass a couple of times. It does not fully support all of the changes in Dink v1.08 but it can point out those nasty little spelling errors you made.
I use WinDinkEdit+, because I never got 2 to work properly. Robj's Tutorial videos are extremely useful, but what's helped me the most with what I've completed on my current work-in-progress is the DinkC reference. It's helped me find a lot of cool things I've never known about before, and use them to good potential and solve a lot of bugs and simple issues. Making a small D-mod first is always a great learning experience to get your head around DinkC, so that's definitely something that couldn't hurt to do before you start on the big project.
I look forward to whatever you come up with, and I volunteer to beta test.
I look forward to whatever you come up with, and I volunteer to beta test.

Which current editor is the best?
I think my editor (pydink editor) is the best, but note that nobody agrees with me yet.
My editor started as a script preprocessor, so I don't have to use all the braindead workarounds to make things work in DinkC (spaces and newlines here but not there; + is really +=, but *= is not *; everything referenced by number instead of by name; you've worked with it, I'm sure you know what I mean).
I've later added a GUI to create maps. I think it works alright, but it is not yet worthy of the name "beta". People who want to test it are having a hard time without help. But have no fear! If you want to try it out, I'm happy to assist you, to make it work. The upside of this is that you can request features and they will (most likely) be made for you. The downside is that you will likely need to request some features and you will most likely need to wait a bit for them to be made.
To get an idea of how it works, you can look at some clips of me editing that I uploaded to YouTube. You will want to stop the videos and read the scripts to appreciate their syntax.
I hope you like the idea. If you're not interested, that's no problem of course.
Note: the editor is written in Python, and requires a relatively strong CPU (stronger than what you need for Dink). It shouldn't be a problem with any relatively modern computer, but a Raspberry Pi was reported as too weak.
I think my editor (pydink editor) is the best, but note that nobody agrees with me yet.

My editor started as a script preprocessor, so I don't have to use all the braindead workarounds to make things work in DinkC (spaces and newlines here but not there; + is really +=, but *= is not *; everything referenced by number instead of by name; you've worked with it, I'm sure you know what I mean).
I've later added a GUI to create maps. I think it works alright, but it is not yet worthy of the name "beta". People who want to test it are having a hard time without help. But have no fear! If you want to try it out, I'm happy to assist you, to make it work. The upside of this is that you can request features and they will (most likely) be made for you. The downside is that you will likely need to request some features and you will most likely need to wait a bit for them to be made.

To get an idea of how it works, you can look at some clips of me editing that I uploaded to YouTube. You will want to stop the videos and read the scripts to appreciate their syntax.
I hope you like the idea. If you're not interested, that's no problem of course.

Note: the editor is written in Python, and requires a relatively strong CPU (stronger than what you need for Dink). It shouldn't be a problem with any relatively modern computer, but a Raspberry Pi was reported as too weak.
PyDink looks like an impressive and powerful tool, but I don't think I'm the guy to be alpha-testing it. I really have got no idea what I'm doing, you see, so I'm better off sticking to stuff that's at least documented.
Standard DinkC is a mess, it's true, but I'm not a programmer, and it's what all the tutorials are written for.
Standard DinkC is a mess, it's true, but I'm not a programmer, and it's what all the tutorials are written for.
If you go onto chat you can just pester magicman with a bunch of questions. That's how I learned.
My method is trial and error. I write a script I think will work, and 95% of the time something goes wrong, so I clean it up, and take a look at the DinkC reference to find useful commands that fix whatever bugs remain. I don't have a game crashing bug currently in my D-mod, so I must be doing something right.
I use WDE+ and Skeleton B. It may also be helpful to note that I use Aural+, because it is amazing. I think everyone else has covered the tutorials, so if I could offer one piece of advice from my own experience, it would be this: Add a script to your D-Mod to show the console. The console lets you execute commands during the game, and it is incredible for testing a D-Mod. Accidentally get stuck in a wall and haven't saved for awhile? Change your coordinates. Need to balance a boss fight? Change your stats around mid-battle. Want to equip a spell you made but haven't put it in the shop yet? Well...you get the picture.
Yo Pillbug, has WDE+ ever stopped treating white as transparent for you? It's done that twice to me. I'm wondering if it's just me or not.
Mm, if you have "BLACK" at the end of the .ini, it will treat black as transparent instead of white. However, Windinkedit has bugged out a few times and just forgets how to display white for me. Does a reboot fix it for you?
A reboot of my computer, yes. A reboot of the program, no.
Yeah, probably just WDE derping. It's not just you though.
I think my editor (pydink editor) is the best, but note that nobody agrees with me yet.
Actually I do - best out there actually - and it doesnt bug out on u either
Just a learning curve for some maybe?
Actually I do - best out there actually - and it doesnt bug out on u either

So there's one thing about WinDinkEdit I can't figure out: how do you do that thing where you drag the map around with your mouse? I mean moving through the entire map by dragging. I turned this on by accident once but then couldn't turn it off without exiting the program.
Hold CTRL, the left mouse button and drag, yo.

Odd. I wonder how I got the program stuck on doing that, then.
Stuff like that happens if you test-play it, for some reason. It's really annoying, because it also makes the arrow keys for scrolling less effective.
Okay, what the hell, you guys. I just left the second void out of void main (void) and it worked without a single problem.
Like this:
Have we all been typing that stupid (void) for no reason this whole time? My mind boggles!
If we don't need it, I'm sure as hell leaving it out of scripts from now on.
Like this:
void main { //this stuff happens! }
Have we all been typing that stupid (void) for no reason this whole time? My mind boggles!
If we don't need it, I'm sure as hell leaving it out of scripts from now on.
There's absolutely no reason, indeed.
I started a thread some time ago complaining about all the useless stuff people put into their scripts, and everyone was like "Ooh, it's what we're used to, it's so nice, we love typing worthless crap"... something along those lines. =P *shrug* I personally hate anything excess, so I try to do everything as streamlined as possible.
Another thing that you don't need are semicolons. Never ever beaver; they're totally worthless.

Another thing that you don't need are semicolons. Never ever beaver; they're totally worthless.
You're going to hate me, but noooo, I can't let go of semicolons. It's too much.
I'm done with (void), though.
I'm done with (void), though.
I started a thread some time ago complaining about all the useless stuff people put into their scripts, and everyone was like "Ooh, it's what we're used to, it's so nice, we love typing worthless crap"... something along those lines. =P
Probably because it's absolutely random whether it will work or not without all the "extra" stuff. Most of the time it will, but I'll rather take a few extra seconds to type just to be certain.
Probably because it's absolutely random whether it will work or not without all the "extra" stuff. Most of the time it will, but I'll rather take a few extra seconds to type just to be certain.
Probably because it's absolutely random whether it will work or not without all the "extra" stuff. Most of the time it will, but I'll rather take a few extra seconds to type just to be certain.
That's just xenophobia talking. There is no bug in DinkC that you can fix by adding a semicolon, or the ( void ) part to a procedure title.
That's just xenophobia talking. There is no bug in DinkC that you can fix by adding a semicolon, or the ( void ) part to a procedure title.
Back when I was making The Rise of the Goblins, I definitely remember things sometimes not working without any reason. After I added a semicolon, it started working perfectly. I think I've experienced this once or twice with (void) too.
Sure, you can skip brackets too if you want to. Heck, you can skip about half the stuff that people use in scripts, but it's all on your own risk, because sometimes it does cause errors.
Sure, you can skip brackets too if you want to. Heck, you can skip about half the stuff that people use in scripts, but it's all on your own risk, because sometimes it does cause errors.
It's only typing (void) that always annoyed me. It's not really based in logic, but brackets and semicolons always made sense to my brain, but that dang (void) always frustrated me with its apparent pointlessness.
Correct me if I'm wrong but I think in C that void main( void ) "void" actually had a purpose. I believe the second void was used to specify the type of returned variable by the function. Unfortunately, it can't be used for that purpose at all in Dink making it quite pointless. Dink uses a completely different method to return variables in functions.
Yeah, all this extraneous stuff is probably leftover from basing DinkC on C.
Actually, the more I test not having semicolons, the more I don't find any bugs, so I might not bother with those anymore either.
Actually, the more I test not having semicolons, the more I don't find any bugs, so I might not bother with those anymore either.
Actually in C the first void specifies the type of the returned variable of the function. The second specifies that the function takes no parameters. Even though in DinkC sometimes functions containing ( void ) do take parameters and functions starting with void can sometimes return variables.
I can also remember that semicolons have fixed bugs for me in the past. Though that might be in the pre v1.08 era, I can't really remember.
EDIT: Also I seem to remember that in past versions the opening parenthesis was necessary. Man, things just get more and more minimalistic over time.

I can also remember that semicolons have fixed bugs for me in the past. Though that might be in the pre v1.08 era, I can't really remember.
EDIT: Also I seem to remember that in past versions the opening parenthesis was necessary. Man, things just get more and more minimalistic over time.
Back when I was making The Rise of the Goblins, I definitely remember things sometimes not working without any reason. After I added a semicolon, it started working perfectly. I think I've experienced this once or twice with (void) too.
I can also remember that semicolons have fixed bugs for me in the past. Though that might be in the pre v1.08 era, I can't really remember.
I actually remember fixing things like that too.
At least for myself, though, I think it's just an illusion borne as a result of trying to adhere to a predefined norm.
For example, I used to think title_start(); requires a semicolon, while choice_start() doesn't, for some bizarre reason. So, if my script doesn't work, and I look at it and see this:
I'd "fix" the script by adding semicolons to title_start(); and title_end();, and associate that change with the solution, even though the real isssue would have been something entirely unrelated.
I can also remember that semicolons have fixed bugs for me in the past. Though that might be in the pre v1.08 era, I can't really remember.
I actually remember fixing things like that too.

For example, I used to think title_start(); requires a semicolon, while choice_start() doesn't, for some bizarre reason. So, if my script doesn't work, and I look at it and see this:
choice_start() title_start() Cow title_end() "Milk" choice_end()
I'd "fix" the script by adding semicolons to title_start(); and title_end();, and associate that change with the solution, even though the real isssue would have been something entirely unrelated.
Thanks for the clarification Metatarasal, I figured I had got something wrong. Either way the second void is there pointlessly.

This sort of rubbish is why I started writing my script preprocessor. I refuse to teach myself in which place a space or semicolon is acceptable, or required, or forbidden. But I wanted to be able to write DMods anyway.
