DEV Community

Cover image for What I've learned from my 2nd Game | Teddy's Crew
Cedric Marcellin
Cedric Marcellin

Posted on

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

Top comments (8)

Collapse
 
yougotwill profile image
Will G

I'm curious about your thoughts on using JavaScript in Game Development? I have a couple years of Unity experience but I've moved to Web Development and am interested in making games in my free time using js for learning purposes.

Collapse
 
tuskat profile image
Cedric Marcellin

I've been enjoying game development using javascript, well mostly typescript, so far.
Easy to get started, lots of documentations/samples (on Phaser at least).

I had to learn first about game development rather than the language
(How to make good controls, physics when needed, UI, animations, etc...)

But it's also a great occasion to learn about more tricky part of the language, like inheritance and decorators in typescript.

Biggest pet peeve is wrapping your app in Electron/NW.js, which makes
it a little bit bloated and ressources heavy when your game is really just a small experience.

I'd also say if you have ambitious project it'll show limits earlier : assets have to be optimised
or it might slow down both loading and in-game frame rate. There's also cross browsers issues to think about, amongst other things.

It's more than enough for most of the things I've worked on, and it's fun. It's just not the most powerful way to make games out there :)

Collapse
 
yougotwill profile image
Will G

Awesome thanks for quick response! You have given me some food for thought. Looking forward to future posts.

Collapse
 
slowry96 profile image
Samuel Lowry • Edited

I appreciate talking about feature creep. It's such a problem in the game development and web/software dev industries today. Usually coming from to much meddling from upper management of some sort. But, on a personal project it's nice to see it recognized as such a problem. The best indie games out there focus on a core design feature and play loop and perfect it. After all it's better to be an expert at something rather than a master of none. 😀

Collapse
 
tuskat profile image
Cedric Marcellin

It is. I see it as the biggest problem on my end.
I'm not the most technical person in the world,
but I still can achieve most things I set my mind to do.

Because of that it's so easy to add just a little bit more to my project until I realise each thing can add an exponential amount of complexity.

I guess my next challenge would be to make something with one single feature and stick to it no matter what :)

Thanks a lot for taking the time to read and comment :D

Collapse
 
samsour profile image
samsour

Great work again!

For me the hardest part really is to set a limited list of features that will be implemented in the game. My lists are pretty much endless therefore I don't feel like I reach my goals ever. That can be frustrating.
Have you ever thought about a multiplayer? Maybe socket.io?

Btw: your last commit in your electron package.json made me laugh :D

Collapse
 
tuskat profile image
Cedric Marcellin

Thank you!

It's definitely not easy to deal with that. Especially if it's an open project with no deadline.
I think asking yourself how much time you actually want to spend on the project might help a little bit.

Maybe doing something like #100DaysofGameDev or similar challenge would help in scoping down :0

Twice I've thought about making games using socket.io, twice I've just made a single player instead. I'd love to actually make that one day!

Hehehe yeah I work on different machines and I updated that thing so many times it got me a little bit fruity about it :'D

Collapse
 
michaeltharrington profile image
Michael Tharrington

"The game was named Teddy's Crew as a pun with the name of a certain actor."

Phew! I'm relieved this isn't a Ted Crews (American politician) pun. 😅