Starting up

Started by
9 comments, last by tman3 10 years ago

So when I started making games I honestly did think that I knew more than I actually know. I started right away with learning C++ and thought that I could master it. Well now I know better. I also made the AMAZING decision on skipping a vital baby step which is the step of creating a simple game like Tic Tac Toe or Tetris. I went straight to RPG Maker and learned how to use it. It took me a while to realize that I really don't know how to make a game. So the question I have is how do I create a small game? Do I just program a game of tic tac toe? I have been trying to find a book on programming games for beginners. So far in programming I have the knowledge to create a basic calculator. Does anyone know a book that may help or has helped them? Or a very handy tutorial of some kind? I'm also curious if I was on a good track. I've looked up youtube videos of how to program and actually took some courses at Codeacademy. Are these good places to learn?

Advertisement

Well, if you already know C++ good enough, I recommend the book SFML Game Development. I think that if you have practiced a bit with these tutorials, that you could follow the book, as long as you're prepared to google some things while busy. It shows some very important concepts, like modern C++11, memory management, state machines and resource management using SFML.

If you have not, you have to see something about the game loop, which is the core element of every game, i.e. the main thing that differentiates games from other kind of programs. Tic tac toe is a good way to start.

Some good tutorials that lots of people recommend are the SDL ones from Lazy Foo: http://lazyfoo.net/SDL_tutorials/

I used them when I had to learn SDL to make a Zuma clone for college.

If you have not, you have to see something about the game loop, which is the core element of every game, i.e. the main thing that differentiates games from other kind of programs. Tic tac toe is a good way to start.

It depends, you can make a tic tac toe game and a lot of puzzle games just like any other program with a GUI, the game loop is for games that need changes on things without actual input of the user. For a simple Tic Tac Toe game you can have a function that is called after every user input that checks for a winner, makes the opponent movement and checks for a winner again.

It's good to learn about it and everyone needs it for a more complex game, but it's not essential for a really new beginner.

I've put together this guide on what games to create and how to create them when starting out. It's a list of projects in escalating details, tells you what you will learn from doing that particular project and links to code examples, key algorithms, etc.

If you look at the list, I actually rank Tic Tac Toe as the third on the list. It's a good choice as you can do it with or without graphics, and it is also an introduction to AI. You can start by brute forcing the decision making process, but eventually you will discover the MinMAX algorithm.

In the end it's all about experience and confidence. Start small with a contained and defined project, complete it, move on to something a bit more complicated. Frankly it's no different than the learning process for just about every other skill in existence.

Writing Games and Programming Games are 2 different subjects that go side by side. While skipping simple Games such as Tic-Tac-Toe and jumping to a RPG is a leap, it is also a choice in doing something that might keep you motivated. Using RPG Maker is along the lines of writing a game, where you enter in all the rules and date that would make your ideal RPG game work while using someone else's programming skills to make it happen. That would be like telling Tom Clancy your War/Conflict/Spy story and having him writing it. ( Albeit at this point he would be a true ghost writer. )

If you already know C++ and you want to do Game Programming ? Your next step is to decide 2D or 3D and Pick up a book focusing on those Game programming subjects.

I personally think a 2D book focuses more on the Game Programming side of things and the 3D books focuses more on the Graphical Rendering of 3D Objects.

Check Out Amazon.com or BarnesandNoble.com for titles like Game Programming For Teens, Game Programming : All in One, 3D Game Programming. Be Careful in selecting your title, Not all books use C++, Some use Visual Basic, TorGue or some other language.

Now on to writing your own Game. Most of your programming is going to involve non-graphical functions, Start by learning those. Build a console text-based game, even start with your RPG. All of your cout statements will eventually convert over to your graphical Rendering Functions.

My First Game was a Text based American Football Game. I created Data Cards for the Players, Rolled a few Dice, crossed the Dice Roll with the Data Elements, Referenced a Game Play Chart, Moved the ball if needed, Tracked Field Positions, Updated Downs, Scored, Tracked Time and so on.

I built my game 1 Function at a time. Each Function was Just Named Above.

Good Luck and Happy Programming

Your Brain contains the Best Program Ever Written : Manage Your Data Wisely !!


Some good tutorials that lots of people recommend are the SDL ones from Lazy Foo: http://lazyfoo.net/SDL_tutorials/
I used them when I had to learn SDL to make a Zuma clone for college.
  1. SDL is written for C and doesn't use OOP and other things that make your life easier while using C++. So that's a reason not too.
  2. The Lazy Foo tutorials are not even ready for 2.0 while 1.6 is ancient.
  3. My personal opinion is that the Lazy Foo code isn't too elegant. There are global variables sometimes, and pointers all over the place even though it isn't necessary.

My personal opinion is that the Lazy Foo code isn't too elegant. There are global variables sometimes, and pointers all over the place even though it isn't necessary.


I think why I very much like the LazyFoo tutorials is because in most of them he demonstrates the technique and nothing else. Such as he doesn't add in loads of object orientated design which would get in the way of the actual learning.
He also doesn't push his own wrapper classes (unlike some bad game development books).
In most cases, he also makes separate programs for each tutorial rather than building up one overwhelming project so readers can join his tutorials at any point.
Most importantly, he uses C++ but doesnt "overuse" C++ in that there are no templates, smart pointers etc. Making the tutorials a pleasure to read.

His tutorials probably target SDL 1.2 (since 1.3 is only unofficial hacks for tablets). They are not really out of date since SDL 2.0 was only finalized late last year. His is working on 2.0 tutorials however.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

Which RPG maker do you have? If you have Ace, you can go to the official forums and download a game called 'tutorial island' - it's about a 4 hour RPG, that the author went and made YouTube videos explaining everything he did while making the game. Ace also uses Ruby as a scripting language, which will force you to think in terms of OO coding if/when you decide to start scripting (and you can make a lot of great games without ever touching a script).

If you've already bought the engine, you may as well get some use out of it. That will let you learn to write games, and you can learn coding on the side (and you don't need to code games to learn how to code). The writing, dialog, choice of music, etc... is every bit as important as the code to a good RPG.

"The multitudes see death as tragic. If this were true, so then would be birth"

- Pisha, Vampire the Maquerade: Bloodlines

Hi,

You need to assemble a WORKFLOW PIPELINE!

This could be just a simple set of applications and a software or two to make single player 2D games, which is what I recommend for you at your level. This requires that you focus on a RUNTIME ENVIRONMENT in order for your coding to run through a particular operating system or you may go cross-platform from the start with OpenGL, Java Virtual Machine, or the best alternative which is to take a game engine and learn how to code single player 2D games (then multiplayer 2D, then single player 3D, then multiplayer 3D).

List of Game Engines:

http://en.wikipedia.org/wiki/List_of_game_engines

Beginners should start simple but broaden the basics soon. For example, learning early about GUIs, executable files and applications, modular coding such as class files and dlls, and be sure to use as many existing coding libraries as you can find and use under license to avoid reinventing the wheel. Forget about making your own game engine which takes a team years to do! After a year or two, then you should start using source control and version conrol software. A year or two later and you should be using development management software and a software architecture program if you want to be most effective working with a team.

Read my signature and stay on track to complete iterations of projects until you finish projects.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

This topic is closed to new replies.

Advertisement