Sic Infra — A Project Summary Blog
For our final project to complete the foundations year curriculum at Holberton School we were given a tight schedule and loose regulation. We were told to go out into the world with our recently acquired tools and build something, almost anything. And so, with ambitious hearts and vague rules that promised not to inhibit us, myself and two of my colleagues decided it would be a fun project to try our hand at creating a video game.
At first we didn’t have a clear idea of what we would be making, much less who would assume what role. This process occurred much more organically (and slowly). We knew we wanted to make a video game, but we weren’t sure what kind. We floated the idea of making a side-scroller, or perhaps an isometric. Eventually we landed on a top-down 2D dungeon crawler. But even then, we still had no idea what to make and how. No, to start out we didn’t have any roles or responsibilities set out; we simply had an idea, almost a challenge: what can we build in 3 weeks that will be fun to make and fun to play.
As we fleshed out the idea of this dungeon crawler we got to thinking: what is it about those early 90s games that we loved so much? The aesthetic was a big part for sure, so we knew we had to have that. But they also had a certain charm to them. Top down games felt like you were exploring a massive world. It felt like you were truly in charge of your avatar and you could go anywhere and do anything. We immediately knew that this was the feel we would want to aspire for. As for game play, the games that inspired us from the 90s were captivating and enthralling as children but we knew we had to bring the challenge to the modern standard. We knew we had to bring up the difficulty.
We decided to use Unity even though it was a platform none of us had ever worked with previously. We also decided to go with another first for all three of us, writing exclusively in C#. The language would allow us the flexibility of C with the added convenience of objects, and the Unity platform would allow us to easily import assets.
And so we had the framework to build a game. We had the genre, we had the inspiration, we had the tools. We quickly set out to find tutorials, assets and anything we could find to start figuring out how exactly one goes about creating a game from scratch. In these early days our roles were still not set in stone but we each started venturing out in fields we felt comfortable in. Soriano began experimenting with physics, 3D objects and win conditions. I started to look at assets and texture packs, focusing on what our game should look and feel like. Rolando started to hack away at his keyboard, figuring out how to make the newfound .png files move and do things. We were on our way.
As I mentioned previously, all three of us grew up around the same time and around the same video games. Selecting the type of game and the type of project we were undertake was, therefore, a relatively straightforward endeavor. One of my teammates and I had even spent the last couple of months logging on to Steam and playing games together after our schoolwork was done. What I didn’t expect was how much we would surprise ourselves in the process of making the game. Time was against us, the deadline was short, we had but 3 weeks from start to finish. However we achieved things as those weeks flew by that I wouldn’t have dreamed I would be doing, even as recently as a month or so ago, when we were wrapping up our server projects.
I knew immediately when the idea was pitched to make a video game that I wanted in.
During the creative process of making ‘Sic Infra’ I sort of landed in the creative design role. All of a sudden I found myself in front of a blank canvas with nothing but an assortment of assets and a digital paintbrush. I had spent the first couple of days figuring out how layers worked in Unity, how to lay down grids, how to change their position in the rendering order so they wouldn’t cover the player’s avatar. Now however, I was faced with the daunting task of actually deciding where things went.
I must’ve scrapped and started from scratch 4 or 5 times before I started to design the first part of the layer. We had decided we didn’t want to pay for nice assets from the Unity store, so we forced ourselves to use whatever free resources we could find. This posed a minor inconvenience. I had found 2 texture packs that seemed promising: a forest pack and a cave pack. However, their styles were very different. I had to figure out how to combine elements from both texture packs in order to diversify the look and feel of the world without the styles clashing too much.
This also worked to my favor in the end because it allowed me to create the perception of depth in the player progression through the map. The first area I used mainly the forest assets, and found a way to make a threshold to a second area where I started to rely heavily on the assets from the cave texture pack. In this way I was able to create the ambiance of exploring deeper into the world, both literally and figuratively, as your character seemed to be plunging into the depths of a dark and intricate cave system.
After a few days we had what felt like a balanced map, complete with complicated puzzle aspects, hazardous areas with environmental damage, and a non-linear A-to-B progression with a win condition. We had, for all intents and purposes, an entire infrastructure of a video game.
For the most part, the most challenging aspect was learning to use Unity. Unity posed several roadblocks along the process of building this game, including at the very end, when we thought we were done and all that was left was to upload the game to a web service, Unity still managed to be a nuisance then. We found our game, that was working perfectly fine on each of our machines, wouldn’t build and run. It was having compilation errors that we couldn’t figure out. What’s more, once we figured out the workaround of having to scale back our versions to a previous release (we had unknowingly built the entire game on a Linux beta version) and had successfully uploaded the game, we realized the audio files were missing or corrupted. That was an entire day of debugging and investigating of itself.
Unity, despite also being incredibly handy and easy to use for some aspects, was also one of the biggest challenges we faced. What should have been simple tasks like simply importing texture packs to a tile palette took us hours to figure out. We were, as I mentioned, using a newer beta version, for which the UI and the menus had been slightly moved around and updated. Pretty much every online tutorial or YouTube video we watched would reach a pitfall at some point where they would lead you to where the simple fix we needed was located, only to realize that button or option we needed was no longer in that menu.
What we learned
I for one, learned that we are capable of much more than we expected of ourselves. We learned that imposter syndrome is real but it’s often misguided. We set out with the ambitious task of making an entire, working game in just a few weeks and at times the effort seemed herculean, like there was no way we could finish it in time. The game would have to be shipped with bugs, incomplete, or with some big compromise here or there. Thankfully this ended up not being the case at all.
We learned how to delegate tasks and to stay in our lane. Whenever we tried to simultaneously work on one issue we found that we would butt heads. However when we each focused on what came naturally, what we felt we were good at or at very least doing good at, everything flowed better. We started meeting our own deadlines for parts of production. We had the game pretty much working not long after the first week. With the comfort and reassurance this provided we were free to focus on tweaking things, making the game better, funner, more enjoyable. Slowly but surely we would find bugs and correct them. Shortly we were confident enough to show our friends. They would inevitably help us find bugs too. We would fix those as well.
By the end of the three weeks we not only had a working game, but we had a game we could feel proud of. The nervousness to present it in front of everyone disappeared as we were sure that we had exceeded even our own expectations. To this day I think I’m still proudest of the fact that no one has beat the game with 0 deaths, and I challenge anyone reading this to go and try for themselves.
- Gabriel Vazquez — creative lead, world design
- Rolando Roques — enemy AI, animations, UI
- Christopher Soriano — Boss behaviour, weapon animations
- Project Github
- Project landing page
- The game