7 Essential Resources & Tips to Get Started with Game Development

Hi! I’m David Arcila, the curator of the ZEEF Game Development resource page. I’m also a game development teacher that has seen countless student projects crash and burn throughout the years. This has led me to understand what are the common mistakes that people make regarding the game design and game development workflows.

david medium

In this ZEEF curator blog post I’m going to share 7 essential resources & tips to get you started with game development and help you avoid the common pitfalls that this creative process ensues.

Resource 1 — Lay out the Plan — Dundoc

The most important thing to do before actually starting development of your game is defining what the game is going to be about, the best way to do so is by working on a Game Design Document often called a GDD. This document will become your compass when actually developing the game and will save you a lot of time in the long run, but beware! If you’re not meticulous about what goes into the GDD you can end up with a huge document that no one will read and were the important information gets buried among blocks of text thus hindering the team workflow.

My advice is to use Dundoc initially to have a really compact GDD that answers most of the common questions regarding what the game will be about. Later on you will realize that this document has to allow for collaborative input so you probably will migrate it to another platform.


Resource 2 — Tell a good story — Twine

If you thought people bought a video game for it’s graphics then take a quick look at this survey taken from the 2015 ESA Report about the computer and video game industry. Turns out last year 22% of gamers were buying games based on the story and/or premise, which sheds light to how important narrative is becoming for gamers.

If you’re wondering where to go to start building your story in a simple and dynamic way then make sure to check out Twine. Twine is an open source tool created by Chris Klimas for telling interactive nonlinear stories, which makes it really convenient for game development. This software allows you to build your narrative in a visual structure based on hypertext that doesn’t require knowledge of programming.


Resource 3 — Get agile — Trello

Once you understand what game you want to make, you must start getting things done and the best way to do so is to use a Project Management System that allows you to organize tasks and get feedback. That tool isTrello, and believe me, I’ve tried dozens of similar resources such as to-do lists, mind maps and even database apps but the most simple and straightforward is this one, especially when you’re working with a team.

The difference and more important aspect of using Trello compared to a to-do list is that you can visualize the importance and impact of the tasks in regards with the project and you can also assign due dates to it, this makesTrello very easy to integrate with Agile methods such as Scrum.


Resource 4 — The Democratization of tools — Unity

Most game developers nowadays can’t even understand how fortunate they are, back in the day if you wanted to use a game engine you either had to buy an expensive license or you had to build it from the ground up. Fortunately, thanks to the democratization of technology today we can find a plethora of game engines that range from 2D, 3D, Free, Subscription based and more.

Because of it’s ease of use and gradual learning curve, Unity is one of the most popular engines among indie game developers so there is more than enough tutorials and information available online for learning.

unity david

(If anybody wants to dive more into Unity make sure to check out Adrian Anta´s ZEEF page here)



Resource 5 — A prototype is worth a thousand words — Kenney

Now that you know how to start a GDD and how to organize the tasks for the development of your game, it’s important to start building a prototype because this is how you will show the game mechanics and understand how the game is coming altogether. You must be iterating many times until the game feel and the game mechanics work effectively until you end up with the Alpha and subsequently the Beta version of the game.

But, how to start prototyping as soon as possible? With the use of placeholders.

Placeholders are temporary assets (3D Models, Sprites or Sounds) that are meant to dissociate programming and art schedules allowing them to progress independently thus saving time and allowing you to start playing with your basic game mechanics while the final assets are done. So, let me tell you about Kenney, who is also known as the “Asset Jesus” because he has the best placeholders available for making a quick and working prototype. We’re talking about UI, Audio and Sprites that are Public Domain and ready to implement.

kenny david

Resource 6 — Don’t forget the Audio — Incompetech + Freesound

Most indie game developers make the common mistake of defining and implementing the audio at the last moment, the reason why this happens is because generally graphics and programming are priority when developing the game, but having a great sound is integral to making an awesome and memorable game. The good news is that having great sound can turn a so-so game into a better one, the bad news is that composing music and sound effects for videogames requires time and effort.

