• Register
Post news Report RSS Building mechanic replaced

A core mechanic of Software Inc. has been replaced due to popular demand. You can now make buildings free form.

Posted by on

After more than two months of developing, prototyping, integrating and debugging, the new building system is officially part of Software Inc.

Free form build mode

Free form building in action

Building rooms in Software Inc. used by confined to a 1x1 meter grid, and all rooms had to be rectangular. Instead, you now place walls individually to build rooms. The grid is still in, but mostly for your convenience, as you can now move, scale and rotate the grid.

Dynamic grid

You can use the dynamic grid to align furniture to angled walls

Walls used to be made up of 1 meter wide segments, which the game would merge into a room, and as such, all doors and windows were forced to fit into these 1 meter segments. In the new system, walls can have pretty much any length, so segments can be any width and be placed anywhere on the wall, which allowed me to add double doors. To really take advantage of this new system, I added a window you can drag along a wall to make it any width you want.

Dynamic size windows

Windows can have dynamic widths

Another benefit of the new system is the ease with which you can merge and split rooms. Splitting rooms was a hated mechanic in the old building system, but now you pretty much just draw a wall through a room and that’s it.

This is properly the fourth major feature I’ve added to the game, which wasn’t planned, but was requested by a lot of people and I suddenly had an idea of how to make. The traffic system is another one of those features. I’ll probably start dialling down on these large feature creeps and start actually finishing the game. I have a lot of important features I want to add, like multiple teams per work item, custom price for products, better and more market statistics, and improved heating/cooling mechanic.

Since this new feature took a lot of effort and time and is basically out of scope of the game, I’m increasing the final price of the game by 2 dollars, starting from when this building mechanic is officially released.

Process

How computational geometry work looks

Replacing a core system in any application is a big undertaking, so I split it up into steps. The first step was proving that the algorithms I had in my head actually work. So I made a small application to test it out and ended up filling out 20 pages of geometric scribbles.

Test application

Small application to test out the new system

I took a course in computational geometry as part of my BSc in computer science. I never finished the course, though. I managed to learn that when working with geometry, it’s a good idea to make sure everything is stored in the same order. The basic principle of the new build system is that all the corners of a room are saved in counter clockwise order, this enables me to make some assumptions when writing my algorithms, e.g. knowing which room is on which side of a wall.

After working out most kinks I made a prototype in Unity, to make sure my system works in 3D as well, or put another way: to see if I could figure out how to make it work in 3D. Oddly enough, the hardest part was making sure the black part between the walls behaves properly.
Finally, I had to integrate it into Software Inc. and make sure I hadn’t introduced a host of new bugs. Looking for bugs basically took 75% of the time, so many edge cases!

I hope you'll enjoy the new system. The old rectangle room tool is still available, in any case.

Post comment Comments
Vladiskov
Vladiskov - - 384 comments

now you can copy those google crazzynes!

Reply Good karma Bad karma+1 vote
hagamablabla
hagamablabla - - 240 comments

Is there some kind of snap to grid feature?

Reply Good karma Bad karma+1 vote
delarobe
delarobe - - 648 comments

it already snaps

Reply Good karma Bad karma+1 vote
MiniMe943
MiniMe943 - - 114 comments

About time! No, really, I was always wondering why you couldn't build individual rooms from the start. So glad to see this mechanic properly added. Keep up the good work.

Reply Good karma Bad karma+1 vote
AoiJack
AoiJack - - 23 comments

It's so nice when the devs listen to the comunity, Good Work!

Reply Good karma Bad karma+1 vote
Guest
Guest - - 687,512 comments

This comment is currently awaiting admin approval, join now to view.

Post a comment

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