PDA

View Full Version : Stealth, Action Game Help needed


The Mysterious
10-09-2005, 10:54 PM
:huh: Could a single player stealth~action game with C++
be easier than single player RPG or adventure? 3D or 2D, Isometric 3D?

Sorry, i kinda forgot something... :blush:

NomadRock
10-09-2005, 11:04 PM
2d single player adventure is about as simple as you can get without moving back to stuff like tetris and pong.

If you dont already know how hard a Thief/SplinterCell clone would be then it probably too hard for you :)

The Mysterious
10-09-2005, 11:15 PM
2d single player adventure is about as simple as you can get without moving back to stuff like tetris and pong.

If you dont already know how hard a Thief/SplinterCell clone would be then it probably too hard for you :)

Or perhamps, i should have named it action-adventure; It's about a loner crossing streets, getting into battle against gangs and i also have planned a little storyline and aligment-system. If anyone could help me?

Of course, it could be better if it was 3D (3rd perspective), i know some modelers, but have tried only a little...

moe
10-09-2005, 11:32 PM
In this case I suggest something more like a little fighter game (e.g. streetfighter). Or maybe a jump and run game (e.g. giana sisters).
The old classics just rule :)

The Mysterious
10-09-2005, 11:37 PM
Hmmm, i guess it's better be adventure with slight action and fighter features.
Do you know any easy, simple and C++ tutorials for this kind of game?


3rd person perpective and 3D if you think i'm enough skilled... what do you think of me?


OR Any suggestions if i use a game engine?:blink:

moe
10-10-2005, 01:01 AM
I was suggesting the above because I think in those cases it gets much easier. Say you were to build a fighting game. Then your story would mainly describe the atmosphere (look and feel) but your actual gameplay would not necessarily be bound to the story. Games like streetfigher and international karate have about the same gameplay but a different story behind.

If you bring in adventure elements then it gets more complicated. You will have to build in events to keep the player in the storyline. He must find a way through the game. Therefore you must have a much more sophisticated engine with triggers for events and such. Maybe you would even have different ways to play the game to the end like Indiana Jones and the last crusade. Think about the difference between e.g. streetfighter and the last ninja. In the last ninja you have to find out secrets in order to proceed where as in streetfighter you mainly just knock down your enemies.


3rd person perpective and 3D if you think i'm enough skilled... what do you think of me?


The difference between 2d and 3d is mainly the gfx although collision detection gets more difficult in 3d. Build in events or a story should be about the same.

I can’t really tell you if you are up to it. I have never seen something you made before nor do I know how much knowledge you have when it comes to math and the like. I personally think adventures are more complicated than fighter games.

As for engines I have no clue. As a hobby coder I’d prefer a simpler game but building it myself instead of using an engine.

NomadRock
10-10-2005, 07:31 AM
You think street fighter would be easier to make than say King's Quest? Keeping track of plot paths is relatively simple compared to the whole mess of problems inherent to 3d games that require timing of user input.

I suggest a better way of learning to make games. I know this out of my personal experience. First, get yourself a textbook for learning say C++. Go through all the examples in the book until you understand them all. Then instead of thinking "What more do I need to learn to make the game I want?" think "What game can I make using only what I already know?" The answer to this new question will be not very much, but work with what you have. You will be surprised what some imagination can get you.

Then start going out on the web looking for all sorts of tutorials. Once you learn a new concept try to make something using it along with whatever else you have learned so far. Dont try to make a project with multiple new concepts. It will take far too long to get off the ground if you are ever able to do it at all.

Writing games is like driving clutch. If you dont already know you can do it, you can't.

moe
10-10-2005, 10:00 AM
NomadRock:
Your reaction almost sounds like I upset you. If so I’m sorry it was not my intention.

When I started I did so with macromedias director (around version 6). So maybe that’s a bit different than doing it in C/C++. However at this time I build a little fighter game in the style of international karate+. I have also build a little jump and run game with it in the style of giana sisters. So you see I talk out of personal experience as well.


You think street fighter would be easier to make than say King's Quest?


To put it short: yes.
But I agree it is a personal opinion.


Writing games is like driving clutch. If you dont already know you can do it, you can't.


