Disclaimer: Any previously released tycoon-related reviews or opinion pieces were written before I started working on the game, so there were no biases. Hence, there has not been much activity on this blog lately!

This slideshow requires JavaScript.

What’s My Job?

I’m a contract game-play programmer and designer on Sim Airport, working for LVGameDev. It is based in Las Vegas and ran by Arthur. The team is small but passionate and absolutely fantastic to work with. We live chat every weekday, discussing things I’ve broken (whoops) or new ideas to improve the game.

I still don’t know if LVGameDev stands for Love Games Development, or Las Vegas Games Development, but both names could work!

Fresh out of University with a degree in Computer Science with Games Development, I was ready to get into work. Shortly after, I had a bad interview for a software development job in my local city, where I outright failed the interview tests! Hurt from my 2-out-of-12 score in the interview test, I was lost. And there weren’t many other opportunities like it.

What I needed was a job in a small indie games studio, working on a tycoon genre game, coding in C#, where I could stay at home, there’d be no face to face interview, and I’d have creative input. And I got my dream job!

Month 1: The Tutorial

My first job was to design and implement the tutorial that was recently released!

Within 3 days of starting my new job, I was already beginning to program the tutorial. I had never used Unity before; I had barely looked at the massive existing code base; yet I needed to get my head together to create a user interface and start programming objectives. Genuinely exciting!

The Basics of Sim Airport Expanding The Airport Baggage Systems Fuel and PA Systems Scheduling Workers Food and Shopping

Note that the last two tutorials were added later as new features were added into the game.

The trickiest one to design was the baggage tutorial. It’s quite a complicated system in the game, as it requires a lot of specific pieces to be built and connected together. I felt this tutorial may have been a little too needy on specific actions being taken, but it was the only way to ensure that it would all work in the end.

The Job Early On

I work from home in the UK, and Arthur is based in Las Vegas. Due to the time zone difference, our meetings usually start in the evenings.

We actually found that this works well, particularly in the early days. I, being nervous and lost at first, probably would not have found my independence as quickly had I of been working at the same time as him. By being on my own most hours, I was forced to figure out problems on my own. It doesn’t help if I’m genuinely stuck and not able to progress, but 99% of the time it forced me to find ways to progress. But it had another advantage as well, which was knowing I had the rest of the day to solve problems before he would come online. This gave me the confidence to keep trying, even if it meant moving on and coming back to a problem.

There can be disadvantages too.

Essentially, due to the fact that the internet makes us always connected to the world, and so much of our career can depend on our internet presence (I was discovered and hired through this very blog), we can feel like we are always exposed and always in the need to work. In the old days you had general physical limitations to stop you working. Today? Your brain tells you there’s no excuse to ever stop working, ever! This is what leads to the feeling of never being away from work, especially when you work in your own bedroom like I do.

My advice to anyone working in this situation is to set yourself a schedule and don’t end up with Millennial Burnout. Once I made myself a work schedule and explained to Arthur about the need to have some flexibility in order to organise my own life, it felt like I had much more free-time and less stress again, despite the fact that I was doing the same (sometimes more) actual work hours. I also started logging how often I exercise and go out, though this is only temporary. I don’t want that to become an obsession in of itself, it was just useful at first to see whether I was doing enough to be healthy and then adjust from there.

I also have to keep reminding myself of the advantages of working from home for anyone who wants to try it: I can listen to my own music when I’m stressed, literally get up and go for a walk when something is broken and try again after, and the house canteen is pretty good too! Just don’t get lonely, it is the worst thing you can do to yourself. At first I didn’t used to go out much, so despite having literally my dream job, this did not hit me at first as I felt like I had no one to celebrate it with.

I guess the hardest truth about working from home is at least for me it was less effort to do work, but it was more effort to go out and live my life. Relaxing and socialising is where the effort needs to go, and is required so that you don’t feel like throwing away an amazing job because you forgot to leave your house for a few days in a row. All of this improved over time as I learned to balance my work and outside life.

Because of this I now enjoy the work hours much more, and I’m prepared to put the extra effort in without feeling extra stress and tiredness.

Months 2 & 3: Staff Scheduling

For month 2, with a lot of help, I began work on revamping the task allocation system and part of the core staff loops to allow for the new feature of scheduling. Staff can now arrive and leave based on set hours by the player, while allowing multiple staff to work at the same objects if needed. Staff would also be able to work at a scheduled object, while completing sub-tasks created by it.

This took about a month and a half, and there is still more work for us to do on it in the future!

During this time, an important part of this was redesigning the Staff Hub UI. The original one had you hiring staff and admin on one screen, and then managing them on another.

I felt that it was important for the player to know that admin staff are very different to regular staff. I really wanted to distinguish them from regular staff, as their options are quite different (and we’d be adding more unique admin jobs in the future!) and doing that with two separate tabs in the user interface seemed the best way to do it.

Basically, you can now mass hire and fire staff!

As you can see, hiring and managing has been merged together for the two types. While it is no longer possible to go through each of the employees in a list and click on them individually, we felt that with the new scheduler, this would not be necessary.

You can no longer click on staff in the game world to individually fire them, but, whenever you fire staff on the new screen it always gets rid of staff who are unscheduled or who have the lowest priority jobs first!

The new scheduler editor is where you can set the times that staff will run the objects, and also set multiple staff to work on the same objects to improve efficiency!

Month 4: Overhauling Kitchens and Cafes, and Adding Retail

Part of overhauling the tasks system, we realised (the day before our initial release date!) that I had completely broken kitchens and cafes with these changes. We had to remove the old staff type that worked there, and we felt that the old system of having service staff both cook and serve was too complicated to maintain for little game-play benefit.

I wasn’t specifically asked to do this, but I wanted to see objects like the kitchen sink actually get used. So, every object does get used and I created a handy overview screen to show the player what’s missing in the chain.

Sadly, Arthur and his family became very ill on the week of the deadline, on top of his wife’s recent pregnancy! With the release being delayed, I had spare time. In fact, I had ran out of work to do!

I was thinking back to when Arthur had once mentioned to me that he wanted to add retail to the game. I was browsing the assets folder, saw a whole load of store display assets, and began adding retail to the game. This included 18 display objects and a new Store zone type.

As I was building stores, I soon realised it was hard to distinguish them so I added the feature to rename Store and Cafe zones. It felt like I had my own game being able to change things freely! Though, of course, I made sure to fill Arthur in on all the changes after!

Month 5: Smoothing Things Out

The tutorial was much simpler than the last few features, so that release on Edge in month 1 went very smooth. However, all of the other features mentioned above were released at the same time in December! Because of this, there was three months worth of features that received a lot of feedback and bug reports from the community in one go.

Issues included scheduling and kitchen related performance issues; appliances breaking the game; chefs not always completing orders or getting stuck; food and store deliveries not always working; and more! It took a good month for us to catch up on these issues.

Month 6: Scheduling Performance and Scenario Editor!

This was mostly about making the scheduling code multi-threaded, so that it could run in the background while the game still runs. I also got rid of the old job-assignment algorithm, and made it so that each staff could query for jobs themselves (saving a lot of time).

I also created the new Scenario Editor! This is already out on the Edge branch!

This slideshow requires JavaScript.

It allows you to set the start cash amount, add objectives and rewards, set losing conditions (including a time limit) and even add punishments to losing conditions (such as fines)!

There’s also the ability to make certain objects and zones locked at the start. You can then have them unlock as part of objective rewards!

The last thing I did was design some of the Store Page graphics, which you can see in the slideshow at the top of this blog.