Choosing a Path

Choosing a Path
Strangely enough my brain is always filled with the background noise of self doubt. Am I working on the right thing? Am I spending my finite time on this earth in the best way I can? Am I enjoying what I'm doing?! My mind is always packed full of questions like this, and most of the time it's directed at game projects, and my framework Otter.

I've decided to pursue making a new version of Otter using FNA and leaving SFML behind. I figure by using FNA I can get a better handle on actually porting my work to platforms other than Windows, and maybe also get some better performance. It comes at a high cost though. Although by this point I'm pretty quick at throwing together a decent framework for making simple games, a lot of the more under the hood stuff still gives me a lot of trouble.

I haven't been working that much on the FNA version yet since I'm still in the middle of a project with the SFML version, but so far progress has been pretty slow. I often ask myself if it's even worth doing. I usually think it is, but then I wonder if I should hop back to something like Game Maker, or if I should give something like Unity another shot.

I think Game Maker is immediately out of the question since I've started using C# to make games. Game Maker was great when I used it, but sometimes it was so painful to be writing scripts in their built in IDE. As the projects I work on grow in scale and complexity Game Maker falls pretty short of how I want to be coding my games.

Unity seems cool but at the same time every developer I know that uses it is in constant struggle against it. The editor tools and overall experience of using Unity seems great, but I just know that I'm going to dislike how it actually operates when it comes to running the game. I feel like if I were to start using Unity my first year of using it would be just trying to shoe horn my own way of thinking into it so I could actually start being productive with it, and if that's the case then why not just continue down the path of Otter?

I feel like I prioritize my overall comfort level of working on my projects a lot. I always work on methods and tools that will make my day to day work on a game much smoother, and it doesn't seem like a lot of developers take this approach. It makes sense though. Sometimes just brute forcing your way through the production of a game will take less time than making tools and methods for a smooth production. It's a weird cost analysis balance type thing that I'm not sure about most of time. Something like "will writing this script that automatically parses all of my directories and converts paths into string variables be worth it?" is actually unknown to me. I intuitively think "yeah that's totally worth it since I wont have to spend a lot of time remembering exact file names and I'll be able to reference resources with intellisense" but in reality it might be the case where just spending all of my time pushing the game to completion directly would be the faster and better idea.

I often feel obsessed with making my workflow cleaner and smoother, but I might also be using that as a distraction from the grunt work that has to be done sometimes to complete a game. I just think that if I can clean up some system well enough that it wont feel like grunt work anymore, and sometimes that is the case, but I think the reality is that games are mostly grunt work and I just need to buckle down and do it. But if I don't really enjoy that grunt work should I be doing it? If I enjoy spending my time making things that help with my workflow then maybe its worth it for the pure mental state gain.

The question always boils down to how much enjoyment am I willing to sacrifice at the current moment for possible happiness in the future? I struggle with this quite a bit, and it's probably my biggest hang up when it comes to creative work. If I know that something is going to turn out well then I can usually buckle down and do the grunt work to get there, but if there's any sort of doubt then the procrastination sets in. I try to spend time figuring out if the end product is going to be worth it, rather than just getting into the trenches to find out first hand.

One of the worst feelings to me is throwing out work which unfortunately is just a major part of game development, and basically any creative endeavor. Games take a long time because it seems like most of that time is used in finding out all the wrong ways to do something. If something sticks on the first pass it's incredibly fortunate because usually it takes iteration after iteration to get something right. Sometimes you end up on the wrong path and you don't realize it until you're weeks, or months into it.

I feel like more often than not I am spending time on the wrong path which after awhile feels more and more exhausting. Every project feels like a pathfinding algorithm demo where somewhere on the grid there is the final, correct, amazing product. The grid is a gigantic maze though with long winding paths of varying length. You prototype to try to put yourself into a good starting position on the grid, and sometimes it only takes a few moments to find the exit, but other times you're not that fortunate. Some of my projects I felt like I started right next to the exit, but lately it feels like I'm infinitely far from the exit and my pathfinding is just running in circles. How's that for a metaphor? Dang. I'm just going to submit this metaphor as a GDC talk next year.

I'm not sure what I'm trying to get at here. It helps to try to get all of these thoughts down on "paper" though. I feel like I just need to pick a path and start walking, but even after working on games for most of my life now I still constantly struggle with the feeling that I'm choosing the wrong one. Nothing really "feels right" but I'm wondering if that is just something that will never happen. If something jut feels close enough, is that the best I'm going to get? Or is there really a perfect feeling out there that I'm chasing? I just have to keep my butt in my chair (or stand at a standing desk) and keep walking down a path. Any path! It's just really difficult to make my way out of the constant hum of doubt that I'm not on the correct path from the start.


Evan Gibbs
Evan Gibbs
Thank you so much for sharing all of your thoughts so honestly, it makes me feel normal when I'm struggling. I wish I could say something that could help in some way, but I know that you'll get to where you want to be in the end. It's so hard to see that when you're in it
Posted March 10th 2017 2:08 PM
Noah Johnson
Noah Johnson
One thing I can say as someone who's tried Unity, it is absolutely dreadful to work with for 2D games. I've also used Otter quite a bit (the only reason I don't pursue a game in it is because of the framerate issues) and I think the experience is a million times better than Unity for 2D games. Unity was never built for 2D. For example, there is no way to draw a Sprite in code unless you're drawing it on the GUI layer (which is attached to the view). I'm not kidding. It might sound like a joke. They want you to attach all your sprites to an entity. Overall very poor experience, I don't even recommend trying it.
Posted March 24th 2017 9:40 AM
Evan: Thanks! I always hope just being totally open about my thoughts helps :)

Noah: Wow that sounds really annoying. Sorry about the framerate issues! I wonder what that could be hmmm. That is something I struggle with when it comes to developing Otter. I'm not a super genius graphics programmer so I get to a certain point where I don't know how to fix certain performance issues. I'm hoping that the version that uses FNA will be more stable with framerate stuff than SFML.
Posted March 26th 2017 4:12 PM
new comment!

Post your comment!