Sorry but here I have to disagree. Maybe because in our place it is normal to have a clutch and not some automatic “thingy”. If you don’t have a clutch it’s not really a car anyway :)
I have been teaching someone how to drive as well so it’s not necessarily just my opinion in this case. Out of my experience at anyway…

However when it comes to creating a game I think it is true that you should have at least a clue or else your most likely aiming to high.


You will be surprised what some imagination can get you.


No need to argue here I totally agree. Back on flipcode my signature was: imagination is more powerful than knowledge. And it is 100% my experience to solve my problems rather through imagination than through knowledge.


The Mysterious:
I think you should tell us a little what you did so far. Than we can give you much better advice. As of now it’s hard to guess what would be appropriate. Are you just starting or have you already made a game before? What level do you have in C/C++?

corey
10-10-2005, 11:11 AM
I think the main question here is, what do you know?

NormadRock is correct about the need to get a certain level of comfort and knowledge with a language and system. If you are not there, then you might not know what it is you need to do when developing a project.

Some questions to base where you are for yourself:


Do you have a C++ compiler?
Do you know a GUI library or understand user input?
Do you have a drawing engine or other visualization library?
Do you understand data structures for keeping track of objects?
Do you understand C++ classes and polymorphism?


corey

Hodge
10-10-2005, 05:50 PM
Well said Corey, making a commerical game today requires strong knowledge of a programming language (C/c++ are the current standards in game dev). However you can make a worthwhile 2d game in GameMaker or Multimedia Fusion.

moe
10-10-2005, 06:27 PM
I don’t want to be a pain in the ass here. But it seams I have completely different experience.

Well you can’t write if you don’t know how to draw a letter. So you have to do things step by step. And yes you need to know C/C++ _before_ you can write a game with it. I never said you don’t need to know C/C++ first, if you intend to use it.

Having said that the very first thing I ever made was the mentioned jump and run game. I took me about 5 to 6 weeks to complete. And I did not have any prior knowledge at all. I mean I barely knew were to find the power switch on a computer. Seriously, all I did before was playing games on an amiga 500. All you had to do is put in a disc and start playing. I have been playing other games on C64 when visiting a friend but then he handled everything and I could just play :)

If I would have used C/C++ instead of macromedia director I probably would have needed a year or so. Just to learn C/C++ well enough. So my point is considering the gameplay I stand to what I wrote. The question is how good are you in C/C++?

Personally I am all for the “salami tactics”.

- learn how to open a window
- learn how to draw to it (just a simple quad)
- learn how to move the quad
- move the quad according to user input
- draw many quads but control just one through user input
- build collision detection so you can’t move the quad through the others
- build in scrolling if your player (the quad) gets to the side of the screen

[Now you have almost everything you need for a jump and run game]

- fill the quad with some nice picture instead of a unique colour
- learn to animate the pictures (all in 2d)
- build some minor ai for enemies (moving some quads witch are not controlled through the user)
- learn to trigger events upon collision (you move into an enemy your dead…)
- make it fancier with using sounds

Is there something I am missing? Am I completely wrong? Is it just a misunderstanding through miscommunication?

No offence intended. I know I’m kind of a freak doing things in an uncommon way :)

corey
10-10-2005, 07:15 PM
Moe,

I wasn't making an argument against anything. However, what you propose is an excellent way to immediately learn and apply new ideas and sections of a language. Some parts of it are not as simple as just buliding it though but most of the basics can be worked on immediately.

What I'm talking about is actually putting together a whole project that doesn't invovle some static scene rendering. I'm talking about understanding objects enough to use them properly and data structures so that you can render a whole scene and actually do collision detection between them.

There's a difference between learning concepts and understanding how to apply them to a larger project is all. Then you want to reseach before you start so that you take a valid approach and learn the right methods to work on instead of coming up with a half-solution for harder stuff.

Anyway, there are still the questions above. He has to start somewhere -- so it's good to know what you have to start with. I'll let you guys decide the best way to move foward.

corey

moe
10-10-2005, 07:42 PM
I see, I miss understood it partially. My bad. Thx for clearing it up.

The Mysterious
10-10-2005, 10:39 PM
Hi again, everybody! :yes:
Worst of all is the hellish library inferno with C++ language! :wallbash:
corey:
Do you have a C++ compiler? -> Borland C++ Builder
Do you know a GUI library -> I can't recall what GUI is about, please help...
or understand user input? -> Tell me about user input, ok?
Do you have a drawing engine -> 3D or what?
or other visualization library? -> Please, tell me about them...
Do you understand data structures for keeping track of objects? -> I'm... most uncertain about THEM, can you help me?
Do you understand C++ classes -> Depends which of them...
and polymorphism? -> Polymorphism? Um, well... not excatly...

I've used a bit RhinoCero, RealityFacotry... nothing much...

moe: I'm finishing C++ basics, such as if, for, else, etc. Nothing much... BUT, your guide was a nice one too, like corey's questions. My first problem probably is creating a window... i can't remember how to do it.

NomadRock: Hmmm, reading a textbook on programming is my weakpoint... soo much to read and.. i... uh... kinda lose all my energy just by reading a thick book.... my bad... all text on internet is also quite a lot...

At any rate, anyone know adventure, action or stealth game engine?
Or just any kind of help and guidance would be very much appreciated.:worthy:

Methulah
10-11-2005, 12:36 AM
If you are are just learning the standard if and else 'n' stuff, it would probably be best to finish the language tutorial at http://www.cplusplus.com so that you understand transdimentional arrays and classes and stuff.

moe
10-11-2005, 06:18 AM
From what you write you might want to consider lowering your goals first.


kinda lose all my energy just by reading a thick book

I know that one :)
I am sort of a dyslexic myself. I had to attend additional courses at school. Luckily I have that just a bit. But without words spelling tools I’d be screwed.

However you probably need to jump over your own shadow and bite the bullet. You can’t learn C++ without reading. It is just too time consuming that anyone would tell/teach you all you need to know.

When I started with C/C++ I read actually quite a lot before I even started writing a source code. I had quite some respect for C/C++ :) Meanwhile I have about 20 books. A small library so to say :) and these are not exactly thin books. Don’t worry if you are devoted to learning it you will get used to it and actually start enjoying to read about that topic.

I don’t know of any engines but even if you use one I tend to say you will have to read a lot about the engine in order to be able to use it.

I suggest you buy a book like C++ in 21 days. Then go though the chapters and maybe split each chapter in small pieces yourself. Once again I suggest the “salami tactics”. Split everything into smaller pieces. Give yourself enough time and don’t pressure yourself with a time limit.

Maybe you start with some non game programming first. Building a linked list, do some console applications and the like. The link provided by Methulah seems good too.

Then choose a very simple sort of game to get started. E.g. tetris, pong or my personal favourite an arkanoid clone (since I don’t like tetris at all...).

Just keep doing it and all of the sudden it will make more sense to you.

Good luck!

NomadRock
10-11-2005, 08:36 AM
Moe's last comment is much more in line with my own ideas. The key is to learn what is easy first, and then use what you know. Otherwise you branch out too quickly.

The following is going to be harsh, dont take it the wrong way.
The world of programming is heavy with learning. You are going to have to read and comprehend vast ammounts of text. If you cant handle this, maybe you are better off making maps and mods for other games and leave the less artistic side to others. If you want to try, you are going to have to buckle down and spend many afternoons and evenings just reading.

That said, if you set your goals low enough on the technical scale, and extend yourself immaginatively, you will get some very impressive results :) My first applications were entirely with just text. I would print characters to the screen and made tic tac toe first. Then I made a battleship clone. When I first learned graphics all I could do was draw images to the screen in various locations. I made a bunch of snowflake images and made a fun little snow scene. It was fun to change the behavior of the snow by changing various parts of the code. It wasn't until years after I started that I actually got into 3d stuff.

While you are studying the technical stuff make sure to pay attention in your Language/Writing classes as well as your Math/Physics classes. The things you can learn there can be very valuable.

moe
10-11-2005, 11:15 AM
NomadRock:
Yeah I kind of got you wrong in the first place… sorry about that. This time I read more carefully through your text. Seams you had a much better hunch about his level than I did :)


pay attention in your Language/Writing classes as well as your Math/Physics classes. The things you can learn there can be very valuable.

Amen to that! In particular the math and physics part.


The Mysterious:
At first I read a variety of stuff before even start coding in C++. I read about 1-2 month to figure out what tools (compiler/d3 libs) to use. Another 1-2 month just to find a good starting point. Finally I seat down for about 2 weeks straight during holydays and just could not stop any more. I coded around 10-15 hours each day and totally got addicted.

