Tales of the Rampant Coyote

Adventures in Indie Gaming!

What Does a Beginner Need to Start Making Games?

Posted by Rampant Coyote on January 29, 2014

gmproCourtesy of a Steam Sale, I found myself in possession of GameMaker Studio Pro edition for the bargain price of 25 bucks a few weeks ago. I’d actually considered taking a good, hard look at it after some comments on game development after considering some comments on one of the posts here (I think it was this one – about 3D), and the software came up for sale either that night or a day or so later.

The issue is – for me – a concern that beginners need an easier path to get started in game development. I knew that GameMaker began life as an educational tool for use in teaching students game development, and a lot of cool commercial games have been made with it. I’d heard plenty of reports but never had first-hand experience making a game with it. So I tried it, and made a game out of it (my One Game a Month entry, and also my Candy Jam entry), so I could give a more informed opinion about it.  I’ll be sharing the details of learning the system – as well as the game – in a few days (although the experience may make up a few posts over the course of several days).

Going through this learning process yet again with a new “engine,” with an eye towards recommending it for beginners, drove a few points home for me. I will probably comment on several, but here’s a biggie:

I can’t think like a beginner anymore.

One of the complaints about my “Game in a Week” article many years ago was that sure, it was a game in a week, following years of experience as a game developer. While I recognized that was an issue, I didn’t think it was a big one. After all, I was learning to use a completely new game development “engine” (well, library).

This time around, however, particularly with the multi-featured, fairly complex beast that Game Maker Studio is, I recognized how I was learning to use the game system. Even though it was a completely different engine and suite of tools than I had used before (and I have worked with many in my career, including several custom in-house game engines), I was taking all kinds of shortcuts to learn and use the system. I relied on very few tutorials. With a brief introduction to the overall architecture (not a whole lot more than the introduction and overview in the documentation), I had a pretty good idea for how it worked, and had my head around things. A little bit of fiddling around to learn how to create events and actions, and I was up and running.

From that point on, I was able to take an educated guess as to what I needed, and then hunt it down in the docs pretty quickly. I knew what I needed – from collision handling to spawning an instance of an object, to drawing a sprite with the built-in editor. There have been a few questions that I had to look up on the Internet or ask one of my buddies who is experienced with the software, but things started coming together, and I was able to cobble up a simple game with it. I probably did some things “wrong” but they work.

This is totally NOT how a beginner would approach it. I was making assumptions and jumping to conclusions that more often than not turned out to be correct. I knew what I was looking for. A beginner would have no basis to make those assumptions in the first place. Really, the only way I’d see doing it would be starting out with some simple tutorials (yeah, I know, BORING) and working their way up to more complex ones.

Here’s another issue I ran into:

I have a programmer’s perspective to game development, not that of an artist or a designer.

moosaderWhen I think of how I learned to make a game, I think of the old days of programming in Basic. I think of using abstract graphics to represent balls and walls and aliens, and that the first stages of making a game should be the equivalent of writing a “Hello World” in four lines of code or less. I think of… well, Moosader’s SDL tutorials. While she can do many things, she’s also got the mind and approach of a programmer.

Now, I believe that experienced game developers of all stripes eventually converge on some levels of commonality. Even though my mindset is more on the problem-solving and step-by-step approach of programming, I’m always thinking about the art pipeline and quality, design issues, and so forth. But I’m still rooted in that programmer mentality. When I come across a problem, I tend to immediately think of how to solve it with code before considering other options, like just hiding the problem with art, or changing the game design to make the problem go away.

So with my programmer bias trying to imagine learning to make games, I immediately think of having easy access to stand-in content, being able to get at everything via code very quickly, having simple functions to initialize and get things running very quickly, and also having a very rich, deep library of additional functions to go beyond the basics when those are no longer adequate. I want great documentation and example code, lots of tutorials covering every aspect of using the engine, and very useful debugging / scripting tools to help me find and root out the problems. But when I think of how I get things in the game to interact, I think in terms of code…

Coming at game development as a beginner from a programmer’s mindset is probably pretty different from that of an artist. As an artist, I would probably be first concerned with creating graphical content and getting it to display and move inside the game. Ease of the content pipeline would be paramount. I would look at avoiding code as much as possible until I was ready, and would prefer off-the-shelf behaviors that I could just plug in and set loose to see how things look.

unityeditorAs a designer – well, designers are always a weird bunch. Who knows what they want? 🙂 I have my own bias – I imagine that as a kid, I started as a designer, with big ideas, and I learned to program to make those things happen. So “design” was really more of my gateway drug. But I jokingly refer to designers as people who aren’t good at either coding or art yet, but who are passionate about making games. From that perspective, I imagine a rich toolset is key, with plenty of stand-in content (which the programmers like) and canned behaviors (which the artists like).

And then when you get past the learning stage and want to use the engine for actual, commercial-quality game construction, you have a ton of additional needs. And this is everybody. You get worried about content pipelines, content / code versioning, workflow, ease of creating builds, multi-platform development, localization, integration with additional third-party libraries, monetization, the quality of support for the product (you don’t want to be in late alpha and discover a game-wrecking bug inherent in the engine which cannot / will not be fixed), metrics / statistics / profiling, debugging tools, licensing costs, and a whole lot more.

Unfortunately, the real game engines that cater to all these approaches have the side-effect that they are pretty daunting and complex. It’s the cost of providing all this stuff that everybody needs. So I guess this whole post is an excuse to explain why I am not the best judge of a game engine / studio as an introductory tool for beginners. I have some ideas of what they would need, but the very feature-rich nature of any tool that would provide all of that might make it overwhelming. I’m still of the belief that you’d want something small and simple to get you started… but that isn’t something that would “grow with you” as you learn your chops.

There are a lot of options out there. It’s a little overwhelming. I imagine a true beginner, aspiring to make great games, might be a little befuddled about where to start.

But I guess, compared to what we had back in the 8-bit era when we not only had no clue but also not many options, these are the right kinds of problems to have.

Filed Under: Game Development - Comments: 10 Comments to Read

  • McTeddy said,

    As a Game Designer I resemble that remark! Wait… is that how it’s suppose to go… no… resent! RESENT!

    I think the best advice I can offer to new developers is to skip the boring tutorials at first. Find tutorials that do something cool and exciting that you are interested in seeing.
    Even if you don’t understand what you are doing yet. You need to discover the “Joy” of creation. This will create a hunger for more knowledge and help you through the down moments.

    No matter the engine or language… truly wanting to learn more is the key to success.

  • Rampant Coyote said,

    Yeah, maybe I’m underestimating beginners a bit here. I honestly don’t know. I don’t think any of this is hard, but I’m not sure how much of that is just years of experience minimizing the difficulty.

  • Kevin Higgins said,

    Beginner designers might want the ability to create places and sequence interactions. Tools like RPG Maker and FPS level editors come to mind. Modding is also a great way to explore balance, feel and other designers’ concerns. As you say, stand-in content and canned behaviours.

    Looking forward to the rest of these articles!

  • Maklak said,

    Well, I for one have trouble staying focused and motivated. By the time I know what I want and more or less know how to do it, I get bored by the butt in the chair work and quit. Like Rampant Coyote said in some earlier post, finishing is a skill.

  • Garrett said,

    As a beginner in game development, I agree with your statement about the current situation being a little overwhelming in finding where to start. I imagine that entry point will be different for everyone. For me, I have been working in Java professionally for about 2.5 years, so I decided I should just use Java as my language to crack into game development rather than trying to learn a new language AND learn game development concepts.

    I have made a few simple games using Java2D in school. I just found a pretty good tutorial for making a 3D Game Engine from scratch that I think will be good for me to understand a lot of the concepts and challenges involved in game dev: https://www.youtube.com/user/thebennybox

    But, yeah, I find myself asking whether I should be using ready to use game engines or studios. As a programmer, I like getting under the hood to see how it works and manipulate things that way, but as a video game fan, I also want to create something in a reasonable amount of time for some gratification.

  • CdrJameson said,

    I used GameMaker for my Christmas Card this year.

    It does bring out the programmer niggles.
    How do I navigate?
    How do I find all the references to this variable?
    How do I merge?
    Can I run unit tests?
    Why is it doing/not doing that thing?
    Can it scale in complexity?

    I’m not sold yet, but as a beginner I wouldn’t be thinking about these things I’d just do what the tool was capable of doing, working with the grain.

    Of course I’d still run into the problems, I just wouldn’t realise what I mess I was getting into before it was too late…

  • ShadowTiger said,

    I learned to program in the starcraft map editor. It helps to have a very limited set of tools, a GUI interface for creating the code, and plenty of open source examples of how to do cool stuff with it.

    Warcraft 3 then opened stuff up with loops, variables, function calls, and arrays.

    I think warcraft 3 is a great way to start for anyone, Starcraft 2 also works but is probably going to be overwhelming.

  • Rampant Coyote said,

    You guys are quite right – I tend to forget about all the possibilities in the modding scene. Lots of teams have started their careers that way.

  • Vatina said,

    Being from the artist side, I sometimes run into this thing you’re talking about, I think. The thing where you are trying to learn a new engine, and you’re sort of improving, but then you get stuck on something – so you go and ask for help from the other experienced people using these engines and programs.

    And you get an explanation that makes complete sense, and is a no-brainer to those who have been programmers for ages, but looks like a puzzle in itself to me and is several levels above what I needed 😛

  • Rampant Coyote said,

    I can totally see that, Vatina. While I’ve not been that confused by programming for a very long time, I get that sometimes in other areas. I was working through a book on drawing a couple years ago and saw some references about, “Remember what you learned in your anatomy classes…” making some assumptions about my knowledge level that I didn’t have.

    Maybe someday I should work with some folks to have a really, really bare-bones introduction to game programming for people who have zero clue about programming. I assume there’s already a lot of resources out there, but maybe I’m wrong.