Frictional Games Forum (read-only)

Full Version: Blog:"On Versioning (or how the simplest thing can save you from the hardest pain)"
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
New blog post, this time about the importance of knowing your versions:
While I don't program, I code in Wc3 which supplies it's own language (jass).

Tracking down a bug can be extremely annoying; half the time I'll just remake the entire system to wipe it out.
Yeah bugs are annoying, but when the project you are working gets big enough, you are pretty much forced to go hunting them down. Having to rewrite stuff is something you want to avoid at all costs, and always have it as last resort.
Never checked WC3. Does it provide any means of debugging?
Most of my systems rarely get past 300-500 lines so it isn't terribly difficult.

You can debug it; but no default debugging is available. The game is extremely stable but if you do something it doesn't like (reference coords outside map) than it crashes.
I have a ton of scripts which look for anomalies in single player though, which helps things out.
if z.NumberOfZombies == -1 then
call BJDebugMsg("z.NumberOfZombies is wrong. Checking if spawned..")
if z.IsSpawned == 0 then
cal BJDebugMsg("z.IsSpawned has not spawned.")

It does give a syntax (especially a user made one called NewgenJass which offers tons of functionality) which catches most errors.

I do eventually want to learn C or C++ and make my own game, but I'll stick with sc2 when it comes. It's language (Galaxy) is based on C so it'll help me get started on it.