One mistake I made first is that I went into 3d almost right away. The first few days I did some non 3d programming and then immediately build a 3d device and rendered a mesh. Well I did make it work but it was not that smart. Believe me when I say no matter what you do first looking back at it after a while you will laugh about how you did it yourself :)

For an instance my current project has about half as many lines as my first ones and does about 10 times more already :)

Maybe you better start with a console based mastermind sort a thing. You will benefit greatly if you don’t “waste” your time in a huge project right away. Mainly because C++ is a huge thing and there are many ways to do the same. What I wrote earlier about the jump and run game is true from a gameplay point of view. But it makes more sense to learn C++ basics before start building such a game in C++. Once you got those basics you can still follow the steps I mentioned. But you will enjoy doing it much more.

The Mysterious
10-12-2005, 02:17 AM
Hello again!

So uhm, what things you suggest for me to start learning?
And uh, what book you recommend as well? If there more
than a single book then please thinnerst of them first.
As cheap as possible too. Thank you very much already! :happy:

NomadRock
10-12-2005, 08:53 AM
Actually I would recommend the thickest book you can get your hands on as it would give you the most variety in example code and explanation. Go down to your local bookstore like Barns & Noble or Borders or somesuch and head on over to the programming section. Plan to spend a while there looking through the books. Try to read a few pages or even a chapter or two out of each. Books come in various levels and the ones that are harder to understand generally give more information. I suggest going with the hardest book you can find that you can still understand without straining too much. If a book feels like it is babying you then you can probably do better. If a book reads like a linear algebra text book then you probably need to step it down a bit :)

For your very beginning i'd say splurge and spend a decent ammount. Plan to have a book that can serve as good activity for at least a couple months and good reference for maybe even several years. If you are still living at home, try to get your parents to get you one for your birthday or something. Many parents will buy the thing outright just to be glad you are doing something productive with yourself. If you are out on your own $50 is nothing compared to the other expenses of living and you can afford to miss a few movies or not buy that next game.

Internet resources are extremely useful and eventually you may exclusively use them (I do). But when you are beginning it is extremely helpful to have a solid book you can go back to. It serves as a sort of bootstrapping bit of knowledge. After you get that stuff down then you get a better idea of what information you need next and you can more easily find it yourself with google.

If you are using linux you already have a compiler called gcc, similarly I think mac comes with XCode. If you are using Windows you will have to get one yourself. I suggest DevC++. There are also simple packages you can download through their update utility and one of them is SDL. This will get you an easy way to get 2d graphics up and going. Allegro is also available. I started with Allegro and it is a very nice package that does many things for you including a resource loader and a simple GUI all built in. SDL has less stuff built in, but it works easier with OpenGL, so when I was ready for 3D, I switched to SDL.

Good luck on your journeys, and remember start as small as humanly possible. This will help your motivation greatly. You dont want a game that takes you 2 years to finish at this point. You want a fun program that you can finish in an afternoon or over a weekend.

moe
10-12-2005, 12:13 PM
I hope you will not get this wrong. Let me put it this way: Get over your stupid fear of reading! Your head will not explode just because you read something.

Sometimes I need to read a chapter 2 or 3 times just to find out there was nothing complicated about it in the first place. You can imagine how many times more it takes me if it actually is complicated…

When you write source code for a game you will write easily a few thousand lines. How do you intend to manage your own source if you don’t want to read it? And code is much less readable than a text bock.

Just keep doing it. In time it will work. Don’t discourage yourself by avoid reading. Don’t choose a book by the number of pages. Choose it because of its content. Sit down and look into it. Then you see whether it over exceeds your skill or not. If it’s too hard pick another book. If it’s to easy choose a more advanced book.

Maybe you need to read for a few month before it makes enough sense to actually write some source. So what? It’s not like you have a deadline.

From what I have seen so far people on this forum are very helpful. So give it a try and if you have a more concrete problem I am sure you will find help here. But at this point I think it’s your turn to bite the bullet and do something.

There are many hints on how to start within this thread. Pick the one witch is most appealing to you and give it a try. Sorry if that was too harsh but it feels a bit like you beat around the bush just so you don’t have to read.

