• Home
  • About us
  • Articles and Tips
  • Contact us

Articles

Home / Articles / Postmortem: The whole indie gamedev thing

Postmortem: The whole indie gamedev thing

Posted on: 02-14-2011 Posted in: Projects

Preface

This is the last part on a series of project postmortems I’ve been publishing. If you want more background details, you should read:

  • So about that game
  • It always start simply enough
  • Focusing on gameplay design
  • The not-so-artful dodger
  • Lost in translation
  • Laying tile
  • Quality improvements
  • Detail begets detail
  • Stage testing
  • Excess in moderation

Introduction

Last June at the Game AI Conference someone asked me “so are you doing the whole indie dev thing?“. I replied without any hesitation: “not exactly – I’m mostly a stubborn hobbyist“.

Even if at this point I had already decided to cancel Wallachia (or at least put in indefinitely on hold) I didn’t realize until a bit before I began writing these postmortems that had he asked that question a few months before, I would have answered affirmatively.

What changed?

I had re-learned a fundamental lesson: domain knowledge is everything.

That’s business-speak for “you have to know what you’re talking about“, which I would expand with “if you haven’t personally done something yet, shut up“. Funny enough, I already knew that. A lot of my background is on data analysis and the more traditional side of AI, and when developing a system nothing whatsoever beats having someone with good domain knowledge on your side.

Modesty aside, I’m a damned good project manager. I can deliver projects on against a specification and on budget, and if you’ve done any sort of business development you probably know that’s a rarity. I’ve also done a fair amount of game development contracting, always keeping to the estimates I’ve given to clients.

Put the two together and hey, insta-gamedev magic, right?

Um… No.

During development of Wallachia I found things taking longer and longer than planned, schedules and deadlines always slipping. Part of this was an issue with contractors, but it also happened on tasks I’d set for myself.

Why? Not only should I had been able to foresee and handle those delays, I should have at the very least kept to my own estimates. So what was going on?

Truth is, I only believed I actually knew what I was talking about. No matter if you consider Producer to be a fancy way of saying Game Project Manager, the fact is that I am good at leading projects because having gone through so many, I have a very good grasp of what can go wrong and where. This experience allows me to see problems coming, and to do something about them before they became an issue.

Not so for games. I had disregarded the fact that my experience as a game contractor had isolated me from the rest of plumbing of making a game.

Since I’d never managed artists myself, I did not have my glasses calibrated to focus on the red flags, only seeing them when they smacked me in the face. Never having commissioned art before, I didn’t know how to judge model estimates. Clearly I had even underestimated the time to put all the pieces together for a scene. And how do you even begin estimating game design time when you have fairly little game design experience?

But let’s look at the balance sheet for what went right and what went wrong.

What went right

1. Clear vision of the game and gameplay styles

I had a clear vision of the game style pretty much from the get go. While initially I toyed with the idea of making the game more oriented towards larger scale wargaming (think BattleLore), I decided relatively quickly that the squad-based approach was much better. This informed the rest of the decisions I made through the process and acted as a guide for the choices in the design.

In the same way, focusing on gameplay design and playtesting from the start helped in getting out of the way early on decisions that seemed good on paper, and which playtested well when you had two people playing on a table, but which made creating a competent AI opponent significantly more complicated (and would have had a direct impact in development). On top of that, the decision to change from full alternate turns to a staggered unit activation brought the gameplay closer to the fast squad feel I was aiming for, validating the approach.

2. A solid foundation

It might seem like a minor thing, but the fact that I had a good codebase from past experiments and personal projects to build on made the initial prototyping and start up significantly faster. This allowed me to experiment with randomized stage generation and testing knowing that the hexgrid code was stable, focusing the initial development on the features that were specific to the game. It would also save a significant amount of time later on, when my focus had to shift more and more from development to production.

3. White-boxing and playtesting

While not something I went over explicitly on the postmortems, a key part of having a well-tested gameplay system was trying everything first with the most basic components – a mostly empty hex stage with red and blue colored boxes representing units, their name floating above them. This approach carried on to the stage creation, when we first created a big white sketch of Yuriy Mazurkin’s concept stage and tested with it before adding any further detail.

4. Learning the ropes of production, setting up an art team

While I had initially underestimated how much production domain knowledge I needed to acquire, the learning process went well and I was able to set up an art pipeline that ran smoothly with relatively little intervention. Once I had learned to recognize red flags on contractors and had found responsible, professional people, the art production mostly ran itself and I was able to focus on development and integration.

5. Narrowing things down

The initial scope was even larger than what we have discussed here, with a high level gameplay revolving around areas of control (which directly affected the resources you had on any skirmish depending on where it took place) and a byzantine plot – clearly a case of blue-skying things. I very quickly mapped out how long this dual-level gameplay and excessive narration was likely to take and chucked it out the window (or more specifically filed it away for a future version, if at all).

Needless to say, this was the right decision – I had my hands more than full throughout the process with what I did decide to do, and had I attempted to do not just the skirmish level gameplay but having to calibrate the area of control decisions as well, the scope would have been beyond what I could have handled myself (and beyond what one should even attempt in such a microscopic team).

6. Leaving visual effects for later

As I discussed on Detail begets Detail, getting great art is one thing, but getting that great art to look right is an entirely different matter. When I first imported the models into Unity and saw the way they looked with the default shaders, I got the impulse of going out and immediately hiring a contractor to work on custom shaders for them.

I quickly came to my senses. Not only weren’t the shaders a blocking issue (there wasn’t a single part of the process that could not proceed without them), but they would be a distraction: I would need to find a contractor, preferably one experienced with Unity, give him some background on the project, collect a list of things to create, evaluate the work, possibly pass notes back to the modelers, and so on.

This would have incurred a double cost: the time it consumed on my end (I was already spread thin enough) and the actual cost of developing the shaders. Considering I ended up freezing the project, the decision to postpone development of a non-fundamental part was the right one.

What went wrong

1. Not dealing with contractor red flags earlier

I’ve gone over this topic extensively on two previous posts, but I should have dealt with the first company I hired for art much more swiftly than I did. There were several obvious red flags, from their assigning untalented plagiarists for the work to disregarding the documentation and references to continual delays and slow progress, which indicated that things would end badly. Had I dealt with these and found new contractors immediately, I would easily have saved a couple months of development time and quite a few headaches.

2. Underestimating the time art production took

Yes, I’ve mentioned this multiple times, but I don’t think I can go over it enough. Jumping into this project without enough domain knowledge of all the moving parts involved in producing a game put me in a situation where even once I had found professional modelers, I was unable to evaluate upfront the time that creating a model with a certain level of detail would take, or what the likely delays on the modeler’s estimates would be (seeing as they had other obligations as well).

Had I had that experience, I could have calculated based on the concepts and proposed detail how long each piece was likely to take, and not only balance my schedule accordingly but estimate if the total length of modeling was something that the project could take.

3. Oooh! Shiny stuff!

I did my own fair share of getting sidetracked into pursuing shiny concepts, such as the procedural stage generation. It could be argued that these were important to the project, seeing as we are a small shop and anything we can procedurally generate could save us a significant amount of time over things that need to be produced manually, but procedural stages weren’t a fixed part of the project charter at the start, just something I wanted to have (and which I discarded later on when I saw Yuriy’s stage concepts).

4. Obsessing over art production

Oh boy. This was a tough one.

Ovidiu and Matei did an excellent job of creating the character models, which made it very difficult for me to see the game afterwards in any detail level except the one they had crafted. As I mentioned on the post: Needing [those models] wasn’t an issue, now that I wanted them.

But you see, that wasn’t the intended level of detail for the models. I had originally envisioned them as something simpler, static, faster to produce. But not heeding Lao Tzu‘s warning, I was not content with what I knew I could produce in a reasonable timeframe, and aimed for what I thought I could get away with. It wasn’t until I took a step back and analyzed how long production was taking (for which I first needed to move a few characters through the pipeline) that I realized that the approach was untenable.

This cannot be said often enough: if you’re running a small team, do not get too tied up on static content. It’ll be the death of you.

5. Getting tied up in story

Again something that we haven’t gone over in detail on any of the postmortems (even if I had one planned with the title Your story sucks – and so does mine), but which permeated the whole project. I’ve always been into world-building, and a big part of what was driving me for the game was the desire to tell the story for these characters. Even once I put the more elaborate plot in the backburner, my mental images of the characters fueled the desire to see the models reflect them, which fed into the obsession with art production.

But it’s not about art production, it’s not about story, and it’s not about those characters you have been carrying around in your head for a while – it’s all about gameplay. That’s what you should be focusing on. If you’re spending time on peripheral concerns before you’re done implementing your gameplay, you’re doing it wrong.

6. Wearing too many hats

But of all of the above, what went really, really wrong in the project was that I was trying to wear too many hats. I was simultaneously:

  • Doing client work
  • Learning game design
  • Working on gameplay and AI implementation
  • Learning production and setting up an art pipeline
  • Finding contractors and coordinating between them
  • Doing world building level design

I was trying to juggle too many knives, and eventually I was going to fumble one and it would end in tears. By the time it looked like I had to dive into production again to set up another art team (or expand on the current one), I was already burned out and had realized that the approach needed some serious re-evaluation.

In conclusion

And after this very long process, what have I learned?

Other than the lessons I mentioned on the various post, I’ve learned that not having completed a game fully produced within Arges yet, I’m still a hobbyist at this whole producing thing. I learned that lesson the day I decided to put Wallachia on ice, so I could switch focus to something simpler first. I’ve learned the ropes as I go, but I’ll be damned if I assume again that I know what I’m talking about until I’m done. And in case there was any doubt, I’ve learned I’m stubborn.

Which brings our current project, and how we’re doing it. More on that soon.

About the Author

Ricardo J. Méndez

  • Popular Posts
  • Related Posts
  • Quick SteerToFollow example
    Quick SteerToFollow example
  • Screenshot Saturday 20110813
    Screenshot Saturday 20110813
  • Screenshot Saturday 20110806
    Screenshot Saturday 20110806
  • UnitySteer - AutonomousVehicles and Bipeds
    UnitySteer - AutonomousVehicles and Bipeds
  • Postmortem: Excess in moderation
    Postmortem: Excess in moderation
  • Postmortem: Stage testing
    Postmortem: Stage testing
  • Postmortem: Detail begets detail
    Postmortem: Detail begets detail
  • Postmortem: Quality improvements
    Postmortem: Quality improvements
  • (15) Comments
  • (1) Trackbacks
  1. Darrin Thompson02-14-11

    Thank you so much for this series. Every post was a gem. Someday when I fail to deliver in a public way I hope to be just as frank about it as you have been.

    At the end of the day you still have some gorgeous art.

    (reply)
    • Ricardo J. Méndez02-14-11

      Hi Darrin,

      I also got a pretty decent codebase out of it, but that’s harder to showcase.

      Part of the thing is that I was keeping the project very quiet, so I could just have pulled the plug silently. Heck, I cancelled the game back in May 2010, but didn’t publish a single thing about it until I started the postmortems in November. Still, I thought that evaluating the process in a brutally frank way had value, if nothing else as self-flagellation. It helps in reminding myself of the lessons learned, and these likely have value for others as well.

      Thanks for the comment!

      (reply)
  2. Scott M.02-14-11

    Ricardo:
    I, too, really enjoyed each one of your postmortem posts and always looked forward to reading the next one. Thanks for taking the time to write and share them with us.

    (reply)
    • Ricardo J. Méndez02-14-11

      Hey Scott,

      Glad you enjoyed them. I intend to keep writing weekly, to keep the discipline, but I’m still unclear on how early I’ll start discussing the current project (or in how much detail). I really want to avoid focusing on discussing it instead of creating it, but I’m sure there’s a reasonable middle ground.

      (reply)
  3. Kristjan Poogen02-14-11

    Great series, I personally learned a lot about the pitfalls of development.

    (reply)
  4. BobC02-15-11

    Hi Ricardo, and thanks for this great post-mortem post! One little question lingers in my mind, though. When you said:
    “This cannot be said often enough: if you’re running a small team, do not get too tied up on static content.”

    What did you exactly mean by “static content”? Did you mean static content in terms of production (i.e. create once, use ad-nauseam; say, a chair model)? Or did you mean assets that are static in terms of implementation (i.e. a chair would be static, while a moving character would be non-static)?

    (reply)
    • Ricardo J. Méndez02-16-11

      Hi Bob,

      I meant content that is static in terms of production – content you need to handcraft and it then remains static.

      Your chair example is a good one: why are you creating that chair? Is it an integral part of your game, which you can then use to feed into a producedural engine to create a variety of rooms, or are you creating several types of chairs by hand, to then set up into your individually designed rooms on your manually arranged building? Does all this handcrafting actually bring something to your game?

      In our case static content came in two forms:

      Unit models
      Stages (which were originally procedural)

      The latter case is the deadliest one, as the static stages were for the most part one-use, but even the character models, which would have been re-used throughout the stages, had a significant time cost not only in creation but on their ancillary requirements like shaders.

      While you might need this static content in your game, don’t get hung up on it – don’t depend on it, and keep that part of production as small as possible.

      (reply)
  5. Artem Koval03-18-11

    Hi!

    I’m very interested in this phrase “do not get too tied up on static content”. Can you clarify please what do you mean by “static”? Is it kinda “without animation” or is it more about “stuck in one vision”?

    Best regards, Artem Koval.

    (reply)
    • Ricardo J. Méndez03-18-11

      Hi Artem,

      See my reply to BobC just above this comment.

      (reply)
      • Artem Koval03-18-11

        Ok, thanks.

        But this question is very crucial for me. I want to dig a little more.

        If I understand you right the static art is the art which will occur only 2-3 times and this is bad for indie teams. And if you’re asset will occur up to 100 times this is good time investment.

        Correct me please if I’m wrong.

        Best regards, A. Koval.

        (reply)
        • Ricardo J. Méndez03-18-11

          If there’s content that:

          1) Is not easy to change once created (like models)
          2) Has a high creation cost (in days or weeks rather than hours)
          3) Has ramifications across your game

          Be very, very careful. Avoid going there unless you have money to spare or it’s the core of your game. Like in my example above, even if you are re-using the figure of a grunt solder on every stage, it’ll:

          - Take a while to create, UV-map, texture up to your game standards, etc.
          - Once textures and UV-mapped, those details can’t trivially change in a major way without needing a re-do.
          - Has implications across your game, since a soldier needs to fit on the over all style, will require animation logic, shaders, testing, and so on.

          Moreover, once you’ve spent all that time in a grunt, how can you justify not spending even more on your main characters? The bill adds up very, very quickly, as does the time required to coordinate everything. The same goes for music, narration, dialog, and anything else you can think of where you answer yes to the questions above.

          Since you mention indie teams, my advice would be: if it’s not the core of your game, don’t spend time on it. Period. It might be a neat asset, but one neat asset doesn’t stand on its own. Spend your time and money on gameplay first.

          (reply)
          • Artem Koval03-19-11

            Thank you very much for this deep answer! The last paragraph is the very mantra of indie teams. :)

            I will spend time with my design document and this advices in mind. It seems that we’ve already cut major part of non-core assets but it’s still worth re-checking few times before production phase.

            Best regards, A. Koval

  6. Alex04-12-11

    Hi Ricardo,
    very nice series. As I am a hobbyist myself, trying to get more time to work on the project and very low budget to spend I think I really have something to learn from each episode.

    I have a question about the art part: could you give a rough estimate on what an independent guy/team might expect to pay for some custom made art? I’ve been struggling a little online to get the answer to this but answers are either too vague or non existent.

    again thanks a lot for the time you put into it.
    Alex

    (reply)
    • Ricardo J. Méndez04-12-11

      Hello Alexandru,

      You probably haven’t gotten a single answer because it depends on too many factors: it’s a bit like asking how much does a car cost. Are you in it for a used Honda Civic or do you want a Porsche? If you want a Porsche, will you actually be able to drive it where you’re going, or do you need a 4×4 for rugged terrain?

      In the same way, you need to specify if you’re going for 2D art or 3D art. If 2D, how will it be animated (if at all)? To what level of detail? If 3D, how many triangles? What level of detail do you expect on the textures? Do you want a normal map for the models? In what style? Things like the experience of the contractor will also have an effect, as you could work with someone cheaper, but who requires significantly more overseeing so you can catch mistakes, or who simply doesn’t bring as much to the table as a more creative modeler.

      I’m afraid there isn’t a one-size-fits-all answer. The best I can suggest is: 1) figure out your requirements, 2) find someone who has a good portfolio on that style, 3) ask them for rates. If you have more than one people with what you judge are similar capabilities but different rates, weigh your decision towards the side of the person with the better references.

      Hope this helps.

      (reply)
  7. Wendelin02-10-12

    Hi – thanks for sharing and for leaving this post on your website for future developers. It was a very valuable read, I’ll keep your words of caution in mind. Best /W

    (reply)

Leave a Reply

Click here to cancel reply.

  1. Postmortem: The whole indie gamedev thing | Game Development03-20-11

Recent posts

  • Hairy Tales Previews
  • Quick SteerToFollow example
  • UnitySteer – AutonomousVehicles and Bipeds
  • Hairy Tales progress – new elements and a boss
  • Public Alpha 2

Recent comments

  • Ricardo J. Méndez on Quick SteerToFollow example
  • Ben Ezard on Quick SteerToFollow example
  • Ricardo J. Méndez on UnitySteer 2.1 released
  • Elie on UnitySteer 2.1 released
  • Ricardo J. Méndez on Upcoming changes to UnitySteer
© 2009-11 Arges Systems Inc.. All Rights Reserved
TwitterStumbleUponRedditDiggdel.icio.usFacebookLinkedIn