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.
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
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
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
Hello World!
Welcome!
Welcome to the Devlog of Code Bread Games! This is a way to document the progress of the projects here at CBG. From the creative process, to the technical design, and even some lessons to be learned, all of this will be captured here. Even though the devlogs that I have researched before starting this usually start when there is more content to the game, I wanted to document the full journey from as early on as possible.
What is Code Bread Games?
CBG is a small indie game studio (population 1 so far) focusing on making interesting and engaging content. That content comes in the form of video games. There are so many creative aspects to creating an interactive experience like a video game. The music, graphics, design, they all come together to create a piece of art that can transcend the screen it lives on. With a background in both coding and music, the projects for CBG allow me to blend my passions together.
What are you working on?
As I write this the first project for CBG is underway. Right now I am working on a transportation simulator game (nicknamed project Atlanta - pending an actual title) built in Unity. I have worked on small prototypes in the past in Unity but those projects don’t come close to matching the scale and ambition of Atlanta.
The challenges started from day one. One of the biggest hurdles I have had to contend with is getting all of the ideas for this project into a format that I can reference and update. I am using a software called Notion as a workspace to keep track of notes and tasks. So far, so good.
Another question to answer is where to begin? I have run some quick and sloppy prototype games before but I really wanted to start this project with longevity in mind. As I complete out the first build of the game, here is what I decided would lay a good foundation for the project going forward:
Setting up a Unity project with all of the folders I can think of set up.
Setting up a basic play space with rudimentary camera movement controls. This is a top down game so it was fairly easy to do this independent of creating player characters.
Embedding an image capture system so that at any point during play, a .gif file can be created and exported. I had wanted to do a screenshot and animated gif capture right away to make my life a lot easier in the long run but the animated gif utility proved to much to wrestle right now so I settled for a simple screenshot process.
Enabling a system for UI text based on an external file. This makes localization so much easier as all I have to do is make a new text file (JSON formatted) with the translation and point to it in the game settings and my game is now in a new language!
That about wraps up where we’re at. I hope to have updates out as I finish each group of features. Thanks for reading along!
-CB