• Advertisement
Sign in to follow this  

Very Very Beginning ...

This topic is 3730 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all (my first post). I want to make a online game at 3rd view (GTA view, Bloodrayne ...etc). I want to make it online. I have a few questions: -> It is very hard to start to make such a game without a engine. What engine I should use ? I am thinking at http://www.blender.org www.3dgamestudio.com -> What should I use ? OpenGL or DirectX -> I am a beginner in game programming and C++ so I will need some tutorials. Where I should find the easyest tutorials ? **I know that game programming isn't that easy , but I am patient

Share this post


Link to post
Share on other sites
Advertisement
Quote:
I am a beginner in game programming and C++


If this is your first game you will get in over your head and frustrated quickly no matter how patient you are.

It sounds like you have something big in mind. You should start small pong is a classic, then you can progress into things like breakout, tetris, mario clones, small 3d games, etc.

Share this post


Link to post
Share on other sites
Given that you are new to both C++ programming and game development, I think your best move would be to concentrate on learning C++. There is certainly nothing wrong with learning about DirectX and OpenGL but to attempt to learn everything at once will almost surely end in frustration. There is plenty you can do in terms of game development before you concern yourself with 3-d graphics and the subtleties of various engines.

If you have limited programming experience, I'd suggest taking a look at this review for Beginning C++ Game Programming - John Hattan's review towards the bottom is particularly enlightening. In my opinion, it provides an excellent structure for learning both C++ and game development fundamentals.

You might also consider taking a look at the C++ workshop forum.

Share this post


Link to post
Share on other sites
I have to agree with the other posters if you are new to game development and the language you plan on writting games in I would suggest to start making other peoples small games. This is one of the best ways to learn game programming. If you work on your own huge project that you believe is going to be the next best thing, I gaurentee you will become overwhelmed and way over your head. I myself am fairly new to game programming and I had/have some good ideas of games that I don't necessarily want to build to sell but games that I would like to eventualy make...what I personally did was planned the jist of them out and then through them on the backburner.

Thats about all I have to suggest. One new game programmer to another I would suggest starting there. As to an engine I would look at Irrlicht. I have been programming games for about 4months now, learning the ropes, doing tutorials etc and then I found what and why graphics engines are important. I personaly might even suggest a beginning programmer to start learning an engines syntax and functions such as irrlicht. They do make thigns a lot easier and personally I feel that the months I spent writting DirectX code was....not wasted but I shouldn't have spent that much time on them. I say this because using Irrlicht (i don't know about other engines) you really do not use the direct X syntax...I guess the only thing it is good for is learning the concepts of meshes, rotations etc.

Anyway I hope this helps...my views may varry from another persons but that is how I feel.
Again Hope this helps;
XXChester

Share this post


Link to post
Share on other sites
Toss me in with the rest of the posters. There are tones of things to learn after learning programing, which comes first. As said before trying to learn everything all at once can(will) overload you. Before you can make anything big you are going to need to do lots of little test and get your feel for how to do things. One thing about programing is that it only takes 1 wrong thing to bring everything to a stop. If you try and do too much all at once, you won't know where to look when a problem pops up. Experience teaches you a lot about finding problems.

Share this post


Link to post
Share on other sites
not completing games is very frustrating and it might sound discouraging that everybody tells you to make tetris when you wanna do something completely different. But its really the other way around. If you dive right into 3d and the huge game-project you talk about you'll end up giving it all up since progress will be so extremely slow you often will go backwards. Trust us on this one.

I eventually gave up on 3d alltogeter, it takes to much time to get my ideas working and i wanna see results faster. Making 2d games takes enough time for me, and i've been coding (very unproffesional though) for 6 years.

A very easy to use graphics engine (2d, uses directX) is HGE:
http://hge.relishgames.com/

There is some very simple-to-follow tutorials and all functions in the engine is veery easy to understand. You might wanna do some basic c++ tutorials first though but this engine can help you put pictures and text on-screen once you're past the console-stadium of your coding-learning.

This would be the smartest (and fastest) way to learn all this.
1. Basic c++
2. 2D basics (graphic, sound, input)
3. 2D game
4. 3D
5. networking (really messy stuff:)

E

Share this post


Link to post
Share on other sites
Quote:
Original post by MegaV3
Hi all (my first post).

I want to make a online game at 3rd view (GTA view, Bloodrayne ...etc). I want to make it online.

I have a few questions:

-> It is very hard to start to make such a game without a engine. What engine I should use ? I am thinking at

http://www.blender.org
www.3dgamestudio.com

-> What should I use ? OpenGL or DirectX

-> I am a beginner in game programming and C++ so I will need some tutorials. Where I should find the easyest tutorials ?



**I know that game programming isn't that easy , but I am patient


Don't use C++ (yet).

Share this post


Link to post
Share on other sites
Quote:
Original post by Konfusius
Quote:
Original post by MegaV3
Hi all (my first post).

I want to make a online game at 3rd view (GTA view, Bloodrayne ...etc). I want to make it online.

I have a few questions:

-> It is very hard to start to make such a game without a engine. What engine I should use ? I am thinking at

http://www.blender.org
www.3dgamestudio.com

-> What should I use ? OpenGL or DirectX

-> I am a beginner in game programming and C++ so I will need some tutorials. Where I should find the easyest tutorials ?



**I know that game programming isn't that easy , but I am patient


Don't use C++ (yet).


How about telling him what TO do not just what not to do?

If I had to guess the "don't use c++" goes to an programing argument that C++ isn't a good learning language for beginners.

With that in mind C# is a fairly good language that would help you find and avoid bugs that you would get using C.

For example Arrays in C don't have any form of bounds checking but using C# with Visual Studio you will get notified with the exact point and time the error happened. In C++ you will be left guessing as to why your game crashed.

Plus it has the XNA framwork created for it which is a great way to learn about game programing elements.

Share this post


Link to post
Share on other sites
Quote:
Original post by Goober King
How about telling him what TO do not just what not to do?

If I had to guess the "don't use c++" goes to an programing argument that C++ isn't a good learning language for beginners.

With that in mind C# is a fairly good language that would help you find and avoid bugs that you would get using C.

For example Arrays in C don't have any form of bounds checking but using C# with Visual Studio you will get notified with the exact point and time the error happened. In C++ you will be left guessing as to why your game crashed.

Plus it has the XNA framwork created for it which is a great way to learn about game programing elements.


Dude. You're spoiling all the fun.

Share this post


Link to post
Share on other sites
Let me be the first to say, C++ isn't that hard!

If you read a book or two and ask questions here, you'll be a C++ wiz in no time. I learned it when I was 12 and was just fine. Anyone with a drive to learn can do it.

Worst comes to worst, leave out learning classes for a little bit and then dive into some object oriented design concepts. I had a class at university that used the "Head First" books and they were GREAT although very silly.

Good Luck and Keep Posting!!!!!
James

Share this post


Link to post
Share on other sites
First things first, get all your ideas about your game, write them down and put them somewhere safe. You won't be touching them for a while.

Now you have to ask yourself one question: Do you want to make games as a hobby in addition to a career in another field, or do you want to make a career in games development?

If the answer is that you want to make a career in games development. Enrol on a Computer Science degree programme at the university of your choice (try to look for one more focused on maths/theory than on software engineering) After you graduate you will probably have a good idea yourself about how to proceed, so ignore the rest of this post.

Right, assuming you chose "hobby", here's what to do next.

1. Learn C - this is the best way to learn programming, don't listen to anyone who says otherwise. A good alternative is Pascal as it is a language designed to enforce good programming practise.

2. Learn C++ and object oriented programming.

3. Learn DirectDraw (part of DirectX) and get to grips with 2D sprite based game programming.

4. Learn C#, a managed language, which takes some of the complexity out of writing larger Windows based programs.

5. Learn Direct3D through either managed DirectX or XNA with C#

6. Now learn how DirectX programming is different in C++ (it's much more complex but now that you know what you're aiming for you should find it more manageable)

