Worklog for Entity

Worklog 1

Return to Worklogs

WormTris(Posted 2001-12-25)
Progressing pretty fast. Tetris engine now fully working. It's kind of object oriented so can potentially handle 500 players at once but there's only room on screen for two (with my graphics that is). Also, 500 people sharing 1 keyboard might cause some problems :)

I had to make the whole thing operate asynchronously too (state tracking from hell! :) so that for example the completed-line-removal effect in your pit does not interfere with the other player. This is working perfectly!

Here's a work-in-progress screenie:


(Yes, the logic code does indeed execute over 600,000 times a second :)


:: Athlon 1.4Ghz :: GeForce2 GTS :: SB Live! Platinum 5.1 :: Win2k SP2 ::

WormTris: The Return(Posted 2001-12-21)
Almost 6 years ago, I created a game called WormTris on the Amiga, some may remember this game, as it was a feature on the coverdisk of an Amiga mag.
For those that don't; WormTris is a Tetris clone with elements of the game "Worms" and plenty special features (such as WormCombos, letting you clear more than 4 lines in a go in a chainreaction)
Now what most of you don't know is that there is an unreleased sequel, "WormTris Director's Cut AGA", which is vastly superior to the original. However, I never got around finishing that version.
Earlier this week I decided to remake the game on the PC using Blitz.
This is a lot of work, since the graphics (originally 8-bit with aspect 640:256) have to be made from scratch, and the original code is not re-usable due to its age and te vast differences between PC Blitz and Amiga Blitz2. Despite that, it's already progressing nicely, the tetris core code is 80% functional already.

This new version will be much higher quality and will feature many special powerups and a 2-Player battle mode, much like you get when you play Tetris against a friend on the gameboy. Of course a classic Tetris mode will be available too, and -MAYBE- network play as well.

This title will most likely be released semi-commercially, perhaps under the KoolDog label.
I have to work out some issues like the copyright on the sounds of the actual Worms game, or I'll have to create my own high-pitched worms speech)


:: Athlon 1.4Ghz :: GeForce2 GTS :: SB Live! Platinum 5.1 :: Win2k SP2 ::

PUI(Posted 2001-12-04)
Just did the notification system, and it worked straight away, no typos, no logic errors... Even though the code involved is quite big... Scary :)


:: Athlon 1.4Ghz :: GeForce2 GTS :: SB Live! Platinum 5.1 :: Win2k SP2 ::

PUI(Posted 2001-11-30)
My GUI's coming along nicely, just implemented the formatted text layout engine (enabling you to align/center text, set styles, etc, all in the same string using ESCape sequences...). Area frames system is now also working perfectly.
Next on the todo is the notification system, enabling you to let certain actions automatically take place when e.g. a button is pressed.

I do have a problem though, the lack of proper pointers/stack args/typecasting is becoming more and more a bottleneck. Not that the GUI is crawling, right now it does about 1000 re-layouts and renders per second, but as functionality is added this figure will drop considerably. There's a major overhead in the Taglist support and SetAttrs() calls, because in some cases the level of function call depth is like 24 levels, and this is only for a small window with few nested groups. I might have to alter the amiga taglist emulation to something more efficient.


:: Athlon 1.4Ghz :: GeForce2 GTS :: SB Live! Platinum 5.1 :: Win2k SP2 ::

Code Obfuscator(Posted 2001-11-17)
Oh, the obfuscator turns out to be a very interesting project indeed. I need to 'copy' something that's already done by blitz: a preprocessor to identify text as being a keyword, variable, function, a string, etc...
I'm now tokenizing lines one by one, so I can easily define a set of rules to let me properly identify all 'words' in the source. Then I can just change all variable names and stuff to random goop and save the whole thing out to a big file. It'll actually create one obfuscated file out of a project consisting of multiple includes :)

---

Update: Hm, the runtime.dll keyword extractor I made works well, but it seems the basic commands like if then else while wend etc, are located in the ide.exe so I'll have to scan that one too.. bah.


:: Athlon 1.4Ghz :: GeForce2 GTS :: SB Live! Platinum 5.1 :: Win2k SP2 ::

Object oriented GUI(Posted 2001-11-16)
It was quite challenging to write an OO layer in Blitz, because most of the requirements were missing: Var/Stack args, real pointers (especially function pointers) and Typecasting.

Got it working though, by using some clever trickery to 'emulate' the missing functionality.

I'm sort of making a MUI-like object oriented GUI. Amiga programmers that used MUI will know the extremely powerful abilities such a system provides.
For those who never heard of it, a few of the major advantages:
* Easily configurable appearance
* No fuss with positioning and (re)sizing stuff. Just say you want 3 buttons next to eachother with a list gadget above it and it will be done, not a single coordinate or size needs to be given.
* Easily expandable with custom classes you can write yourself and use with the GUI system in a completely transparent manner. (that is, without special requirements and hacks, not actually transparent graphics :)

The funny thing of this project is that it creates all sorts of little side-projects, such as writing general purpose image tiling functions (which can either fill an area with a color, a pattern, or an image), an extended bresenham layouter (to dynamically layout all elements of the GUI in the available space in the window. This is the same method MUI uses), and, quite important, a code obfuscator to change my source into a huge, unreadable, meaningless blob of text if I ever release it ;)


:: Athlon 1.4Ghz :: GeForce2 GTS :: SB Live! Platinum 5.1 :: Win2k SP2 ::