HINTS & BUGS (My first DMod - writing impressions)

When I started the AGAE (due to Dimon's idea of testing my own skills) I read Seth's development texts, looked into source files - everything seemed easy enough. But then I stumbled upon some game engine and dinkedit tricks… 
So I made some notes for myself, and hope it may be helpful to other people starting on this thorny path. 

This text doesn't pretend to be a kind of tutorial. It is exactly what is in the title: impressions of a person who tries to make a DMod.

Later on I added some modifications to it and now it is a kind of a DMod writer's online log, about the undocumented or just strange behaviour of Dink engine - or about my own errors not so easy to solve. 

If you think it immodest - well, don't read it further.

If you know the source of a problem or think I'm wrong - please mail me.

I hope it may be helpful to the beginners, and maybe someone would mail a hint to me. Don't flame me if you don't like this text.

1.         Don't be keen on screenlocks. The game engine bug #1: if you try to escape the locked screen and move along the screen edge - you just walk through any hardness and then, when the monster dies and the screen unlocks, you are somewhere you shouldn't be, and can't get back. So the screenlocks are for the
screens with completely open edges, otherwise you shouldn't let Dink (and monsters!) touch screen edge.

2.         Don't ever use compile.exe from original dink - it's extremely buggy. Use windinkedit tools instead (I don't say it's bugless, but there are much less bugs).

3.         A couple of times I had the nasty glitch: you just crash on one particular screen, almost every time. Later I learned that too many sprites were on the screen. So if the limit was exceeded (by screen match feature usually) it crashed.

4.         The graphics: don't forget applying dink palette when using ffcreate, lest your sprites will look very strange.

5.         When using show_bmp procedure dink palette is necessary. And the problem with DirectX may arise if your bmp size is not exactly 640x480. The game just crashes with some videocards (not the one I have).

6.         The compare_magic procedure just doesn't work like compare_weapon. Lost 30 min to discover that. Had to do it other way.

7.         If your script generates a sprite, but you don't see it (it is there, it works but doesn't show) - it means the sequence is pushed out of memory cache. The debugger gives "bad pix in sequence" message. Just use preload sequence.

8.         If you make burnable tree unburnable, bear in mind that fireball takes off its hardness, so the script must restore it (in the hit procedure). I just draw one more pine-tree, darker one. So it doesn't burn because only 1st frame tree in the sequence can burn. Thank God there is the Sprite Replacer!

9.         Don't add monsters with the screen match mode on - they will keep appearing from the adjacent screens' edges.

10.       If a sprite must be on more than one screen - let it be 2, not more screens, or it may be partly lost. Or use WinDinkEdit to check and/or correct it.

11.        The good idea is checking all your map midscreen  hardness and tile connections with WinDinkEdit.

12.       (NEW) There is a known bug in dink: if Dink kills an enemy and it is followed by a cutscene (e.g. in SOB, story 4, when he kils a witch in the jail) and there happens level up, you never see the cutscene and Dink remains frozen. Solution: Don't give experience points for such enemies using sp_exp(), use &exp += 200 in the cutscene script.



 
Hosted by www.Geocities.ws

1