Saturday, June 28, 2008

Progress bar and preferences

This week, I added a progress bar which will show the status of connecting and downloading objects from the server.



Having a progress bar is crucial as users will not be expected to look at console output to determine what is going on. This was implemented by using Ogre's built-in progress bar and tweaking the code as well as colours to match with the current gui scheme. The progress bar shows up when connecting to a new game, and also when updating objects in-game. The background is blanked out to prevent sending orders during updates, however it looks very empty right now, so I'm thinking of putting up some of the thousand-parsec art as the loading screens.

One bad point about the client is that it runs slowly on systems without a 3d card, although I'm not decided on what minimum requirements I should be targeting. One suggestion made was to make the icon view (the map with abstract icons) dependent on frames per second, meaning that when the performance gets too low, the client should switch to icon view. I tried this out and it gave me some issues, specifically with how to switch the client back into 3d mode. Since switching to icon mode speeds up the rendering time, the client will keep switching back and forth between the two modes making the user feel nauseous. As a compromise, I made a preferences window for users to set the zoom level at which the client will switch to icon view. The window is summoned by clicking the "Config" button on the Login screen.


The thousand-parsec project has kindly provided us with some hosting space, so I will be putting up windows binaries in order to get some feedback. I have been messing around with tools like Inno Setup, but for now it is simply a self-extracting file.

My objective for the coming evaluation is to make the client as playable with the Reach for the Stars ruleset as I can, and at first I wanted to focus on the ship design component, until I learnt that RFTS does not require the user to create their own designs, which leaves MTSec as the sole ruleset with player-designable ships. I feel there is scope for adding some cool stuff here - ship design has always been a favourite of many 4x games.

Currently, I have the following issues to fix:
Select objects which are very close to each other - It is hard to click on objects, especially when they are clustered together, so clicking on a cluster of objects should bring up a menu to choose from.

No good way to indicate which planets are yours, the enemy's, or neutral - Perhaps have a coloured rectangle somewhere around it to serve as a flag.

Having a turn counter, to keep track of the current phase in rulesets like RFTS. Related features to this also include an End-of-Turn counter keeping track of the time before the turn updates.

I will be working on these issues tomorrow, as soon as I compile the latest version.

P.S. (ugly personal confession) - I guess I should have seen it coming, but this week saw a lot of distractions due to my powerful new system and it's ability to play the latest games, not to mention the Euro 08 tournament. Am I allowed to call playing Sins of a Solar Empire as doing research? Really sorry... I will make up for lost time next week somehow.

1 comment:

mithro said...

It would probably be a good idea to dynamically adjust that slider in the program.

Basically, you are setting the switch level using the FPS during non-icon mode only. Something like the following code might work,


if not iconmode:
...while fps > 100:
......do nothing
...
...switchlevel = zoom.get_level()