[2003-11-21] Ah-ha! After weeks of no code but filthy Tuesday Fortran 90, I fix the fabled excido bug. It was a subtle combination of many different areas of code. What really got me about it was that the key mistake was in the Ufo class - when sniffing around for stack corruption I gravitate to things like the graphics and the sound subsystems, which have great big resources to manage, not pissy little unintelligent enemy classes. So here's what was going on: 1)Game ends, Ufo linked list destroyed 2)Each Ufo's destructor gets called, sees that Ufo.alive is true, calls Ufo::Die 3)Ufo:Die calls Game:IncScore to reward the player for the apparent Ufo-massacre that just occured 4)IncScore notices that the score is past the powerup threshold, and tries to create a nice new PowerUp in poweruplist, which doesn't exist any more, due to the order in which things get wiped in Game::Happen 5)Memory is no longer containing what everything expects it to contain-> Something segfaults soon after. By pure coincidence, usually the physfs calls for writing out the scoreboard and configuration Righteously difficult to reproduce, one way and another. The actual offending lines were written ages before the bug showed up, and functionally not directly linked to the new code that 'created' the bug. Truly a proper bug, if not all that incredibly complicated in the final analysis. Of course, as always it was my own stupid fault for writing such silly code to begin with. Calling Die on destruction must have been either very early in the morning or late at night. [2003-09-17] Hiking to campus in order to access tEh intarweb. How tiresome. ADSL soon. Valgrind is pretty cool. British Telecom are /not/ pretty cool. [2003-09-06] Today's reason to be cheerful - I can ctrl-z warcraft 3 and do something else with it in the background not touching the CPU. Very handy. [2003-09-04] I continue to frustrate myself. free() fails, malloc() fails, but when I run with electric fence it all works fine. I hate. [2003-09-02] Complements to Game for having sane staff with the freedom to perform reasonable customer service. On the other hand, if they had confiscated my copy of Frozen Throne and just made me sit on the floor and code some cool fortran->C interface framework then I would be far better off. I'm tempted to blame the nature of the season for my total lack of productivity. [2003-09-01] I return, lazily. [2003-08-28] For the benefit of anyone who comes here wondering why I'm so quiet, I'm out of town for a few days. Bye. Also, I've found a new sense of okayness about the current rash of excido problems. I've tested the 0.1.3 release and found it to be stable, which means that I'm now poring over a diff of 0.1.3 and current. I will find this little bastard. Also, check out stroids3d: http://www.upl.cs.wisc.edu/~anthony/index.php?page=stroids. I haven't tried building it yet, but it looks pretty pretty. [2003-08-27] Bah. Continuing with the annoying segfaults. Physfs, SDL and SDL_ttf are all segfaulting on exit...SOMETIMES! Very, very annoying. I have to sit there and play for quite a while to actually get the bugs to show themselves. In other news, Frozen Throne. See you in a week! Actually, I'm not completely happy about it - the cd I was sold in Game was obviously pre-owned. Stupid me for not checking it as I walked out of the store. It's fine, apart from the fact that the whole reason I bought it was for my nice legit battle.net ID, which I'm now quite suspicious might be someone elses illegit key too :-( Going to be quite funny taking it back to the store: me taking it back could be the exact same thing that I'm worrying about - people harvesting keys. The reason I'm pretty convinced that someone would have nabbed the key is that it couldn't possibly be a legitimate return - anyone who can run War3 can run frozen throne, and no-one without war3 would have bought frozen throne. Unfortunately my schedule is a little messed up at the moment. I must make certain to get back to a Game within 10 days, I think it is. [2003-08-26] Euch. Mysterious segfaults galore. Physfs is sometimes segfaulting when trying to open a file for writing. Seems to depend on how long the game's been running, bizarrely. There is a FIXME in the physfs function that execution is in at time of segfault! On the positive side, excido now has powerups, which pop up at random locations when you pass certain score thresholds. That's groovy, but I will fix0r these segfaults! [2003-08-25] Lots more jolly excido high jinks today. There was a bug that prevented compilation with current GCC, now fixed. Another bug has come to my attention which I'm dealing with at present. More obscure, this one. OpenGL runtime problem in the menu system. Possibly related to a problem in G400 drivers. [2003-08-24] Yay for this morning! Got lots of positive excido feedback. Now I will have to work more on it. [...later..] Right, packaged up 0.1.3 tarball and updated web site appropriately. Also submitted update to happypenguin.org. Feel a bit unsure about that, since I'm doing such incremental releases so often. However, I have no other way to update the info about excido in their database, so I guess if it keeps excido popping up to the top of the news frontpage, then that's not my fault. Still, I hear echoing freshmeat jokes every time I do it. Ghandi followed by A Bridge too Far on the beeb. They sooo wouldn't have been allowed to screen that combo when we were about to coloni...liberate iraq. The first film psyches you up to the wonders of pacifism, and the second reminds you that war is hell. [2003-08-22] Why is it so difficult to convince people that computers are not analogous to washing machines, cars or television? I suspect it's because they've come to view all electronic goods as consumerist phenomenon. That and raw fear. [2003-08-21] Okay, I am now even less happy with these people. They called me up to ask me to do some work on short notice (like 1 HOUR'S notice), and I said I'd do it. Then, they call me back 10 minutes later, when I'm in the fscking shower to cancel. Apparently they kept on calling people, and found someone who could make it there sooner than I could. Charming. Travail, the employment agency, are to be avoided. The other agency I've used are not all that nice, and they're not strictly honest, but they don't screw you over this blatantly. On the now abandoned Tampa facial recognition camera scheme: "Police are at a loss to explain why the software wasn't effective, since it seemed to work fine in controlled testing." - Atlanta Journal-Constitution On his ditching of microsoft in favour of free software, Ernie Ball said: "I'm not in this just to get free software. No. 1, I don't think there's any such thing as free software. I think there's a cost in implementing all of it." The interview ended at that point, as RMS entered and wouldn't stop screaming until they promised to replace OpenOffce with emacs... [2003-08-20] /Other/ temping agency called me up, then called up 18 hours later to cancel. I am not happy with these people. However, I _am_ happy with progress on excido. I've 'let there be light' over the whole arena, which I hope creates the effect of an eerie glow from the nebula in the sky. I still don't know exactly what I'm doing with this lighting lark, but I'm managing. Done other random bits of eye candy too, like shadows on the menus. Fixed a couple of insignificant bugs in the menu system. Have one known serious bug, where the screen goes bright pink and nothing works properly. Work on that today. ...much later... Today has been a day of fixing niggling bugs, and getting to know my code better by making new bugs and fixing those too. In the name of feature- expansion, I added a nice green fps meter. Doing this reminded me of the horrific granularity of SDL_GetTicks() as a way of knowing simulation time- step size. Must investigate alternatives. Also, tried out Slickworm . Damn impressive stuff. Intend to poke around in the source to learn and possibly contribute. Planning to redo my audio class with an OpenAL backend at some point - current sound implementation in slickworm appears relatively crude (also OpenAL based), so may see if developer wants my sound code if I come up with anything remotely elegant. Slickworm has lovely, lovely terrain rendering, and uses ODE (which I keep meaning to learn), so the physics is fun too. It has deformable terrain, however you're deforming a heightmap (imagine what happens if you shoot a hole in the side of a mountain). I think that if I were writing something like that, I would make it so that impacts to surfaces beyond a certain level of steepness just charred, rather than cratering. The vertical extrusion of the crater when on a mountainside really kills the otherwise slick illusion. Graphics are nice beyond the terrain, too. Ubiquitous stencil shadows give a strong feeling of sunlight. Comedy development release quirk - there's a weapon model (first person view) but no character model. Therefore, when one looks at the ground, one sees the shadow of a shotgun floating in mid-air. I have a feeling that slickworm is a sufficiently cool project that it's worth paying attention just so that one can casually say "Oh, yes, I remember 0.2, the handling was SO much better back then" in years to come :-)  - slickworm.sourceforge.net [2003-08-19] Temping agency called me up. Asked me if I would like to do the shitty job that I did for a week previously and then gave up, and then told them I didn't want to do it again a few days after that. When will they learn? I guess they were hoping that I'd developered a crack habit and had grown desperate. Yesterday, I accidentally made a flocking algorithm. I say accidentally because I didn't know what I was doing, so it couldn't possibly have been on purpose. Anyway, today I'm going to add nodes in the scenery that the AI tries to avoid, to get away from the situation where they're almost always sliding along the edges of the buildings to get to me. [2003-08-17] Thought of clever way to deal with bug whereby player can escape the arena through the edges. Then I tried it, found that it didn't work too well, and fixed it using a one-line solution that I thought of while on the toilet. Played with having the player modeled as a particle on a spring rather than having 'fake' bounce in the hover, realised that it wasn't necessary yet and would involve revamping certain things more than I felt like. Played with a 'flamethrower' effect yesterday. Seems quite doable, although would require me to have implemented animated textures to work well. Curse gray matter for raising the bar so much on that one :-) [2003-08-16] Collision detection is relatively functional at present. It's still only ray poly detection. Sphere-poly today. Then that will be done for the moment and I will have to find something more worthy to work on. I've had it highlighted to me how inadequate Config::Load is, so will probably rewrite that today. I intend to use Standard C++ Library strings, which is going to be a first for me. [2003-08-15] That was scary. I thought it was thursday. Anyhoo, today I will try and make collision detection work somewhere near properly, paving the way for funky scenery. You never know, someday in the future we may even get gameplay :-) In other news, my sister is stuck in Toronto (where the power is out). [2003-08-14] Greetings. I arrive on icculus.org, with my fledgling project Excido. icculus.org/excido. What's currently available shows gameplay in a wide-open arena. What I'm working on at this time is buildings - suitably cuboidal ones.