1. Code
  2. Coding Fundamentals
  3. Game Development

The Dynamic Priority List: How I Manage My Gamedev Projects

Scroll to top

Planning a game project and staying on schedule is hard. To keep on top of things, I use a simple system—no apps required, just a pen and some paper. This system drastically improves my scheduling and development process, so if you're always falling behind, give it a try! I think it could help you too.

Why I Like the Dynamic Priority List

When I worked in the game industry, I experienced a “death march” first hand. A combination of two large projects and poor scheduling lead to 18-hour days for months on end.

Since then, I've studied many methods for planning projects, ranging from wikis to specialized computer programs, but I've found one tool that surpasses them all: a standard notebook.

Wikis and apps take time to learn and maintain, and most developers I know would rather spend that time making a better game. As the old saying goes, "the best tool is the one you'll use”; this is the amazing strength of an everyday notebook.

Starting Your List

The Dynamic Priority List is simply a list of tasks that will evolve over time. It begins with a broad overview of the tasks you need to accomplish to finish your game:

Dynamic Priority List Broad OverviewDynamic Priority List Broad OverviewDynamic Priority List Broad Overview
A dynamic priority list, showing the broad outline of a project.

Obviously, this isn't a full plan. Your goal here is simply to have a place to visualize the big picture. It's too easy to forget about that options menu or loading interface when you're neck deep in code and behind schedule.

Now, sit down and work normally. The less time you waste with your new planning tool, the more likely you are to use it.

Working naturally, you'll get a clearer image of each element that needs to be completed. Cross out the broad overview items such as “Gameplay” and replace them with specific features that you need or are even just considering.

Dynamic Priority List Revised and AnnotatedDynamic Priority List Revised and AnnotatedDynamic Priority List Revised and Annotated
A dynamic priority list, with annotations.

As each item pops into your head, quickly add it to the list without taking your mind off your current task. Don't worry about how to implement it or whether it even fits the game, just add it to the list so that you can deal with it in the future.

Advanced Shorthand

Did you notice the question mark and arrows on my list?

As you get used to using the list, you can leave notes for yourself. This shorthand can remind you of things at a glance, and you should customize this to fit your own development style.

For example, I use the following:

  • Question mark: For any task that I'll need to think about—either a design question, or how to implement it.
  • Arrows: For any tasks that are linked in logic or in code. These will likely be implemented at the same time.
  • Slash: When I have two options that I'll need to choose between, I'll link them with a slash.
  • Swear words: For anything that I dread and don't want to do. This serves no valid purpose, but it makes me feel good.

Remember, customize your shorthand to what works for you!

Nightly Ritual

Every single night, when I shut down my computer, I perform a series of tasks to prepare for the next morning. I read the list and pick tasks that should be implemented during the next work day.

I place one star beside each of these “Priority” tasks. When I finish, I set the list next to my computer so I'll know exactly what to start on in the morning.

If any starred items aren't completed during the day, I add another star that night. This increases the priority of each task with time, so that I can't put off the hard or boring tasks for more than a day or two.

I end up with this:

  • One star (*): Things I'll consider working on.
  • Two stars (**): Things I should be doing even if I'm not in the mood.
  • Three stars (***): Nothing else will be worked on until this is finished.

Zero star items are implemented when I have free time, motivation, and no major priorities. This is usually reserved for dream goals that aren't vital to completion, or for features that aren't feasible until later in development.

The AFK Ritual

From now on, take this notebook with you whenever you step away from your computer.

While you're eating lunch, read over the list. 

Watching TV? Read over the list.

Going for a walk? Why not take the list and read over it?

Use this time to ponder how to implement tricky tasks, decide which choices best fit your design, and figure out which features need to be cut based on your current deadline. Update the list with potential solutions and changes.

While working, we all get tunnel vision. In the office we have managers who should be watching the big picture, but as indies we have to do that ourselves. Use your AFK time to be your own best manager.

Cleanup

If you find that your list is getting messy after a few days, you're doing things right!

Every four to seven days you'll want to take some AFK time to copy the remaining tasks to a brand new page. But the value here is that it forces you to look at the project as a whole.

Don't simply copy everything that remains; think about each item individually, based on your current schedule. If you're running low on time, reduce the priorities of some features, and cut others from the list.

It's your AFK time, so you're eating, watching movies, and having fun right now. You have all the time in the world to make the hard decisions. Use it!

You now have a clean list that is up-to-date with your current priorities. 

Dynamic Priority List Week 2Dynamic Priority List Week 2Dynamic Priority List Week 2
A dynamic priority list, revised, with priority star ratings.

By using these basic strategies, you'll get a much better overview of your project. This will improve your planning dramatically, without cutting into your development time. Learning to use that notebook will allow you to accomplish more with a fraction of the effort. 

Conclusion

Even if you miss deadlines or fail a task, by keeping a list, you have a running log of your priorities. You can see what you accomplished each week and rethink the choices you made. This allows you to learn from each project regardless of its success or failure. 

Every project is a chance to learn and improve the process. This simple list can help you to accomplish that.

References

Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.