I am often asked how a person with little or no programming experience can start making a game. Until now, I have always tried my best to answer questions one by one. However, the number of problems has increased to a level that is hard to handle, so I decided to summarize all the suggestions in an article for reference.
This article is intended for those 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 aspect. I am not going to discuss the gaming industry either (because there are too many materials on this topic), but I will show you some of the things you need to do before making a game. One thing to note is that you should not regard the method I introduced here as the only or best way to learn how to make a game, but it works for me and others.
1. Select a language
The first thing to do is to select a language. You have a lot of choices, including Basic, Pascal, C, C ++, and Java. There are also a lot of arguments about which language is most suitable for beginners. For more information about the advantages and disadvantages of various languages, see John Hattan's wonderful article "What language should I use?".
I suggest C and C ++. Some people think that these languages are too difficult for beginners, but I personally disagree with this idea because I started from C ++. In addition, C/C ++ is currently the most widely used language, so you can find a lot of information and help. It is not a big problem to learn C ++ first, because once you have learned one of them, it is no big problem to learn another one. However, if you select C ++ from the very beginning, make sure that you understand and master process-oriented programming before learning object-oriented programming. (For example, if you still cannot compile programs without using classes, do not rush to learn classes first)
If you find that learning C/C ++ is a very difficult task, it doesn't matter. Instead, select a simple language, such as Basic or Pascal. However, I think that if you stick to it and find some good materials, it is not a problem to learn C/C ++.
Your next question is: How do I learn C/C ++? I'm glad you asked this question. The best way is to attend lectures. There are no teachers to help answer questions, which has a huge impact on your development, and programming tasks will ensure that you have mastered what you have learned.
If you are not thinking about the course, the next best way is to find some good books. Don't focus on those "books", because you will eventually buy a few. I suggest you go to a local bookstore and spend some time exploring the books about C and C ++ until you can find one that you can understand and learn from. At the same time, you may want to buy some advanced books or reference books, but once you have some knowledge about the language, you will have a better idea of what you need. You can find some suggestions on the BOOKS channel of the website.
Here, I would like to briefly describe a lot of entry-level programmers I have met, especially young people who are concerned about: there is no money to buy books or other things. First, there are a lot of resources that are free of charge, including libraries and Macmillan Computer Publishing (their website www.mcp.com has hundreds of programming books ). Second, if you want to be a good programmer, you have to consider investing in it. Use various means (valid; <) to get a bill.
There are a lot of C and C ++ learning tutorials on the Internet, but I think these tutorials are much better as a reference for your book learning than as a separate material.
2. Select the appropriate Compiler
The program or source code you write is stored in text files. You can even use NotePad to write C/C ++ programs. However, there must be something that can convert these source code into an executable file. For C and C ++, This Is A compiler.
A large number of compilers exist, many of which are free of charge. It is very important to select a suitable compiler. The advantage of a free compiler is that you can try it one by one to see which one you like best. However, free compilers often provide less or less technical support than commercial compilers. Fortunately, most commercial compilers have the same functionality as the full version, but the price is much lower than the introduction or learning version. The only limit is that, you cannot publish programs developed using the compiler (you must have kept it short ).
3. Select a Target Platform
Although you may eventually develop programs for various platforms, you should choose one of them for learning. When you are learning a language, you may want to use a non-GUI operating system, such as DOS or UNIX, before you start image programming. This helps you focus on language learning and avoid some high-level problems, such as Windows programming.
However, once you are about to start making a game, you should consider switching to your target platform. There are several common platforms:
Windows: If you want to work full-time in the gaming industry, or you want a large group of people to play your game, Windows is your first choice. Most of your target customers use Windows, and this situation will not change very quickly. Currently, a large number of Windows Games use a technology named DirectX that you have probably heard. DirectX is a library that allows you to directly operate on hardware. You can rely on it to write high-performance games.
DOS: DOS was once the main platform of the game, but it was just yesterday. Although some enthusiasts are still developing games for DOS, no commercial games have been developed for DOS, and DOS is declining due to Microsoft's stopping support for it. If you are playing the game at the beginning, do not select DOS. If you have already done so, do not stop. Note: many game programming books are written for DOS. When learning these books, you may think that developing games in DOS is justified. However, with the increase in the number of programming books for Windows games, such debates become less and less meaningless.
Linux: Linux is a variant of UNIX. It is becoming more and more popular because of its stability, low price, anti-Microsoft plot, and many other factors. Although there are still few Linux users at present, it has become a feasible choice for the target platform as it becomes a loving person and potential market growth.
Macintosh: Apple computers have a small group of loyal followers, and almost every Apple machine enthusiast I have ever seen has a strong desire for more apple games. I have not read much information about game development on apple, but I am sure that it does. Therefore, this is a reasonable choice.
Home game consoles: game consoles (such as Playstation, N64, and Dreamcast) have huge and promising markets. However, for various reasons, it is impossible to develop non-commercial game consoles. Most of the games you develop for game consoles are bought by commercial game companies.
4. Adequate power supply
It is time to discuss the real game. Although most of the content I mentioned applies to other languages, for simplicity, I will assume that you have chosen C/C ++ for Windows programming.
First, you should be able to master C and C ++ well before you think about how to start playing games. You should understand and be proficient in pointers, arrays, structures, functions, and classes. By doing this, you can start making a game.
This article cannot teach you everything you need to know about making a game. Fortunately, this is not necessary. There are many books and hundreds of tutorials on the Internet. GameDev.net should have everything you need now. Below are some suggestions for you:
Learn one or more books. For beginners of Windows games, Tricks of the Windows Game Programming Gurus is an excellent Windows Programming getting started tutorial. There are many good Books listed in the Books section on this site. Read these books, run all the routines, and read the chapters you don't understand.
Supplement books with online tutorials. In addition to clarifying what you read, online tutorials usually contain topics that are not covered in books.
Consult experts. If you cannot find answers from books or tutorials, visit the message board or chat room on this site. There are many people who are willing to help you.
We should not regard the above points as an orderly process, but as a cyclical parallel process.
Learning and thinking alone are far from enough. You should put what you have learned into practice. Starting from a simple game, the game gradually develops. You can read the Geoff Howland article "How do I Make Games? A Path to Game Development.
First, develop 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 make a greater contribution to a team.
I want to remind you of one thing about books: You need to read books other than game programming. In order to make the various games you see in the store prices, you will have to delve into topics that are more advanced than the content given by most game programming books. Some of them may be available in the tutorial, but you still need to buy a few books on graphics, artificial intelligence, networking, physics, and so on. This is the only way to earn a computer science degree, because you will be asked to take courses that you think are irrelevant to game programming, and they are actually related.
5. Summary
Here are some tips that can make a huge difference:
The application is the key to only know the collected knowledge. Unless you use it, you cannot actually know and understand these things. Do some small test programs to apply what you have learned and complete the exercises after each chapter in the book.
Play a large number of games. You will find inspiration to help you make better games. Of course, this is also a popular way to relieve programming pressure.
Help others. When you help others, you will learn more.
Complete your work. Don't fall into the trap of thinking: "I know I can complete this game, but I have a better idea. I want to switch to this good project ." If you can stick to the beginning and end, you will learn more, and you have works to prove that you are not just an empty talk. Before you have a wealth of experience, do a little simple, don't try to make a big and complex game.
Let's go! You should create Quake 4. Of course, it may not be that easy, but at least you can start from this direction and know where to find more information. After years of hard work, you will succeed!
Basically, what compiler you choose depends on how much you can spend, what operating system and platform you will develop programs. If you want to contribute to Windows, I strongly recommend that you use Microsoft Visual C ++. It has a powerful development environment that makes it easier for you to develop Windows software. If you are a student, you can get a copy at a very low price. If you want to develop programs under DOS, you 'd better use the free DJGPP