Logo

dev-resources.site

for different kinds of informations.

What I've learned from my 2nd Game | Teddy's Crew

Published at
2/24/2020
Categories
phaser
gamedev
javascript
postmortem
Author
tuskat
Author
6 person written this
tuskat
open
What I've learned from my 2nd Game | Teddy's Crew

Brief project recap

Teddy's Crew is an old-school action arcade game developed in Phaser 3.

It's my 2nd game project and it took me roughly 70+ days of work across 8 months.

It's a simple game where you try to survive as long as possible an endless wave of enemies.

The game was named Teddy's Crew as a pun with the name of a certain actor. Initially I wanted to have a cast of bears that are descendant of Teddy. Current game have one character : Torb, the fire type bear.

Before you start reading

There is a specific context to this post-mortem: I am developing games as a hobbyist, in my free time, over the span of several months usually, for the sake of it.

If it's something that you're interested in doing but you've been hesitant in starting, don't let this article deter you. I'd say you're better off reading What I’ve learned from my first game | R0d3nt since it deals more with creating a game for the very first time.

With that said, I don't write these to discourage people.
I try things, then I make mistakes. I try to learn from them,
then I share my experience.

What is down there are problems I've faced and solution I wish I had when I faced these.

What went well?

Completion

The fact that I was capable to "finish it" (again) is success to me.

Unlike R0d3nt, I started really small, and tried to build up from here, so it was in a serviceable state really early on in development.

I've made a big part of the art, and I've learned a lot on how to add finish and pizzazz to a game. I do believe it's a more polished product than R0d3nt, even though it's also a smaller package.

I am very pleased with what I did, and I want you to remember that before reading the next section.

What went bad?

Feature Creep

The game did start with a simple design : you are a bear, you fight fishes. Then I went and included experience, levels, a combo system, etc...

I wanted to add a character selection screen, each bear would have their own set of skills, making each character feels like their own mini-game within the game.

More enemies units were planned, items drop were planned, Boss were planned. Until they were finally chopped off. It's all here for the curious.

In the beginning, you feel invincible : Of course you're going to do all of that, you see how fast you're going through your task, there's no way you will just not reach the finish line.

Feature creep is exactly that: a creep. It's not obvious, it's slowly seeping in your mind, telling you "do better, or else", "you can't just stop here", "it's a little bit embarrassing to show this after 8 months of work, isn't it?" and then you hit roadblocks :

  • A feature that just won't work correctly
  • A bug that keep reappearing
  • The rebuilding time + testing become tedious
  • The voice in your head reminding you that it's not "good enough" to be shown just yet

Each and every minor inconvenience pile up and suddenly working on this passion project become a chore. As you slow down you realise : it's going to be way longer than expected.

It become harder and harder to justify working on a free game during your free time. It's still work after all. A lot of it too.

People around you keep giving you input on how better it could be. They don't mean anything bad, most of the time it's helpful.

It's just that collectively, it piles up fast, and you're suddenly expecting a lot more than anticipated.

You're not an indie studio doing a 19.99$ game, yet you work like it.
You're not going to put on the app store, yet you work like it.
You're not going to make money out of it, yet you work like it.

All that passion, all this momentum, all this adrenaline from the beginning is just gone, and it's next to impossible to keep going.

Work is in the way too.
Life is in the way too.
A lot of things are in the way actually.

So what do you do?

You aggressively cut corner. You wrap the project up, and you move on.

Remind yourself for next time: you're the one on the driving seat.

  • Not every feature you learn to make have to be part of that game. If it makes no sense in that game, drop it. You already learned how to do it, you'll do it again when it make sense. It's not wasted effort.

  • Not every input your friends make, no offense to them, have to be valid for that game. You're the only one who know the scope of it. Games always have potential, they'll always have space for more, it's up to you to know when it's ok for your game to not be more than it is.

  • Not every dream ideas you have have to make it for that game. Games with the strongest identity, they don't have myriad of features, it's a limited amount of mechanics you wrap the game around. Be aware of your game identity, be mindful of the features you want in, and more specifically out of it.

If you have a clear idea of what your game is supposed to be, say no to extra features:

You have your reason, it's your project, don't let anyone/anything get in the way of your creative process.

And if you don't have a clear idea of what your game is supposed to be :
Take your time in pre-production. Even for some of the best studios out there, pre-production (design, sketches, ideas draft and whatnot) can be 1/3 of the time spend on the game.

Speaking of time I have mentioned that I'm embarrassed of the time this game technically took.

In a "Do what I say, not what I do" fashion I'd like to tell you, and myself : "It doesn't matter".

You have your reasons, you have your own pace, and you have your own idea. At the end of the day, if you deliver it, count it as a win. It is one. A big one.

If you have to take your time, then take your f*cking time.
If you want it simple, then keep it simple.

It's okay. It's more than okay. You've done it. Appreciate it.
And take care of yourself.

Until next time,
Best,

Tuskat

postmortem Article's
29 articles in total
Favicon
Postmortem: The Popcorn Panic
Favicon
How I stopped RSpec from spiking to 2x runtime
Favicon
The Day the Web Stood Still: A Firewall Configuration Catastrophe
Favicon
Why I decided to get bad grades in college
Favicon
Zuri Booking Engine Outage - Incident Report and Recovery Analysis
Favicon
Postmortem: Outage Incident on Thavmasios Online Store
Favicon
Postmortem: Nginx Server Failure
Favicon
SRE book notes: Postmortem Culture
Favicon
Postmortem reports: How to get the most from failure for massive growth
Favicon
Post-mortem: 1h30 downtime on a Saturday morning
Favicon
Incident report (Postmortem)
Favicon
What can we learn from the Facebook outage?
Favicon
Retrospectives or postmortems?
Favicon
Where to start with DevOps
Favicon
Incident Retro: Failing Comment Creation + Erroneous Push Notifications
Favicon
Hidden dependencies and the Fastly outage
Favicon
Gamedev.js Jam 2021 post mortem
Favicon
How to do a postmortem without any preparation
Favicon
A Star Trek Postmortem
Favicon
Duplicate Digest Email Incident Retro From January
Favicon
Post-Mortem: Outbreak Database
Favicon
What I've learned from my 2nd Game | Teddy's Crew
Favicon
What I’ve learned from my first game | R0d3nt
Favicon
Project Nodetree recap ~ AoaH Eight
Favicon
Postmortem of Incident on 08 June 2020
Favicon
Postmortem of Root Certificate Expiration from 30 May 2020
Favicon
40,000+ Users in 3 months... Story of a Product I built
Favicon
Post-Mortem: LinkedIn Talent Intelligence Experience
Favicon
Maximize learnings from a Kubernetes cluster failure

Featured ones: