KitBash3D specializes in high-end art assets suitable for TV, film, and triple-A games; a look at its website names Disney, Marvel, and Fox among its high-profile customers as well as top studios including Ubisoft, EA, and 2K. Today, the company announced steps toward reaching the rest of the game development community, including its “game engine ready” release, promising seamless compatibility with Unity and Unreal Engine.
Hey all! If you haven’t heard, we’re winding down our activities on Patreon. To maintain a place to hang out, we’ve set up on Discord! All are welcome, we have channels configured for specialties like streaming, writing, game development, and we’ll no doubt set up many more. Come chit-chat about what you’re up to!
Game development and its specialties have a ton of potential for remote work, which is awesome, but has a unique set of challenges only you can solve for yourself. Do you have to agree to sit on calls with clients? How do you navigate project changes? How can you avoid conflicts? In this episode of GameDev Breakdown we’ll drill down deep based on real world trial and error.
I’m scheduling with new awesome guests all the time, be ready for more guest reveals very soon!
Subscribe to GameDev Breakdown
So You’ve Asked Someone to Work on Your Game for Exposure/Profit Sharing also links here.
Hi, aspiring designer! If you’ve been sent to this page, there’s a good chance you asked someone–or maybe many people–to work on your game for free.
“What’s wrong with that?” you may be asking yourself. “Why is everyone so angry?” This article aims to catch you up on a trend in digital creation that isn’t your fault, but may require you to adjust your approach. You probably have great intentions, and this article aims to provide you with sound strategies to move forward with your enthusiasm for game development and create a positive relationship with the game dev community.
Despite the game industry’s incredible growth and success, game development careers are notoriously difficult to get started–like, professional athlete difficult. Without finding just the right opportunity, people routinely invest years of skill development and preparation and still never land a job in the industry at all. Others get the opportunity and turn their whole lives upside down to make it work, only to fall victim to layoffs and other unfortunate realities of the pro development scene. Because of these difficulties, the indie scene and the larger learning scene have become one massive community of aspiring creators–let’s call it the “not-industry”–who have accepted the vulnerability of learning in a public setting in hopes of following their dreams.
There are different schools of thought on how to cope with a lack of sufficient funding in the not-industry. Many folks simply hold down day jobs. The lucky ones have jobs related to what they do in game creation, like commercial software jobs, graphic design for web and marketing purposes, or freelance writing for just about anyone. If these weekend warriors finish a worthy product, it may earn a nice little monetary reward; very few of them will get to quit their day jobs over it. Others seek to leverage crowdfunding or attract a publisher to keep the lights on and the hard drive spinning. Some are still in school and have their needs met for a time, and they hope to create something that shows their capabilities, pays for itself, or leads to a professional career in games. The struggle is very real for all of these people.
Unfortunately, the concept of working for low or no pay in the not-industry tends to hang over people’s heads. Those looking to outsource a certain component like art or code within the community sometimes have little to offer, and may rely on finding someone in a position to help for not much in return. Sometimes several community members will team up and work for no pay together, with an agreement about any future profits, if any profits ever materialize. Over time this has turned into self-appointed “designers” coming to the community to have their ideas brought to life.
Make no mistake: design is integral to game creation and not everyone can do it. The right idea for a game and the right strategy for implementation can soundly determine success or failure for a game. But it’s not safe to assume individuals with other specialties aren’t capable of their own design, or in fact, that they didn’t learn to code, write, or draw in the first place because of ideas they decided to pursue. For this reason, community members may become defensive if they get the sense that you’re presenting an idea as if they need it to succeed. They’ll be quick to tell you that it is you who needs them, and they are likely right.
If you’re resistant to this idea, consider if someone had pitched Queen on the idea of writing a certain song just before they went off and came up with Bohemian Rhapsody. Perhaps someone did. Would it have mattered? What if Bohemian Rhapsody itself had been the suggestion of someone outside the group. Would the concept have been worth anything without its brilliant implementation? How might the following Upwork job have panned out?
“Hi. Looking to recruit 4-5 performers to develop a song idea I have about a man discussing something with his mother. Volunteer only; 3+ years experience preferred. Message for details.”
Success in art is too personal for this. It can be personal among the members of a group, but that group has to have relatively equal footing and trust established. The community you’re approaching is hands-on. Everyone needs to bring a skill to the table, or at very least, a desire to learn and no apprehension about good hard work. Your idea is not equal to someone else’s sweat.
How to Move Forward
If you’ve been unpleasantly surprised by all of this, don’t abandon ship. If you’re willing to dig in and work toward your goals, you may yet find adventurers for your party. You simply need a more suitable strategy.
On the topic of “working for the exposure,” this philosophy is over. The only thing free labor exposes is that someone was convinced to work for free, and that usually only earns more requests for free work.
Some folks consider it sufficient to offer “profit sharing” after their idea is brought to life and run a team of volunteers like they’re running a major studio. I’ll start by saying I’ve never once heard of this working out (maybe someone has), but I’ll add that it would be extraordinarily difficult to do this in a way that is actually and precisely fair. Are you willing to give away the majority of the profit of your idea? Because you would almost certainly need to. How would you divide equity between two contributors who started at different times? What about one who started late versus one who left before the project was finished? With little doubt, you’d finish with some or all of your team feeling cheated and underpaid. What do you think would come next? It hardly matters; people who work free do not do so happily and they do not do it for long. Projects that get off the ground at all this way generally do not stay there.
If this profit-sharing scheme is going to work, I would strongly suggest you throw your current idea out, find like-minded creators who want to work together with you, divide up roles, and come up with something together as a group. Look at it as a partnership and an opportunity to learn. Work hard with this team and you will be doing something that has worked in the past with decent success.
My primary suggestion, however, is that you follow the path of the most successful individuals who came before you and start this project alone. You will be stunned at your own ability to identify and implement solutions as you go, and this is something countless game developers will confirm and swear by. Pay your dues, learn as you go, and limitless possibilities await.
I was challenged on this perspective just this evening by someone who said “You cannot do everything by yourself, that’s not how you grow as a developer or as a person.” I come before you as someone who taught himself the entire game development process, start to finish, and the idea that I learned less somehow by working alone is frankly absurd. That doesn’t mean I don’t believe in the power of community. My suggestion to anyone developing a game outside the pro industry is to develop in parallel with other creators. This can be done a number of ways including taking part in local or regional game development co-ops, user groups, or any other group that has a Slack or Discord server. Networking and talking shop with other developers is invaluable, and may very well lead to future collaborations, but you have to come from a place of sincerity and you yourself have to be willing to learn and put in the work.
Try not to take community sentiments about this issue personally. If you came in meaning well and you’re not simply looking for free labor, there is a place for you within our ranks. If you’re willing to personally do what it takes to bring your dream to life, you’ll fit in just fine.
If you didn’t know, we run a podcast that’s great for new creators called #GameDev Breakdown. Glad to have you aboard!
This post is a recap of my experiences running this year’s Itch.io Jam for Kids, including a few things you may want to keep in mind if you’re ever in charge of a jam yourself.
On or around June 18th, my four-year-old asked me to make him a video game about trains. This was actually a continuation of a discussion we’d had earlier when I declared I was deleting Budge Studios’ Go Go Thomas from my phone, as I find their microtransaction model for the game to be red-hot garbage. I said I’d be thrilled to make him his own game rather than have an app for children advertise about $20 USD worth of in-app purchases twice for each activity. This was not an idle threat; I’ve done it before. So as promised, I brought the Surface Pro to the kitchen table, fired up Blender, and set about modeling a toy train to see if I could do anything interesting with it in Unity. When I had a reasonable starter model in place, I tweeted it out, because that’s what one does.
My devfam was enthusiastic and supportive as always, but one reply caught my attention more than the rest.
I half assumed @TrashGameArtist was kidding, but for fun I replied with some things he’s interested in and didn’t think much else of it. But the conversation about theoretical kid game designs developed until the suggestion to start an official Itch.io event was made. I thought this was a fantastic idea. Kids need useful play experiences more than anyone, as it directly stimulates brain development, yet they put up with some of the worst, most exploitative designs imaginable. If my admin time could help produce even a few positive playable experiences—not to mention place a sensible time limit on this activity for myself—bring it on. I logged into Itch, cobbled together the most basic of guidelines, and the Itch.io Jam for Kids was born.
What followed was two weeks of incredible learning, great community discussion, and sure enough, a prototype for To the Station! A toy train simulator developed to spec for a preschooler. I didn’t plan on taking away any worthwhile lessons from hosting the jam itself, but I couldn’t help it. Here are some notes in case you ever try this yourself.
Itch.io’s jam tools are amazing
I first got to know Itch as a journalist covering indie games. I was super impressed by the features implemented simply to make my job easier, and in turn, put more eyes on the platform’s game developers. When I came back to try out jam hosting, I was just as pleased. The proof is always on display in the always-loaded jam calendar. I’ve been an enthusiastic Ludum Dare participant for a good decade, but it’s getting difficult to imagine not using ltch for any jam at this point.
Two weeks is the jam duration God intended
I’ve probably participated in my last 48-hour jam. I knew my own time for this jam was going to be under assault by everyday life. I also chose to start the jam with no lead-up time, so I decided to blow out the traditional weekend format and give everyone two weeks.
What a win this turned out to be! I think the best strategy is to pursue a design no grander than you’d dream up for a 48-hour jam, but to find a groove completing and perfecting it around the rest of your everyday life instead of replacing your life with frenzied crunch development. After all, this is how release-worthy games are completed.
Anything longer than a couple of weeks, I suspect time management issues and scope creep would rear their ugly heads. Less than two weeks, I don’t imagine putting myself through the stress again. It’s the two-week life for me.
Admin tasks will eat up your dev time
This is a no-brainer going in but remembering it for two weeks is harder. Not many folks will likely want to run small-to-medium jams without working on an entry themselves (rules permitting) so a host simply has to find the right balance for their time. Two different days I had to hang up intricate development tasks to deal with situations I felt might put participants or others at risk in one case or make us all look kind of ridiculous in the other (more on this later).
I also felt pressure to set an example in the attached forum, participating in discussions where I could, running a progress thread about my game, and of course responding to any questions that came up during the event. By the end of submission day, I’d given up several features on a fairly modest list to fulfill the host role successfully.
Dev tasks will eat up your admin time
Of course the reverse of the previous point is true, but it’s worth discussing what that looked like.
On only the second or third day of the jam, a participant posted a dual entry he was working on for an earlier jam focused on education that overlapped with ours, explaining that it contained not only a prototype, but also a lecture he’d put together about designing for kids. In my mind, the timeline was an issue that would prevent his project from being an official entry, but he joined hoping to participate and posted hoping to help. I wanted to at least check out the project and presentation and provide some encouragement. Unfortunately for my Surface Pro, his was a fairly large project and was downloading too slowly over Wifi. I determined I’d check it out first thing when I next sat down in my office and provide feedback.
The only trouble is I never made it back to my desktop PC. I actually still haven’t. I had to continue work on my game and provide official support for the event. That’s simply all there was time for. I should have stayed laser-focused, even at the risk of appearing rude or uninterested in anything else.
People will try to get away with things
In order of sheer audacity:
A participant posted pretty early on that they hoped to make a basic racing game in Unity but realized the scope was going to be out of control (which is very correct), so they found a Candy Crush-like tutorial series they wanted to follow to wow us all with a puzzle game. It sounded great to me. I wished them luck and said we were all looking forward to seeing it.
I got a notification a day or two later saying they’d submitted an entry.
I suspect not everyone knows this, but a jam host can see the exact date a game was submitted to Itch, and this one was something over a year old. Perhaps I’d still try it and offer feedback before officially disqualifying the entry. That’s when I noticed the following paragraph on the entry’s Itch page:
NOTE: If your virus detection software is acting up when you load up this game, please ignore it because it’s just the software being suspicious because the app is not recognized by it. So if it says anything please just ignore it.
Right. I followed up in the forum, asking why his submission was showing up as being more than a year old, also having a YouTube trailer a year old. I didn’t dive into the antivirus topic. He claimed the second game attempt overwhelmed him and he simply wanted to have something to submit. He hoped I’d understand. You couldn’t craft any better test for a jam host, because it was either a perfectly sincere story that must have been hard to admit for a vulnerable participant, or he was trying to destroy all our machines from the inside out. I’m no King Solomon, so I used the easy pre-existing project excuse and disqualified the entry which removed it from the submissions page. It was probably legit; I wish the developer the best.
As the jam was drawing to a close, I was eager to try out other submissions. I saw a notification pop up on one of the final days saying an interactive fiction novel had been submitted. Interesting choice for a game for kids, I’d better have a look. When I got to the submissions page, I couldn’t help but laugh.
The game was $7.99 to play.
For good measure, this game turned out to be long pre-existing as well, but I couldn’t help but laugh at the boldness required to join a game jam and try to sell the entry to the other participants. It’s hard out here for us indie devs. I get it.
It will all be worth it
In the end, we had a couple of awesome entries to keep mine company. A user called Sipsop created the Surprise Eggs Machine which was a cute little proof-of-concept which could easily be tied into a real brand. Minemaster552 who said he’s only 13 years of age submitted Lego City Builder, an unauthorized FLASH Lego game that was off to a great start at the end of the event.
My four-year-old got his train game and even provided the name. To the Station! in prototype form convinced me a toy train simulator could be viable and fun. I’m in the middle of my book project—alright, not the middle yet—but I’m excited at the possibilities of the prototype and have concrete ideas in mind about how to carry it forward.
I think the Jam for Kids will come back around this time next year. The biggest change will be even longer, even clearer rules upfront. Everyone seemed to have a great time, I know we all learned a lot, and we just might have started some projects that could go the distance. Hosting was a deeply rewarding experience and I’d suggest it to anyone. The better our events, the stronger the community.
Comment with your best theme idea for a jam!
We’re in the last four days of our Itch.io Jam for Kids! I’m working hard on the train game for my son that started it all, and since I just unlocked our Patreon post on planning and prototyping a new game project, I wanted to provide more information about one of my productivity recommendations.
As you can read in the post, I set up a recent project in Microsoft’s Azure developer site which provides a dashboard with a lot of cool features including support for multiple repos in one project, an attached wiki, and the tools needed to run multiple Kanban-style task boards for team collaboration (or organizing your solo efforts). I strongly recommend teams and soloists work from a task board which I elaborate on in the prototyping post, so I was very impressed when I also found the Trello support currently in Beta at BitBucket, my go-to Git provider for private repositories outside the Azure sandbox.
If you go to the Boards tab in your BitBucket repository dashboard, you’ll be asked to log in to your Trello account and be given the opportunity to access or create a new board for your project which appears embedded there in the dashboard.
While this alone is nice, Trello will allow you to connect to your BitBucket account in return (yes, this apparently has to be done both directions), and allow you to “attach” a Git commit to a task on your Trello board, which results in the ultimate tidy new way to organize your development workflow.
I was already describing task cards in my Git commits like so:
So now when I move a task card to the completed column, I open it up and hit the BitBucket power-up:
This pulls up the following BitBucket options to attach a recent commit:
The recent commits option pulls up my recent pushes:
And finally, attaches the commit to the completed card.
If I return to a completed card and click on the attached commit, I will go straight to the BitBucket commit summary so I can look over the changes.
As I mentioned, these features are apparently still in Beta and may change, and they haven’t been perfectly performant–I find that I sometimes need to pull up the Trello board in its own tab before attaching a commit to a card–but the connection between these two tools is welcome, and I strongly recommend considering it if you have need for private repos and prefer not to work in the Azure site option we discussed in my recent post.
If you’ve been using this a while, let me know how you like it in the comments!
This post is based on a suggestion from our Patreon Writers’ Room by patron Charlie Cox.
In this post I aim to run readers through the process of planning out and beginning work on a game intended for commercial release. I aim to keep “fluff” to a minimum here, but I will provide context where I think it will be beneficial, particularly while explaining my game project. This process looks different for each developer, and because experience leads to change, developers often alter their own process from one game to the next.
To help illustrate my process, I’ll be showing the steps I’ve recently taken with my own recent game project, a game I’m currently calling Cart King ’92.
When I was a young kid first discovering the world of gaming, I think the physical act of playing games was a lot more interesting. Certainly, games have always been hanging around retail stores, but we also had the triumph and heartbreak of searching for hard-to-get titles at rental stores, the unique experience of going to other people’s homes and buying their games (okay, you can probably still find games at garage sales), and there was even a thriving underground economy of backpack-to-backpack buying and trading at schools that had largely outlawed gaming paraphernalia thanks to fear-mongering news outlets. Back then, our parents largely believed it.
For years I’ve wanted to find a way to capture this era in a game for other folks who recall those days and later so my son can get just a little hint of what life was like before the internet took us mostly digital. Recently I thought of turning this into a playable experience by blending the gameplay and style of a retro RPG with the inventory management and NPC interactions of a space sim game like Elite: Dangerous or, well, any of the others. The story that came to me was a kid from humble beginnings who set out to build the ultimate video game collection. They’ll compete with other notable kids in sort of an ongoing Civilization-style leader competition where multiple endings would be possible depending on what they accomplish. I eventually determined that, though the idea is unusual, it’s worth finally taking a run at it.
Let’s talk about game design documents.
In the pro game industry, a detailed game design document acts as a unified answer book to keep medium-to-large development teams on track once a game leaves the planning stage. But there’s another benefit, and a reason any indie developer, even as a soloist, should fill one out for any serious project: it will force you to answer questions that go beyond the idea in your head to get you thinking practically about your potential game as a viable product, what you would have to achieve to bring the idea to life, and what you would be able to do with it once you did. I think at best you can expect several major hurdles or drastic changes of direction in a project if you get an idea and just start coding without a design document. At worst, you realize the idea was much more complicated than you realize or find out there’s a good reason the idea doesn’t work in the real world at all.
To account for the differences in how professional teams and indies benefit from game design documents, I’ve been tweaking one to my liking for a little while now. To help with this post and my own upcoming project, I’ve cleaned up the document, added some template notes, and uploaded it to Itch.io where you can use it freely. It’s been very popular there!
I believe a game design document should be the first thing you will do after deciding for certain that you want to pursue a project. That’s because the document will require you to answer questions about what you want to achieve in your prototype, what you want the game to look and sound like, and how you want to put assets together with code or a game engine. In addition, it will take you through the roles you play as a marketing expert, a designer, a developer, and all the other responsibilities of an independent creator. Finally, it will have you look to the future to determine what will mean the project was successful, and what your priorities will be for the game after release.
If you get through the game design document and feel you’ve provided good answers that will set you up for success, you are ready to set up your project.
Setting Up the Project
Setting up a new development project is not a new experience to any developer, published or not. Most of us have set up countless projects, turning some portion of our hard drives into graveyards for wasted potential. But if you have a good design document under your belt, you should be eager to dig in at this point.
Needless to say, this part will look different for everyone, but I’m going to explain how I got started with my latest project, a couple of things I firmly believe everyone should do, and then a couple of things I’m trying that are giving me stellar results this time around.
I decided I wanted to have my hands on as much code as possible for Cart King ’92 because I don’t want to spend another project trying to figure out what Unity wants me to do when I would have known how to do the thing in code. That said, platform flexibility was important to me. If this game turns some heads on PC, I may very well try my luck on one or more consoles. So, I needed a toolset that would let me code the game the way I wanted, but was also mature and full-featured enough to give me some options at release time. Surprisingly enough, the leading way to achieve this is likely some version of Microsoft’s discontinued XNA framework. XNA’s demise led to the development community’s XNA extension project, Monogame, and a framework called FNA, which is a different extension focused on being the closest translation of XNA possible. FNA is often preferred for PC releases, where many folks like to use Monogame for console projects. If that sounds like a mess, then I’ve probably done a good job of explaining the situation. Basically I started this project in Monogame, went to our old podcast guest friend, Path of Motus creator Michael Hicks with some questions, and he happily answered them but warned me that FNA was probably going to give a more positive development experience, and he even had, not just A video series about FNA, THE video series about FNA that is advertised on the FNA homepage. God bless you, Michael Hicks.
Starting a new project should be done according to your engine/framework’s creator recommendations. Playing it by the book when you’re starting out will get you in the right frame of mind and will help get you the most out of your tools. I recommend following the directions to get a new clean project started, then immediately committing that starting point to the version control system of your choice. As I’ve mentioned before, I’m a Git man.
A quick aside on version control: I was a holdout for a very long time on using version control as a solo developer. To be completely honest, I made it through my first commercial release without it. I was using Lua at the time and the files and tools stayed simple throughout. I worked out of a Dropbox directory and even managed to use it to restore incomplete files or get rid of unwanted changes. There were also a couple of small issues I did not recover from that way. Nonetheless it allowed me to mostly protect my files and work smoothly between multiple machines right up through game launch.
Unfortunately, there are several reasons you should not depend on a service like Dropbox for a software project. First off, the services are not designed for this purpose, so using them this way becomes inconvenient in a hurry. The various snapshots Dropbox takes of a file, for example, are not perfect. There were a couple of times I tried to restore a file at a certain save point and it simply existed nowhere. You’re not really in control of how a service like this manages your files, it simply works on its own schedule which will eventually be at odds with what you need from it. Real version control, on the other hand, allows you to determine when to commit changes and create a project-wide snapshot of the entire project directory exactly as you want it to look. No matter what you do to the project in the future, you will be able to return to this precise state as long as the repository exists. Second, big game engines like Unity and Unreal hate when you work out of a directory being managed by a service like Dropbox. I don’t know what the experience looks like now, but there was a point in time when I tried this and I literally got non-stop notices from Dropbox about files being saved, synced, resynced, and occasionally, complaints that they were locked or in use. It becomes a nightmare fast. Unity loves Git and includes a variety of tools you can use to manage your repository right there in the editor. Finally, using Git or Subversion gives you an opportunity to sharpen a valuable skillset that stays in demand on professional teams of all shapes and sizes. Maybe you will never work on a software team in your life, but you may collaborate with someone who would love nothing more than to “go pro,” and this will set them up for success as well. Finally, learning and using Git is weirdly fun to me. I prefer the command line. It’s dead simple to learn and I just enjoy it.
Before we move on, I also recommend a solution like Git’s Large File Storage system. If you’re not familiar with the “large file problem” in version control, we covered it pretty well in my #GameDev Breakdown chat with Edward Thomson and Kayla Ngan of Microsoft Visual Studio Team Services at GDC ’18. Basically, using version control for game design often causes you to commit copies of large asset files like images and sound files repeatedly as you save changes to the repository. If you’re not careful, this will cause the size of your repository to explode. Some people, as Edward Thomson explains, will configure Git to simply ignore these asset files, creating a situation where they commit code to their version control repository and leave asset files in a Dropbox directory or on Google Drive. This seems like a nightmare scenario to me as well. Fortunately, Git Large File Storage will allow you to commit asset files to your repository once, then your repository will simply maintain links to those files unless direct changes require them to be committed again. I’ve been using this for a short time now, and for game development, this causes Git to behave exactly the way you want it to.
So what about hosting for your version control repositories? GitHub is an awesome site and I think just about every developer should have an account there for fun, collaboration, and portfolio purposes. Unfortunately, any repository you maintain there for free will be public, meaning anyone can go to your profile and see what you’re up to. You may determine that that’s totally fine with you, and then your problem is solved. Bitbucket is a get-started-free option that gives you a certain amount of room, particularly if you’re using Git LFS there, where you can maintain private repositories up to that point. I’ve had a Bitbucket account forever and have not run into any limitations.
There’s another option that I discovered in conversation with Microsoft cloud advocate, Jessica Deen, also at GDC: If you set up a workspace at Microsoft’s Azure DevOps site, they offer unlimited private repos just to have you in their sandbox. I wanted to try this, because eventually leveraging some cloud services for my games is well within the realm of possibility and I like what I’ve heard about Azure for this purpose. I found loads of benefits to doing this. I don’t know what the future holds for this offer, and maybe one day I’ll have to migrate out, but I love using the Azure site. Starting a new project gives you a project dashboard with several nice features. I was able to start a task board for work items which I consider another absolute must for a new project. Trello is a great alternative, but this turned out to be a great way to have everything integrated. You can also start a Wiki for your project, so if I were to bring anyone on to work on Cart King with me, I would absolutely go into my design document and turn the sections of the doc into Wiki entries, capture concepts about the game, and would maintain that all the way through the project. I also recently learned I can have multiple repositories in the same project. Why would you ever want that, right? Sadly, I got a decent amount of work done before I thought to go talk to Michael Hicks about my current project. When he showed me FNA, I decided to start a new project his way, follow through his video series, and then bring over as much of my work from the original project as I could, so in my Cart King project I have a repo called CartKing92 and now a second called CartKingFNA. It’s nice that this didn’t have to go in a completely new project. The DevOps site certainly goes even further, but these are the features I’m happy about right now. However you decide to start, at minimum, I strongly advise a version control system and a task board like you can use at Trello.
Working Toward the Prototype
With our game design document safely tucked away, our project started and established in a repository, the scope of the prototype should already be established, only leaving you to decide what to work on first. I often find myself working in a new engine or coding with a new framework, and when this is your situation, I’m known to take things very slow. A lot of developers like to invest a ton of time up front, deciding what helper functions they need on day one, mapping out object-oriented class hierarchies in detail, and even making plans for custom editors before they’ve done too much of anything on a new project. Michael’s FNA video series on YouTube does this, because he’s a very bright programmer and has intimate knowledge of the framework he’s using. If you are already reasonably comfortable with your tools, I’d encourage this. Who wants to rework something later for no reason, right? Work smart, come up with a great plan of attack, and use the hell out of that task board we talked about. Not committing everything to memory means your brain gets to stay nice and relaxed throughout your project. If you’re more like me and usually learning something new while you’re working, I’m a huge advocate for baby steps. My initial task list literally contained work items like “Get project to build without errors. Draw one frame of a sprite on screen. Get character to respond to keyboard events. Get spritesheet animations to work. Get character animated correctly based on direction.” As I worked on these and tested them, invariably I’d find two new things I needed to do for each time I test the game. Which is good! On to the task board they go. I strongly believe in establishing positive momentum when you’re not confident. In this scenario, I think it’s okay to go back and clean things up and refactor code later when you feel very good about what you’ve already achieved. Worrying too much about whether the player character extends the animated character class template or the projectile character class template while you’re still not sure how spritebatch drawing works is a great recipe for feeling overwhelmed and possibly quitting before you really do anything.
Once my task list is established on the board, one task usually stands out as being the most important thing I can do next, so I move it to the “doing” column, finish it and test it, commit my changes to the version control repository, move the item to the “complete” column, and move on to the next one. This loop can be repeated until your prototype is completely done.
Other things I strongly believe in: Use as much dirty programmer art as you want so you can get things moving. You have the project’s whole development cycle ahead of you to source art or perfect your own. Use asset packs from absolutely anyone who will give you permission. There is zero shame in this. I ran across an online tirade from an artist one time declaring “any developer who uses Fiverr to get cheap art is not a true creator!” He seemed to believe he could rant a magical budget into people’s pockets which they’d, for some reason, spend on him. That is not real life. Who wouldn’t want to do work with a great artist? In reality, most of us have to work our way up to that, and it does not make a lot of sense to me that an artist would be trying to stop the train that’s eventually going to reach their station. I look at resources like OpenGameArt, Kenney.nl, and any others I can find without a care in the world for what someone else might be doing with them. I give credit, I thank people, I use the material in accordance with the license, but I know that what I do with it will be uniquely mine. I try to make each decision feed into momentum and productivity. If one choice lets me work, that’s the choice I make. Everything else is secondary. This is how muscles are grown and milestones are achieved.
The prototype point looks different for each project. Initially I wanted to be done with a prototype before putting together this post. For Cart King, however, I realized a lot of intricate subsystems actually need to be functional before I can give players a sense of what the proper game is going to feel like to play, including a fairly mature inventory system, dialogue, a system that maintains loads of data about the in-game video game market, all in addition to the standard retro RPG controls of walking around, colliding with doors, pressing A to talk, etc. For this reason, what you’ll do with feedback to continue work on the final game will be unique to your project also, but you will largely continue the same work item -> code -> test -> commit -> Update tasks loop until the last problem is solved and you are ready to get a great Early Access campaign going, look for funding, Beta test, straight up launch the game, whatever you want to do next.
Whatever your strategy, make sure you’re taking plenty of time to update players and friends on what you’re doing with the project so you can build an excited community of true believers ready to dive in head first and help you tell the world about what you’ve done. Precious months and years of your life are invested into these projects—take it seriously, do it well, and understand that even if you work solo, you do not live through the experience alone.
If you don’t think you’ve read or at least seen any of David L. Craddock’s phenomenal books on the game industry and game development, check again, you probably have. Some of the greatest stories of the development space have been captured in David’s phenomenal pages, including Blizzard’s early history with Diablo, tales from the days of NetHack and other early Roguelikes, and more recently, Yacht Club Games’ action-packed development of Shovel Knight for Boss Fight Books. He kindly agreed to Skype in as Humble Bundle closes out its Boss Fight book bundle promotion (you still have about two days!) and his insight was every bit as interesting as I expected.
This is a must-listen for writers of any kind, and I’d also put it on the required show list for anyone running or connected with an indie studio. David has explored and documented not only the development of many games we know and love, but the culture, the energy, and the trials of the people creating them–and his knack for framing captivating tales from their accounts is second to none.
- @DavidLCraddock on Twitter
- The Humble Bundle Boss Fight Books bundle, including Shovel Knight
Podcast subscription links: