It’s been a while…

Welcome back to you and me! It has been a while since I last posted any progress on the projects I have been working on. To be honest the progress has not been as consistent as I would have liked it to be. So many things have been happening in the world it’s sometimes hard to keep that consistency going. Hopefully this marks the start back at it!

Getting Organized

Last post I mentioned that I was using Notion as a project tracking system. This has been working well but the complexity of the software leads me to spend much more time planning on how to plan than actually doing. That said, I wouldn’t trade Notion for another software (such as Trello) because the complexity allows for a much greater flexibility that I want for tracking this information.

I’ve adopted a style of task tracking that a few other developers I follow use. Using Notion’s board view, you can organize task pages in categories such as type or status. I’ve found this to be very helpful. When deciding on what to work on next.

Tasks organized by status in Notion.

Tasks organized by status in Notion.

The New Prototype

While organizing the tasks and data for my project tracking system took a bit of time (too much!), I did make significant progress on the prototype for the game. I used a 2D simple prototype as a model and mocked up a larger 3D version. This added in a bunch of features around the map and the main mechanics of creating routes and building ships to fly those routes.

Old School Prototype

Old School Prototype

I found ship movement to be the most difficult to figure out. It wasn’t technically difficult to move a game object from one point to another but the architecture of the system more complex than I had expected it to be. At the current moment, the ships are controlled by one script that has a state machine that dictates what type of action the ship should take (Construction, Orbit Planet, Finish Orbit and Get Route, Run Route). These states are represented in the script as enums. That solution is prone to issues because if a new state needs to be added the switch statement also needs to be updated. I’m researching making the states independent classes/scripts to make that a more robust system. All in all, there are going to be a few refactors of these systems in the near future.

I also started breaking out my game functions into components that are agnostic to the object they are attached to. These components are things like a rotation script that rotates the game object it is attached to by values set in the unity inspector. This used to be part of the single script attached to the planet objects, however, if I needed to rotate anything else in the future, I would have to re-write the function. With the rotator being a component I can just attach it to the game object, set the values and rotate away!

Updated with new systems and models

Updated with new systems and models

Coming Up Next

After a long while of working on this project, I am going to be taking a short break. During that break I’ll be working on a quick week long challenge that I’ll post about here and on Twitter and Instagram. That’s starting up tomorrow so stay tuned!

Stay safe, stay healthy!

-CB

Next
Next

Hello World!