Thread about writing your first game

I wrote Espiritu Roboto for Text Adventure Literacy Jam 2022 (which is ongoing right now). I made it in a month. I was mostly inspired by Vampire Ltd., because I wanted to imitate how it focused more on its world than the complexity of its puzzles.

The game ended up having three iterations:

v1: I stopped after a few rooms when I realized the hugeness of the game I envisioned. I checked my list of rooms and cherry-picked those that sparked joy.

v2: I had a prototype of all the rooms and puzzles but I found that the structure of my rooms and my game itself was wonky. I’m glad that I made the prototype as fast as I could, or else I wouldn’t have caught my mistake.

v3: reused v2’s puzzles and rooms but completely changed the plot and room structure.

I found a lot of writing advice applied to my game. Someone said you should practice writing pages and pages of dialogue from your main characters to get their voice down. The three iterations really helped me understand how my world worked. Writing is mostly editing, and programming is mostly debugging. Let the 1st draft be bad. When I sent out my game for its first round of testing I had no proper room descriptions!

The best parts of my game came out during testing, especially when my beginner friend played my game and I watched. They remarked that they felt like a kindergartener learning how to write sentences again. So a lot of my time was spent balancing the average player’s enjoyment and the beginner’s ease of playing. I guess this balance was the point of the whole jam. I added three kinds of in-game help: explicit hints, tutorial, and a “memory” which reminded the player of clues they’ve already seen.

These three types of in-game help used a LOT of flags. I wish I’d used Adventuron’s trait system to keep track of which things have been examined/taken, or used a more object-oriented language. Writing code to set and check flags took up a hefty chunk of my time.

My tutorial consisted of:

  • setting flags whenever an action is completed
  • a very long and complex if-else string dictating which message to show next
  • hours of trial and error to make sure that messages don’t show up in unusual situations, and thorough testing to ensure that the progression makes sense, even if you diverge from it.
8 Likes

I wonder if that will happen to me. The problems are closely linked to the world/plot in my game, so I feel like it’s all or nothing.

regarding long if-else statements: I feel that :sweat_smile:

Good luck in the comp! I won’t be rating any games, but I do hope to play some and maybe write a few reviews.

3 Likes

This has made me really happy to read. Good luck in the game jam!

2 Likes

My first complete game was written in 1982, on a Kaypro 10 ( that is a Z80 chip and CPM OS ), in Turbo Pascal.

The Turbo Pascal compiler had all kinds of whiz-bang new features - new to me, at least - like inline assembly code ( really needed when your clock speed is 4 Mhz ), and pointers, and records, and re-entrant code, and block structure.

With state-of-the-art hardware and software, I managed to produce a playable game.

I had a fuzzy idea of story structure, but even then I found story and interactivity fighting against each other. Story mostly got dumped by the wayside as my beta testers ( AKA fellow employees ) wanted more game-like features.

None of my BTs could make an intelligible request for more storyish features, but they could ask for more rooms and more monsters. And those I could make. So it got bigger and bigger, and started to get slower.
Inline assembly code forestalled the slowness problem for a while, but eventually it became unplayable by anybody who did not have a Jovian supply of patience.

6 Likes

Is it still possible to play it today?

1 Like

I wrote and published my first game twenty years ago. I initially wrote it in ADRIFT, but it has since been ported to Inform 6. It bears the regrettable title of Goldilocks is a FOX! It feels a little weird to be writing a post-mortem for a game two decades old - I was a different person then - but here goes!

What I Did Wrong:

  1. The Scope of the Project

My biggest mistake was making a very large game for my first effort. There are relatively few locations (around 25), but far too many puzzles. The main reason is that I had problems with gating. Item A, used to solve puzzle 1, could be found before the player had encountered puzzle 1. To correct this I added puzzle 2 which prevented the player from finding item A until after puzzle 1 had been encountered. Now imagine this several iterations deep! I ended up with a walkthrough running into several hundred commands, and a game with dozens of single-use items. I should add that it was meant to be a small game, it just didn’t end up that way.

Perhaps surprisingly, Goldilocks took only a year to write. This was partly down to making it with ADRIFT, a GUI-based authoring system with drop-down menus. The much improved I6 version, ported by Mark Tilford with lots of input from me, took longer to create than the original game.

  1. The Narrative Voice

