Jaco: An Adventure in Game Development — Preproduction

S.C. Barrus
5 min readOct 5, 2015

--

For a while now I’ve been brainstorming. You see, I needed a project for my free time. Previous projects have included novels (published), an adventure game (not published), and learning web development (which is now my career).

But now that I’m headlong into my web development career working for Concur, I realized that I needed another project to sink my free time into. Recently I discovered it: I’ll be developing a survival, exploration, base building, and micro-managment focused desktop app, and I’ll be sharing the journey of development as I go.

Primary Goals

Goal 1:

Part of this series of blog posts is for you, the curious observer. Who are you? Well, most likely you’re interested in game development, perhaps have at least minor understanding of modern web technologies, or just want to be taken along through this journey of discovery. Whoever you may be, part of my goal in this project is to inform. Be warned, the informing might be exceedingly technical, so if you’re not a coder, be prepared to wade through a fair amount of coding jargon as this series progresses.

Goal 2:

Here we start to get a bit more technical. My real, underlying goal in all of this is to become a better overall developer. Because of this goal, I won’t be using an established game engine, rather I’ll be building my own from scratch.

That means no Unity, no Unreal, nothing like that. Instead, I’ll be using technologies like Electron which I won’t be surprised if you haven’t heard of. Then again, I don’t really know my audience for this series yet. Maybe you’re super badass and have already created your own Electron app.

Goal 3:

Of course another thing that will come out of this series is a playable video game. I’m really not a game developer. I’ve practiced my hand at making a shittly little adventure game that I didn’t see fit to release, but I do have a little practice. In any case, on this my second video game attempt, I do fully plan on releasing a working title to anyone who’s interested.

I’m emphasizing working over fun, as you’ll see through this progression. Of course I wan’t my video game to be fun, but if I can get it to a playable state I’ll consider it a job well done. There will be many steps in this progression, as I will outline in a later post, so it will be quite a journey, of that I am sure.

Secondary Goal:

After some consideration, I’ve decided to make a secondary goal: to get multiple contributors. This is secondary because I’m not expecting it, but if I find a few likeminded people who are interested in creating bits of code here and there for this project, I’ll be happy to allow them.

Basically I’ll be giving this project the ability to be open sourced, but I won’t be expecting a huge outpouring of people wanting to contribute. I think that’s a healthy attitude, especially as a person who hasn’t yet created an open source project with more than 3 contributors before.

The Game

Survive, Build, Explore

I have a specific vision for Codename: Jaco. I think the scope is challenging yet doable for a one man team (which is my expectation as I stated before. But if this gathers a little talent, I won’t shirk that opportunity).

Pillars

Primary View

Most of the game will be played via the primary view. This will feature an isomorphic, minimalistic view somewhere between the primary views of Civilization and A Dark Room (repo).

While civilization is all about civilization expansion, technology advancement, and conquering, Jaco will feature merely a single development, your home, which can be built upon by you, the player. It is up to you to choose to build or explore.

And, while A Dark Room was primarily about resource gathering and exploring, Jaco will trade A Dark Room’s timers and resources for building base enhancements, and defending your settlement.

Turn Based

Jaco is a turn based game. Each turn the player will be forced to make important choices. Will you gather supplies, build base enhancements, sire offspring, or explore?

Actions

Each of these choices will be important. Gathering supplies will enable you to better build base enhancements, which will in turn help you defend your settlement from raiders. Gathering supplies will also allow you to craft tools, such as shovels, hammers, and weapons.

But supplies are in short supply (yeah, I hear it). In order to gather resources, you’ll need to explore. However, the further out you explore, the more susceptible your base will be to attack from raiders. It’s an important balancing act you’ll need to play in order to survive.

Finally, you’ll sire offspring. Jaco will be designed with the intent of being a difficult game, and with the expectation that the player will die at some point. But death is not Game Over. Rather, if you sire offspring, your brood will serve as your extra life, ensuring that future generations will be able to continue surviving, building, and exploring.

Technologies

While this game will likely be graphically simple, it will be built upon a collection of bleeding edge technologies. As I stated before, one of my goals in the creation of Jaco is to be better at all things coding. What follows is a brief overview of some of the technologies I believe I will use in the production of this game (of course, these may change).

Electron

Electron is a new technology developed by the folks behind GitHub. It’s the same platform that powers their code editor Atom. The concept behind Electron is: use existing web technologies to produce desktop apps.

I’ll be using Electron to package Jaco into a cross platform gaming experience. Pretty cool, right?!

React.js

React is a technology developed by Facebook to create user interfaces. Since UI is such a big part of a video game, and since React is such an intuitive UI platform, React will play a big part in Jaco.

Node.js

You can’t have Electron without Node, but Node is the bee’s knees anyway, so I’m not complaining. While React will work with user components, Node will support the behind the scenes logic, processing all the logic that the player doesn’t see.

Mongo?

I put a question mark behind Mongo because I don’t know for sure if I’ll be using Mongo or not. In any case, you need a database to save games (as far as I’m aware, but we might be able to do it with simple JSON files) and if that’s the case, MongoDB seems to me to be a good option due to it’s flexibility.

Conclusion

Jaco will be a big project for an individual to take on, but I feel like I’m fully invested in it. It’ll use cutting edge technologies to develop a game that, at best, looks like a retro throwback, but hey, that’s half the fun of it right.

Do you want to get involved? Email me maybe @ codybarrys@gmail.com or follow the link below and lookout for github issues.

Or, if you just want to watch the repo, you can find the current version of it here (it doesn’t look like much right now, but give it some time): https://github.com/goopscoop/jaco

Read the next post in the series:

Or visit the JACO development diary table of contents for more goodness:

--

--

S.C. Barrus

I’m just a guy who writes books, and code, fueled by insatiable curiosity.