GameDevCola #1: Gridlocked

James Pelster discusses his first steps into the world of game development!

With content involving Tags , , , , , , , , , ,

We talk a lot about videogames here at GameCola. Critiquing them, listening to their music, comparing them to others, even recording ourselves playing through them. But what about making videogames? Designing, programming, drawing, composing, and writing things to create our very own piece of interactive entertainment media. What’s that like? As it happens, both myself and Jeddy have been struck by a creative spirit over the past few months. So, we figured it might be fun to start up a new column talking about our adventures and perils. Since we’re both programmers by trade, things may be somewhat code-focused, but there will certainly be smatterings of design rationale and creative writing to enjoy as well. But for this inaugural entry, I’ll be covering some of the broader strokes about the game I’m aiming to create: Gridlocked.

For my theming I’m heavily inspired by the original Tron from 1982, and for gameplay I’m inspired by Ultima 1 and the Super NES Megami Tensei games. I’m hoping to create a modern—but retro-styled—take on the first-person dungeon-crawling RPG. Expect to explore maze-like data paths and delve deep into ancient code as you traverse a digital world. I hope to create something that feels snappy and new, but also like a continuation of the sort of game you’d find on a 1980s home computer or game console. Why that genre? Well, I have a fondness for the simple gameplay of mapping out dungeons, fighting monsters, growing stronger. On top of that, these sorts of games are (relatively speaking) simple in design. Since this is my first proper attempt at making a videogame (and a solo effort at that), I’m trying to keep the scope small and complexity low. So, why not hearken back to a simpler time and simpler games?

However, one thing I’m not hearkening back to is the technical limitations of the ’80s. I’m creating this game with modern C++20, or at least taking advantage of its modern features where they make a difference for me. As I may or may not have mentioned on a GameCola Podcast episode previously, I’m not a fan of any of the currently popular game engines. I’m sure they work great for lots of people, and I respect the heck out of how the open-source Godot engine is making waves in the industry. Nevertheless, I find their paradigm of “objects are containers for code” to be counterintuitive to how I develop software. I always tackle my development from a code-first approach, and games just make more sense to me when everything stems from code. To that end, I’m using a framework called Raylib to handle keyboard/gamepad input, render my graphics in a cross-platform way, and eventually to output the game audio. I did actually experiment with writing my own 3D projection and rendering code, but it was way too slow to be usable. So, Raylib takes care of some of the icky not-fun stuff behind the scenes, and lets my own code do everything else; that’s how I like it.

So, what does the game look like so far?

Ha ha, very funny. In seriousness though, it’s currently sitting at around 2,300 lines of code, and that number is probably going to double or triple before it resembles a true game. That number also includes all the development tools I’ve been writing to help me create the game, namely a map and dialog editor. Right now, everything is still very much a prototype. But here’s some early screenshots anyway:

The visuals may be primitive, but they’re something I plan to focus on more as development progresses. Eventually I’ll either switch to textured surfaces or use shaders to generate some cool-looking visual effects on the solid colors of the maze.

There’s still an unimaginable amount of work left to be done, even for a game this simple. Of course, I still need to design all of the maps, write all the text and dialogue, and figure out how someone artistically and musically challenged like myself makes graphics and sound for a game. Lots of design decisions and planning are still left to be done, such as: what’s the ultimate goal or win condition? How long will the game be? Will the combat be menu-driven like a JRPG, or more action oriented like Ultima? The groundwork I’ve laid here in this prototype serves to help guide me in my future decisions. The more I play around with the engine I’ve built and the supporting development tools, the more excited I become about the possibilities. It’s already starting to take me back to my first experiences with Megami Tensei and wandering around its maze-like dungeons, grinding for experience and money as I delved deeper into the tower of Daedalus. That kind of feedback loop is such a rewarding and encouraging feeling—when you create a game based on a certain inspiration, seeing it come to life transports you back to those very same feelings and memories, while also igniting new ideas for what you can make with this foundation you’ve made.

I hope you enjoyed this glimpse into the world of game development! I’ve already got a couple of deep dives planned for future posts, such as: the hidden complexities of programming something as basic as grid-based movement; designing a dialogue system that can substitute dynamic information and perform custom actions within the game itself; and much more! Plus, you may even see some posts from Jeddy in the future, as we both continue our game development journeys! Stay tuned!

0 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 100 votes, average: 0.00 out of 10 (You need to be a registered member to rate this post.)
Loading...

About the Contributor


Since 2016

James is a programmer by day, and a gamer by night. He co-administrates the GameCola YouTube channel, too. He's also a guy who loves space and history, and talking about video games! Writes articles and stuff every 20XX years.

Leave a Reply

Your email address will not be published. Required fields are marked *