corey
10-12-2005, 01:19 PM
A site like this should have a couple step-through examples in both C++ and primitives.

It's one thing to encourage someone to take the first step, but there are so many that it's easy to get lost right afterwards. At least they should have something so they can recognize what's helpful and in the right field.

corey

The Mysterious
10-15-2005, 02:59 PM
I was wondering, could anyone tell me what are most important mechanism called in any game's code? Would you please, tell me a bit about them? Thank you.:yes:

NomadRock
10-16-2005, 03:39 PM
I was wondering, could anyone tell me what are most important mechanism called in any game's code? Would you please, tell me a bit about them? Thank you.:yes:

Ok, this is not really a good question. I dont mean this as insulting, but there is no real answer to this question, at least not in the way you are hoping. Seriously do yourself a favor, and read up on the amazing ammount of literature on the subject, both in books and online.

Shed
10-17-2005, 11:58 PM
Hello to all ;)

okay, The Mysterious, my "little" help to your questions....

1) decide what kind of game you want code it....and ask yourself...if you have enough skills for do it

2) if you don't have rought knowledges (universitaries) of mathematics, matrix calculation, perspective (technic draw) etc....it's near to IMPOSSIBLE to you make your own 3D game like somebody say here (splinterCell clone)

3) You can begin from 0 learning C programming languaje basics, assuming that you have "good" skills at computers managing....and after you're very handly pretty good with ariables...statements..Pointers...structures..
...etc...proceed to study C++ languaje...

- Possible here, you need a c/c++compiler for do your own test coding
(i recommend you Turbo C for Ansi C languaje...and C++ Builder for C++)

4) Also all books you can "buy" or "aquire" from friends are welcomed...
(.books that show you programming techniques...algoritms...etc...for example....database manipulation it's a good Field to know. for various reasons....for you, because with File/Records processes...you can DO your own database info for your game...(screen configuration...player's info...world info...etc)....

Also look out about what API's can you use....
here, the most knowns are OpenGL (graphics API) and DirectX (multimedia SDK and API)

5) READ the books...understanding what are you reading...and apply concepts on your own software....begin with small programs making simple tasks, when you're advanced in time...you can add it more complex..

6) when you're pretty "confortable" with the compiler you'll can see that you can use DLL's or 3rd party code libraries....and all become more simple for coding advanced applications

...

Ah, about complexity....

- first...simple 2D games...as simple you can...but demonstrating something

- RPG 2D (kind mud world with players and enemies have intense work in logic/game algorithm calcs. and added the graphic visualization you can made (players transparencies over 2d scenery background...etc) for the "gameplay on course"
If you can add sucesfully sounds and music in your game...it's a bonus because with good original sound/music score, then can reach better results...sure...

- Isometric Game: this is a bit complex than 2d simple games...because understand the Isometric perspective it's a bit tricky...really i'm not experienced with this kind of game...

-RPG 3D the same for 2D RPG, but with the complexity added of make your own 3d engine...or use someone freeware like Genesis, Ogre, or other...and manage all the 3d stuff for your game (making levels...or missions....texturing...scene render...etc....here, have universitary knowledges are pre-requisite, because you're using advanced maths)

- Action 3D like Half life, Counter-strike, doom's, Unreal, Quake etc
here's you must be a very talented coder for make something "good"
this is the TOP leveled games usually violent and very streessing....

Shed
10-18-2005, 12:13 AM
Possibly, the most important thing is "preserve" your illusion about all the way...

but i suppose you're meaning into game coding....

really...don't know...i suppose, that ALL is important, because the "mark" are very high at actual videogames market....

And all this "TOP" videogames...have intense work into A.I. programming, advanced graphics mostly in 3D...and SoundTracks pretty good....

And remember...they're people with full pockets.
and they have teams of dozens people, advanced equipment and working full-time to it ;D

PnP Bios
10-19-2005, 08:10 AM
Personaly, I advocate learning python instead of C/C++ for simple game development these days. I doubt execution speed is going to be an issue for you right now, and python is such a simple and elegant language. But whatever language you learn, you need to know the basics and critical concepts before you can even begin to code projects more than 100 lines.

Programming is hard, and it's discouraging. So, my advice is to generate as much content, art, music, sound, and stuff before you actualy start coding. That way you always have something to come back to later.