Imagine that you are a video game developer and your making your first game. Things are going pretty well for you. It’s been 6 months since you started and you haven’t run into any project-ruining bugs. The musician that you hired is producing great tracks and everything looks like it’s coming together. You create one feature and it goes reasonably well, so you create another, and another, and another.
With the foundational game play implemented, you start tackling more advanced stuff like AI and procedural levels, things that you originally never thought thought you would put in your game. You spend 2 weeks working on A* pathfinding. Your game doesn’t require pathfinding, but the thrill of learning new things is pushing you forward. Amazed at what you have accomplished, you research other unnecessary things that you could put in the game, each requiring days of coding. Weeks pass.
You learn that a friend of yours would like to see the game. You get excited. You think to yourself, “I’ve done so many cool things the last few week that he will be so impressed with my awesome game!” You hand him a controller and launch the game. Initial impressions are good, although the player movement is a little bit awkward and the menu is a bit clunky. He comes across a bug in the menu that prevents him from continuing. “That’s just a bug”, you say to him, “I will fix that later.” Once you get him through the menu and walking around the map, it takes about 1 minute before he manages to clip through a wall. “That’s just a bug”, you say to him, “I will fix that later.” Another minute later the debug window starts spitting out a bunch of errors. Once the puzzled look on your face has overstayed it’s welcome, you declare, “I think that when you die after you place an item on the ground, the item no longer has an origin object, the script crashes and the rigidbody shuts off. In fact, that is likely what caused the wall clip earlier.” At this point, a thought starts to creep into your head. You want to show him your pathfinding, but you can’t, because it’s not in the game. You also want to show him procedural level generation, but you can’t because it’s not in the game. In fact none of what you worked on for the last 2 weeks was very important. The next day you decide to start fixing all those bugs that you should have fixed weeks ago.
I wonder who that story was about. This week I learned the importance of focus. Since my job and my hobbies overlap significantly, it is very easy for a work session to turn into a well-disguised play-time. Pathfinding IS super cool. However, my game is a multiplayer game. AI isn’t even necessary for it to be a success. I suppose I was just getting a head start on my next game. I do that a lot. I need to start prioritizing, which will likely require me to do things that I don’t love. I’m planning on posting my progress here every couple weeks. I will talk about the new features I created and why I think they are important. I will discuss design decisions and maybe even show off things that I am working on.