Simple Open Source 3D Game Engines?
Zenitram asks: "I'm trying to find a good open source/free, 3D first/third-person game engines. I can write basic scripts and make basic programs in various programming languages, but when it comes to making 3D worlds I do not have the skill set. Most of the Open Source programs I've found are not for beginners. I've found some pretty good commercial programs, however the game I am making has no chance of ever making a profit. As such I don't really want to invest money on a personal project. Any advice?"
You can try: http://www.alice.org/
It might not be as simple as what you need, but Crystal Space 3D might work.
24 beers in a case, 24 hours in a day. Coincidence? I think not!
Ogre is a great 3d graphics library, and cross platform.. Unfortunately it is not (nor will be) a complete gaming library. What I recommend is that you learn the c++ skills (which will serve you well) and use Ogre. Then you can make great games without having to learn the math involved (which is a lot) and the graphics rendering (which even with a masters in math I still think is a nightmare.)
Try Blender. It is good if you want to start learning how to make 3D stuff - some may say it's really difficult to get started with, but I say it's sometimes better to just do things with weight on your feet =) - and it has a really simple 3D game engine that's basically "join stuff with your mouse". You can script it pretty easily in Python. Blender also exports stuff pretty widely, so you can use it to model stuff for "real" 3D engines. (I've heard Blender + GtkRadiant + CrystalSpace rocks.)
And yes, 3D modeling for games is difficult when you start. Don't give up. I'm not a gigantic big expert either, but Blender is simple enough and I've seen people do amazing things with it.
For 100$ you can get torque. It was the best investment I ever made.
.DTS format which is what torque uses, and you can do all of your mapping with Valve's Hammer Editor, which is a very nice editor.
I'm a gaming and simulation major at college, and I needed something for my senior project. I still have a year left before I have to start on it, but I decided to get a jump start.
99% of things you want to do can be done with the scripting langauge in torque, which in my opinion is very C like. Milkshape will let you export your models to
I'm working on a project with 2 friends, ones a character modeler, ones a mapper, and I'm the progamming guy to put it all together. most of what I want to do has already been done before, so all I have to do is look on the torque forums to find step by step directions on how to do everything from adding flashlights, adding vehicles, night visions, or anything else I could possibly want.
And, if you buy the upgraded lighting pack for 50$, the torque engine looks very pretty.
You know you can't just pick up some tool and press 10 buttons to get a game; that's what beginners want to do. 3D Game Construction Kit doesn't exist because the dynamics of a 3D game are so HUGE.
:)
Writing scripts in a game, as you say you can do, is possible only because someone wrote huge swathes of code behind it, including tying a scripting engine into hundreds or thousands of classes and objects.
If you got a "simple" tool, it would be too simple to give you the environment you are currently comfortable and competant in coding in. You need to get more complicated
Quake 1-3's engines have been GPL'd. You can find them on ID's ftp server. If you're looking for the best available free engine I think Q3's would be near the top of the list.
You should try Irrlicht: [ http://irrlicht.sourceforge.net/ ]
It's relativily easy and yet versatile and powerfull
http://www.garagegames.com/ It's $99, but a great engine and has some very good support from the company and community. If you're really serious about it, $99 is incredibly cheap for the value it offers.
I agree wholeheartedly with the parent. This is a hobby project, right? The point is to have fun, and to learn something? In that case, I think you'll have more fun if you don't start with a premade "game engine."
Start from scratch. It sounds intimidating, but that's just because you haven't tried it: You will be amazed at what you can do.
You don't need to spend any money. Compilers are freely-available. Between that, the web as a reference, and your own intelligence and creativity, that's all you need!
Do you know a programming language? If not: You say you can write scripts. If you can learn to write scripts, you can learn to write code. If you need to choose a language, I'd recommend C++ or Java; C++ is probably the most commonly-used language in game development. This site was an important reference for me when I was getting started. Go through all the tutorials. Don't rush to get out of the console: It's a great place to focus on your logic and your algorithms without worrying about interfacing with graphics APIs. It's where you learn how to think about programming.
Then, graphics! I'd suggest you start with some OpenGL programming. That's for a number of reasons. It's not just that OpenGL code is widely portable: Compared to Direct3D code, it's a breeze to write. Carmack himself wrote a piece about how OpenGL programming is a straightforward, enjoyable experience.
Where to start? Try NeHe's tutorials, and its parent site, gamedev.net. That's how I started writing OpenGL code, and I had a lot of fun doing it.
Then, think about what sorts of worlds you want to represent. Landscapes? Indoors? Look up the relevant algorithms and data structures. You care about spatial partitioning schemes, occlusion culling, and LOD. This is where it starts to get advanced. Here, you'll learn more than just to code; you'll learn some actual Computer Science.
You don't need to worry about this now, but when you get to the point where you're ready for it, there's stuff you can google. Spatial partitioning: BSP (older algorithm, computationally beautiful, generally used for indoors), Octtrees (more modern approach, conceptually simpler, lets you efficiently throw stuff at the graphics card), Quadtrees (variant for outdoor environments where the map extends mainly in two dimensions), K-D trees (special case of BSP which behaves more like Oct or Quad-trees). LOD: For outdoor scenes in particular: ROAM, geomipmapping. Occlusion culling and visibility: Portals, precomputed PVS, image-space techniques with occluders.
Just explore, experiment, and have fun. You'll learn a lot.
Soya3d is a 3d engine written as a Python module (really). Being a python beginner, and someone who hasn't written a lick of C in ten years, I can tell you it's EXCELLENT. It even comes with a sample 3rd person game, Balazar, that has been fun to play (although it's not quite done) //and// to tweak under the hood.
I highly recommend it.
This is over and above the other mentions of Ogre3d, Nevrax, Cube/Sauerbraten, the Quakes, Nexuiz, the Worldforge projects, etc.