• Register

Atmocity is a resource management and city building game allowing players to build sprawling cities that defy gravity.

Major inheritance restructuring, paint mode done and props!

Posted by on

Hello!

Block painting is now pretty much fully implemented and functional, so I'm moving on with prop placement. The idea with being able to add props is to make more custom looking cities and bring more life to them. To be able to do this I've had to make a pretty substantial rewrite of one of the core systems in the game - the inheritance tree for all the objects.

The reason I needed to restructure it, is that for each object, a lot of information is stored (to be able to save and load cities for example). Most of this data is useless when it comes to props, that only need a position and rotation saved. So I needed to add another level and separate out both painting and props that functionally are very different from all other objects that can be placed. This process, in turn, broke a lot of stuff all over the place and has required quite a lot of recoding and testing for some unexpected things (like how building option menus are constructed when loading a city).

The image below shows how the tree used to look and how it looks now (for those interested :))



With painting now more or less finished and functional, I've gotten quite far with prop placement and am currently working on some different placement modes, like free placement, placement along a finer grid, placement along an axis and a sort of scatter placement (for trees for example). Currently only the first two are finished, but I should hopefully get the other two fixed during the week. After that I need to make a bunch of adjustments to colliders to allow them to be placed closed to roads etc.

Below are some examples of what can be done with the tree props (of course, more types of props will be added).







The finer grid display is meant to help out when placing props, but just generally looks nicer too. :)

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: