The most commonly asked question about PA4 was "when can I play it?" I want to get more players into the game soon so I did some work this week to get the game ready for them: I disabled a few UI elements for features that aren't finished, and fixed a couple of bugs in the installer. I've also been working on automation so that I can push new builds to the test server with a single command which will be a huge timesaver for me, and get updated builds to players more quickly. To the question at hand though, above all, I want the game to make a good first impression so I'm trying to get the big bugs we've found in PA4 fixed before I invite more people to spend their time on it. I haven't decided exactly when yet, but I have decided that I'll be giving out pairs of Secret Lair Codes so that anyone who gets one can invite a friend to play with.
It only took a few minutes to find the first major bug in Pre-Alpha 4. Long-distance pathfinding wasn't working -- well it did work, but only for the first 50ms or so, just long enough to hide the problem for a few days. Turns out I broke it fixing another bug last week. While I was trying to figure out that bug, I noticed that sometimes one unit in the formation was arriving out of position, so I fixed that as well. But the major work this week was on collisions.
It's funny how when all the debugging graphics are turned on for the unit movement system so that you can see all the things affecting the units' path, that everything looks perfect, but as soon as you turn that off you start to notice annoying little defects. One big problem Miranda's units had while driving is that they would rear-end another unit then stop until they were far enough apart before starting up again. When a lot of units went through a narrow passage what would happen is that all the units would pile up at the entrance, then proceed through the gap more or less single file. Giving the unit AI a new behaviour so that if a unit is coming up behind another unit it matches its speed, and if it gets too close, it slows down to increase the separation, works like a charm. Large groups of units now move through gaps much more fluidly. Weirdly enough, on the day I was working on that, pathfinding guru Amit Patel pointed out an article on this problem and its solutions in the real world.
My next discovery was that my flowers weren't rendering anymore. People who see the game for the first time usually ask why there are flowers. If you look at the oldest screenshots from a distance, they look like grey rectangles. Flowers give the screenshots pops of color and make them more appealing - so flowers need to work. Flowers are a particle effect and it turns out I put a minus where there should have been a plus when I fixed all the other particle effects. Computers are super-fussy.
Next I discovered that the game wasn't able to retrieve map data from the server. So many bugs! With a little investigation I discovered that when I updated the server software I had forgotten to restart the web server that distributes the map data. To make sure I'd notice that sooner rather than later in the future, I modified the map to display the same big warning icon that appears when the game has trouble retrieving terrain data from the server.
I mentioned previously that the new unit models were not optimized and were causing some performance problems. I started digging into that by turning on the in-game profiler to find out exactly what was slowing things down. As always, it wasn't what I thought - never fix performance issues without profiling first! The profiler narrowed it to a big increase in the number of calls to a single function. There were no obvious performance gains to be made in that function, but if you're trying to figure out what's going wrong with a computer program, there is really no substitute for stepping through it line by line. That was how I discovered a memory allocation (a notorious performance killer) at the deepest depths of the renderer. For a temporary. One that didn't even need to be there. I moved the temporary to the stack and I got a 10% performance boost right there.
I'm working on one more optimization for rendering then I'll be putting up the new build before I start on harvesting, the final of the three pillars of Miranda's RTS design.
We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.
You will not be able to post until you resolve this problem.