For this week of development I had a lot to implement to get to a point where I wasn’t just going to abandon the project. I expanded the AI of the employees (more on that later), I implemented stuff like hunger, energy and satisfaction. I also strayed from the blocky look by making the walls thin, which required making corner walls and dealing with all sorts of z-fighting issues, which eventually culminated in a convoluted algorithm that rebuilds all rooms on a floor when you change something, and merges all the walls, windows and doors in to one big mesh.
I also implemented meetings. I work as a student programmer and we have meetings once a week, and they’re always very interesting, I learn something new and I get motivated. I wanted to recreate that in Software Inc. by giving boosts for a team if they’re in a meeting, which requires a team leader setting them up, and tables and chairs to sit in.
It took me some time to decide how tables and chairs should be implemented. I ended up with a solution which determines which tables are touching and groups them together. Chairs can only be added to tables and will be added to the group the table belongs to and when a leader wants to use a table group, the room finds the largest available one. And finally I started modelling furniture, as seen below, I am NOT a 3D modeller.
I also felt like I had to implement the ability to choose working hours for each team individually so the game doesn’t get boring between 4 PM and 8 AM.