My upcoming CRPG / text adventure hybrid called Cyberganked has been Greenlit on Steam. After sending out dozens of messages to Valve assuming, trumpeting and inventing for them their “no backsies” policy and receiving what I can only assume is tacit agreement, I’m confident that what has been done can not be undone, and we can get into the important business of rubbing it in the face of the terrible people that dropped by the Greenlight campaign’s comments to give me unending abuse.

(Just kidding, though hug your developer friends next time you see them.)

In all seriousness, thanks to everyone who voted, retweeted announcements, agreed to be in the game and provided so much positive energy. I don’t want to throw out a guess on when the game will be done, because it really is just a matter of grabbing the time to do it. I’ve got little cards for the rest of the tasks in some project management software written up. It’s on a good path. It’s on a great path.

For anyone seeing this for the first time, here was the Greenlight campaign, which includes the introductory video. The introductory video includes some screenshots and gameplay. The gameplay includes potassium be– well, this could go on forever and I must get back to finishing it!

I’m putting the character role-playing game I’m making onto Steam Greenlight, in the hopes that it gets on Steam proper. This is not the first time I’ve tried to put something on Steam. Long before the Greenlight program, I submitted Cryptozookeeper into their old system and got a rejection letter. I’ll give the old process this: they were quick. Before I had even finished filling out the form on the old system they e-mailed me a picture of someone in Bellevue making the “cut him off” gesture.

You can experience the Greenlight page for Cyberganked by clicking here. There’s a trailer on the page that I haven’t posted to Jolt Country, along with some screenshots.

Cyberganked is an RPG made with the Hugo programming language, which is what I’ve used for the last few games. I’m calling it a text adventure / RPG hybrid to keep all my options open. I guess the difference is that you won’t have to think of new verbs like you would in a normal text adventure. You’ll have all the commands you need in Cyberganked from the beginning.

Robb’s works are not for everyone, but they’re for the intelligent, good people. So the problem kind of works itself out. I interviewed him for a documentary on interactive fiction a number of years back, and his works before and since have been hilarious buffets of viciousness, intelligence and humor. I can’t recommend his way of doing things enough, and his consistency in working on these projects is admirable. Support this guy! — Jason Scott

I wanted to thank everyone that has commented and retweeted links and encouraged me through the process. I anticipated lots of Greenlight comments saying how much the game sucked and by extension how much I suck. Instead, I’ve already been getting great feedback. I’ll be putting updates here and there as I don’t think there’s a whole lot of overlap between this blog and the Greenlight page.

Cyberganked is a ways away from being finished, but I wanted to get it approved for Steam early. If you have a chance to vote that’d be awesome. (Greenlight Downvoter is in the game as a level six enemy, so if you ever wanted to be represented in a video game that’s your big chance. I’d still appreciate the yes vote, though.)

Unlike communism, your votes truly matter. I’m psyched as I can be to make this the best game I’ve ever worked on. I don’t care if the thing makes money — it’d be nice to break even. Steam allows me to have my games seen by more people, and that’s its value to me. It will get into the hands of people who would otherwise never experience them.

Lots of news there that makes me happy. Randy had another successful year with the haunted house, and I was able to get a lot more characters photographed inside. (If you are ever in Denver during October, please visit his haunted house! It’s easily the best in the state of Colorado.)

One other thing that makes me happy is that I have started to implement automated tests. It’s tricky for me to do that with Hugo: there’s no “headless” mode, I don’t develop with a real IDE, and my tool of choice to script the game and test against output would be Selenium, which is not something I can use at the moment. I did finally come to a solution to these problems, which was to stop being such a baby, and do the automation that I COULD do.

Waaah! WAaaaaaargh!” — that was me irl

So I now have a system in place to pull my code from its repository and at least grep for some strings and values, and send me an e-mail if it doesn’t work. For instance, I usually set the hit points to some enemies to 1 in order to test what happens after they are defeated. Now, at least, if the Psycho of Western Hill has 1 HP, I will get a reminder to fix it when I wake up in the morning.

There’s one last bit I wanted to share about how development is going:

I can’t do transparencies in Hugo. I can’t put one image over another. Well, I could, but they would be square or rectangular images. I also don’t have the ability to manipulate graphics at a per-pixel level. This is fine, I knew this going in and I have made four other games with graphics just fine.

But there was one effect I wanted – when meeting one antagonist that wore shades, I wanted the first character in the player’s party to be reflected in those shades. I had two choices to get this effect done — First, I could create a separate static image for every single actor in the game and reflect them in the shades. There’s 22 different actors for player characters, so that would mean creating 22 different images. I could do that, or I could do the other option, which is to not have that effect in the game at all. I chose the former.

Randy has a dentist’s office room for his haunt. There are little teeth glued to the wall — the reason for this is that in the haunted house’s mythology, the dentist is extracting teeth and chucking them against the wall. It’s dark there though, so most people do not see it. Teller says that “Sometimes magic is just someone spending more time on something than anyone else might reasonably expect.” Along the same lines, I burned an evening of my life making 22 separate jpgs for this one scene in my game. I say that not because I think it is supposed to impress anyone, but because when I finish this game I hope that people who have never played one of my games before can take some solace in the fact that a crazy person made it for them.

I made a page here in case you’d like to be on an e-mail list to be notified when the game is done.

The process I have been using for actors in Cyberganked is as follows:

– I place an ad (or ask a friend) if they can run through Randy McLellan’s haunted house at The City of the Dead, when the haunted house is up. (September and October, usually.)

– I get 400-500 source photos.

– The rest of the year, I incorporate these people in the game.

I don’t know exactly what I’ll need when people go through, so I try to hit every room and get a little of everything. With over 10 actors shot, I now have enough source material that I can “greenscreen” my friends if they don’t live in Colorado. My friend Chris Monahan is one such actor, and I hope to shoot Rob O’Hara next month in Oklahoma.

The haunted house is filled with items that could be used as weapons. I am trying to get “realistic yet funny” weapons in the game, along with “realistic and painful” ones. So one such made-up weapon might be a Windex container that is duct-taped to a flash that sprays acid. Another might be an AK-47.

I don’t have all actors with the same weapons. So one thing I am trying to do is depict the actors that were using certain weapons. If you equip your character with a weapon I have a picture for, the appropriate graphic becomes their new character portrait.

Because screens are fun, here are couple examples. Megan Spielhagen found a revolver in the haunted house (thanks, Megan!) and Chris had a Beretta. If you create a character and choose either one of them as the actor for your characters and give them those weapons, here is what you will see when you >look at them in-game, or if they are doing things that cause their portraits to show.

(You can click for the larger image.)

Cyberganked is being written in Hugo, and is really more of a character role-playing game than text adventure. No ETA on when I will be finished with it just yet. I have a “Cyberganked” tag on this website if you’d like to see past updates.

Next week, I’ll have invested a year into Cyberganked. This is a good time to give an update and talk about what has gone right and wrong.

In 1998 I decided that I wanted to try making computer games. I checked out the text adventure language Inform and the Bard’s Tale Construction Set. Inform was (and is) a better environment for game creation. Though I would say I enjoyed text adventures and Character Role Playing Games (CRPGs) equally in my teens, the BT Construction Set wasn’t something you could do serious, new work in.

I continued making text adventures, switching from Inform to Hugo, because the tools, community and support were so good. Additionally, making a text adventure is simply easier than a CRPG, and there is more of an emphasis on writing.

Last year I had decided to research the possibility of making a CRPG using Hugo, the text adventure language I had grown familar with. I had demonstrated bits and pieces of RPG actions in some of my other text adventures: I’ve implemented turn-based combat in A Crimson Spring, Fallacy of Dawn and Cryptozookeeper. I’ve created lists of enemies and illustrated them. So, a lot of this I knew was possible. The big thing that concerned me was handling the names of a player’s characters.

This is the sort of use case I wanted to be available:

>shamino, drop gun
>snake, equip amiga
>look at karen

I wanted those names to be anything the player could think of. Or, I wanted the player to be able to create a name and have it added to Hugo’s internal dictionary. This proved possible – I implemented it over Labor Day, 2012. I can do full names and nicknames – unfortunately, the only non-awkward way to implement it is to make the nickname (no space or weird characters) be the one you use in-game.

The other big concern I had was saving characters to disk and restoring them. This also works. (On editing this, I realize that I didn’t have much to say, but I don’t have much to say about this one!)

That brings us to this update:

Things Going Well

Maze Automation

CRPGs typically have lots of “mazes.” You’re often expected to map them. A CRPG maze is different than a text game maze. A text game maze offers obscurity and frustration due to the sameness of the room. They typically use exits that “double back” on themselves. Mapping them is done through dropping objects and seeing what happens when you move about.

A maze in a CRPG is meant to be explored. There are usually options for easily getting the x/y coordinates of the maze you are in. Dropping objects and having them persist is usually not possible, and the mazes usually have a grid-like structure.

I am not sure how many mazes (or “levels”) I want in Cyberganked. I want each room to get special attention to some degree. That means a description and a picture. To aid this effort, my friend Paul Robinson wrote a Pascal program to help out.

The program (dubbed “The Genesis Device” by Ben Parrish) takes parameters for a grid — the number of rooms along the x and y axis, the maximum chance that a fight might occur, the base names of the room and so forth. It then generates Hugo code – with linking exits! – for that maze. The algorhythm used ensures solvable mazes. Paul made it so that the maze itself is displayed in ASCII (using a fixed font) in the source code. Furthermore, the graphics for these mazes are based on the x and y coordinates, so I can create the graphics, plop them into the game and they appear with no manual code changes.

It automated a lot of work and will eliminate a ton of bugs. I no longer need to ensure that the open mazes have correct exits.

* * *

Arrow Key Traveling

Jonathan Blask was kind enough to implement something called “travel mode.” In typical CRPGs, you need the arrow keys to move around. In Cyberganked, the game is laid out with the four primary compass directions. That did make it a pain if you just wanted to wander around town defeating enemies and building experience…

Well, enter travel mode. In travel mode, the game only takes input from the arrow keys, as they correspond to north, south, east and west! You are effortlessly brought into combat. If you see an NPC to speak to, hitting ESCAPE gets you out of travel mode and back to the regular interface. It’s rather slick, in my opinion, and really makes this CRPG / text game smoother.

* * *

Day and Night

I am also enjoying the construction of a day and night cycle. I’ve been trying to shoot landscapes in night and day conditions, but there is some photoshop fakery involved as well. It’s not too obvious, due to the four color CGA palette the game has. Well, it’s obvious, but I can get away with it. I definitely recommend making games in four colors or fewer.

Things To Improve

When you create your six party members, you have many choices for character portraits. I am having the same actors and models do the same thing at the City of the Dead Haunted House in Denver, Colorado. This means that if the game has to say, “The fifth character is trying to make a call on a pay phone – go get the picture for the fifth character’s model and display it” that there is always a picture for each model.

This creates a problem, in a way – I need the models to be IN Denver for me to shoot them. And I have about a two-month window for photography, as the haunt is not open year-round.

Additionally, and there is no PC way to say this – I live in a state with mostly white and Hispanic people.

If money and resources were no object, I’d be flying actors in from all over the world to be shot in this game. I’d have 10 of each race on earth represented. I had placed ads last year and the only replies I got were from Caucasians and Hispanic people.

I could try contacting a modeling agency, I suppose, but at the same time I am trying to keep upfront costs low. I am already a ways in debt with this game.

So what I will try is to create a sort of “actor pack” with photographs that show the shots I need. I could then, possibly, try to get with models anywhere in the world and say, “This is what I need” for payment. I’ll see if it is too awkward to really get good results from.

Hey, everybody. It’s been weeks since I updated this silly website, and almost months since anybody cared. I haven’t been idle, however, I’ve been hard at work trying to make the best cyberpunk character role playing game I possibly can.

And I did it with your help! (With how little traffic this site gets these days, I am just going to assume that anyone reading at this point was directly involved in the contest.)

Flack announced the winner right here on his site. Flack filmed himself using a random number generator on his iPad, so you know it’s legit. Nobody going through that much trouble is going to fake the results. Although my background in statistics tells me that the position Flack rolled should have started with a “1”, which it did not. So perhaps the whole thing is as crooked as a Grimoire Indiegogo.

You can browse that album at your leisure, but since it’s imgur I am pretty sure that using that site without Jennifer Lawrence making an appearance every third picture is completely unauthorized. Browse safely, and I’ll inline a few after the jump.