The second mistake was making the protagonist a sassy teenage girl. Perhaps on some level I wanted to be a sassy teenage girl; most of my PCs are, to a large extent, wish-fulfillment. Unfortunately as a thirty year old male I had no idea how to write like one. It tries to be slangy and cool, but keeps veering back to my natural writing voice, like a bad actor trying to do a foreign accent. Nevertheless the character is a strong and independent young woman who deals with some tricky situations and characters (including a rather slimy prince) and she was nominated for a XYZZY award. My only real regret is the title. I’d call it Goldilocks ROCKS! if I made it now.

If I were to remake it, I’d also remove the swear words. There are only a couple but they’re embarrassing and out of character for the game. I rarely swear in real life, come to that. But for them, the game would be suitable for kids to play. I’ve played it three or four times with my ten year old nephew Max, at his request, and he always notices when I skip over the swear words!

What I Did Right:

  1. The Story

For my first game I wanted to concentrate on learning the craft of adventure, so rather than tell a brand new story I took one that was ready-made. This way I already had the story-beats mapped out and could focus on creating the puzzles.

The story I chose was Goldilocks and the Three Bears, but I used it as a jumping off point and riffed around it. I added cameos from from half a dozen different fairytale characters, from Sleeping Beauty to Cinderella’s Fairy Godmother. The best character by far is the big bad wolf, a rather effette and eloquent creature who spends the game vainly looking for the three little pigs whilst clad in grandma’s nightdress.

  1. The Puzzles

Goldilocks contains some of the best puzzles I’ve created, and one in particular remains my favourite to this day (opening the door to Papa Bear’s top-secret workshop.) It was my first game and I was bursting with ideas. Not all of them were good, but one or two were brilliant. I’m currently writing two I7 games back-to-back, which will be my sixth and seventh light comedy parser-puzzlers, and probably the last I shall make for the foreseeable future. (I may make an exception for another Magpie game, if the right idea comes to mind.) After seven full-sized parser games I feel pretty burned out, and I’d like to focus on choice-based games for a while. There are only so many ideas for puzzles I can come up with, and rather than risk repeating myself, I’ll let my brain lie fallow for a while. It’s probably time for a different sort of challenge, anyway.

In Conclusion

There are lots of reasons to be proud of my first game, and a fair few reasons to be embarrassed by it. Today I’d probably cut out a third of the puzzles, but they’re well clued and the game is perfectly playable, if a bit long-winded. The PC feels gauche to me now, but she was nominated for a Best Individual PC XYZZY award at the time, so I must have done something right. Most importantly I learned a lot making it, and my second game was much better.

10 Likes

I sold the Kaypro to a collector in the 90’s. I don’t remember the details of the transaction, but I almost certainly would have wiped the disk before selling it.

It is a pity, though. I never dreamed that CPU clocks would get so fast, nor that such fast machines would get so cheap.
I would like to see what a game that slowed down on an 8-bit machine at 4 Mhz would look like on a cheap PC now.

Maybe it is just as well. My coding practices were horrible then.
( Remember, this was a time in which most programmers still saw nothing wrong with a GOTO statement. Being in favor of block structures was edgy back then. )
I would probably be appalled at my own code if I were to read it now.

2 Likes

This is an interesting question. I thought about this question a while back. I’ve attempted to write a first game many times. I’ve never finished writing a game. I’ve tried since the 1980s, with GAGS and AGT. Every time I start, I pick some seemingly simple thing I want to implement for a single scene – then I hit some interesting technical limitation of the framework and start working around the technical limitation instead. Back in the 1980s, this led to teaching myself Turbo Pascal to attempt to edit the AGT engine.

More recently, I’ve ended up writing 16 Inform 7 extensions (I had not realized how many it was until I went to look), one of which is a Cookbook of techniques for getting around odd isses; a style guide for Inform 7 extensions; and no games. Every one of these is the result of trying to write my first game – they’re all cut off of games which will probably never be finished or released, from attempts to finish constructing the first scene. Some obscure indication of the original intent of the games may be found in the examples for the extensions.

