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
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.
@Cyberganked (for all the latest development news)