Tuesday, July 14, 2015

Current Development and new Features

The refactoring of the communication messages is now completed. The reminder button at the top about unread messages will not appear anew after reading messages (and logging off and on).

One major feature is now available:
The "communication center" can be built on a colony. This building provides a communication node and works as a trade hub.
A feature soon to be implemented will be that the owner of such a building can set who is allowed to read/write to the communication node, and who may trade at the hub.

Regarding research and module statistics:
Cargo space of modules adapted
Research "Superconductor II" does now provide +15% energy output

Tables in various panels now remember the sorting order applied by the player. That may come in handy when sorting the colonies by available assembly points. The Ships panel will soon get a column dedicated to the interstellar movement points, so that ships may be sorted by remaining movement points. The sorting order is saved in a browser storage: if a player logs out and logs in, the last sorting order will still be applied.

And finally, the Contacts-panel now does show population victory points and research victory points of all known users. There seems to be a bug regarding the research points, which will be removed soon. At the moment, there are two other values which are internally used to compute the overall ranking: ship victory points and goods victory points. Both will be removed, and instead a new value "ascendance victory points" will be added. These are gained by helping building an ascendance construct. When the game is finished, only the ascendance victory points of the construct that was finished do count - all other players loose their progress.

The background story for this:
As the ascendance construct was finished, a galaxy wide ascension was triggered, and all sentient species left the physical realm. Their influence in the dimension they are now existing in is determined by their numbers (population), their knowledge (research) and their contribution to the ascendance construct.

Technically, an overwhelming successful player should be able to have the highest score, even if he did not contribute to the ascension construct.
I will try to balance this out, and will publish the formula in this blog...

Monday, July 6, 2015

Current Development

The alliance bug was finally found and removed. It was a side effect of the last big refactoring of the code, which started about 9 months ago and is still ongoing.
The trade screen got a small overhaul: labels, graphics and design all got tweaked a bit.

The following is just some technical stuff for the interested ones:

I am using unit tests, and have enhanced the framework in the last few days. The framework now uses actual game data that is user independent (base data): researches, goods, star-systems and so on. The game server uses interfaces to exchange data with a backup system, or exchange data with clients.

Now I can for example test the method that is used when a user joins a game: user placement in a star-system, placement of the first colony-ship and all the rest that does happen is now easily reproduced, without the need to mock each element of the base data that is needed.

The unit test framework now uses the sql connector to read the base data of the game, and changes back to a dummy data-connector during testing, so that nothing is written to the database. Works like a charm.

Now the communication network is on the focus. In the game, that will only be seen by the fact that the bug with the "there are unread messages in the comunication networks"-Buttons will be removed.
Work in this area will be useful when doing the next overhaul of the "direct message"-system. And soon, the colony building "communication center" will create a player controlled communication network, and work as a trade station.
Both did work before starting the refactoring ( this was implemented in sql stored procedures) and have to be reprogrammed to be executed by game server procedures.