Jan Zeleny's Development blog

APR
13
2012

Upgrade system & Assets

I almost finished upgrade system for buildings and technologies. I also balance rules for first epocha. This will provide posibility to review the game from horizontal slice and one of many conditions to achieve alpha state. I've also added posibility to have one vagon or locomotive from more parts (tenders, articulated locomotives etc). As time progressed, I made more assets. Last of them is here (Mallard).
- The whole locomotive is white, because of new feature able to colorize trains and buildings by player color.


FEB
27
2012

Making of assets

I have recently discovered, that this game needs quite a huge pile of game assets (models, textures, sounds, etc etc). It is not easy to create them or gather them by another way so first I decided to learn how to use 3D modeling softwares and how to create and texturize my models. I am still looking for some outsorced assets.
I also hired my girlfriend, which is quite talented graphic artist:)
By design, I will need around 150 individual models from 7 different eras. First model created from scratch was one old farm house inspired by "Dlaškův statek" (real historical building here in my country). You can see result here:


OCT
27
2011

Changing seasons and optimization

To improve the impression of playing the same map for a long time, I implemented the runtime changing seasons technique. Now there can be different light, fog and vegetation color for every year season, leaves fall off in autumn, snow descends into the lowlands in the winter, grass grow in spring etc.
I also did a lot of optimizations for vegetation, reflections in the water, and many others so the framerate is almost doubled. Therefore I also enlarged map to have 512*512 tiles.

AUG
19
2011

Far ambient

I got rid of impostoring optimization and instead of it, I made a new optimization for drawing objects in a distance. I call it "far ambient" and the principle is quite simple: Every object has its own low-poly approximation and when some chunk of a map has been changed, the engine bakes all geometry and textures used in current map chunk to one huge mesh. This takes some time (~0.1s) but It needs to be done only when some object has been added or deleted (when constructing, or using dynamite). In ordinary frame, all far ambient objects from map chunk can be drawn by one render call! It saves the video memory used for impostors and the most important thing: It saves the render time. When the camera goes near the object, it is smoothly transformed to high-poly model by screen space noise thresholds.
You can see result here:



JUL
16
2011

Few updates

In last two months I did only few changes to engine and I've been working on gui migration to new API, cleaning of code, fixing some bugs. Now the development should go better with all of these changes. You can see list with some of them here:


MAY
2
2011

Development news

The development of multiplayer is not going very well, because of huge data that needs to be transported when player logs in (whole map with all trains, buildings statuses etc.) One of possible solutions is to disallow player to connect when game already started, but this is not what I want. I'd like to create server and let players connect run time.

I am also working on new gui system (not gui graphics yet). It should be more flexible and better designed for future updates. This task is almost done, now I am rewriting old functionality into this gui system.

APR
1
2011

Game rules improvement and plan for next week

I finally wrote some design document for this game and it forced me to make some decisions. One of them was industry system and benefits from satisfying some of market demands. I will not reveal what kinds of industry will be in Mashinky, but player will get different benefits from different production buildings and there will be around 20 different buildings/industries in 7 eras. I have already implemented all of these buildings and polishing rules (there are only placeholder models for all of these buildings, so I'd rather not take any screen-shots from this version :-) ).

Now I am trying to implement multiplayer via TCP/IP, so it will be possible to play via LAN or internet. Players should have choice to cooperate or compete with each other.

MAR
13
2011

Track smoothing and First train station visualization

I would like to create game that will not only be strategy, but it should also be a very simple simulator where the player will be able to drive his train. This point of view changes the desired qualities of close look on building, trains and track where everything has to be more detailed.

The major problem for doing this was the shape of tracks. It was not smoothed in heights, so when the train changed slope, it was like a train accident. Now the tracks are finally smoothed and it is less annoying.

I am also thinking about train stations layout, because tracks are (due to tiles size) quite far from each other. Probably there will be covered platforms and player will be able to build non-track tiles connected to the station like station building, warehouse etc. I will have to solve if the first train set will be American or European.



MAR
13
2011

Sea shader

It is more complicated to create a water surface in engine for Mashinky than in Transport tycoon. First implementation was back in university, where I had sophisticated drainage system capable of creating rivers, lakes etc.
This system was great, but it had few disadvantages: It took almost 1 second to rebuild drainage system after every change of map and It also couldn't reflect surrounding world due to many different lake heights. I had to abandon this way and try to do it better designed for today's hardware.

Second try to implement sea surface was much better, because the game has only one level of water and it doesn't need to care while changing the terrain. The system for new water is only one huge quad across the whole map with following properties:

You can see some screen shots here:



MAR
3
2011

New trees

I've decided to switch from generated trees to pre-modeled versions. Now the game engine uses 3 new trees (acacia tortilis, acer platanoides and fagus grandiflora) from very talented graphic artist Jan Marvanek.

Also the grass has been changed and all vegetation in game engine is now slightly animated in breeze. You can see new HD screen-shots below:



JAN
25
2011

Winter trees

All trees in this engine have now two versions: summer and winter. I don't have seasons in my engine yet, but there is a snow fields, when you travel high in mountain. It is much more realistic when these snow areas are covered by winter-looking trees, so when tree should grow high enough, engine will use winter texture.



DEC
28
2010

Speedup + Highlighting

In last few days I've tried to speedup starting of the game. This is improvement especially for this state of development (I need to run the game for few times per minute, so every second counts).

Track lay highlighting is new feature that helps you to see what you are building and if it is possible. Here you can see one screen-shot from construction mode:



DEC
22
2010

Save/Load/New game

Save and load of whole map with trees, trains, stops, buildings status, etc. has been completed. It has advantage for development, because now I can create many different maps for testing different situations and load which one do I want.

I've added "New game" option so I don't need to restart application to create new map.

There is also new camera for construction mode. Now it is simpler to lay track or manage terrain.

NOV
22
2010

Development progress

The development of this game is quite slow at this time. I have full-time job in another game development and I can not spend a lot of time on my own project, but I've developed few things recently and here is the list of main improvements: