It's worth mentioning that I'm again switching sources, to my in-progress C++ rewrite. The old Delphi version is just too marred to continue development with, and although this less-developed version is obviously not as far along, it will serve the best in the longrun. So please bear with my somewhat repetitious development, even though it won't be developed the exact same way the Delphi version was.
For those of you who haven't been following Skirmish's progress from the begining and wonder what I mean by 'Delphi version' and 'C++ version': the development for Skirmish began in January 2006 using the Delphi programming language. Things fared well for 5 months, but the source gradually got uglier and less efficient. So I began a rewrite in C++ in late July 2006, which proved a little more challenging, but had greater longterm benefits. In frusteration of being set back to far, I claimed to have switched back to the Delphi version, but now I've settled once more on the C++ flavour. It's a pain to re-develop, but it's the best way to go.
Today's development saw:
- Ping updates now function properly. You can see your own ping, and everyone else's, updated by the host on a 5-second interval.
- Movement prediction improved. Previously I was predicting player rotation too, which apparently was a cause for a lot of inaccuracy, and 'jerkiness'. By having rotations occur instantaneously, it looks a little more non-smooth, but results in more accurate player prediction.
- Stripped out a half-baked "multiple camera" system. Just not needed.
- Word-wrap was a little much for today's session, so I implemented a hastier 'character-wrap' which only wraps to the character, not the word. It's good enough, so as to prevent longer messages from going off the screen.
- Map drawing is now highly optimized. On my compuer the framerate lept from ~130 or so to ~400. I'm still seeing what increases other testers are experiencing. Was just a case of reducing the number of batches being rendered.
- Fixed a run-away reference to MSVCR80.DLL that was preventing some testers from playing. (I'm using MSVC71, hence the annoyance :P)
- Capped minimum player speed. Firstly, this fixes the problem I was having with players appearing to 'jitter' on the spot -- due to rounding -- but it also enabled me to optimize network "player-movement" packets so that non-moving players save a whopping 12 bytes PER movement packet. Woot.
- Fixed a crashing issue when a player in a certain position in the playerlist left the game. I wasn't removing their Sprite object from the game properly, or somesuch.
(Woot! FrameRate++)
Not major changes, but now the way is paved for the bigger additions of this version, such as the new weapons system. Accompanied by player death and respawn, of course. Things are flying along faster than before, and I'm even working on a smaller timeframe. [smile]
By the way, cheers for the link to String Theory. Amazing. There goes all my productivity for the rest of the day.