Advertisement

3D First Person Shooter

Started by January 19, 2007 06:47 PM
8 comments, last by sereal_killa 18 years, 1 month ago
I've been writing out some ideas for a 3D FPS that will play a litte similar to Halo but will also have very different aspects. I know its one thing have ideas and another to implement them. If I wanted to at least toy around with this idea, what game engine and what tools would be necessary to do so?
You will need a Game Engine:
1)Learn a programming language like c++ or c# and all required APIs and make your own engine.
2)Learn a programming language and use a free or cheap engine. (See http://www.devmaster.net/engines/ )
3)Make a mod. You should really think about this option because this way you can use some of the best engines available (Unreal Engine, Doom3 Engine, …).
4)Use a game creation tool like FPS Creator. But have in mind that such tools have limited capacities.
You will need 3D models, textures, sounds, …:
1)You can Learn modeling using some program (Blender, milkshape,…, maya, max,…) and making textures (gimp, photoshop, texturemaker…),… .
2)You can try finding some artists and programmers and make the game in a team. (Finding artists is not easy…)
3)Buy models and sound effects.
Advertisement
If you have never touched a line of code, and have never done anything related to game development before:

Start with a Modification of another game. Half Life Source is a good one, the included mod tools are suppose to be among the most powerful. The newest in the Unreal line of game engines is suppose to be very good too but I have no experience with them and only vaguely know of them.

Make a few simple modifications of the game, try your own custom levels for Halflife2. Play around with it. I would suggest starting with learning to modify the guns to fire differently, different levels of damage, different speeds, different projectiles. Then learn to play with things like new levels, and newish features, change how the player takes damage, throw in multiple health meters and change how they are affected. Maybe learn to play around with invisible walls for shields and stuff.

From there you may have enough power in the modifications to do your game design as is. This saves you from a LOT of programing for building a full 3D game with lots of effects.

To do a Modification you will most likely want to learn to create models and textures. Even if you are doing your own game from scratch you'll still need models to put in. Drop down to Visual Arts forum here on GameDev and look at the stickies. Read through those and you should be good. Ask questions there, they seem very helpful.

You may also wish to do your own custom sounds, and we again have another forum for that here too, but I have never looked at it till just now. I'll assume it is mostly good.


Now, if you have done all this (plan for it to take at least a month, more realistically maybe 6 months or more, depending how much you work on it, how much natural skill you have, and how fast you learn) and you still can't do your game in the engine, then you'll want to search around for another engine to modify. If you want to get into the gritty business of making your own engine, then you'll need to learn to code. You'll see lots of suggestions for C++, but take your time and explore other languages. C++ works, but there are other options and there are other options for a good reason. C++ works but like every other language it isn't the best.

Things you'll want to look at for languages: C, C++, C#, Java, Python, and many others that I can't think of right now. Ones that likely won't be too useful, Fortran, COBOL, ada. Look at the language history, if it doesn't have a compiler and standard from the last 10 years it likely isn't going to be fun to work in.

My personal view on learning languages: Learn a language, any language! Spend 6 months or so in a language that is considered easy to learn, and lets you do your basic logic and control stuff. Learn to do basic things like a calculator, a guess the number game, and a few other simple projects. Your goal here is simply to learn and understand how and why a language works. An object oriented language would be good to learn too, learning to think in the abstracted style of objects early in your studies seems to be easier than learning it later. C# or Java is good, but I would strongly suggest Python.

Once you get a strong grasp of the basics of one language, look up Comparative Programing languages. This path is far longer than starting with C++ and heading straight towards your game, but you'll be far better for it, and will mean development will be easier and go smoother. You'll have a large tool set to choose from when you are faced with a problem, and if you learn to interact with different languages then you can use a language that does something well to do things another doesn't, or you can simulate features from other languages in the project you are working on.

Take your time, learning to be an effective programmer takes years, but you can still do smaller projects and have your fun while learning. You also should never stop learning.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Get a book, that's always a good start :)
I would definitely suggest creating a mod with Half Life or Unreal first before attempting to learn a language and write your own engine.
I would recommend the Quake 3 engine to start with modification.
Although, programming-wise, the code is quite messy, there is a vast amount of documentation for modifying the game.

For creating levels for the game, there is the GTKRadiant editor found at
http://www.q3radiant.com

For tutorials on modeling using the Blender (http://www.blender.org) modeling program with Quake 3, visit http://www.quake3bits.com

http://code3arena.planetquake.com is a little outdated but still has some useful tutorials on code-editing.

The only reason I dont mod Half-Life 2 is because the Hammer level editor is a pain in the butt to use. Very cumbersome and, in my opinion, not user friendly.

GTKRadiant 1.4.0, however, I find to be very easy to use.

Some sites for level editing for Quake 3:
http://www.quake3world.com/forums
http://www.map-center.com

And then there's just random editing:
http://www.quakesrc.com

Hope this helps out some and good luck with your project =)

EDIT: I also might add that the Quake 3 engine is somewhat lacking in the physics department as well as some other aspects that the Source engine has. If its a close cousin to Halo you're going for you might want to work with Half-Life 2.

I merely recommend Quake 3 because I've worked with that the most out of any other engine :) (I do plan on making a transition to the new Unreal engine when its released)
Advertisement
Thanks alot! I'm still looking through the links and all the other stuff you posted. I still have a few questions though:

1. How bad does this engine lack in physics?

2. If I plan to make this game somewhat, but not entirely similar to Halo 2 (movements, vehicles, weapons, and map wise), how close can I get it there?

3. I'm new to modding so I'm unsure whether or not it matters what version of Quake I buy. Does it matter?
There is no vehicle support in Quake 3.
The different versions of Quake are extremely different as they are completely different technologies.
Quake 1 was made when BSP was considered cutting-edge technology. Supported .mdl file format.
Quake 2 had (omg) colored lighting among other things ;) Supported .md2 format.
Quake 3 had crazy amounts of deathmatch, a new shader system to control the properties of surfaces using text files, and support for the .md3 model format.

Quake 4 is built off the Doom 3 engine and I haven't touched it yet.


If you're looking for rag-doll physics for your models and vehicle support go down the Half-Life path. :)
@caldiar: I guess the editors choice is personal preference. I'm very happy about Hammer. And the custom tools the communities create are pretty usefull as well. I've also read interesting things about this Gary mod: it offers lua scripting and a wide variety of in-game tools. Seems usefull for prototyping.

@sereal_killa: it matters which Quake, or which game in general, you use. A 7-year old game obviously is far more limiting. You may want to read up on some of those games before making a decision. I would recommend you not to focus on shiny looks for now though, if your main goal is prototyping a gameplay mode. Otherwise you'll end up wasting your time on something that may not be fun to play at all... ;)
Create-ivity - a game development blog Mouseover for more information.
I might just have to choose the Half-Life engine then.

This topic is closed to new replies.

Advertisement