Tagged in: python

Q&A: Which tool?

I am a student in Belgium. My friends and I have decided to create a video game to understand the process and learn to code better.  We are planning to create a RPG, kinda like the early Zelda games with the top-based view, and mix it with movie pieces […], and get a sort of crafting system integrated.  The problem we are having is that we don’t really have a idea what engine / framework has the most functionality to complete our quest to create our first game!

Do you have any tips / frameworks / engines that could be more of use for us?

This is a pretty common question – the specifics change, but it boils down to “What is the best tool in order to make the game I want, considering the skills I have?”

I am a designer, so when I look at frameworks or engines, what I am really looking for are tools that get me as close as possible to the finished game without needing to create a lot of basic behaviors or systems from scratch. A designer may accept a more rigid tool with fewer options if it’s easier and faster to use and gets them close enough to their goals. A programmer may want a tool they can highly customize so they can get exactly to their goals even if it takes more time.  There’s trade offs with both directions, and any given tool is going to give more or less of each.

One person might cut a feature like playing movie-clips (from your example) if it means they could use a much easier toolset to implement the core Zelda-style gameplay. Someone else might decide to use a more difficult tool that they can customize to play those movie-clips, at the cost of cutting some of the puzzles and levels. What choice you ACTUALLY make depends on how core the feature is to your game, how much time you’re willing to spend making it, and whether you have the technical skills to implement it.

Now I started off talking about designer vs. programmer considerations with tools because students have asked me, “What’s your favorite tool for making games?”. The answer is Twine, but I’m unlikely to recommend it to a computer science student because it would be ill-suited to their goals and the technical challenges they want to pursue when making games. Unity 3D is an amazing, versatile engine but I’m unlikely to recommend it to a game design student who has no experience programming because it’s extremely complex and relies on a lot of technical knowledge with no ramp-up that the student may not possess.

Now to answer your specific question about a Zelda-style game with a crafting system –

    • For a designer: Construct 2, for the best ease of use for 2D games, excellent visual scripting language (but no coding, so it can be inflexible), lots of features, lots of tutorials, output to several platforms with a couple clicks (iOS, web, download).
    • For a designer-programmer hybrid: Gamemaker, for a combination of an easy-to-use tool for 2D games, lots of examples and tutorials, and a scripting language (code) allows much more customization.
    • For a programmer: Python and PyGame, as a very popular scripting language for making your own games, fully customizable, with lots of information and tools out there for it. If you, or your team, are mostly programmers or computer science students, this is what I’d recommend (caveat: I am not a programmer!).
    • For an experienced programmer: Unity 3D, though I have no experience with their 2D tools, is fully customizable. If you’ve never made a game before and are just starting out, Unity 3D can be a bit overwhelming. However, it’s surprisingly close to the tools used by AAA devs and a lot of really good, professional independent games have been made in it.

As your very first game, I highly recommend either Construct 2 or Gamemaker – both have free versions with enough features to evaluate them, and both can definitely be used for the style of gameplay you want. I am not sure which is better for a team project when multiple people want to work on it simultaneously: Python might be a better choice for that, so it’s worth keeping that in mind. Again, if you guys feel comfortable with code, then head toward Python and PyGame, but remember that you’ll spend more time laying down the groundwork that a tool like Construct or Gamemaker have already created. (Like I said – lots of trade-offs!).

I’m trying out a new thing where instead of responding to emails about game development privately, I’ll be posting some of the questions – with permission – and answering them here.