View Full Version : FPS programming
ChadWent
12-09-2002, 04:07 PM
Does anyone know any programs/web sites that i could use to make a First Person Shooter or a Book that talks about programming them? i have made past games that were 2 demensional but i would at least like to know how to make a basic one like Wolfenstien 3d even though i isnt 3d
nugget_head
12-09-2002, 05:04 PM
http://www.stefanzerbst.de/
there is a tutorial there (although not in English) that goes step by step through making a "Quake" clone in DirectX.
also, if you don't care which graphics API you're going to use, there are many tutorials here using OpenGL:
http://www.gametutorials.com
that should at least give you a good start. :)
ChadWent
12-09-2002, 08:10 PM
thanks for your help
Sayeh
12-10-2002, 09:42 AM
The basic things you want to address first in an FPS are--
how to display terrain & sky
how to display walls, creatures, and objects, and
how to correct for fisheye and perspective
you can worry about sound, and game logic, object interraction, and interface issues after getting this far.
---
I would highly recommend learning raycasting (not ray tracing) first to get a handle on perspective, fisheye, and learning to draw walls creatures and objects in 'slices'. You can learn about transparent slices here, as well (doors with windows you can see through, etc.).
Once you understand the basic mechanics of drawing slices and accounting for perspective, and distortion, then you want to get all the material you can find about BSP (Binary Space Partition) trees.
a game is essentially a database. The engine, among other things, primarily retrieves data from that database and displays it in frames on the screen.
So, understanding that, means that it is critical to understand effecient ways of storing/retrieving that data in your "database". There is a lot of data, and it must all be accessible at about the same rate so things aren't "sluggish".
BSP trees give a relatively effecient algorithm for chopping your room space up into chunks of walls that don't overlap.
If you master all that, then you can start learning about stereo sound and better engines (portal engine, for example).
ChadWent
12-10-2002, 03:25 PM
well right now i am just tring to get a basic one such as wolfenstien 3d or quake but eventually ill be getting more advanced up to adding things like trees windows and other things like that, and those sites you game me i cant navigate through that german one so do you have a diret link for the fps tutorial
TechWins
12-10-2002, 04:06 PM
basic one such as wolfenstien 3d or quake
Those games aren't very basic at all. Don't under-estimate the difficulty of creating those games.
ChadWent
12-10-2002, 04:18 PM
but what i ment by basic is that its not like Return to Castle Wlfenstien or Quake 3
TechWins
12-10-2002, 05:24 PM
Regardless those games are still extremely complex, especially for a person with little experience in 3D games.:)
ChadWent
12-10-2002, 06:03 PM
still i have made some past games i will figure it out soon enough and if not soon then in a long time as soon as i find a tutorial
TechWins
12-11-2002, 02:11 AM
still i have made some past games
Have you ever made any 3d games? From reading your first post I'm assuming you haven't.
i will figure it out soon enough and if not soon then in a long time as soon as i find a tutorial
It would be a far less painful experience if you started off smaller with 3d then worked your way up from there. I'm not sure if any tutorial is really going to be able to help you out enough so that you are able to easily (or even non-painfully) create an elaborate FPS like a Quake or a Wolfenstein.
Personally if I were you, I would start off programming some simpler 3d games. Either way, good luck to you.
And just out of curiousity what are the games that you have created perviously?:)
Sang-drax
12-11-2002, 07:20 AM
Hehe, it took many of the best developers in the world many, many man-years to create Quake 1.
It would be a bit easier to create Quake today, with Direct3D or OpenGL, but still many months of full-time work.
ChadWent
12-11-2002, 03:30 PM
my past games humm... pong with like 20 levels and a space shooter
Well, as a piece of advice, dont go from pong and space shooters to 3D FPS! You just wont do it*. As people have said, start of simple, get some really basic 3D stuff happening. Create plain shapes, then get them to move, and use camera movement and angles, then try textures and lighting effects on the shapes. It may seem boring or tiresome.
You wont get very far if you start at the end :)
*Subject to length of your lifetime.
Polymorphic OOP
12-12-2002, 12:51 AM
http://cboard.cprogramming.com/showthread.php?s=&threadid=30150&pagenumber=3
ChadWent
12-12-2002, 03:48 PM
well you never know till you try and unless im actually doin stuff i dont know im bored, like pong i can falla asleep tring to maek it now
You dont have to keep making pong all the time, but dont get ahead of yourself. If you set yourself a huge project, chances are you will never finish it, and then be left disappointed. If however, you work you way up, and complete everything, you have a real sense of accomplishment, and that you are getting somewhere.
Dont do any more pong, try a tetris game (also simple), then move onto some 2d platformers or something. Then you could think about 3d, and getting a really basic game happening (space shooter maybe). Just remember that games like Quake and Wolfenstein were made by many people with a lot of experience. You shouldnt expect to be able to recreate that by yourself with any degree of ease :)
Just trying to be helpful, and make sure you set your sights realistically for the near future :)
Travis Dane
12-13-2002, 10:20 AM
What API where you planning to write it in??
Direct3d? OpenGL?, If you planned to write it in allegro you
better strap yourself to a math book.
I recommend OpenGL, because its fairly easy to use without
any knowledge of 3d or math
TechWins
12-13-2002, 02:18 PM
It is possible to use AllegroGL, just to let you know.
Travis Dane
12-13-2002, 02:30 PM
Yeah know sorry,forgot to mention
ChadWent
12-13-2002, 03:29 PM
not really sure im really good at math other things, my compiler is messed today were can i get the file iostream.h or the other iostream
Travis Dane
12-13-2002, 03:50 PM
Just the iostream\iostream.h file?? that file connect to several
other files so be sure you have those too.
Il upload if so, but i have MSVC++ 6.0, compatible?
ChadWent
12-13-2002, 06:21 PM
i have bloodshed dev C++
Just download the latest copy of Dev C++.
I recommend OpenGL, because its fairly easy to use without any knowledge of 3d or math If you are planning on doing anything in 3d, then you are going to need some knowledge of it to get anywhere. It may be easy to use, but you cant really acheive what you want without the knowledge of how to do it :)
Travis Dane
12-14-2002, 09:31 AM
Oke, Assuming you have more brains then a pig,
I ment you dont need to know any complicated (for me) 3d
math. Not really sure if you need math for 3d in directx
ChadWent
12-14-2002, 12:23 PM
well still i am smarter than a pig, but im sure they can spell better than me and i do have thje lateset version of dev c++ i think
I ment you dont need to know any complicated (for me) 3d math.
I just meant that you need to have _some_ basic knowledge :) You cant expect to get anywhere without knowing anything. Thanks all :)
ChadWent
12-16-2002, 04:58 PM
thats why you at least finish high school to have some basic knoledge for life even though i cant spell:P
Shadow12345
12-16-2002, 05:35 PM
I just meant that you need to have _some_ basic knowledge You cant expect to get anywhere without knowing anything. Thanks all
okay, is it just me or is this a thread discussing how to make a 3dfirst person shooter? You are going to *have* to do some pretty hairy math before you can have a 3dfps that actually runs at interactive speeds, regardless of the api. I suggest OpenGL as have other people. I'm not a guru or anything but I have a good idea of how this stuff works. You are going to have to do the following:
get your collision detection, frustum culling, bsp or octree partitioning, heck even time based movement, realisitc gravity and movement around the world, and tons of other stuff i forgot to mention that involve math.
If you set yourself a huge project, chances are you will never finish it, and then be left disappointed
I agree totally, start small, then get big
I wouldn't try to go for a 3d first person shooter if you only have experience doing 2d stuff.
ChadWent
12-16-2002, 06:17 PM
well ill have to learn opengl
Shadow12345
12-16-2002, 07:41 PM
well ill have to learn opengl
Good man!!! If you want a book that teaches just opengl but lets you not have to worry about operating system specific code look into the OpenGL superbible. Using GLUT you don't have to write any operating system code, you just call glutCreateWindow("window name") and it creates a simple window ready for opengl rendering
I'm going to list all of the OpenGL resources I have used thusfar, and you can send me a private message if you ever need help with it (I'm still a beginner, I haven't done anything really amazing yet, but I'll help ya get started)
resources:
-website:
-nehe.gamedev.net
-www.gametutorials.com
-www.opengl.org
books:
-opengl superbible
-OpenGL Game Programming (Windows specific, deals with WinApi code)
ChadWent
12-16-2002, 11:40 PM
thx for those addresses ill go ther and learn them as soon as possible
Travis Dane
12-17-2002, 09:08 AM
Also, take a look at:
Allegro - A game Programming Library (http://www.talula.demon.co.uk/allegro/)
AllegroGL (http://allegrogl.sourceforge.net/)
If you have these 2 you can dive right in the programming,
because they make life sooo much easyer, example (hand
written):
#include <allegro.h>
#include <alleggl.h>
void main()
{
allegro_init();
install_allegro_gl();
install_keyboard();
install_mouse();
set_color_depth(32);
set_gfx_mode(GFX_OPENGL_WINDOWED,640,480,0,0);
while(1)
{
if(key[KEY_ESC])
break;
}
allegro_exit();
}
END_OF_MAIN();
And voila, whe have a Win32 OpenGL program,from there you
immidiatly program opengl
Of course this is only to remove the bull you have normally
handy if youre just starting and dont want alot to learn already.
I'm not sure if AllegroGL works perfect with all the NeHe tutorials
bit at least it an easy start,you can always switch to erhm.....
well......whats 'standard' for your compiler
ChadWent
12-17-2002, 10:12 PM
sure thing ill check those out
vBulletin® v3.7.0, Copyright ©2000-2009, Jelsoft Enterprises Ltd.