When Indie game devs get together they like to talk about “what engine”, or “pipelines” they use. Rarely do they talk about the even more important tools: productivity tools. Does it really matter what game engine you use if you never finished the game? Doh! Gotcha!
I come from about 20 years of professional software development and team leadership. As a team we had to get a job done on time and on budget. Staying organized is of utmost importance. Tracking billable time was vital for invoicing but also necessary for “real” estimation instead of wishful thinking estimation. It is with this background that I filter what I have chosen. Some tools from the biz software world I’ve found are not applicable to game dev.
Here is my list of productivity tools and why I use them. I can’t claim anything beyond “they work for me”. Tools are like golf clubs: use whatever gets the ball in the hole. A friend of mine played a quick 9 with only a nine iron and a putter. It was impressive to see him drive 100 yards with a nine iron!
Who This Is For
If you are building a small project over a few months by yourself, you probably don’t need anything more than Evernote.
I write this for the professional Indie: making a project across multiple years with a distributed team of multi-disciplinary contributors.
I have a distributed team across several time zones:
I’m near Toronto
Artist near Amsterdam
Animator near Washington DC
Programmer near Portland
Sound and Music near Portland
Writer near Chicago
There is also a varying level of involvement by each person. Some are full time-every-day (programming) while others parachute in as needed (writer, animator). It is both the distance and frequency of interaction that make the tools so necessary. The closer you are in proximity and the higher the frequency of involvement, the less organized and structured you can be. 5 people working every day in a single room can get away with just a whiteboard. 5 people in five timezones where some pop in every 3 months is an entirely different animal.
As the lead designer and financier (producer if you will), ultimately, it is up to me to get the game out the door. The burden of organization is squarely on my shoulders.
Time Tracking: Toggl
https://toggl.com/ - Free, Paid for additional features
The most beneficial thing you can do for you and your project is track your time.
Yet, everyone is predisposed to hate time tracking.
In 1999 I was working with a business partner who accused me of being lazy and not putting in as much time as him. The accusation was mostly driven by my nightowl tendencies to start work around 11am. To extricate myself, and to be certain he was wrong (he was wrong, right???) I started tracking my time in detail using Notepad. Turns out I was putting in 60hrs a week and he was a liar who was misdirecting attention from how he was undermining the company.
This experience cemented a discipline I still follow 20 years later. As I changed jobs, I changed tools. For a while I used Notepad. Then I used Axosoft. Then I built my own tool that was quick and easy to use and spit out XML summaries.
Then a friend got me onto Toggl and there was no looking back. It takes a good product to make someone abandon something he made himself. Toggl is that good.
Accuracy is the name of the game here. If your time logs aren’t accurate to actual time accrued then time tracking is a waste of effort.
Toggl makes it simple to start and stop a task on a variety of interfaces. I use the desktop app, but I could use the phone app, the web app, or the integrated Chrome plugin. Basically wherever you are doing work, Toggl has you covered making it easy to track it.
A key feature for me is the “away” tracking. By tracking mouse and keyboard input it knows when you actually ARE working. For someone who works from home with a 3 year old in the house, at any moment I could hear a scream and have to go running from my desk. Detecting I was away for 23:01 is super valuable. It gives 3 options for this dead time: keep it on the current task, stop the current task and apply it to a new task now 23:01 in, or just ignore it by stopping the current task 23 min ago and restarting it now. This is what keeps the time logs accurate.
A secondary problem to distraction is forgetting to turn off the tracker. Toggl has you covered there too with the above feature. Whenever you return to your PC it’ll prompt you. Or if you put your PC to sleep like I did last night, they will send you an email saying “Your timer is still running and you’ve hit 10+hrs”. It’s easy to stop the timer, correct the end time.
When starting a task, if you type in the same name (it uses autocomplete to show similar entries) it treats it as the same entry. For example, I rewrote the menu system in my game in Oct. So I log the task as “menu system”. Then, many tasks later, in Dec I discover a bug and have to rewrite some of it. If I call it “menu system” again it joins the times together, so at the end of the year I REALLY know how much time I spent on the menu system: first version and second version.
Finally, Toggl lets you group tasks by “project”. This is how many contractors track billable hours by client with each “project” being a different client. Since I work for myself, I want to know how much time I’m spending on designing/programming the game versus communicating with fans or writing articles. It’s all Archmage Rises work, but it is different kinds of work.
The entire point of time tracking is to have data to educate yourself/your team to drive decision making. If you never look at the time logs then you never learn and you may as well not do it.
The reporting in Toggl is top notch. There has never been a question I needed answered which the free-level reporting couldn’t answer. The bar graphs help quickly identify patterns and the grouping and summary let you know the truth: that bug that felt like it took forever to fix? It was only 3 hours. The feature you thought would only take 2 hours? It was 22.
The only way to improve your ability to estimate is to keep inputting real numbers into your brain. Over time you’ll get a feel for how long something should take.
Conversely, you can also analyze and see how long long tasks are: do they average 10hrs or 100hrs? What about small tasks, do they take 5hrs or 0.5hrs? If you know the right kind of questions to ask, and you have multiple projects worth of data you’ve analyzed, this can start showing your the health of the project.
For instance, if tasks are averaging longer in the last 3 months than they did before, why is that? One answer could be technical debt: you didn’t fully test or complete a system. Or your code is brittle, it makes more bugs fixing them.
Ratios can also be helpful and informative: If I keep a 5:1 ratio of programming vs fan interaction it tells me I have a nice balance of working on the game and educating the fanbase. If it was 3:2 I’m spending too much time talking about the game and not enough time making the game.
Question: What about time spent thinking?
After writing this article Daniel V. asked an excellent question:
What is your view on tracking time spent THINKING or other mental effort applied towards the game development that CAN’T (from my understanding) be tracked via a tool like Toggl. For example, if you are me, you might leave your keyboard to develop an idea in your head while pacing about your room.
Thinking tasks come in two types: AFK (Away From Keyboard) and Spontaneous (or Subconscious). I’ll start with Subconscious.
The mind has both an active (or frontstage) component and a passive (or backstage) component. I do not know what it is like for other professions, but programmers may relate to this: I was working very hard late into the night on a bug and just couldn’t figure it out. I finally gave up and went to bed. I dreamed about code and when I woke up, the answer just hit me. I went to my computer and within 2 minutes I had solved the problem. This is a concrete, rare, yet real kind of what I call Spontaneous thinking.
The second more common form is in the shower, or on the drive to work, or standing in line for transit, and your mind wanders to thinking about work. Or, for me, when I am play Diablo 3 I often think a lot about Archmage Rises features or solutions. All of this is sporadic, unstructured, spontaneous subconscious thinking.
I do not track this time. I’m not really sure how you could. If your shower was 20 minutes, do you log 100% or 50% or 25%? The purpose of time tracking is accurate records (inaccurate records are useless). It is very hard to be accurate about the time spent thinking while trying to sleep. Secondly, the purpose of time tracking is to estimate future effort. How many ideas will you have in the shower in the future? Or after a nap? Will you schedule work related showers and naps in order to overcome obstacles?
AFK is very much a work related task and therefore trackable. Be it working at a whiteboard, or reading a AD&D 2nd Edition book on an iPad on the couch, or pacing, those are all ways we work on a task. It is easy to track with Toggl.
Perhaps you like to pace the room like Daniel. You start the task in Toggl, maybe write some ideas in xmind. That gets you thinking so you get out of the chair and start to pace. When you return Toggl with prompt asking if the time away was work related to the task or not. If not, you discard it. If so, you can click to keep it. It is very flexible to track how you work, it doesn’t dictate ways in which you work.
Task Management: Asana
https://asana.com/ - Free up to 15 team members, paid with more people and better features
It’s one thing to track your time, but what should you be working on? Task management software helps you answer these critical questions:
What should I be doing right now?
Who is doing what?
What tasks still need to be done?
How many tasks are being created vs completed over a week/sprint/month/year?
A friend got me onto Asana about 3 years ago and it has become mission critical ever since. Simply put, it’s as easy to use as Notepad with the power of an ERP.
I take ideas from a variety of sources (mind maps, word docs, steam forum posts, bug reports) and turn them into actionable tasks. These are grouped by Build (Sprint). Tasks are assigned to specific individuals with the ability to add others as “followers”, so they are part of the conversation without requirement to complete the task. For instance, a programmer needs to create a character screen, and coordinate with the artist who designed it. The task is assigned to the programmer and he is responsible for closing it, but the artist is a follower in case of questions or changes to the design.
Everyone associated (assigned or follower) with a task receives notifications if it changes: new screenshot posted, question asked, cancellation, completion. I don’t have an exact formula, but the amount of email and unnecessary chatter this cuts down on is logarithmic.
If you are discussing project tasks in email you do not have a proper task management tool or you are using it wrong.
Each user can set whatever notification settings they like: immediate emails, asana inbox notification only, daily or weekly digests, etc.
When working, it is important any questions or decisions about a task be captured for later reference, searchable, and traceable. It’s easy in a meeting to discuss something and then forget who said what, or what the conclusion was, or who said they would do X. Asana’s task discussion is similar to Slack (including emojis) yet oriented around individual tasks where ownership can easily and quickly change. Very handy as the months drag on and people pop in and out of the project. This is what makes it my preferred choice over Slack.
Take the above task description for example. The task was created by me and assigned to Rogier the artist. It has a task description (unshown) detailing what is important for this quest screen. I then paste in a mockup as a comment.
Rogier gets the notification he has a new task (however he chooses to get those), does some work, and sends back a result. Asana now includes cut&paste images in the comment field. It is very handy to be able to talk in pictures AND not be required to save them first as external files you pull in. You can @ someone’s name to bring them in and ask them a question.
Below the comment field you can see who is involved in this task and easily add more.
In this particular case all that was needed was a Photoshop mockup to finish the task. Asana clearly tracks when a task was a created and completed. This provides insight into who is working efficiently and who is letting tasks lag on and on, perhaps leading to a change of contractor.
Because Asana is so simple and easy to work with, I’ll make most anything a task in Asana assigned to myself:
Feature idea for later
Script for a video update
Code snippets i may want later
Even personal tasks
There are many reports you can use to dig into what is really happening with your project. Like burn down charts showing how many new tasks came in and how many were completed in a time period. This lets you know if a project is moving towards 0 tasks or strangling in scope creep.
Asana has a ton of features, you can learn about them from their website. At it’s core it keeps tasks and people organized and that is all I need it for.
Finally, using a chrome plugin Toggl can track time by Asana task name providing a nice level of integration between tools.
Another option in this space specifically made for game dev is HacknPlan. Beyond an attractive name it seems to have many of the features the pro indie needs, like the kanban board and burn down charts.
Team Communication: Classic Skype
Get Classic Skype Here - Free
Despite Microsoft’s recent efforts to the contrary, Skype is still a great communication tool. I’m referring to Classic Skype which does not come installed with Windows and Microsoft doesn’t want you to know still exists. But use the link above to get it. Turns out they cancelled their retirement plans for Classic Skype. Classic skype has many more features and options than any modern iteration as of this writing. So if you work on Archmage Rises you need to have skype.
Skype fills in the gaps of Task Management tool Asana by being able to answer these questions:
Is this person available right now?
Asking a quick questions
Sending an interim screenshot
Voice chat, or if real need be, Video Chat to really discuss something in detail
The screensharing options on classic skype are great too because I have a small internet connection but a big fat screen. So being able to screenshare by program window instead of just by Display Adapter is a huge advantage. Also allows me to work without them knowing while they blab on and on…
I know about Slack and Discord, yet nothing beats the simple pure functionality of Classic Skype.
Edit: Shortly after writing this article Microsoft put the final nail in the coffin for classic Skype. The link provided still works but once you download and install classic Skype it forces an update that sticks you with crappy new Skype. I now, begrudgingly, use new Skype. I figured out a way to record video from it using NDI Tools.
Ideation / Brain Storming: Xmind 8
https://www.xmind.net/xmind8-pro/ - Free, Paid for extra features I’ve never needed
When I need to design a feature, or jot down an idea, or fully explore an idea, I use XMind. Why? Because XMind is part of the Mind Mapping tools that document and store knowledge the way your brain does: relationally.
You write topics (or nodes) as they relate to each other in a simple flow. TAB to create a sub thought, ENTER to create an associated thought. You can’t get simpler of faster than this.
A section on Mechanics can expand to contain Battle, Adventure, Fatigue, and Health. These can be quickly opened and closed, added to or removed. Pictures can be embedded in, website links, pretty much anything you can think of can be pasted into your mind map.
To eliminate the noise, you can select a specific topic, press F6, and now it and it’s children are the only thing on the map. Press a button to return to the full map. This simple F6 clean sheet display is super valuable in getting into a creative “blank page” frame of mind, and very difficult to do in any other software.
This makes it ideal software for brain storming sessions. You can document the brainstorming in real-time either on a projector or over skype. This is instead of having a whiteboard you later have to photograph or exceed the size of, you have an actual document you can share and work on.
Mindmaps can be exported as tasks to tools like Project, or word documents, or PDFs if you wanted. Save in the cloud, integrate comments with team members locally or through the cloud. There is a lot you can do with this little software.
I know of no better tool for the creative professional to simply get down every nook & cranny of your brain into something tangible for you or others to see.
13 years ago I used MindJet MindManager at $120/seat at my software company. But they increased their price to $250+ and Xmind came out doing essentially the same for free so I switched.
Branching Narrative - articy:draft 3
If you’ve ever tried to write branching narrative in Word you quickly discovered how unweildly it is. Fortunately some smart people sat down and decided to make a tool by game developers for game developers for organizing and writing game design.
Articy draft does a lot of things, but what I use it for is branching narrative. As I write, I can get into the character’s headspace and really write from their point of view. Then go back to the beginning, and write options from a different perspective. Some of these options will be the same as the first, others will be new. Some will end at the same place, others will create new branches.
Once you’ve done this, you can then assign Characters to the roles and save it out as a VO script. You can also play a prototype of the game narrative right within the tool.
I could go on and on about all it’s great features:
how it tracks a character database so you know how many characters you have, and which ones only have a few lines
Create maps and item inventories, and play out prototypes of point & click adventures within the tool
This is a tool that feels so good to use it encourages me to use it more. That really helps getting into and staying in the flow while working.
Mockups - Balsamiq
https://balsamiq.com/ - $90 lifetime license
No matter the game, a player has to interact with it on some kind of visual screen. That means it is important to be able to communicate in picture as well as in word to yourself and teammates. I used to make mockups of my UI software in Visio but abandoned that when I found Balsamiq.
Balsamiq makes it a joy to whip up ideas, visually, in just a few seconds. They provide pencil sketch versions of everything you need: textboxes, buttons, rectangles, icons, radio buttons, etc. You just drag, drop, resize, sort, Presto! You got a mock up screen.
From here you can share it as a PNG or PDF with others. There have been times, with skype’s window sharing, we’ve collectively designed a screen together and talked through implementation details because it is so easy to change a screen.
You can even make your own controls, save them to a library, and use them as if they were native controls. Then there is the ability to make your own color palettes and save those for future use. It even includes “inspirational” background music to help you get into the mock-up zone! Seriously, who makes a mockup tool with built in background music! Clearly someone who is passionate about you being productive! That’s who!
With the image embedding feature you can go away from pencil sketch mockups to very detailed pixel perfect ones like this:
As a programmer/designer who needs to convey ideas to an artist, this tool enables me to speak visually. Nothing works as well or as fast as Balsamiq, not Photoshop (no matter how good you are with it) nor Adobe XD.
I’ve been using Balsamiq for 10 years now on the same $90 i paid back in 2009. It’s been great, constantly improving over the years and always valuable.
Project Timeline & Milestones - MS Project
MS Project - $70?
If you are making a game with a fanbase, every other question you receive will be “When will it be done?”
None of the above can answer that question as easily as Microsoft Project (Asana can but it requires a significantly expensive upgrade). What you need to answer is:
If given a certain working schedule of various holidays, a list of tasks of various lengths, when will it realistically be done?
As shown in the screenshot I took a bunch of random tasks, assigned them a resource that worked 3 weeks a month M-F, and made them conditional upon each other. In 3 clicks I had a rough delivery date. Typing in everything and getting an answer took under 20 minutes (because I already had the estimates).
This is necessary stuff when talking with a publisher (which I was) and when comparing timelines with multiple resources. Like, how much faster would we be done if we hired another programmer and put them in at 60% efficiency? These are real business questions you will need to answer, and Project answers em.
Since I already have a software company with a whole host of MS software, I have Project for free. For someone who doesn’t, what can they use? Unfortunately I don’t know. I looked real hard into finding a gantt chart tool with task dependency and work schedules and couldn’t find one. The closest I came was https://www.tomsplanner.com/. I used it for a few months but as things changed it was brutal to update it, to the point of being useless. If anyone knows of a solution other than MS Project please post it!
Process - Visio
MS Visio - $70?
Whenever I need to work through a process flow, like a state machine for AI or how a certain piece of functionality should play out sequentially, I create a flow chart in Visio.
Visio has been around a long time and is a holdover from my business software days. But when I had to work on my economy and figure out the flow of goods from producers to consumers, this was the best tool for the job:
Why is Visio so good? Because it can auto-layout all your boxes with their connections. Shapes are connected through connection points which can automatically move around the shape as you adjust the input location. This means it is really easy to make changes to the flow.
At it’s core Visio is a scaled vector drawing tool on a layout grid. This means it is useful for all kinds of game related tasks. Want to make cards for a paper prototype? Drag out a rectangle 2.5” x 3.5” and start typing in text. Print it and you have your own Magic-style cards!
I’ve used Visio to design card games (with double sided printing), board games, counters, and more. It is soooo much easier to use than Adobe Illustrator, Inkscape, or other vector tools. If you can use Powerpoint you can use Visio.
Architecture - StarUML
http://staruml.io/ - Free or $90
Every so often I have to do some hardcore technical architecture. When that occurs, I turn to StarUML. UML is the Unified Modelling Language purposed with figuring out and communicating code visually, without code. What is great about UML modelling is you can work with it almost like it is code, but it isn’t, it’s faster and so you can iterate on the design of the code multiple times and then code the final version. It’s a way of designing and working through the problems of version 1 and 2 before ever writing a line of code.
The above graphic may look like a simple box diagram you can do in Visio, but it is not. You define classes in the library on the left and then can pull them into other diagrams and reuse them. This allows you to see how used a class is. Second, you can assign class properties strongly typed and methods with parameters and then flip into a Sequence Diagram and see how a series of calls to the methods will actually look with the return values.
If this is all sounds like too much, that’s ok. Just know it exists and is very helpful for creating and sharing class diagrams and code architectural solutions among programmers.
Those are all the tools I use. In a given week I’ll use Toggl, Asana, and Classic Skype 100% of the time, and the rest more specialized tools as needed. I hope this was helpful and maybe you pickup a new tool for your toolbelt.
Go and be creatively productive!
PS. Toggle says this article took 4h 18min to write. :-) So next time I feel inspired and think “Oh that’ll only take an hour or so to do”, I’ll remember it actually takes 4!