I’m going to recommend the following resources related to Audio:

  • Incompetech is a music repository made by Kevin MacLeod that has Royalty Free Music available as different “Collections” which can be searched by genre or feel. Some developers use Kevin’s music as audio placeholders because due to Incompetech’s popularity a plethora of Youtube Videos and Web Games already use his songs, so eventually you will find that a song you like has been used before in another product.
  • Freesound is a huge collaborative database of audio snippets, samples and recordings released under Creative Commons licenses that can be reused as you want depending on the type of license the samples have. Using a free audio editor such as Audacity you can remix the samples and adapt them to your needs.




Resource 7 — Knowledge! — GDC Vault

It’s very important to be learning constantly specially in this ever changing industry, and the best way to be aware of the changes is visiting the GDC (Game Developers Conference) because it’s the largest annual gathering of professional video game developers and it features a variety of lectures, tutorials and round-tables on game related topics that cover programming, design, audio, production, business, management, arts and more. But if you’re not in San Francisco or can’t travel there don’t worry, you can enjoy and learn from the free content available in the GDC Vault.

gdc vault


I hope you find this list useful in your game development endeavors, please always remember to have a realistic and reasonable scope for your project, start by making small games and only after you can gradually start developing medium sized games by adding a features.

If you want to improve your prototyping and development pipeline then start participating in Game Jams such as the Global Game Jam or Ludum Dare, it’s a great way to meet people and test yourself.

For more useful resources make sure to check out my ZEEF game development page & join their new Facebook group!

Presentation Bar Tab

Building Bar Tab at TNW Hack Battle 2015

I recently competed in TNW Hack Battle 2015, part of the annual TNW conference.

As the non-technical startup Founder, of Party with a Local (a free app that connects travellers and locals that want to party), you could say my first ‘hack’ was getting accepted in the Hack Battle in the first place.

A bit of backstory on that – I’ve fairly recently moved to working full-time on Party with a Local and very recently recruited 2 new developers to work on it with me. I came across the TNW Hack Battle and saw it as a great opportunity to enter us as a team – so we could work together, really get to know each other’s way of working, and build something cool in a couple of days.

You had to apply to be accepted into the Hack Battle. I knew my devs would qualify as they had relevant experience and are true hackers, but I had to be slightly ‘creative’ with my application. I said I was a ‘Startup Founder / Web-based Front-end Developer with knowledge of APIs like Facebook, Google Maps & Foursquare’. This is in fact true, but my technical knowledge of these things is pretty limited, and my coding skills don’t go far beyond HTML & CSS! What I lack in hacking skills, I think I make up for with a hustling mentality, plus I love bringing new ideas to life and working with a committed team. I also enjoy the rush of working under time pressure, which you need when trying to build and launch something in 2 days.

Anyway, I crafted a nice application demonstrating my enthusiasm, and said I was entering with the other guys, as a team. We all ended up getting accepted via Appsterdam and one of the API partners of the Hack Battle – getDNS. Thanks for that guys!

So our Hack Battle team consisted of Jaideep (back-end hacker) and Vinod (very back-end hacker) and me (hustler). We recruited a 4th team member from Brazil, who had also been accepted via getDNS. He happened to be more of a real front-end guy than me was a handy edition to our team (our team’s hipster?).

Bar Tab iconOne of the ideas I’d had for a while and was hoping to bring to life at the Hack Battle, was ‘Bar Tab’. This was inspired by WanderTab and Product Hunt’s Chrome extension, which as well as being Chrome extensions, are literally extensions of another product, something that Ryan Hoover of Product Hunt calls “productized marketing”. This basically refers to apps or sites which are tangential to one’s core business, but which can be an effective way to reach new users (or keeping your product front of mind to attract more daily active users to your core product). I thought this could be a nice add-on to our core Party with a Local app.

The idea behind Bar Tab was simple – to show cool bars with every new tab that you open in Google Chrome. The problem this solves is – how do you discover bars in your city? There are so many great bars in every city, with new ones popping up all the time. How do you keep up – read newspaper reviews or long Blog posts? See which bars your friends like on Facebook? Just happen to walk past a cool looking bar? We think discovering great bars shouldn’t be that complicated. This is also a problem our app users can relate to – they are curious and looking to find cool new places (as well as to meet new people).

So the goal of Bar Tab would be to make finding great bars easy and inspiring – every time you open a new tab you would be presented with a beautiful image of a curated bar with some key info about it: bar name, a link to bar’s website, when it’s open, how to get there, (what else do you really need to know about a bar before going there?) as well as options to refresh to see a new bar, share a bar on Facebook or Twitter, and suggest a new bar (which would also have paid options for bars, events and brands).

Before diving in to building this, the whole point of the Hack Battle was to hack using the partner APIs, so we had to see whether we could utilise any of them first. So at the beginning of the battle, we spent a lot of time as a team discussing how we could best use the getDNS API (seeing as they were the ones who invited us). It was proving really challenging for us to create anything very creative or fun with getDNS beyond a bland DNS security product, let alone Bar Tab. We were a bit stuck.

ZEEF APIWe were very happy when ZEEF presented their ZEEF API docs on stage, and we saw the perfect partner for helping create our ideal product of Bar Tab. So we started to hack…

I first curated a list of cool bars I knew in Amsterdam, whilst the devs looked at the possibilities of the partner APIs. I mocked-up how I thought Bar Tab should look, which our front-end guy started to design. Next I created a ZEEF account (very easy with Twitter). I then built a page on ZEEF with ‘blocks’ that included the name of the bar, a link to the bar’s website, as well as a link to a nice photo of the bar (we found photos that were either Creative Commons or from the bar themselves where possible). The ZEEF guys helped us best structure the ZEEF page and blocks for what we wanted to build.

Jaideep then hooked up the API with the ZEEF REST-based API. We made calls to the APIs and got the results from the page I created. The URI mechanism is really easy and did not take time to populate the results to our database. The next task for us will be to schedule jobs on the back-end to fetch information about new bars as we add them. The search feature of ZEEF is also useful, we want to explore it and hook with our APIs. Jaideep also found a couple of little things that could be improved on the API, and the ZEEF guys appreciated the feedback.

We still really wanted to utilise the getDNS API, especially seeing as they had invited us. The most obvious use of the getDNS API is to check whether website is DNS secure (DNSSEC) or not. So, we decided to show whether each bar on Bar Tab we are showing in a tab is DNS secure, DNS insecure, a bogus website, or unknown. We symbolise each of these 4 possible DNS statuses on Bar Tab with a different symbol next to the link to the website. This gives users some confidence and choice about whether to access a website or not.

We used Python bindings for the getDNS API. First, we create a context, an opaque object which describes the environment within which a DNS query is performed. Secondly, a query is performed with extensions, a python dictionary, where key “dnssec_return_status” is set to getdns.EXTENSION_TRUE. In short, once we get the bar using the ZEEF API, we do DNSSEC query for the Domain name and check the “dnssec_status” in the response. This dnssec_status is shown to users in a user readable format (with the symbols). Not the most creative use of their API we admit, but it was good we could use it in some way.

Other tools we used to build Bar Tab:

In true Hack Battle style, we hustled to get it done and didn’t sleep much for 2 days and we literally went live with Bar Tab on the Chrome Store five minutes before our final pitch (completed in the line to speak)! As a result my pitch was not the most polished and I didn’t emphasise enough that the product was actually live to download from the Chrome Store right then (& had a business model built in too).

Bar Tab

Whilst we didn’t build the most advanced product, or utilize the partner APIs in super creative ways, we achieved our goal of hacking something cool together in a few days, and as a bonus it was something that looked nice and was related to Party with a Local. I’m not sure how many other teams launched a live to the public product (with a business model). I was really proud of the team, how we worked together and especially how we hustled to get shit done to go live just in time.

We didn’t come away with the grand prize, but it was a great experience for the team, and we did win a Raspberry Pi from ZEEF which is cool (my girlfriend was very excited when I told her we’d won a Raspberry Pi, but disappointed when I told her it wasn’t actually a ‘Pie’ :-P). We also celebrated our efforts with quite a few beers at the end, which is customary with Team Party with a Local.

So Bar Tab is live, but it isn’t finished. We plan on expanding it to 9 more cities before really announcing we are live (probably on Product Hunt), and if there’s enough traction, we’ll actively pursue the business side of it and get bars and events to advertise. If not, we’ll just use it as a nice add-on and extra marketing channel for Party with a Local.

A big thanks to TNW Hack Battle for organising a great event and our API partners, especially ZEEF. We look forward to developing Bar Tab further and entering the next Hack Battle!

Get Bar Tab and discover great bars with every new tab.