NEP Dev Update #1: The launcher

by Cuchaz

This post is the first in a development update series about my upcoming indie game, Non-Essential Personnel.

Behold! The Cuchaz Interactive Launcher:

A screenshot of the launcher news page

It logs in. It downloads. It installs. It updates. All that stuff you need to worry about before actually playing the game.

I even found away to make Java-based GUIs not look terrible!

Play any version, even if it's not the newest one

The launcher lets you manage which versions of the game you have installed. For modded games, it's common to not actually play the most recent version. Sometimes it takes the modding community time to catch up with updates, and sometimes they skip some versions entirely. The launcher lets you play whatever release of the game you want, even if it's not the newest one.

A screenshot of the launcher, NEP page

Want to play multiple versions? We've got that covered too. In the info tab, you can launch any installed version with a couple clicks, as long as you're logged in.

Logged in? So I need some kind of account?

Yup. You'll need an account to play Cuchaz Interactive games. I'm not interested in collecting a bunch of personal information. I just need enough info to do authentication. Here's what the signup form looks like:

A screenshot of the account creation website

Nice and simple!

Why not just use Steam?

Steam isn't meant for games that haven't been released yet. Sure, it has an "early-access" mode, but that's really just another kind of release. I'd love to release on Steam eventually, but I need to finish the game first.

Ok, we need a separate login system, but how safe is my password?

Very safe.

Cuchaz Interactive uses state-of-the art password management protocols and cryptography. Passwords stored on the server are protected using random salts and computationally-expensive hashing functions which make stolen password hashes (should this ever occur) extremely resistant to hacking attempts like dictionary attacks and rainbow tables, even if an attacker has access to highly efficient GPUs or ASICs.

Logging into the website is always done over HTTPS with SSL so your password is protected in-transit. Just look for the familiar lock icon in your browser's address bar:

A screenshot of a browser address bar, showing a lock icon

The launcher itself uses a sophisticated cryptographic protocol for logging in called Secure Remote Password. Due to the magic of cryptography, the launcher never actually sends your password across the internet to the server. Instead, it executes a challenge-response protocol to mathematically prove to the server that it knows your password without revealing what it is. This protocol is even resistant to hackers attempting to masquerade as the login server, so man-in-the-middle attacks won't work either.

As icing in the cake, your login session can be saved between plays without storing your password anywhere on your computer. You won't have to re-log in every time to play, and your password stays safely in your head where hackers can't get to it.

A screenshot of the launcher while logged in

Sweet! Where do I sign up?

Ermm... you don't. Not yet anyway.

Now that I have a way to distribute builds of the game, I can start the private pre-alpha testing. The private pre-alpha is only open to friends and family, so everyone else will have to wait a bit longer.

Later, I'll get the Cuchaz Interactive forums set up and everone can have a place to talk about the game. Your account will be useful for that someday, but for now, there's nothing to do, so the signups are disabled. I'll make an announcement when the forums are ready. After that, you're more than welcome to sign up. =)

So... what's next?

Well, I have the bare skeleton of a game working, and a launcher to install/run it, but there's no kind of menu for game options or anything like that. Right now, the game is just launched directly from the command line. I need to make a main menu where you can pick characters, worlds, servers, etc.

Look forward to more info about that in the next update!