3 Jun 2003 pencechp   » (Journeyer)

With a little more optimization, game load time is effectively gone now, and I've been focusing for the last several days on executable size lowering and faster binary loading time. I've got an entire, fully functional, object-oriented Quake engine in a 177K package. That, IMNSHO, is a piece of art.

There's still a few bugs to be ironed out, but I think I'll get 'em soon. Mostly, a few features had to be sacrificed - I had to give up on C++ exception handling (I'm not sure whether I'm glad it's gone or not, yet), and I had to give up on using common libc functions - memcpy becomes CopyMemory/FastCopyMemory, strcpy, strlen, strcmp, _stricmp become their odd Win32 variants lstrcpy, lstrlen, lstrcmp, lstrcmpi, and such things as that. But I'll live, in exchange for speed. Most of the things that were changed anyway (like the string functions) are replaced almost entirely by OO constructs anyway (like std::string).

With that done and committed to CVS, I'm not sure where I go next. I think I'm going to try to get used to working with the VC6 profiler (I've used Intel VTune in the past, but my 30-day trial ran out and I don't have _THAT_ much money to blow on a GPL'ed software project). Perhaps some area in need of massive optimization will present itself. It's happened before--the first profile I ran on loadtime optimization showed 30% program time spent in the console character drawing function. *cough* *hack* *sputter*.

C. Pence, signing off.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!