Gameplay Video #3

Here’s some gameplay I recorded last weekend. This represents almost two months of work since the last video. Some of the highlights:

  • Lots of new art. Room interiors, cars, fire hydrants, road blockers, item pickups, bombs, and more!
  • New weapons: bow and arrow, baseball bat, frying pan, stick, hockey stick, etc.
  • New enemies: Turrets, robots, drones.
  • Simplified inventory system.
  • Simplified controls.
  • The city is much more maze-like, with a golden path to follow right to the end and side paths that have treasures hidden in them.
  • You can buy stuff from stores.
  • Added bosses (just bigger versions of other enemies for now).
  • Rolling into pots makes them break.
  • Added batteries to power secondary weapons (wand and bow and arrow).
  • Added labels on the ground to help you figure out where to go.

Bow and Arrow

This is something I’ve been meaning to get around to for a long time.

Bow 2

This is the first weapon that attaches to the left hand instead of the right hand. The shield also attaches to the left hand—hopefully I’ll be able to get it looking okay when you’re holding both the shield and the bow.

This is also the first weapon that I made a custom animation for. The wand, sword, punching, and all the other held weapons use the same animation.

This is still a little rough. In particular the string on the bow doesn’t animate, and also intersects the player geometry. But when you’re playing I think you might just not notice that.

On Sticking With It

I’m back to working on Adventure Delivery Service after working on a different project for a couple of weeks. Here are some of my thoughts as I’ve struggled to figure out whether to continue working on the project.

One of the great things about doing solo dev is that you’re not stuck to any particular plan or schedule. I can wake up in the morning and work on what I feel like working on. If I want to prototype some new mechanic, or model a new enemy, or make a new sound effect, I can do that without having to run it by a producer or triage it against a task list. That sense of adventure, possibility, and productivity is one of the reasons I decided to do a solo dev project.

For the past couple of weeks I felt pretty strongly that ADS wasn’t what I wanted to be working on, so I put together a prototype of another game that had been floating in my head for a while, which was a MOBA-style capture the flag game in the browser. I learned a lot about WebSockets, TypeScript, and NGINX, and I’m pretty proud that I was able build a playable multiplayer game and deploy it to the web.

In the meantime I had a chance to reflect on ADS, and my mental and emotional relationship to the project. And I decided that while taking a break for a couple of weeks was a perfectly healthy way to clear my head and gain some perspective, the best thing for me to do now is stick with ADS, even though the honeymoon phase is over.

Over the course of developing ADS so far, the direction and scope of the project has changed a lot. It was originally going to be a multiplayer, open-world, procedural, open-ended ARPG. Now it’s a single player, much more linear, roguelite procedural death labyrinth. I’ve ended up prototyping and then cutting more features than I’ve kept. I’ve spent a lot of time dealing with leftover complexity from features that aren’t important anymore, and refactoring code after underlying assumptions about the direction of the game changed.

So progress has been slower than I hoped it would be. My expectation for how much longer this thing will take to finish has been growing and growing.

One of the things you hear over and over about game development is that success stories are almost always preceded by many failed attempts. I only have so much runway, and I had been planning to make several attempts at success before my runway ran out, so that I could learn from failure and then do better. When I realized that this was going to take a lot longer than I thought, I started seriously thinking about starting a new, smaller-scoped project instead.

I have a philosophical belief that indie games should cut corners wherever possible in order to focus on the core differentiating aspects of the game. The advantage an indie studio has over a better-funded team is that it’s able to take risks other projects aren’t willing to. In order to succeed, you don’t want to compete on traditional metrics of quality like graphics. Instead, you want to give the player an experience they’ve never had before.

At the same time, I have a practical, cynical belief that traditional polish on things like graphics is what sells games—even a savvy indie customer will form an immutable opinion of a game based on the first few seconds of gameplay that they see.

On ADS, I found myself not living up to my indie philosophy. The gameplay was shaping up to be a lot like existing roguelites. A lot of the reason my projected timeline was expanding was because I was spending time on traditional presentational polish. Was I failing to adhere to my motivation for making an indie game in the first place? What if I quit ADS and instead made a game that was intentionally super lo-fi—I would be able to cut a lot more corners, avoid a lot of this extra work, and ship a finished product way faster.

There’s no easy answer to this question of balance between core gameplay innovation and presentational polish, given limited time and budget. Getting people to notice your game is impossibly difficult. The internet is full of people working on indie projects, and a person only has enough attention for a couple of them. To be honest, if I were someone else and saw my game right now I probably wouldn’t be that interested in it.

It’s incredible the weight a single piece of feedback can have on your opinion of the game. A suggestion about aesthetic direction can result in a total change of course. A piece of negative feedback can make you question entire mechanics and systems. Even positive feedback can make you wonder if the person just didn’t see enough potential in your game to give you real criticism. And a single tweet that doesn’t get any likes can make you wonder if anyone will ever care about your project.

I found myself comparing my project to whatever indie games were getting the most press or retweets on a particular day. Comparing your own partly-finished thing to someone else’s finished, polished thing is a great way to convince yourself that you’re on the wrong track.

In order to make the game worth playing, you need to be open to critical feedback. In fact, the more critical the feedback the more useful it is. You need to be open to criticism without becoming defensive in order to understand the project’s flaws and figure out how to fix them, while also maintaining a healthy distance from the criticism so that it doesn’t impact your morale. You have to understand that you are not your project; your project’s flaws aren’t your flaws.

All these factors together—the realization that this first project was going to take too much runway, feeling like this project was too conventional and would never be really notable, that the best course of action might be to abandon ADS and work on something else, meaning months of work would have been a waste—became too stressful for me. At the worst I was having minor panic attacks and nights of no sleep.

So I think it was good that I took a couple weeks off of ADS to work on something else. In retrospect, maybe that was my way of transitioning from the early, eager stages of the development cycle into the mundane grind of finishing a thing.

I’m incredibly grateful to my friends and acquaintances who have taken the time to show interest in ADS, played early builds and given me feedback, and shared their own experiences making games. Many have gone through a similar experience of becoming disillusioned with their project partway through. It’s an open question whether the lost excitement from the sheen of a brand new project ever gets replaced with confident satisfaction that you’ve done a good job. It may be that once you feel underwater you’re just going to be swimming until the thing is done.

The sources of comfort I have now are:

  • The trough of despair is normal. It doesn’t mean I’m doing anything wrong, or that I should stop working on the project.
  • Every day I work on the project it gets a little better. If I keep making it a little better every day, after a lot of days it will be a lot better.
  • I may never have a better shot at finishing an indie game. Whether or not this thing ends up being a “good” game, it will be a reflection of my work at this time and place, and as such it will have value.

This has been a learning experience, but not in the ways I thought it was going to be. I guess, what’s the point of a learning experience if it only teaches you what you thought it would?