I'm making a game!
Many of you know me for my Minecraftmods, which I spend a lot of my nights and weekends working on, but now I'm working on game development as my day job too! For my day job, I'm making an entirly new game from scratch. I think this game especially appeals to Minecraft players (particularly modded Minecraft players), but I'll let you be the judge of that. Read on, brave adventurer!
Read on? Uhh... how about a TL;DR?
You got it.
- I'm making a new game from scratch called Non-Essential Personnel
- Want buzzwords? How about Co-op Multiplayer Sandbox Side-Scroller
- Explore, Dig, Build, Fight with your friends in multiple gameplay modes with different objectives.
- It's being developed for Windows, Mac, and Linux. Dedicated server included!
- You can mod the crap out of this game. It's designed for modding.
- The game uses a custom engine I wrote that's fast and won't restrict the game's design.
- Early versions are free. I want lots of feedback from players.
- I'll start charging when the game gets good.
- Now, skim over the rest of this wall of text and look for the pictures.
- Then check out the poll at the very end. I'd like to know what people think.
Ok, I'll bite. Tell me more.
If I had to come up with a buzzword-filled one-liner to describe the game, I'd pidgeonhole it as a Co-op Multiplayer Sandbox Side-Scroller. If you want a catchy acronym for it, how about CoMS3. =P
The game is called Non-Essential Personnel.
The goal for the game is to create a vast and boundless sandbox world you can explore with your friends. Travel as far as you like in any direction, dig for treasures, use the treasures to build your fortress, defend your fortress from rivals who want to take your treatures, etc. No sandbox would be complete without toys though, so look forward to multiple different game modes that offer varied challenges and rewards with a heavy emphasis on co-op multiplayer gameplay.
Non-Essential Personnel can run on Windows, Mac, and Linux, so just about everyone with a computer can play.
Here's a reaaaaaaaly early screenshot of the builder mode:
Of course, the game is far from finished. The art is pretty basic for now, there's no lighting at all yet, and there's just one block type. This is just the beginning though. Things will get better over time. But I promise all the screenshots and clips here today are all captured directly from the game prototype. There are no mockups here. =)
Sounds good, but why are we digging?
In the distant future, the governments of humanity have contracted out all space exporation to gigantic interstellar corporations. These corporations, beholden to their shareholders, scour the galaxy looking for resource-laden planets to colonize and harvest. Your job (literally, your job) as an employee of one of these heartless corporations is to explore your designated planet, locate its resources, and ship the spoils back home before someone else beats you to it.
But you're all by yourself in the middle of nowhere. Who's going to know if you use a few of the resources you find to build a better life for yourself? Surely, the commercial titans back home can spare a tiny bit for the little guy. Be careful though. If your middle-managing overlords aren't satisfied with your planet's output, you'll get fired and replaced by someone who understands what it really means to create value for shareholders.
Space mining is dangerous and sometimes employees go missing. The corporations aren't worried though. They have lots of employees. You are Non-Essential Personnel.
Builder Mode has some nifty tools so you can design the world you want
It's also a supremely useful tool for debugging, so I worked on that bit first. =P
How about some action shots of the world-building tools. First up, the trusty pencil:
Use it to place blocks. Got it. How about removing blocks? Try the eraser:
Seems simple enough. Is that all you got?
But Wait! There's More!
Placing each block individually can be cumbersome. I did say these tools were supposed to be useful, right? How about the brush?
400% more blocks! Guaranteed!
And of course, the brush isn't complete without its arch-nemesis, the broom:
Of course, none of this is final. Someday, the tools might get upgraded to spacey-sounding commercial products, like The Quantum Block Placinator 5000TM. The game will evolve over time in response to future needs, and of course feedback from players!
Did I hear mumbling about modding?
Yeah, something something modding...
I'm building the engine for Non-Essential Personnel entirely from scratch! Ok, ok... It's not entirely from scratch. I'm starting with really generic libraries like LWJGL, Netty, and a GUI toolkit, but the game engine on top of that is entirely custom. More on that a bit later though.
Having a custom engine means I have almost no contraints on how I have to design the game internally. With this amazing freedom, I've designed the game's internals explicitly for modders! There's no need for painful retrofitting of an after-the-fact modding API, whose development can drag on for ages. Non-Essential Personnel will have a built-in modding API on day one.
No kidding! The game itself is actually a mod.
I welcome anyone to mod my game! This is 2015. Play it, stream it, mod it, go nuts! =D
Design maps, blocks, tools, new gameplay modes. Share all these things with your friends. Make groups of mods that work together harmoniously. Use your imagination.
Built-in modding? Really? What kind of game engine is this?
It's called the Horde Engine. It's written entirely in Java, so hopefully it should feel familiar to Minecraft modders. Plus, Java is taught in all the schools these days, so the engine should be accessible to many students as well.
Wait, Java? Really? Isn't Java slow and clunky? I need all the FPS!!
Java itself isn't inherently slow, but many apps written in Java are. If you know what you're doing, you can actually get the JVM to perform very well. =)
Anyway, here's a glance at the engine's real-time dashboard:
Hopefully, one of the first things you'll notice is that, yes, Horde is actually multi-threaded. You know that fancy 4-core beast of a CPU you have under your hood? Yes, Horde can actually use that. =)
Developing multi-threaded game engines is extremely tricky to get right, so many devs opt for the much simpler (and cheaper) single-threaded designs instead. But I spared no expense on Horde's design, so enjoy!
Ok... maybe the first thing you actually noticed was, "hey, 99 FPS is pretty good." Turns out, generally anything over 60 fps will be ignored by your monitor, so the engine is capped at 100 FPS to save some resources for other goodies. If I turned off the rate limiter, I have no idea what the uncapped FPS would be. Maybe that can be an option someday for the truly curious.
Also, the thread load section shows the engine is vastly under-used (at least on my modest dev machine, two of those processors are actually virtual). I have Great Plans for filling up that extra capacity with lots of eye-candy and game logic, so stay tuned for updates on development.
PS, that "N/A" next to the server thread means this screenshot is from a client connected to a dedicated server!
Yeah, dedicated servers on day one! No need to try to shoehorn in a dedicated server after-the-fact. Finally, your dream of running a dedicated server for a Co-op Multiplayer Sandbox Side-Scroller on a Linux machine can come true!
This all sounds great. When can I play?
My development plan is multi-phased. Here's what I want to do:
- Develop in private for a while and work towards a more playable (and prettier) prototype. Post blog updates once-a-week-ish. Maybe more frequently? Once every two weeks at the very least.
- Start a private pre-alpha testing phase open only to friends and family. Honestly, that early on, it doesn't take many people to find all the bugs.
- Begin a public pre-alpha phase for everyone to help test and debug Non-Essential Personnel for free. The goal of this phase is to work towards a minmum set of features and rely heavily on feedback from the community without players having to risk anything but their free time.
- Once the game has a minimum number of completed (and working) features, I want to begin a public alpha phase where players can play the game for a bargain price. At this point, I would be proud to sell and stand behind a completed, polished, if somewhat small, version of the game. During this phase, I'll continue to add features periodically over time and release updates for the game. For players who purchased the alpha, these updates will be released at no additional cost. Players who don't want to purchase the alpha can continue to play the pre-alpha for all eternity, but won't get any updates. If the game is even marginally popular, hopefully the income can help me hire artists to make the game prettier, or add music. If players are into that.
- The next phase, public beta happens when game development reaches the next level of finished and polished features. I'll re-publish the game at a moderate price that reflects the expanded feature set, and invite new players join in the fun. Players who already purchased the alpha will of course get the beta and all the updates for no additional cost. Again, I'll keep working on adding new features in this phase and work torwards my full vision for the game, releasing periodic updates as necessary, and iterating with the community.
- The final phase, v1.0 release, will be the culmination of all the plans I have for the game now. This will be the full game I have in mind today (which I'll periodicaly share in upcoming blog posts), completely implemented and polished. Just like before, I'll re-publish the game at a new reasonable price point for new players, while existing players can upgrade and receive updates for no additional cost. It helps to start playing early =).
- v1.0 and beyond: From this point on out, I would love to continue to work on the game, develop new features, listen to the players, incorporate feedback, and release frequent updates. I don't want to keep raising the box price indefinitely though, because that could get absurd. Instead, I'd like ask for a small yearly or once-every-6-months fee to keep developing updates. I know subscriptions aren't very popular, but this approach makes sure that I have an economonic incentive to actually keep listening to loyal players when I work on updates. Otherwise, the economic incentive drives me to either abandon the game and start something new, or release content that I think will attract new players and completely ignore the needs and wishes of the loyal players. If you don't want to pay the subscription fee, you can always keep the version you have for eternity, but you'll miss out on any updates.
What do you think?
If I had you at CoMS3, the please feel free to bookmark the blog and check back periodically for updates.
You can also follow my twitter. I'll be posting updates there as well.
If someone starts a discussion on Reddit somewhere, let me know about that too so I can participate. I'd do it myself, but I'm honestly not sure which subreddit would be appropriate.
Finally, would you want to play Non-Essential Personnel?
Thanks for making it this far!