Michael Zucchi

 B.E. (Comp. Sys. Eng.)

  also known as zed
  & handle of notzed


android (44)
beagle (63)
biographical (97)
blogz (9)
business (1)
code (73)
cooking (31)
dez (7)
dusk (30)
extensionz (1)
ffts (3)
forth (3)
free software (4)
games (32)
gloat (2)
globalisation (1)
gnu (4)
graphics (16)
gsoc (4)
hacking (451)
haiku (2)
horticulture (10)
house (23)
hsa (6)
humour (7)
imagez (28)
java (229)
java ee (3)
javafx (49)
jjmpeg (80)
junk (3)
kobo (15)
libeze (7)
linux (5)
mediaz (27)
ml (15)
nativez (9)
opencl (120)
os (17)
panamaz (3)
parallella (97)
pdfz (8)
philosophy (26)
picfx (2)
players (1)
playerz (2)
politics (7)
ps3 (12)
puppybits (17)
rants (137)
readerz (8)
rez (1)
socles (36)
termz (3)
videoz (6)
vulkan (3)
wanki (3)
workshop (3)
zcl (3)
zedzone (23)
Friday, 22 February 2013, 17:30

More Dusk

Kept poking on the Dusk source code over the last few days, trying to put more of the "G" into the GMUD name.

I've converted the server list to an embedded Node, which handles login and character creation as well.

This is current the server/login window complete with a pretty shithouse stylsheet.

And if the server asks for it, the race.

I managed to fit these in at first by just screen-scraping some of the responses and changing them to graphical output, but I will probably look at extending the server protocol to handle it in a more controllable manner.

First I had to get the server built - which was pretty easy - except then I decided to move a big chunk of it to a different namespace. Well I got it done eventually but had to make a lot of stuff public - the code is pretty poor overall. I also spent a bit of time modernising the Java but only scratched the surface.

One thing I did need to extend the server protocol for was to "enhance" the battle display. So after a few hours refactoring the whole battle engine. Pretty much everything was done twice, by cut and pasting large blocks of code. I moved these into parametrised functions which halved most of the logic although I added some bugs too. Then I looked at adding a new message type which reports who did how much damage to whom.

Which let me add some damage bubbles ...

Of course being JavaFX they are animated: they drift away from the attacker and fade out to blank.

Apart from the old container classes (Vector everywhere) most of the code is a bit of a mess. Code and data is all over the place, and little things like object references are no limitation to who wants to use what. There is also quite a lot of it - from the script system to the command handler and the main game controller - so any real improvement will require a deep understanding.

But for example I just came across this sequence ... which is repeated about 8 times through a couple of classes:

    if (engGame.scrCanSeeLivingThing != null) {
        synchronized (engGame.scrCanSeeLivingThing) {
            engGame.scrCanSeeLivingThing.varVariables.addVariable("seeing", thnStore);
            engGame.scrCanSeeLivingThing.varVariables.addVariable("seen", this);
            blnCanSee = engGame.scrCanSeeLivingThing.rewindAndParseScript();
    } else {
        blnCanSee = true;

Apart from poking at some internal variable on another object, it's a prime candidate for a helper function. This sort of stuff is everywhere. The Hungarian notation is really shitting me off too ...

Tagged dusk, games, hacking, javafx.
The hourly WTF? | Dusk - fx
Copyright (C) 2019 Michael Zucchi, All Rights Reserved. Powered by gcc & me!