As an avid gamer and tech enthusiast, it's probably no surprise that I'd be interested in starting Game Development. I have a lot of respect for indie devs. They are able to work on passion projects that interest them, and share their vision for a game with the world without answering to a large publisher. Indie is where a lot of value and creativity is, and I have always been interested in jumping into the scene. In this post, I want to outline why I'm committing to becoming a game developer, and why it's extremely difficult for me to get started.
Game Development Is Intimidating
When it comes to development, I've been extremely intimidated at the idea of programming. It's something that I've had an unhealthy fear of. I see a vast sea of code, syntax, variables, strings, etc- So many questions start appearing in my head. How does it all work? Why is the code formatted in this way? How does one get started writing code? It's overwhelming.
While I am intimidated by the idea of learning to code, it is far from the only problem related to getting started in GameDev. When I approach a typical computer problem, it's often with a simple goal in mind. When I was young, my goals were often "how do I get better performance in this game?" or "how do I play Starcraft over LAN?" or maybe if we pick a more nuanced problem, "How do I build a website?". My progress learning about various things within the tech space has always been driven by these goals. It was easy for me to see the benefits of committing my time to accomplish them. Game Development is similar in this sense, but the goals are a little harder to set, and the payoff is harder to quantify.
Self-Discipline Is Hard
That's the main thing isn't it? GameDev isn't easy. It takes time and commitment. It takes discipline. It's far too easy to get caught up in distractions which will prevent me from accomplishing my goal of doing GameDev. First, I'm a big gamer myself. I love playing Star Citizen, Black Desert, Rimworld, Factorio, Starfield, etc... The list goes on forever. It's so easy for me to just fire up a game and burn hour and hours immersed within these digital worlds, that I find it hard to struggle with learning to code. Especially in the beginning, when you are constantly hitting roadblocks and climbing a steep learning curve. It's a discomfort which I could simply avoid by just sticking with playing games vs making them. Despite all this, I do feel like I should commit to GameDev.
Recently, I came to a realization. I'm so close to being a developer already. Over the past few years, I've been getting super into self-hosting services on my own servers. I've transitioned Fifthdread.com to completely self-hosted. I've setup over 80 Docker Containers, each running various services from web servers, to databases, to game servers. Setting up these containers came with various challenges which required in-depth knowledge and troubleshooting skills to setup. I've had to look at and write configuration files. I've had to build so much, and I learned something unexpected. It was fun. In fact, building all this was more rewarding than playing games. Problem solving is a lot of fun and is extremely gratifying once you figure things out. I have a feeling that GameDev will be very similar.
After going through so much to get these containers working, it was clear to me that the challenges I faced weren't easy. Not just for me, but in general. I have built two servers with a massive amount of capability and utility behind them, and I should be proud of it. It took a lot of time and effort to get to this point, and it was worth it. It's because of this that I feel like GameDev is within my grasp to achieve. If I can setup this crazy infrastructure at home, and build networks at work, why can't I do something like GameDev? It's clear to me that it's possible.
The biggest roadblock is going to be time management. I can't just suddenly commit hundreds of hours to GameDev without taking time away from something else. Looking at where my free time goes, I spend a lot of it playing Video Games. That needs to change if I'm going to dedicate myself to doing Game Development. Simply put, I need to stop playing so many games and start making them. It's a transition which will be difficult. Stopping old habits is hard, and forming new ones is also hard. But that's OK- I acknowledge this as my biggest hurdle. I need to allocate my time better, and I need to develop self-discipline. It's something that I've been trying to work on for years, and I've recently started making large strides into getting closer to the "ideal me". The me who can manage his time, accomplish his goals, be less forgetful, and frankly- the me who "has his shit together."
I've Done This Before
It's great to set these goals, but I've learned to be realistic. I've done this before. I've been ambitious with my goals to the point that they never get completed. It's something that is a struggle with someone like me, where motivation fades and bad habits creep in. I've committed to learning RPG Maker in the past, as I've wanted to make an RPG. I've tried doing 3D stuff in Blender, making music with Ableton, starting a photography and videography business. I tend to pick projects with too large a scope. It's something that I've learned I have a tenancy to do, and as a result, I want to approach Game Development through that lens. I want to be realistic with the goals I set, and try and set myself up for success regarding GameDev.
It's time to set goals, and build a plan. It'll be impossible to finish with GameDev without a well thought out roadmap. It's going to be essential for me to lay out a framework which I can use to move forward, or GameDev will fall to the wayside as many of my projects have in the past. Let's list out my goals.
Long Term Goals
- Build functional completed games
- Steam Deck / Console support
- Publish on Steam
- Publish on iOS / Android
- Publish on Web
- DevLog Videos on YouTube
- Start a Patreon / Kickstarter and go full-time dev lol
Short Term Goals
- Follow Godot Tutorials
- Make moving Player Character
- Make Inventory System
- Make Multiplayer work
- Make Mod Support via JSON saved data / JSON data loading
- Use GIT effectively
- Make Growing Crops
- Day / Night Cycle
- Make Pixel Art Lighting System (Normal Map Framework)
- Git gud at Pixel Art
This is the big one. I've set lots of great goals, but I need to make time to accomplish them. I've already started using a Calendar in my day-to-day life. Putting my tasks in the Calendar is helping me manage my time in ways I couldn't have imagined. It's truly helping me stay organized. I've had to use it to schedule when I can play Star Citizen with my Org, when I have time to play BG3 with my brother, and when I have various chores around the house like laundry or cleaning the house. For someone with ADHD, using a calendar and tasks list is essential for me.
Since it's going to take years before I can publish something truly special, I need to start small with small goals, and as good habits start forming, increase the scope and time allocated as necessary. It's a marathon, not a race. I figure if I can give 1-2 hours a day to GameDev, I can get the ball rolling. It's entirely possible to do it if I follow my guiding principle: Never EVER go against the calendar. If it says to do it, you do it. And if I put it on the calendar that I have 1-2 hours a night to give to GameDev, than that's what I'll do. I must commit that time, or I'll just end up wasting it. I'll probably throw working out and physical fitness in there as well, so I can develop both healthy habits simultaneously.
Wish Me Luck! It'll be a long journey, but expect me to publish stuff in the future as I do cool things related to development.