Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×

Simple Open Source 3D Game Engines? 136

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?"
This discussion has been archived. No new comments can be posted.

Simple Open Source 3D Game Engines?

Comments Filter:
  • Alice (Score:5, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @11:54AM (#15180719)
    You can try: http://www.alice.org/ [alice.org]
  • Crystal Space 3D (Score:4, Informative)

    by The Snowman ( 116231 ) * on Saturday April 22, 2006 @12:00PM (#15180739)

    It might not be as simple as what you need, but Crystal Space 3D [crystalspace3d.org] might work.

  • Ogre 3d (Score:5, Informative)

    by Andyman1134 ( 854184 ) on Saturday April 22, 2006 @12:04PM (#15180762)
    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.)
  • Blender (Score:3, Informative)

    by WWWWolf ( 2428 ) <wwwwolf@iki.fi> on Saturday April 22, 2006 @12:05PM (#15180765) Homepage

    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.

  • Torque (Score:5, Informative)

    by Beowulf_Boy ( 239340 ) on Saturday April 22, 2006 @12:18PM (#15180824)
    For 100$ you can get torque. It was the best investment I ever made.
    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 .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 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.
  • by NekoXP ( 67564 ) on Saturday April 22, 2006 @12:18PM (#15180826) Homepage
    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 engines (Score:5, Informative)

    by layernheart ( 964825 ) on Saturday April 22, 2006 @12:21PM (#15180843)
    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.
  • Re:Torque (Score:3, Informative)

    by Beowulf_Boy ( 239340 ) on Saturday April 22, 2006 @12:26PM (#15180862)
    I thought I should include the site to get it from.

    www.garagegames.com
  • Re:Ogre 3d (Score:5, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @12:31PM (#15180888)
    I second this. I started using Ogre3D a couple of days ago, I've been using the Python bindings and PyODE (Python bindings for the ode phyics engine). In the space of one day I'd consturcted a simple third person demo, using the demo-media that comes with Ogre. I'm in the process of learning how to use Blender to make my own models. But my experience with Ogre has been great - documentation, source and loads of examples. That being said I'd already written a 3D engine in C++ for a project at college, Ogres list of features tempted me away from hard work.^H^H^H^H^H^H^H^H^H^H^H writing my own engine.
  • Re:Alice (Score:4, Informative)

    by smallfries ( 601545 ) on Saturday April 22, 2006 @12:34PM (#15180908) Homepage
    One of the most useful sites for finding 3d engines has always been here [tu-berlin.de]. There are hundreds, and they can be rearranged into chosen categories.
  • Irrlicht (Score:3, Informative)

    by game_dev ( 970060 ) on Saturday April 22, 2006 @12:36PM (#15180912)
    You should try Irrlicht: [ http://irrlicht.sourceforge.net/ [sourceforge.net] ]

    It's relativily easy and yet versatile and powerfull

  • Re:Ogre 3d (Score:3, Informative)

    by kunzy ( 880730 ) on Saturday April 22, 2006 @12:39PM (#15180935) Homepage
    Ogre has nice Python bindings, which makes it well suited for beginners. See here: http://www.ogre3d.org/wiki/index.php/PyOgre [ogre3d.org]. Also it's lgpl, which makes it very free to use.
  • Toruqe (Score:4, Informative)

    by BShive ( 573771 ) on Saturday April 22, 2006 @12:48PM (#15180977) Homepage
    http://www.garagegames.com/ [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.
  • Re:skillset (Score:5, Informative)

    by TerranFury ( 726743 ) on Saturday April 22, 2006 @12:59PM (#15181032)

    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 [cprogramming.com] 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 [gamedev.net], and its parent site, gamedev.net [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.

  • Re:Blender (Score:2, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @01:05PM (#15181057)
    Blender is an awesome peice of software. I have been using it for 2 years now and I'm really enjoying it. You can build games by click and drag if you want but there also a pretty in depth python engine. Pixel2life.org has some great tutorials.
  • Re:Alice (Score:5, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @01:16PM (#15181104)
    Piggy backing on something visible, here's a summary of some of the shorter suggestion posts:


    And personally I think http://sauerbraten.org/ [sauerbraten.org] looks interesting, but I've never used it.
  • Re:Alice (Score:1, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @01:42PM (#15181223)
    The site hasn't been updated since 2000.

    In the world of 3D programming, that's an eternity.
  • by jtriska ( 520530 ) on Saturday April 22, 2006 @02:13PM (#15181362)
    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/ [blender3d.org]
  • Soya3D (Score:4, Informative)

    by bitspotter ( 455598 ) on Saturday April 22, 2006 @02:27PM (#15181429) Journal
    Soya3d [nekeme.net] 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 [nevrax.org], Cube/Sauerbraten, the Quakes, Nexuiz, the Worldforge projects, etc.
  • Re:skillset (Score:1, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @02:47PM (#15181507)
    There are a couple of free compilers to start with as well. The gcc/g++ ones to start with (http://gcc.gnu.org/ [gnu.org]). I find those to be a tad harder to setup but are completly free and you can look at the code under it (if thats what you want). There is also the visual studio compiler. There is a free learner edition (express) that comes with the gui and the SDKs are fairly straight forward to get and setup (http://msdn.microsoft.com/vstudio/express/default .aspx [microsoft.com]). I recomend the vs one if you are going to do any sort of directx stuff. Also if you are going to do that I would get a few COM tutuorials to get you into the groove of making and destroying objects.

    I also recomend getting a book or two. Even if you just go to the library to get one. There are also a few companies that have released the source to their older stuff (Quake I/II/II, Freespace, etc...).

    Above all have fun with it.
  • by KDR_11k ( 778916 ) on Saturday April 22, 2006 @03:06PM (#15181589)
    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.
  • by HanClinto ( 621615 ) <hanclinto AT gmail DOT com> on Saturday April 22, 2006 @03:06PM (#15181590)
    One Python library that I've enjoyed good success with is Phil's pyGame Utilities (PGU) [imitationpickles.org]. It has support for square, isometric, and hex tiling. It's very easy to program in, and has been consistently actively developed for as long as I've been using it, which is about 6 months.

    Cheers!

    --clint

  • Re:Alice (Score:1, Informative)

    by Anonymous Coward on Saturday April 22, 2006 @03:36PM (#15181678)
    And personally I think http://sauerbraten.org/ [sauerbraten.org] looks interesting, but I've never used it.

    Sauerbraten works quite well within its limited niche. It's not an engine at all but a self-contained FPS game based on a rather unorthodox but quite efficient representation which allows world building in-game. The representation can't really be changed nor extended without a major rewrite.

    There's also another problem with it ... the code is written in a rather "unique" style, and that's being generous. It's hackable with care, but leaves something to be desired.

    And don't bother trying to help the dev team. The leader is highly obnoxious, and all technical suggestions are greeted with foul mouthing and references to his godliness. It can be funny to watch, but you've been warned. The code is open, but the developers aren't.
  • Re:Alice (Score:5, Informative)

    by mcasaday ( 562287 ) on Saturday April 22, 2006 @03:44PM (#15181716)
    Oh fer cryin' out loud. That site hasn't been updated in over six years. Use the 3D Engines Database [devmaster.net] instead.
  • Re:Soya3D (Score:3, Informative)

    by ArcRiley ( 737114 ) <arcriley@gmail.com> on Saturday April 22, 2006 @08:22PM (#15182532)
    Soya3d is excellent for a beginning programmer being as it's very high level and beautifully maps 3d objects to programming objects. It's also powerful enough to be used for "professional" games designed with low/mid level hardware in mind.

    It's available for GNU/Linux, MacOSX, and Windows. You can even use standard tools to build a Windows .exe of your finished program which doesn't require the end user to install either Python or Soya.

    The documentation for Soya is a bit lacking, though there's many examples available in both finished games which use it and a set of tutorials available in a seperate package for download. One example, gameskel-5, shows how easy writting a game can be.

    Unlike Panda, Soya is available under a free software license (GPL-2).
  • Re:skillset (Score:3, Informative)

    by donscarletti ( 569232 ) on Sunday April 23, 2006 @01:54AM (#15183446)
    Graphics gurudom comes from knowing both maths and programming. For maths you need to understand vectors, matricies, linear maps, geometry and triganometry, mostly highschool stuff but some stuff there that's a little more advanced. For programming you need to know C and/or C++ fairly deeply, you need to understand data structures (especially trees) and you have to be able to create clever algorithms and solutions on your own. After you have those skills you can start using OpenGL or DirectX to make graphical applications like games.

    I don't think it is really worth doing 3d programming in terms of a learning experience until you know the fundimentals. If there were a tool that one could use to write graphics stuff without understanding matrix maths one would probably come out of the experience still not understanding matrix maths since one would not need it with that tool. Go to a university book shop, you should be able to find a decent mathamatics text book that covers vector spaces and linear maps, read that. Then check out the NeHe OpenGL tutorials [gamedev.net] and learn OpenGL. Now you will know the fundimentals of 3d graphics and you can just practice until you are good.

  • by The_Real_GooberMan ( 698083 ) on Sunday April 23, 2006 @11:25PM (#15187646)
    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?).

It's a naive, domestic operating system without any breeding, but I think you'll be amused by its presumption.

Working...