19 September 2011

Weekly update on progress #5

Version 0.4 is here. Though we tried, the public test version needs two more days of work before releasing it.

More GUI
The first part of last week was spent on adding crafting orders window. I've tried to keep using UIToolkit for that but after spending 1.5 days just making one scrollable listbox, I've reverted to using Unity's native GUI system. In about 3 more hours, I finished doing from scratch all the crafting window's complex interface.
I really hope this is the last time I'm considering optimizing something before running into problems (choosing UIToolkit was because of alleged performance issues with Unity's GUI system). So, right now we use 2 GUI systems: one for main menu and on-screen HUD, and one for big and complex windows.
Small rant about using other people's code/frameworks: most of them lack a coherent design. While UIToolkit is very easy to use for simple HUD-type interfaces, the code shows that is has been written without a unified vision. For example: you can hide graphical elements but you can't hide text elements in the same way; you have .clear(), .destroy() and .removeElement(). Which one does what you want depends on the exact type of element. Also, you can use Z index to layer multiple elements on top of each other but nevertheless, the order in which you declare the elements in your code still is important (some time, at least).
Of course I could always refactor/change the code (it's public) but I'm focused on coding Roobuts first. And I'm grateful for all the people who decide to make their work public to help others, this is just venting a bit of frustration gathered in 1.5 lost days :).

Polish
Even if it is a bit early to be talking about real polish, we added lots of nice touches to most of the game's elements: solar power station tracking the sun and stopping during the night, GUI info for most bots operations so you can see exactly what each agent is doing, a new batch of sound effects and many bug fixes. We have added also some real crafting recipes which will make stuff needed for constructing walls. Polish is the reason we're delaying the public release for another day or two: we haven't had time to test the crafting cycle thoroughly and we're hard at work on this.

Engine improvements
We have implemented some internal improvements to the engine, mostly related to easing later debugging. Because in a Roobuts game session you might have dozens of bots and agents all doing their jobs, simply logging all possible messages gives way too much information to be easily trackable. On the other hand, all that information is very precious when trying to find exactly why a power bot decides he just doesn't want to recharge a specific agent anymore. So we've designed a selective multi-level logging system in which we can track only a specific game element if we want to.

This week's plan
After we finish the public version and release it, there is only one focus: implementing real enemies. We have chosen 3 types of enemy robots and we'll release screenshots and more information about them sometime during the week.

No comments:

Post a Comment