7. Now you can get hold of a 3D engine source, dig out those old game ideas, and see if you still think a 3rd person driving game is a good idea. (writing your own 3D engine is an option of course, although it's unlikely to reach commercial quality)

A CS graduate should be able to get through steps 1-7 in a year assuming they did no C++/C# at Uni and assuming they have a full time job. (I think it's also fair to assume they have half a brain and went to a decent uni) A hobbyist will be likely to take the same amount of time to get through these steps as it took the graduate to get their degree, assuming they have a full-time job and other committments.

The "hobby" route is likely to take you longer than the career route and will make you more likely to pick up bad coding habits and miss out in fundamental areas. It will also make you less likely to land a job in the industry if you decide you actually do want to make a career of it. I don't know what the statistics are but I'd say you're far less likely to be realistic in your ambitions or to finish your projects without any formal training.

Share this post


Link to post
Share on other sites
Hey welcome. Overall everyone told you the truth, and gave you great advice. Here is one never speak of online games in this forum, just kidding. However you do need more experience before you want to frustrate yourself over something so delicate and complicated.
Best of luck. I recommend 2D pong, which is very instructional and a lot of fun to code.


Share this post


Link to post
Share on other sites
I concur, although I started with tetris. Just as aspiring rock bands practise and improve by playing covers of their favourite songs and learning what makes them good, so do game programmers learn by cloning their favourite games, or aspects of those games.

Finally don't be put off or daunted by what anyone has to say, including my own horrible long post. A key part of learning games development is being able to break a problem down and focus on one small thing at a time. Then being able to motivate yourself to see it through to completion.

RE DirectX vs OpenGL: Both do essentially the same thing but since Managed DirectX and now XNA have come to be, DirectX is probably now the easiest to learn (for .NET developers). Previously OpenGL was probably easier although that depended on the fact that OpenGL libraries are available for a wider range of languages including some versions of BASIC.

Share this post


Link to post
Share on other sites
Thank you all.

In only 3 days i've got over 10 replays.

The good parts are:
-> I know what game I want to do
-> I know aprox 60-70% of c++
-> I make a order in what I should learn first

The bad part:
-> I' realized that i have a LONG way to go


The best I can do now (all of you are right) is (after I learn more C++) is to make a 2d tetris game or 2d pong game.

I have another 2 questions:
What game engine to use ?? |Game Maker| is good ?
http://www.yoyogames.com/make
Or i should make it first in C++

What are the diferences betwin c++ and C# ??

Share this post


Link to post
Share on other sites
Quote:

If this is your first game you will get in over your head and frustrated quickly no matter how patient you are.


Indeed.

Quote:

Given that you are new to both C++ programming and game development, I think your best move would be to concentrate on learning C++


I respectfully disagree. Beginners should avoid C++. (more on this later).

Quote:

This would be the smartest (and fastest) way to learn all this.
1. Basic c++
2. 2D basics (graphic, sound, input)
3. 2D game
4. 3D
5. networking (really messy stuff:)


I very much disagree. That is not nearly the smartest, decidedly not the fastest, and not the most reliable path. Networking in particular isn't messy at all for simple things, and even mildly complex things are built abstractly above.

Quote:

Let me be the first to say, C++ isn't that hard! *snip* Anyone with a drive to learn can do it.


And let me say once more that C++ is a horrible beginner language full of pitfalls, headaches, archaic concepts, inconsistent and blatantly incorrect tutorials/books, weak standard library....

Anyone with a drive can do it, but anyone with a drive can use a moderately sane language like C# and do it and oh so much more. Do you want to program games or do you want to screw around fighting C++'s suck?

Quote:

Right, assuming you chose "hobby", here's what to do next.

1. Learn C - this is the best way to learn programming, don't listen to anyone who says otherwise. A good alternative is Pascal as it is a language designed to enforce good programming practise.

2. Learn C++ and object oriented programming.

3. Learn DirectDraw (part of DirectX) and get to grips with 2D sprite based game programming.

4. Learn C#, a managed language, which takes some of the complexity out of writing larger Windows based programs.

5. Learn Direct3D through either managed DirectX or XNA with C#

6. Now learn how DirectX programming is different in C++ (it's much more complex but now that you know what you're aiming for you should find it more manageable)

7. Now you can get hold of a 3D engine source, dig out those old game ideas, and see if you still think a 3rd person driving game is a good idea. (writing your own 3D engine is an option of course, although it's unlikely to reach commercial quality)


Woo. So let's spend 4+ years with 1-3 just so we can then (mostly) throw it away learning 4 and 5. "Knowing what goes on under the hood" is vastly overrated. Such things are useless when dealing with the vast majority non-trivial applications, and if you're doing even vaguely effective abstraction, such implementation details are inconsequential.



Anyways, let's get back to constructive advice. If you want to use a game creation utility like game maker, feel free. These are generally not engines, but whole applications. I don't know very much about these, so can't offer much advice.

If you're going the engine route, you'll need to learn a bit about programming first, before even making the decision about which engine. Having that experience will allow you to make a more informed decision about the engine since you'll know what to look for, what's good and why, what's bad and why...

So, pick a syntax. C# is good, Python is good. Java is okay. C++ is terrible. C is terrible. Why? Because the key here is learning enough syntax to learn the useful stuff. C++ and C impede this process. The others impede very little. There are a ton of posts here and elsewhere that spell out the language differences and why C++ sucks so much compared to modern alternatives... google is your friend.

Write some little sandbox applications to try/test/experiment with the syntax features. Move on to slightly larger applications that have a purpose. Finish with something tiny and simple. Hangman, tic tac toe...

And around that point you'll be about done with the syntax and need to focus on program design. You'll see that bits of code aren't reusable with new projects. Certain things are annoying to use. Certain bits of code are tedious to write...


But by then it'll be some time in the future and you'll have a much better idea about what you need to learn and what questions to ask. Just take it one small step at a time.

Share this post


Link to post
Share on other sites
Quote:
Original post by Telastyn
I respectfully disagree. Beginners should avoid C++. (more on this later).


In spite of my previous post, I find myself agreeing with you here. Perhaps the best language in which to learn object oriented programming is a modern managed language like C#. I think I would prefer to teach that ahead of Java.

Quote:

Networking in particular isn't messy at all for simple things, and even mildly complex things are built abstractly above.


This is true. Moreover, the majority of what is needed in a game, is the simple stuff.


Quote:

Woo. So let's spend 4+ years with 1-3 just so we can then (mostly) throw it away learning 4 and 5. "Knowing what goes on under the hood" is vastly overrated. Such things are useless when dealing with the vast majority non-trivial applications, and if you're doing even vaguely effective abstraction, such implementation details are inconsequential.


Ok, the point of my comments here, which may have been a little OTT, was to illustrate the amount of time and effort required. However, the purpose of the grounding in C++ was to prepare for steps 6 and 7: working with a commercial game engine (one of the poster's aims) which invariably will be written in C++. Knowing C++ is not about knowing what goes on "under the hood" in this case. If by stage 5 you had changed your mind about C++, were keen to write your games in XNA and didn't mind the overhead, then you could. The initial work in mastering C++ would still have been an effective grounding in programming that enabled you to pick up C# in a matter of weeks, and you would have another weapon in your programming arsenal.

Quote:

So, pick a syntax. C# is good, Python is good. Java is okay. C++ is terrible. C is terrible. Why? Because the key here is learning enough syntax to learn the useful stuff. C++ and C impede this process. The others impede very little. There are a ton of posts here and elsewhere that spell out the language differences and why C++ sucks so much compared to modern alternatives... google is your friend.


But please note that picking a language is about more than just the syntax. If that's all a programming language was then there would never be any debate about which one to use, personal preference would be all that mattered. Consider only three things when picking your language: How rapidly can I develop with it? What support is there in terms of tools and game engine libraries that are compatible with my language choice? What performance overheads are there?

All these things considered, C#/XNA is a great choice for the hobby programmer and Microsoft will hopefully allow it to flourish... But to what extent will they control your rights over the end product?

Finally, tictactoe and hangman are both great suggestions for first games, particularly if you plan to use C# as they can both be written using Windows controls before you even have to worry about DirextX or XNA. My first game in C# was a minesweeper clone that spawned over three or four consecutive (slightly extended) lunchtimes, one dull week at work.

But don't tell my boss...

Share this post


Link to post
Share on other sites
I decided first to learn c++

I want to make a mind game, but i need to know:

-> How i make diferent colored text in same screen ?

-> Can I change the text dimensions (it would be nice if i could make a big text as title amd smaller text in same screen) ?

-> How i insert a ASCII simbol ?

-> How i change the background color ?

-> How i start a application in Fullscreen (not to push [ALT] + [ENTER]) ?

-> A back ground musik is possible (midi or what format)?

-> The resolution of application ? In windows mode have 25 lines but in fullscreen, it haves more lines and characters ... how much characters have a program in C++ fullscreen ( ??x?? )


this will be my first official game; i will make it in DOS ... pls need help


EDIT: I use DEV-C++

Share this post


Link to post
Share on other sites
By mind game do you mean something like guess the number? An excellent first choice. I would recommend not to worry about the color, music font size, etc until you have all of the game logic programmed and working. Then you can go back later and add embellishments. Since this is your first game, I think you will find the task of just getting it to work correctly will be enough of a challenge.

Share this post


Link to post
Share on other sites
Something like that, not guess a number, :

-> X & 0

or

-> Prizee - Secret Garden |Clone|( http://prizee.ucoz.ru/_nw/0/06662.jpg ) - little harder, but i can handle , but for this i need colors (i can make it, with numbers, but would look better in color)

Share this post


Link to post
Share on other sites
I would rank that as near the same difficulty to implement as Tetris. The fact that you want to do it with numbers instead of graphics really has no bearing on the difficulty. You are at the very very beginning, remember? There is sort of a natural progression that many people follow on their journey to make games:

Hello World
Guess the Number
Tic Tac Toe
Pong
Tetris
then could come simple version of Prizee - Secret Garden (Bubble Popper type games)

At this point you would have a solid grasp of you language and understand how the "game loop" works (process input, update game state, display), you would know how to load in simple graphics and how to display them to the screen. You would now have the confidence to go after more complex types of games such as Pac Man, Mario clones, Asteroids and maybe even be bold enough to start playing with 3D concepts. So let's find out where you are on the "ladder". You have chosen C++ for your language. That's fine. Have you made a Hello World program yet?

Share this post


Link to post
Share on other sites
Quote:
Original post by CodeMunkie
I would rank that as near the same difficulty to implement as Tetris. The fact that you want to do it with numbers instead of graphics really has no bearing on the difficulty. You are at the very very beginning, remember? There is sort of a natural progression that many people follow on their journey to make games:

Hello World
Guess the Number
Tic Tac Toe
Pong
Tetris
then could come simple version of Prizee - Secret Garden (Bubble Popper type games)

At this point you would have a solid grasp of you language and understand how the "game loop" works (process input, update game state, display), you would know how to load in simple graphics and how to display them to the screen. You would now have the confidence to go after more complex types of games such as Pac Man, Mario clones, Asteroids and maybe even be bold enough to start playing with 3D concepts. So let's find out where you are on the "ladder". You have chosen C++ for your language. That's fine. Have you downloaded Visual C++ Express Edition? Have you made a Hello World program yet?


I am at matrices (2D tables; lines and colms) in C++ , in Pascal I've already know lines and colms

a1 b1 c1
a2 b2 c2
a3 b3 c3


EDIT: I know how it works in Pascal, i only need to learn the C++ syntax (not a problem)

Share this post


Link to post
Share on other sites
Ok, when said very very beginning I assumed you had no background in programming at all. So you probably are past Hello World. When switching from one language to another it is still sometimes nice to start simple because it helps you make the connection between concepts you knew in the other language to the way those concepts are exposed in the new language. Where do you think you are on the ladder? Could you implement Pong?

Share this post


Link to post
Share on other sites
honestly, i don't have ideea how to make a pong game, but I cane make x & zero game.


and the "Very Very Beginning ..." was becous i want to learn to create games (the begining of creation games )

Share this post


Link to post
Share on other sites
Ok I see, sorry for the misunderstanding. That is great then, you are already on your way! If I were in your shoes, I would make pong first, and then you could probably take a decent stab at your Bubble Popper game (Prizee). Take a look at SDL. It is a relatively easy to use graphics and input library for C++ (and I believe it works fine with Dev-C++). If you can use that to make Pong, you should have the core concepts down to make Prizee (handle mouse input, update game state, draw sprites). The other benefit is that SDL is quite popular so there are a ton of tutorials out there (on the SDL site as well). LazyFoo is probably the best for absolute beginners (I see it has a nice walk through for Dev-C++, bonus!).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement