Thursday, May 19, 2016

Save Step game deving

Hello again!

I'm going to discuss what I've been calling Save Step developing. I know it goes by a few other names, but I can never remember what they are. This is, in my opinion, the best way to develop games by far. No matter what project you are working on or how many people are on your team this is going to help you a ton

Alright, before I dive in to explain what this is and how it works let me first discuss a few forms of developing that I've seen. I may miss some, so I apologies. But if you know of any others let me know.

To begin with I usually see people view a project as a whole and not pieces that need to fit together. This often overwhelms people and they lose track of whats important very quickly. Pretty much right out of the gate they have lost what is important and instead go for what is interesting and fun. It's hard to blame them, we all want to get to the fun bits and just get to the tedious parts when we get to them. But this often gets the developer to drop out of the project before they even finish what was supposed to be the fun part. They get overwhelmed with all they need to do and with no priority they aren't able to manage the project well.

I've seen some people essentially do a 'you do your thing and I'll do mine and then we'll put it together when we are done.' This seems fine since who ever is on the team is doing what they are good at and thus they should excel at their part. And they do to an extent. They will make some great code or art and they will be happy. But when it comes time to fit the pieces together they find there is much re-work to be done and that puts a damper on the project leaving people to drop out.
We got a basis of some ways that don't work and I'm willing to bet that any I didn't cover will be close to what I explained. So let me explain Save Step and why I think it's a much better approach.
Save step breaks the project down as much as possible. It's all about 'if something goes wrong, I can still ship it.' In the future you'll hear a lot about MVP's which stands for Minimal Viable Product. This is the bare minimum needed for the game to be playable. Save step finds what the MVP is and gets every one focusing on that aspect and making it perfect. Then, when that is playable and looking/feeling good then you move on to alpha, which adds a tiny bit more to make the game even better. A new feature, for example, may be added on top of the already existing MVP.

Let me give you an example of how it might work with a famous game we can all recognize, Mario.
What is Mario's MVP?

Do you need bowser? Nope.
Do you need Peach? Nope.
Toad? Nope, goombas? Nope, Warp tunnels? Nope, nope nope nope.

Ok, so what do you need?

You need Mario, the ability to jump and platforms. That's it. No backgrounds, no music, no SFX, no nothing.

Make Mario moving forward and jumping feel and look good and you've got a game.
Then for the Alpha build you could add Goombas and pillars. Or maybe push those off and instead have Mario walk and run instead of a static speed. Then have the Goombas and Pillars next in Beta. You'd keep adding features like the warp pipes, Bowser, Flying enemies, etc. etc. with each step until you have a game that looks and feels great.

Save Step also helps with feature creep. Wanna add some awesome feature that is going to be so fricken' sweet!? No problem, just make sure you get the base game and plan out when that feature will be added by figuring out what is needed before that feature is even worth having.
For example:

Yeah it would be sweet to have Mario shoot fire balls, who wouldn't want that. But first he needs to jump, there needs to be enemies to shoot at, It probably wouldn't be much fun without having Mario move around a bit. I also need to make a box for him to hit and have a flower sprout out and he needs to be big to shoot the fireball. Ok, no problem.

MVP = Jump, platforms, move forward and death.
Alpha = Run and walk
Beta = Overhead boxes
Capa = Goombas and death animation
Delta = Ability to grow, Mushroom movement
Echo = Flower and fireballs

Now much of these can be changed around based upon what the team feels is more important and easier to do. But you get the idea. There is a lot of steps to get to that awesome feature, but each probably seems much more do-able. It's no longer “I gotta do all of this before I get anything cool!?”. It's more “Ok, now I just need to do this, then that and I'll already have something cool then if I just add a little more it will be even better! Just imagine when I get to the last thing!”

Notice the MVP is the biggest hurdle, but once you get that done you'll already have something to show off to people and get feedback (Always remember to test!!! Test early. Test often!). It's also usually not that big of a hurdle. It's the ground work needed to make the rest of the game even do-able. It's often the easy stuff like making a character walk or what have you. The tough parts come later, but are broken down to bite sized bits. Plus, while you're working away at that tough part you can have people testing and enjoying your creation already and giving you feedback so you can limit the re-work.

With save step every one also needs to be on the same page – for the most part. There is an exception and I'll get to that. For now every one should be on the same step and communicating about what needs to be done during that step and if there is prep work needed for the next step (which shouldn't happen if broken down correctly.)

If one part of your team finishes early, lets say artists, then they can be testing the build as the programmers catch up. This allows every one on the team to be playing the game -which you should do. - and It helps let every one know what needs to be done still. Each step should also be punctuated by a round of testing to help every one on the team get familiar with their product, how it works and how it looks. If you ignore testing then you don't know what your game is lacking and you'll never be able to really improve it.

After the round of testing the whole team can move on to the next step. But to move on the previous version must look awesome!


******* A quick note*****
Notice I never say the game should be perfect. If you are a perfectionist you will have one hell of a hard time. Your game, your art, your product will NEVER be perfect. NOT EVER! There is no such thing as perfection. You can only do good, great, amazing and so on, but never perfect. Does this mean you should skimp or neglect? Of course not, why are you being so silly?
No, you should try your hardest and of course make something you are proud of, but you also can't waste your life on one aspect of one game. You'll have other chances, other games and other projects. Move on and get the game out the door. No one cares about a game they can't play. No one cares about a movie they can't watch and no one cares about a book they can't read.
Sorry about that rant, but this topic kills projects.
*********End of side note*******


Ok, so I mentioned an exception to when people might not be on the same step. That exception is the MVP to Alpha phase. The only reason for this is you can't test the game yet, potentially. If you can't test it then the part of the team that isn't working needs something to do. They may move on to the next step or they could be doing research, marketing, gathering resources, etc. etc. There is a whole slew of things that can be done, but some times it's just best to let them move to Alpha and get a head start. However, once something is playable they should be playing it and also have that round of every one play testing.

Save Step also helps kill babies. - Its a term! I swear, I'm no a jerk!-
The features of the game that really aren't needed should be pushed to the back of the line in save step. Going back to the fireball in Mario; It would be cool to have a fire ball and it's fun to shoot it and you feel powerful. But is it needed? Would the game be enjoyable without it? If you were running out of money or time would you feel that fireball is absolutely needed for the games survival? Will the game die before it was born simply because it lacked the ability to shoot fireballs?
Of course, it would! Fire balls are awesome!

But seriously, No the game doesn't need fireballs. It still would have been fun and enjoyable without them and if the the team ran out of funds or time the fireball would be one of the first things to be cut from the game. Maybe in the sequel you can have fireballs.

So that’s a look at Save Step development. It's a great way to organize a team and keep every one on track. It breaks down an overwhelming project into bite sized tasks and encourages team communication. It helps limit feature creep while ensuring that at any point in time the product you've worked on so hard can be shipped and you still would feel pretty happy with it.


As always, if you have questions, comments or the like I'm always happy to field them.

Hope ya enjoyed this piece and next time I'll cover a topic that really sparked this blog. How to start developing a game without going digital. This topic will cover how to save money, rework and -in the long run – time.



No comments:

Post a Comment