Unity Makes Things Easy, but Impossible: CNN Programmer Postmortem


In the team's initial discussions I was pleasantly surprised to hear that I was the only dedicated programmer for the project. Usually that doesn't happen. Last semester I did a game jam and the roster was 6 programmers and one artist. I was even more delighted to hear that the idea for the game was very reasonable from a scope perspective. Working with games for about four and half years now, "shipping" two largish games, I have a decent amount of experience in detecting the general feasibility of a small project. Even though we certainly didn't get all of our ideas into the game, we didn't discover that our game was total impractical two-thirds the way into the project and have to scrounge together some other game. I'm especially glad because I feel as if I am kind of buzzkill sometimes with having to temper everyone's expectations, but I didn't feel the need to do so on this project.

Onto the programmy parts, it started off pretty good. The first thing I implemented was the desk portion of the game, which ended up being pretty easy. My prior experience with Unity let me know how to manage sorting order shenanigans and some other unwanted Unity jank in a timely manner.  Knowing what I know about GUIs now, there are better ways I could have constructed that phase of the game, but it wasn't complicated enough for that mistake to nip me in the butt so it's fine. For managing the story, I decided that just use a spreadsheet and do some basic parsing of it. It ended up being a fantastic idea as I didn't need to wrangle with any outside libraries or packages just to make a simple story tree possible.

The typing portion of the game is definitely where most of the frustration came with both Unity and its text systems. I wanted to do some unorthodox things during the typing portion and Unity made doing those things a nightmare. In order to space the different text boxes accordingly, I need to know the width of the text. Textmeshpro decides to exclude whitespace at the end the textbox and so I need to essentially add invisible characters so that TMP reports accurately on the width of text. When the player is typing, a underline appears underneath the character they're typing. One very helpful feature is that surrounding a space with the HTML underline decoration actually doesn't result in the space having an underline on it. It is impossible to underline a lone space. During the typing portion, the space is not actually underlined but instead an invisible 'j' is so that TMP actually underlines something. 

I have programmed games in Unity for around 4 years now and have gleamed enough perspective to notice that Unity makes game development shallower, not easier. The compile times take forever and it's borderline impossible to get things just right. I stopped using Unity about a year ago (I'm making my own game engine) and this was a good reminder as to why.

I really appreciate my team for keeping their ideas bounded and focused and I think the quality of the final game reflects that. We were able to get all of the necessary aspects of the game in place. I'm also glad I was able to contribute quite a bit for the design of the game, both in the story and overall gameplay elements, as well as the little things that we never talked about. I'm proud that the final product of the game ended up being pretty good despite the technical challenges faced.

Leave a comment

Log in with itch.io to leave a comment.