Good news for beginners: a beginner's guide to game development

  • 2020-05-05 11:09:48
  • OfStack


I'm often asked how a person with little or no programming experience can start a game. Up to now, I have always tried my best to answer one by one. However, the number of questions had grown to such a level that I decided to put all the Suggestions together in one article for people to refer to.

This article is for people who want to develop their own games but have little or no programming experience. In fact, I also assume that the reader has no programming knowledge at all. I will focus on the programming and design aspects of game development, not the art. I'm not going to discuss the game industry (there's too much information on this topic), but I'll walk you through some of the things you need to do before you can make a game. The point is not to take the approach I've presented here as the only or best way to learn how to make games, but it works for me and others.

1. Choose a language

The first thing to do is to choose a language. You have a ton of choices, including Basic, Pascal, C, C++, Java, etc., as well as a ton of arguments about which language is best for beginners. For a look at the pros and cons of various languages, see John Hattan's excellent article what language should I use.

I recommend C and C++. Some people think that these languages are too difficult for beginners, but from my personal point of view I am against this view, because I started with C++ myself. In addition, C/C++ is the most widely used language, so you can find a lot of information and help. Whether to learn C or C++ first is not a big problem, because once you learn one, it's not a big problem to learn the other. However, if you start with C++, make sure you know and have mastered procedural programming before you learn object-oriented programming. (for example, if you can't program well without using classes, don't rush to learn classes yet.)

If you find it difficult to learn C/C++, never mind, go back and pick an easier language, like Basic or Pascal. But I think learning C/C++ is not a problem if you keep at it and find some good materials.

Your next question is: how do I learn C/C++? I'm glad you asked. The best way is to go to class. Having a teacher to help you answer questions has a huge impact on your development, and the programming assignments will ensure that you actually master what you're learning.

If lectures are not on your mind, the next best thing is to find some good books. Don't pay attention to those "big books", because you will eventually buy a few. I suggest you go to a local bookstore and spend some time browsing through the books that introduce C and C++ until you find one that you can understand and learn from. At the same time, you may want to buy several advanced books or a reference book, but once you have a partial knowledge of the language, you'll have a better idea of what you need. Some Suggestions can be found on the BOOKS channel.

Here, I'll briefly explain what I've seen many entry-level programmers, especially young people, worry about: not having the money to buy books or anything else. First, there are many resources that are free, including libraries and Macmillan Computer Publishing (there are hundreds of programming books on their website www.mcp.com). Second, if you want to be a good programmer, you have to think about investing in it. Use various means (legal; < ) go and get some money.

There are plenty of C and C++ tutorials on the web, but I think these tutorials are much better as a reference for your books than as separate materials.

2. Select the appropriate compiler

The program you write, or the source code, is stored as a text file. You can even write C/C++ using a notepad. However, there must be something to turn the source code into an executable. For C and C++, this thing is a compiler.

A large number of compilers exist, many of which are free. Choosing the right compiler is very important, and one of the advantages of free compilers is that you can try one by one to see which one you like best. However, free compilers are often less functional or less well supported than commercial compilers. Fortunately, most commercial compilers have the same functionality as the full, but much cheaper, introductory or learning versions, with the only limitation being that you can't release programs developed using the compiler (which you won't be able to maintain for long).

3. Select a target platform

While you may end up developing programs for a variety of platforms, you should choose one to learn from. When you're learning a language, you probably want to use a non-GUI operating system, like DOS or UNIX, before you get into graphics programming. This will help you focus on language learning and avoid higher-level problems like Windows programming.

However, once you're ready to start making games, it's time to consider switching your target platform. Here are a few common platforms:

Windows: if you want to work full-time in the games industry, or if you want to get a large group of people to play your games, Windows is your first choice. Most of your target customers use Windows, and that won't change anytime soon. A lot of Windows games these days use a technology you've probably heard of called DirectX. DirectX is a library that allows you to manipulate hardware directly, and you can rely on it to write high-performance games.

DOS: DOS used to be the main platform for games, but that's a thing of the past. While some enthusiasts are still developing games for DOS, no commercial games are being developed for DOS, and DOS is languishing as Microsoft discontinues its support. If you're just starting out, don't pick DOS. If you've already done that, don't stay. Note: because there are many game programming books written for DOS, you may learn these books thinking that developing games in DOS makes sense. But as the number of Windows game programming books grows, this debate becomes less and less meaningful.

Linux: Linux is a variant of UNIX that is becoming increasingly popular due to its stability, cheapness, anti-microsoft plotline and many other factors. Although Linux is still a relatively small number of users, it has become a viable choice as a target platform with its fans and the potential growth of the market.

Macintosh: the MAC has a small but very loyal following, and almost every MAC enthusiast I've ever met has a strong desire for more MAC games. I haven't read much about developing games on macs, but I'm sure they do, so it's a reasonable choice.

Home console: the market for console games (Playstation, N64, Dreamcast, etc.) is huge and promising. However, for a variety of reasons, the development of non-commercial console games is currently unlikely. Most of the games you make for consoles will be bought by commercial game companies.

4. Full power

It's time to talk about actually playing games. While most of what I've said applies to other languages, I'll assume for simplicity that you chose C/C++ for Windows programming.

First of all, before you think about how to start playing games, you should have a good grasp of C and C++. You should be familiar with Pointers, arrays, structures, functions, and classes. Once you've done that, you can start making games.

This article won't teach you everything you need to know about making games. Fortunately, this is not necessary. There are many books on the subject and hundreds of tutorials online. GameDev.net should have everything you need right now. Here are my tips for getting started:

Study one or more books. For beginner programmers of Windows games, Tricks of the Windows Game Programming Gurus is an excellent introduction to Windows programming. There are many good books listed in Books section on this site. Read the books, run all the routines, and reread the chapters you don't understand.

Use online tutorials to supplement your books. In addition to clarifying what you read, online tutorials often include topics not covered in the book.

Consult with an expert. If you can't find the answer in a book or tutorial, go to the message board or the chat room on this site.

Don't think of the above points as an orderly process, but as a parallel process that repeats itself.

It is not enough just to study and think, you should put what you have learned into practice. Start with a simple game and work your way up. You can read Geoff Howland's article "How do Make Games? A Path to Game Development".

First, make a plan for your work. Don't rush to join a team because it will only slow down your learning process. When you have several games in your pocket, you will contribute more to a team.

One thing I want to warn you about books: you need to read books other than game programming. In order to make the kinds of games you see on store shelves, you'll have to delve deeper into topics than most game programming books teach. Some of them you might find in tutorials, but it's worth buying a few books on graphics, artificial intelligence, networking, physics, and more. This is a necessary step to getting a computer science degree, because you'll be required to take courses that you don't think are relevant to game programming, when in fact they are.

5. Summarize

Here are some tips to make a big difference:

To know only aggregate knowledge, application is the key. You can't really know and understand these things unless you use them. Do some small tests to apply what you've learned and actually complete the exercises at the end of each chapter in the book.

Play lots of games. You'll find inspiration to make better games. Of course, this is a welcome antidote to programming stress.

Help others. In the process of helping others, you will learn more.

Finish your work. Don't fall into the trap of thinking, "I know I can finish this game, but I have a better idea. If you follow through, you'll learn more, and you'll have work to prove that you're more than just a talker. Keep it simple and don't try to make a big, complicated game until you have a lot of experience.

Set off! It's time to make the Quake 4. Sure, it may not be that easy, but at least you can start in this direction and know where to look for more information. After years of hard work, you will succeed!


Basically, what compiler you choose depends on how much money you can spend, what operating system and platform you will develop your programs on. If you are ready to contribute to Windows, I strongly recommend using Microsoft's Visual C + +. It has a powerful development environment that makes you feel at ease, and there is no compiler better suited to developing Windows software. If you are a student, you can get a copy for a song. If you are going to develop programs under DOS, you are better off using the free DJGPP


Related articles: