From novice, to a game like wolfenstein

Started by
25 comments, last by hawk2k3 18 years, 1 month ago
Hi, Yes, i know most of you just released a deep *sigh* when you read this topic. But please read my whole post :) First of all, im im this for the long run. I dont expect to learn to how to make a game in like a month or something. But I am going to learn it, no matter the time it takes. Back in school (what, 8 years ago?) I learned Pascal which i found to be pretty easy, altho thats completely forgotten now. A few years ago I decided i wanted to learn making websites, and my main goal was a "perfect" webshop with credit card solutions and an impressive admin area and everything, which i did. And been working with that for a couple of years now and made all kinds of websites in PHP for various companies. So what im trying to say is, i seem to find programming quite easy to learn and i definately know how to set a long term goal and then work my way there, no matter how long it takes. For quite some time now I've had a dream of making a really easy fps game, and i mean a really crappy one, somewhere along the looks of Wolfenstein but probably much worse. The challenge of trying to make a 3d game it what drives me really. And now I'm ready to try and fight my way to make that 'dream' come true. So to sum it up, I'm looking for advice on what language would be the best (I assumed it would be c++?) for me to learn. But more importantly, i would appreciate it if someone was able to help me organize like a list of books that i need to read. I am well aware of the hard work it will take, but i'm going to do it. So i would truly appreciate all tips and comments you might have for me. Thank you in advance.
Advertisement
Firstly, congratulations on what appears to be a very realistic view of things.

Normally I would advise a beginner to start out learning a language such as Python (tutorial) or C# to start out with and looking in to C++ later on if they felt they needed it, as the C++ language can have a somewhat steep learning curve. However, coming with a background of having learnt Pascal in the past and having a lot of experience with PHP you probably wouldn't have too much trouble with jumping straight in to C++. I'm going to drop the usual Python suggestion and instead say that either C# or C++ are good options - you should be able to create the game you want to make using either of the two. C# is designed in a way that makes it a bit more beginner friendly, but at the current time there's probably more relevant literature around for C++.

If you want to try C# you can download Microsoft Visual C# 2005 Express Edition, and can find some C# video tutorials here. I'm afraid I don't know of any good books I could recommend for C#.

If you'd like to try C++ you can download Microsoft Visual C++ 2005 Express Edition and could try the C++ tutorials at www.cprogramming.com. Accelerated C++ is an excellent book for getting started with the C++ language.


You'll want to start out getting a good handle on the language you decide to use. Learn the basics, and develop some smaller practice games to make sure you understand what you're doing. Doing at least something simple in 2d is probably a good idea before attempting 3d. Once you decide to move into 3d you've basically got a couple of options; learn OpenGL, learn DirectX, or use an existing engine (be aware that you may need to work in a specific language for this option, and that often means C or C++). The book 3D Math Primer for Graphics and Game Development would probably be good reading at this stage.

Hope that helps you, feel free to ask if you have further questions. I'm sure you'll probably get some great advice from other posters as well. [smile]

- Jason Astle-Adams

just a side note, wolfenstein was a 2d game,
its follow up "wolfenstein 3d" was a pseudo 3d game (illusion of 3d space, but everything was actually on a 2d plane) and it used a very outdated technology, so please don't read tutorials on how wolfenstein-3d was made because you will just learn (very) old news.

for a programming language I recomend C# because its easier to learn and easier to create windows applications (and its valuable if you want to program for a living, as opposed to python). For C# I think managed directX is the best way for a beginner to do 3d.

the basic concepts of 3d are easy -
you have a 3d space meaning each point has 3 coordinates (x,y,z), you can draw triangles with textures and light between 3 points and project it to the screen. Any 3d API (directX, openGL) will teach you this at the first lesson. You can play around with that. The 2nd lesson you will probably learn how to move around and rotate, so a simple "wolfstein3d" style game (well exculding the monsters and wall collision and such) you can probably do just after a 2nd lesson.

good luck!
Iftah.
Hi, my name is XeeRox ;).

Okay, i really understand you, you are almost same as me.I worked in VB and find it too simple & easy.I suppost you know this, but i am going to tell again.
The game is a final production of fews api and a language.When i started to learn to make a engine there was only C++ as the best language for game, because of that, you would need to know (or to have a time) Windows programming, OpenGL or DirectX programming, and ofcourse C++.

Now, the time is changed.There are very very powerfull language called C-Sharp(C#), and i am using it right now.It is very easy(readable-like eng) and it is better that c++ (microsoft says:) it should be like C+++ but that is silly.
If you start to work with C# you dont need to know Windows programming, because it has already build-in windows editor, so you can just drag 'N' put various compoments on a form.

But like everything, the programming language is your personal choise & passion.C++ is very powerfull, too but when i saw C# i never looked back.

In case you want to start with C#, here are some books i recommend:

1st: Microsoft C# Game Programming For The Absolute Beginner
2nd: Programming Microsoft Windows with C#
3rd: Beginning C# Game Programming

P.S. The Microsoft Visual C# 2005 is FREE, and contain all needed functions for game dev.Be sure to check it!

If you have any problems, questions just ask me.If you want to learn C# you can join me, altrough i am still learning it(not an ad).

Good Luck!
XeeRox
First, learn C++. It's not very hard to learn.

Then pick up the following two books:

"Tricks of the Windows Game Programming Gurus" by Andre Lamothe. This will teach you basic game programming, including 2D. I would try and make a practice 2D game after reading this (maybe tetris?)

Then get "Tricks of the 3D Game Programming Gurus" by Andre Lamothe. This is the direct sequel to the first book, it uses the same code libraries the first one taught you, but shows you how to implement 3D. It's very clear and easy to read, and will teach you enough to make a Quake-like game (which was the followup to Wolfenstein 3D).

-Gauvir_Mucca
oh, if you are looking to learn C++ and don't want to spend 30-40$ for a book you can read the free books by Bruce Eckel (thinking in C++, thinking in Java,...)
They are quite good books and are available online for free (legal free!), search google for Bruce Eckel
Quote:Original post by Gauvir_Mucca
Then get "Tricks of the 3D Game Programming Gurus" by Andre Lamothe. This is the direct sequel to the first book, it uses the same code libraries the first one taught you, but shows you how to implement 3D. It's very clear and easy to read, and will teach you enough to make a Quake-like game (which was the followup to Wolfenstein 3D).

This is about the worst advice I've ever seen given to a beginner... He doesn't want to start by making a software 3D engine, nor should he.

I'd recommend something along the lines of "Beginning OpenGL Game Programming" or an equivalent book about Direct3D.
I totally agree with the above poster about Tricks of the Windows Game Programming Gurus tho, it's a brillint book. And while the context might be getting a little outdated it still teaches you everything you'll ever need about DirectInput, DSound and so on, as well as general game programming methods.
JRA GameDev Website//Bad Maniac
Wonderful, thanks everyone for the great replies. Altho I'm not quite sure what the difference is between C++ and C#. Is any of them more suited for games than the other? What else is there to consider when choosing between them?
Another one,

The book "Tricks of the Windows Game Programming Gurus" seems to be a good pick. Altho I understand basic knowledge is required before digging into this one? So then the question would be how much? Which i know is hard - if not impossible - to answer to, i know. But to put it this way, is it possible to take on that book as your first book or not? If not, which book would you consider to be a good one to read before that?
First of, congratulations on actually having a reasonable goal. Many people come in here wanting to make a MMORPG, and few do it.


Now, onto your question. C# is a lot easier then C++ to learn. There is like no doubt of saying it isn't. Also, C# is FULLY OOP(Object Oriented Programming). So, if you want to use OOP(which can also be a very good design on stuff),then I suggest you use C#, as everything will be. Though you can do OOP in C++ also, so it is up to you.

This is what I suggest. I suggest you try both languages out. For the type of game you are making, both of those languages are powerfull enough(espically C++). Try them both out, and see which one you like the most. That is all I can say.

That is just my 2 cents.

Chad

PS: Good luck on your journey!

This topic is closed to new replies.

Advertisement