• Advertisement

Archived

This topic is now archived and is closed to further replies.

FPS Engine: Getting Started?

This topic is 5028 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

When it comes to the term game engine all i know is that it''s a component that every modern FPS has. As i intend to code a game engine for a 3D FPS, i was wondering if anyone could give me some links that will help me get started and understand what will be involved in making one. Thank you for your time.

Share this post


Link to post
Share on other sites
Advertisement
The engine is that part of the code that has nothing to do with the particular game you are making... IE, it is all the foundations...

Additionally, I believe that an engine has to have the game loop...

In you''re case, you''re engine would need to:

Get Player Input and DO it (modifys world)
Run all of the NPC + strategic AI''s (modifys world)
Run any Physics simulations (modifys world)
Render the display

An engine must do all of this (and more), every frame... It may decide that it doesn''t need to calculate AI every frame, but it must do it at some interval, and it still needs to make that determination...

Tony

Share this post


Link to post
Share on other sites
ok thank you. Do you have any links for where i can get some info on how to go about developing one? Thanks, i''ll do my own searching in the mean time.

Share this post


Link to post
Share on other sites
quote:
Original post by iaretony
The engine is that part of the code that has nothing to do with the particular game you are making... IE, it is all the foundations...

Run all of the NPC + strategic AI''s (modifys world)



hmm, I''m curious. How is the engine supposed to run all of the NPC + AI if it is also supposed to have nothing to do with that particular game?

Share this post


Link to post
Share on other sites
quote:

hmm, I'm curious. How is the engine supposed to run all of the NPC + AI if it is also supposed to have nothing to do with that particular game?



Just because AI is run through the engine, doesn't mean that the routines are hardcoded.

It also runs graphics, but different games have different graphics!

[edited by - sirSolarius on April 15, 2004 10:45:11 PM]

Share this post


Link to post
Share on other sites
Actually game engines are found in most games, not just FPS. FPS are the best known since they are easily reusable.

Essentily the engine is what drives the program.

Here is the minimum list of what you''ll need.

1)A level archetecure - This is the classes,and variables that store and access the data that makes up a level.
2)A renderer - This handles the displaying of the level and entities.
3)Proccess input - At least allow basic movement throughout the level.
4)Collission detection - At the most basic level the user shouldn''t be able to walk through walls, and objects.

everything else is optional.

-----------------------------------------------------
Writer, Programer, Cook, I''m a Jack of all Trades
Current Design project: Ambitions Slave

Share this post


Link to post
Share on other sites
quote:
Original post by TechnoGoth
Actually game engines are found in most games, not just FPS. FPS are the best known since they are easily reusable.

Essentily the engine is what drives the program.

Here is the minimum list of what you''ll need.

1)A level archetecure - This is the classes,and variables that store and access the data that makes up a level.
2)A renderer - This handles the displaying of the level and entities.
3)Proccess input - At least allow basic movement throughout the level.
4)Collission detection - At the most basic level the user shouldn''t be able to walk through walls, and objects.

everything else is optional.




ah, this was a very helpful list for me, thank you. Now that level architecture part... this is how the engine and the level editor "talk to each other"? The level editor outputs a file that the engine can read?

Share this post


Link to post
Share on other sites
now if you had to ask a question like that, them my questions are how many games have you made? have you ever programed anything in 3D (even if it''s just a bouncing ball or rotating cube)? how many games that you made are in 2D? 3D?

if you answered the first question with 0, then start with the usual: make tetris or pong, then move on up. but you can do so in 2D or 3D using DirectDraw/SDL/Allegro or OpenGL/Direct3D.

Share this post


Link to post
Share on other sites
Yes so to speak. The engine proccess a level file and the level editor creates a level file. Technically the tool programmer who makes the level editor should only need the level archetecure to be able to build the level editor.



-----------------------------------------------------
Writer, Programer, Cook, I''m a Jack of all Trades
Current Design project: Ambitions Slave

Share this post


Link to post
Share on other sites
quote:
Original post by Alpha_ProgDes
now if you had to ask a question like that, them my questions are how many games have you made? have you ever programed anything in 3D (even if it's just a bouncing ball or rotating cube)? how many games that you made are in 2D? 3D?

if you answered the first question with 0, then start with the usual: make tetris or pong, then move on up. but you can do so in 2D or 3D using DirectDraw/SDL/Allegro or OpenGL/Direct3D.




yes, i've made 0. But i'm in a group and they want their first game to be a FPS with mechs. And they want to produce something in 8 weeks. What do you think? My idea was an advanced version of pong :T

I"ve programmed in 3D and 2D. I can make a bouncing ball and a rotating cube.

[edited by - tieTYT on April 15, 2004 12:20:58 AM]

[edited by - tieTYT on April 15, 2004 12:26:36 AM]

Share this post


Link to post
Share on other sites
As already mentioned, the game engine handles quite a few things.

One thing that I don''t believe was mentioned is that there are "engines" for all kinds of things. Havoc is a physics engine, for example.

Typically, a game engine(s) handle the rendering, physics (coll. detection), and game loop (conditional ''while loop'').

I would say that the "level architecture" is more of a component of "game data". Where you want to put that is subjective. Some people may consider elements of a car part of the "engine" while others may not.

The reason I would not consider it part of the engine itself is that it is game-specific and the engine itself may not come with it. There are exceptions to that though. Unreal licensing allows the developers to create a game without touching any actual code.

I would classify the engine (including physics) as general code. Everything else is connected to the engine, but not a part of it - the way an axle would be "connected" to an engine. Although it is not direct, they both have to work together or the car aint going anywhere

Share this post


Link to post
Share on other sites
I have to disagree, The level archeture is a critical component of the engine. With out it the engine the doesn''t known how to do anything. Data is something diffrent, an example of data would be a specific level. While level archetecture is the structure of all levels.

-----------------------------------------------------
Writer, Programer, Cook, I''m a Jack of all Trades
Current Design project: Ambitions Slave

Share this post


Link to post
Share on other sites
But the engine is not dependent on the design of a level. The engine needs to know information about a level so that it can understand the level''s design for processing the rendering (level, textures, draw distance, lighting, etc.) and to a degree - phsyics (if areas of a level behave differently) - but the actual layout of a level is fairly irrelevant to the engine.

It''s all pespective I guess. Where does a car''s engine end and the "rest" begin?

I think a better analogy would actually be the human body. The engine could be considered the circulatory system; the renderer the eyes; the sound engine the ears; the hands as the input system; etc.

Where would the level architecture fit into the equation? The skeletal system? Either way, it''s all dependent but most of the components work individually but collectively. Arguably the other systems would be affected by the "skeleton" (level architecture), but whether or not we choose to walk upright or on all fours is the actual level design itself.

Share this post


Link to post
Share on other sites
This all seems like a bunch of pieces put together to make a whole and it seems to have it''s own terminology. I searched on google for some tutorials but was only able to find ~4. How did everyone else make their first one? Can anyone provide some good links that would help me get started or does anyone else know some links to creating parts of a 3d engine (like level architecture, etc)?

Share this post


Link to post
Share on other sites
http://www.extremetech.com/article2/0,1558,594,00.asp

I guess you could consider the "game engine" the hard-coded elements.

Although most of an engine works independently, there are elements that have to be "fabricated" to connect game content to the engine. A engine is useless if it doesn''t work wit the content, and vice versa.

I haven''t read that article of the link I posted, but I would like to when I have the time. It should be a good start, though

Share this post


Link to post
Share on other sites
I hate to sound negative, but it doesn''t seem to me that you''re ready to begin coding an FPS engine. If you don''t even know what something as common as an engine is, you''re probably not at all ready to have one coded in eight weeks. Your question is kind of like asking, "What''s a novel? Oh, ok, I''m going to write one of those in eight weeks. Does anyone know a website that tells you how to write a novel?"

Start with Tetris, start with Pong, start with 2D. They''re not nearly as sexy as a "FPS with mechs" but I think you really need to start at the beginning.

Share this post


Link to post
Share on other sites
I think you are confusing a specific level with level archetetcure. Level archetecutre is how a level is represented by the program. For instance the archetecture defines how a wall is represented with in a level. The engine uses that archetecture to tell it how to draw a wall. A specific level would define where the walls are.

An engine can only proccess levels that where designed under the given level archetecture.

Well your human body analogy is flawed. Then engine would be the brain, the archetecure the nervious system, eyes would be input sources and hands would be the renderer.

tieTYT it may seem over whelming at first and it is a fair bit of work but it really is only as complicated as you make it. Try starting small first, with a 2D grid of colored squares. Create an archetecture to represent a grid, then design an engine the can render a grid. Then try making a simple editor that allows a user to choose the size of a grid and color any of the squares in the grid, that editor then outputs the grid to file that will be read by the engine.

-----------------------------------------------------
Writer, Programer, Cook, I''m a Jack of all Trades
Current Design project: Ambitions Slave

Share this post


Link to post
Share on other sites
quote:
Original post by TechnoGoth
4)Collission detection - At the most basic level the user shouldn''t be able to walk through walls, and objects.



One might argue that the most basic level, you should at least be able to tell if a bullet hit anybody.

Share this post


Link to post
Share on other sites

  • Advertisement