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/
My advice is that you get the skillset. It sounds like you want something for nothing. Any skill requires some sort of investment, either financial or personal. You can decide which investment you'd rather make.
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.
If you're willing to spend the time learning C++, using Ogre is very rewarding in terms of what you can accomplish with (fairly) little code. Ogre only handles (3d) graphics though and even though there are additional bindings for tying into 3rd party GUI/physics libraries, you'll be handling the bulk of integration yourself.
Of course, there's also Yake, which is more aimed at being a complete game development framework.
If you're not interested in building a game from scratch, have you looked into implementing your game as a mod for some already existing game?
Simple, Open Source, 3D Game Engine
You get any two.
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.
The reason most game engines are complicated is because 3D game design is not for beginners, mostly due to the broad compromises we make due to technological limitations. Heck, just 3D graphic design is a beast to learn. Anyone can draw with a pen and paper, that's 2D.. photoshop, illustrator, these can be learned in a couple days. 3D is not something that's easily adapted between reality and virtual worlds.
-Billco, Fnarg.com
"If you're not interested in building a game from scratch, have you looked into implementing your game as a mod for some already existing game?"
Mod parent up for suggesting a mod.
Seriously.
Unless you have VERY specific requirements for your game, you should be able to get quite far by creating a mod for an existing game. Now, that could either be a close sourced game or an open sourced game, that's entirely up to you.
Since you stated that your game is never going to make any money anyway, going with a commercial, open source game seems viable. This opens up the possibilities even further. Depending on the type of game you had in mind, Quake3 and Descent2 are both mod'able and both have their source code freely available.
If you don't want to use a commercial open source game, you could use one of the many "free" open source game (feel free to insert the obligatory speech and beer comments here), e.g. Vegastrike ( http://vegastrike.sourceforge.net/ ).
All that said, you don't NEED the source if you can keep it 100% in the mod realm - and people have done some amazing things with mods!
You should try Irrlicht: [ http://irrlicht.sourceforge.net/ ]
It's relativily easy and yet versatile and powerfull
"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.
So let me get this straight: you're looking for an engine which allows you to build something you readily admit you are unable to build?
This is rather baffling. It seems like your skillset (scripting, basic coding, no modelling or worldcraft) would strongly recommend itself to modding or storytelling within existing commercial engines where there's a huge base of art, maps, models and media inherently available, which let you do the scripting and writing with little compulsory art design. If you want to do something FPS style, why not Source? If you want to do something RPG style, why not NWN2 when it comes out, or NWN now? As nice as it would be to have an open source alternative, a high quality open source game SDK with all the functionality of the more comprehensive commercial equivalents (with the various fan-made tools which have been created to complement them) simply does not exist.
Karma: Chameleon (comes and goes)
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.
http://panda3d.org/what.php
What is Panda3D?
Panda3D is a 3D engine: a library of subroutines for 3D rendering and game development. The library is C++ with a set of Python bindings. Game development with Panda3D usually consists of writing a Python program that controls the the Panda3D library.
Panda3D is unusual in that its design emphasis is on supporting a short learning curve and rapid development. It is ideal whenever deadlines are tight and turnaround time is of the essence.
For example, in a class called Building Virtual Worlds at the Entertainment Technology Center, interdisciplinary groups of four students are asked to create virtual worlds in two weeks each. Screenshots of their projects are visible throughout this site. Panda3D is what makes this rapid turnaround possible.
Panda3D was developed by Disney for their massively multiplayer online game, Toontown. It was released as free software in 2002. Panda3D is now developed jointly by Disney and Carnegie Mellon University's Entertainment Technology Center.
Isn't that the only way to really do it, without people becoming free teachers (teaching is something that takes patentience, and sacrifice of time)?
If you want to know something and I can say RTFM, and point you to a good manual (on my desk right now I have the C Bible and a well known book about compilers), that has taught thousands of people in the past, isn't it a lot simpler and less risky then me trying to explain something that I've never explained before (most profs I know that are teaching a new course are constantly afraid of teaching it improperly, because they've never recieved feedback on the notes before, well the good ones anyway).
I mean, if you have questions while reading a manual then by all means ask. But if you want to ask 30 people for an impromptu lesson, most will probably only try to teach the book anyway. So cut out the middle man and get the tried and true solution, if possible.
Remember, the bazaar just lets things happen, under the assumption someone will want them to. Tutorials and forums are the only things I see that answer that model.
Am I open minded towards open source, or closed minded towards closed source?
Except that Blender actually does have such a thing. You actually can build a game from scratch by pointing and clicking. It's not easy, but it's quite possible. Get the Blender Game Kit book with sample games and start from there. It's relatively easy to do something at the Marble Madness level, and a good driving game is possible.
Try the Blender Game Engine. You have all your 3d tools right there in one package. The engine is quite versatile, and now supports GLSL shaders, multi view ports, and physics. http://www.blender3d.org/
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.
I don't think 3d is that hard, sure it uses university-level maths but what you're lacking there you can read up on. Most of the problems you are going to encounter have been solved in traditional math already, you just need to transscribe the algorithms into your programming language (and know where and how to use them, of course). The basic transformations and lighting are done by the API, the hardest part is optimizing stuff and even that has been explored thoroughly. Of course you're not going to churn out a state-of-the-art engine on your first try but you'll get something more than workable easily.
Justice is the sheep getting arrested while an impartial judge declares the vote void.
Cheers!
--clint
Most tutorials are written by one person, and merely rehash the "one true way that worked for them".
As opposed to many people doing the exact same thing? Take graphics, I have the book "Computer Graphics: Principles and Practice" by 4 different people. The thing is huge, and pretty comprehensive about 2D and 3D graphics. But all they did was create the "one true way." Would the book be different if only one author had written it? Probably not.
And play a game? The game that programmers play is called "solve the puzzle" where they have to figure stuff out. If you think you can effectively teach with a "normal" game, then by all means try. But learning some things is boring and frustrating as hell. Grokking those pieces and putting them together on the other hand is one of the most rewarding things you could ever do. One of the greatest joys I've had in CS is figuring out tough algorithms, despite the amount of time I've spent working on any given problem.
As I said earlier, if you are struggling with a specific concept or problem, just ask. That method is a lot better then having knowledgable people assume where the bottlenecks of comprehension are in advance.
BTW, Google groups is my first point for forums (in general). Common problems are typically brought up there by someone else. The hardest part is specifically phrasing what you want. But with computer languages it isn't that bad.
That being said, I know I'm not the fastest at learning new things, nor am I the best at reading manuals. Far from it. Sadly, you have to get used to it. I don't know if you are looking to get into the computer industry, but from what I've seen, I've never been able to rest on my laurels. And in the real world of computing, documentation sucks the most where you need it. Consider it an extension of Murphy's Law.
Am I open minded towards open source, or closed minded towards closed source?
Actually with modding I'd be more worried about the code itself, the Source SDK is supposedly VERY messy, I've seen mods switch from HL2 to other engines (Quake 4 I think) simply because Source is a huge PITA.
Justice is the sheep getting arrested while an impartial judge declares the vote void.
A game engine usually consists of many components including the graphics engine. While many people have pointed out Ogre as a game engine, it is to be noted that Ogre does not claim to be a game engine in itself. It only strives to do what it does best: Graphics.
.. you may call that a game engine. :)
Yake, on the other hand, integrates Ogre and ODE (a physics engine)
Ideally, today's games require that a game engine would need these components:
1. Graphics engine
2. Sound engine
3. AI/Gameplay/Scripting engines
4. Common Client/Server/Game framework
5. Networking
6. Physics (someone saw Novodex/PhysX coming? )
7. Content Creation / Editing / Deployment Tools
Optionally:
8. Dedicated server (web apps) for multiplayer games
So, if you've put all of them together
-Karthik
As other posters have noted, if you don't have the skill set then you shouldn't be worrying about engines quite yet. How familiar are you with vector and matrix mathematics? If you ever plan on doing ANYTHING in 3D, learn that. Trying to do anything without knowing the basics is just plain ludicrous. Once you've gotten the hang of those, you can start coding. The mathematics are usually the biggest block to get over when programming in 3D. After learning that stuff, OpenGL or Direct3D will seem alot less daunting. Alternately, since there's alot more to 3D game programming than just learning a graphics API, you could then try making a mod or playing with one of the many engines listed in previous posts. My own personal opinion though: Engines are wrong. They're usually general purpose solutions when I want a specific solution. Engines are evaulated by companies/individuals based on features that they want. They'll usually go with the engine that has a balance between features and ease of use. One could argue that learning an engine and adding the features you want would be just as time consuming as writing your own engine from scratch (it's an argument that I ascribe to). As a learning environment, I really can't recommend anything better than reading tutorials; getting comfortable with the concepts; and then doing everything yourself. That's the approach I've taken, and I've found it to be a rather useful approach (it's the same with programming languages - did you learn the science behind it or did you only learn the syntax?).