Cities visual refresh, tile resources

Posted by Oleksandr on September 17, 2017

September 2017 development update (v2) brings new and improved gameplay features, visual updates, AI enhancements, further backend and website work and other changes. New functionality is available in newly created game sessions and in the demo.

City visuals have been refreshed. There are now two kind of houses used: short and tall, where tall houses are used in the center of large cities. House textures have been reworked to be more detailed, and now there are windows on the sides of a house. Windows are lit even in dark areas, thanks to a shader trick, where bright yellow pixels in the house texture are interpreted as emissive, and generate additional light.

Cities now appear more lively, and look much better from the side. On that note, another new feature is automatic adjustment of camera elevation angle when you zoom in with a mouse wheel (or trackpad), which will make it easier to get a different visual perspective on your empire. Also you can control camera rotation with Alt+[arrow keys], and use Alt+0 shortcut to reset it.

Possible future work on city appearance might include different styles for different cultures and for different technological levels. City walls will need to be visualized somehow too.

Terrain tiles can now contain special resources that provide extra yields. Currently there are:

Right now resources only provide additional yields, but in future releases there will be more interaction with the gameplay (strategic and luxury resources, etc). City screen UI now provides a better presentation of large yields, by grouping resource icons into one large icon with a number.

Base terrain tile yields have been tweaked: grasslands and plains now require a road to generate trade, but on the other hand water tiles generate 2 trade instead of 1. New configuration should encourage tile improvements early on, and favors coastal placement of cities. Speaking of that, one of the high priority development targets is to implement water units. Also rivers and lakes are planned soon.

AI has learned how to build all kinds of available useful buildings, based on the calculated benefit to the city. It is now required to build an Aqueduct to grow a city past the size of 6, and a Hospital after the size of 12. City buildings system right now is very rudimentary and will need a lot of work. Some fresh game design ideas are planned there (and especially regarding wonders).

Browser technology required for the game (shared memory for Web workers) is finally enabled by default in Firefox (version 55 and up) and Chrome (version 60 and up), which means Statebuilder now works out of the box without needing any experimental options. Support for other browsers (including mobile) is expected to come later.

Complex performance-sensitive applications such as games can now be delivered to the end user in the most friction-free way possible. Just click the link and start playing - the future is here!

WebAssembly will be adopted as soon as thread support is implemented. Currently the game is compiled to asm.js-style JavaScript, which does not provide optimal runtime performance and load times yet. WebAssembly is expected to improve the situation further.

All important changes since v1 release (June 2017)

Full tech tree, roads and railroads, siege units

Posted by Oleksandr on June 24, 2017

June 2017 development update (v1) brings new gameplay features and changes. These features are available in newly created game sessions and in the demo.

Technology tree has been expanded, and now covers all eras from ancient times to modernity. New technologies provide access to new units and buildings. For now, only ground units are available, and most of the buildings are stubs (do nothing). That will be expanded upon in later releases. Currently useful buildings are: Granary (saves food), City Walls (improves defense), and those related to science (Library, University, Research Lab) and production (Factory, Manufacturing Plant).

Some of the units added in this release (Catapult, Cannon, Artillery) make use of a new siege mechanic. Siege units do a lot of damage, but have to spend one turn preparing before attacking. These units are fragile and can be easily destroyed, so make sure to guard them. AI is not yet smart enough to utilize them effectively, that will have to be improved later. Fortified units and ready-for-attack siege units use distinct icon shapes for visual clarity.

Workers can now construct roads and railroads (when Railroad tech is available). Roads make unit movement 2x faster relative to their normal speed. Railroad on player-controlled tiles allows any unit to move 8 tiles per turn, regardless of original speed of the unit. On non-player-controlled tiles railroads behave like regular roads. Road increases tile's trade yield by 1 unit. Railroad increases all yields by 1/3 of a current yield (rounded down), so a tile producing 3 food will produce 4 with a railroad, but a tile producing only 2 food will not be affected. Improvements on tiles that are not worked by a city now decay over time, and have to be redone if needed.

The game still requires experimental JavaScript option (SharedArrayBuffer) to be manually enabled in the browser. This feature is expected to be enabled by default in Firefox 55 and Chrome 60 (both scheduled for August 2017). Afterwards, Statebuilder will work out of the box on these browsers.

All important changes since v0 release (April 2017)

Statebuilder is now playable

Posted by Oleksandr on April 14, 2017

Since the initial announcement in October 2016, I've been working on the user-playable version of Statebuilder, and developing all of the required backend features for that (user accounts, database storage, etc). Now it is finally ready, and I'm calling for early adopters to try the gameplay.

Most of the infrastructure heavy-lifting should be complete by now, and work on gameplay features will resume shortly.

The game still requires experimental JavaScript option (SharedArrayBuffer) to be manually enabled in the browser. The good news is that the feature has recently completed the standardization process, and is included in the next JavaScript standard (ES2018), so we can expect it to be available out of the box in the browsers soon. Currently, only Firefox and Chrome on desktop are supported, but eventually I expect to support all major browsers (Safari and Edge included), even on mobile.

A payment system has been set up for premium subscribers. At this point it should be considered a crowd-funding setup for early enthusiasts, as the game is not feature complete yet (obviously), and it will probably take years to reach that point. Consider supporting development financially if you like what you're seeing so far, and want to get more features sooner rather than later.

From now on, development updates will be posted more regularly, now that I have a blog set up.

Major items developed since October 2016