I’ve played a lot of text adventures and I know what irritates me and what pleases me, so I’m always programming to create something which doesn’t trigger my personal irritations. For whatever reason I’ve always had a particular admiration for games which assemble a bunch of disparate, changing elements to form a seemingly seamless paragraph; games which include excessive numbers of synonyms and “local color” verbs; and games which “fail nicely”. Also games which give the illusion of open exploration / open choice – a dozen winding dead-ends with interesting text (an easter egg hunt of a game) every time for me, rather than a coherent story. And a misplaced space or line break will just bug me. These motivations, perhaps, are what keep directing me away from the actual story writing into the systems behind the scenes.

At this point I’m OK with that. I know who I am and I know what I like doing, and I’m a programmer at heart. I will keep starting to write my first game, and if I ever finish it it’ll be a miracle, but hopefully the offcut systems from the attempts will be appreciated by others.

I wonder if anyone else has had a similar experience (particularly among the more prolific extension & library authors).

5 Likes

I’ve enjoyed writing my own IF engine, although it has proven frustrating at times. I get a burst of dopamine when I think I’ve solved a difficult problem in an elegant way.

The only IF pieces I’ve done so far have really been technical demos for that Python library. Probably not 10% of what anyone would want from a game.

Now I consider the library to be ready, I’m dead set on doing a full length game. So I’ve written a short story to describe one linear ‘happy path’ narrative.

So my challenge to myself is to use that as a springboard to create an interactive game with multiple paths and multiple endings. I’m hoping the buzz of solving those problems will sustain me through to the end, just like I finally got to the end of writing my library.

7 Likes

I’m grateful for all the replies! I love conversations centered around community experience.

3 Likes

My first game EVER was Miracle Avenue, an improvised nonsense game for HyperCard with a sort of Manhole-On-Rails feel. There were no forking paths, just a sort of continuous tunnel of weirdness. There were mutant fish who did a Mouseketeer count off for you, a church for alligators in the sewers (whose minister only gave a loud belch I recorded myself), and a visit to a filthy apartment whose resident was talking vomit. (I was thirteen.) It was never intended for release, just the joy of making stuff up and bringing it to life.

The first game I released was a two-pack: Mr. Mac and Jack Splat, which were like short laserdisc games a la Dragon’s Lair, and if your computer was fast enough to run them, they were pretty fun! They both had total non sequitur endings: Mr. Mac, the bouncing classic Macintosh, abruptly transforms into a muscular human, while Jack Splat the amorphous blob vanishes down a black hole and we’re informed he’s failed to deliver a pizza. This one was uploaded to AOL, back when it was a walled garden internet service.

My first game for Twine was The Hole Man, which I’ve already picked apart here! It feels like coming full circle to do another wandering-weird-worlds game.

3 Likes

I’m currently in the process of writing the backbone of my first game however like many people here the experience hasn’t gone as I initially expected.

Originally I had intended to find an extension to handle some basic turn based combat but after some good advice from the community I realised the only way to handle combat properly if it was a big part of the game was to build the code from scratch.

After nearly a month of plodding away an hour or two, sometimes three a night, I have pretty much finished what I would consider the first draft of my combat extension/engine and am now chipping away at reviewing the code for any comments I had made around strange bugs or features not fully implemented etc.

The next step will be to streamline the code and bug test the hell out of it by making a small test game which should test all the most common elements to see how everything works on a larger scale.

At nearly 2000 lines of code, dozens of unique items all altering play in a meaningful way, a fairly deep turn based combat system which is automated based on certain actions and ignored for actions such as checking inventory etc., I’m proud of what I’ve achieved. The first few nights I was convinced I would never even implement some of the most basic features, let alone some more ambitious things such as status effects which remain persistent even after a battle is ended, I’m very proud of what I’ve managed to achieve at this current point in time.

The hardest decision now is to decide when to truly stop adding features and also when to stop polishing so I can actually get on with making a game.

I feel like my next big challenge will be in shifting my brain out of dealing almost exclusively with stats and variables, to the more typical things dealt with in IF.

At the very least I feel like I’ve learned a hell of a lot and most importantly I’ve learned enough about inform to be able to educate myself much more effectively and efficiently compared to when I first started.

Looking forward to one say sharing this project with the world, not sure when it will be but hopefully I don’t burn out on the idea before it’s done.

5 Likes