Slashdot Mirror


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?"

28 of 136 comments (clear)

  1. Alice by Anonymous Coward · · Score: 5, Informative

    You can try: http://www.alice.org/

    1. Re:Alice by smallfries · · Score: 3, Informative

      One of the most useful sites for finding 3d engines has always been here. There are hundreds, and they can be rearranged into chosen categories.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    2. Re:Alice by Anonymous Coward · · Score: 5, Informative
      Piggy backing on something visible, here's a summary of some of the shorter suggestion posts:


      And personally I think http://sauerbraten.org/ looks interesting, but I've never used it.
    3. Re:Alice by mcasaday · · Score: 4, Informative

      Oh fer cryin' out loud. That site hasn't been updated in over six years. Use the 3D Engines Database instead.

  2. skillset by Forrest+Kyle · · Score: 3, Insightful

    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.

    1. Re:skillset by heinousjay · · Score: 3, Insightful

      Coding is not an easy skill in general, and some branches are harder than normal. You obtain the skill by reading about it, thinking about it, and practicing it. There's really no shortcut you can take to become a 3D graphics guru.

      This is akin to saying that the NFL doesn't make it easy for high school players to get drafted.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    2. Re:skillset by hackwrench · · Score: 3, Insightful

      Um, could you at least provide a dewey decimal number or something?

      No, it's more like saying the minor leagues doesn't make it easy... no, not quite, more like saying once you're out of HS there's really not much infrastructure for learning any given sport.

    3. Re:skillset by TerranFury · · Score: 5, Informative

      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.

    4. Re:skillset by theVicar · · Score: 3, Insightful

      After seeing people from that background follow the same advice given them by more advanced programmers, I can say from experience that this is usually bad advice.

      Unless the person's real interest is in learning about culling algorithms with the eventual goal of improving on them or inventing new ones, please don't tell them to write a 3D engine from scratch and then sometime later start looking up things on how to implement their own culling algorithms from scratch. For them it would be a waste of time, unless they are more interested in 3D game engine architecture than in getting their game design idea up and running, which is clearly not the case. The fact that John Carmack says all this stuff is fun and easy might not be the best argument...

      Like someone else said, it's not surprising that there aren't a lot of good choices of cheap/free 3D game engines that are well-designed and easy to use. It's a huge design and engineering task to create something like that. Try Blender, Torque, Unity(if you have a Mac), Panda3D, Alice, Yake, maybe do a tutorial in each to see if any of them will do what you need. If none of those work out, maybe try a 3D rendering engine like Ogre or Irrlicht together with other libraries for physics or whatever - this will require being comfortable in C++ though.

      I will say that it's probably going to be worth it to take a course / get a book on C++, whatever you do - it will allow you access to a wider range of tools, and also the ability to figure out how something works (if it's well-designed) by reading the source code when the documentation isn't cutting it. Also, if what you're mainly doing is using a single high-level game engine with a C++ API, a lot of what you'll be doing with C++ will be much like scripting anyway.

      --
      ---The Vicar---
    5. Re:skillset by MaestroSartori · · Score: 4, Insightful

      No. Wrong wrong wrong. Wrong! Assuming the guy wants to learn about game programming rather than 3D engine programming, that is... ;)

      See, most people who work in the games industry don't write 3D engines. And the ones that do often don't get to actually work on games, they get shunted off into R&D or game support roles. The rest of us write other systems, like AI or physics or GUI/HUD or cameras, or any number of other things. Or we implement gameplay stuff using all of the above systems (that's what I do, yay me!) :D

      For some reason though, the graphics programming aspect has glamour. Maybe it's just the easiest one to see a result from, I dunno. But whatever the reason is, you can virtually guarantee that unless you're a really outstanding graphics programmer, you'll be doing something else a most of the time.

      And if the op is doing this solely as a hobby project, I'd offer my opinion that working on some of these other areas of a game is more accessible, and more fun, than doing graphics stuff. Just writing graphics code won't really result in a playable game, whereas writing some basic AI gets you into the realm of simple games of many kinds. But at the end of the day, if he or she ss asking for a graphics engine, I guess graphics isn't really what they want to work on :)

    6. Re:skillset by datawhore · · Score: 3, Funny

      Ahh slashdot.

      Caveman: "I'm hungry. I want to hunt for some small rodents. I'm not very fast or strong and I really would like some food now. Know where I can find where some hide?"

      Cavedot: "Oh, you don't want to do that. What you reall want to do is catch a wooly mammoth, you'll appreciate the meat so much more, and you'll learn how to take down an 8 ton beast in the process.. what could be cooler than that? What you should do is go over there and lift those rocks until you get strong enough, then go find a large branch and make a set of spears yourself, then go roam the tundra for 20 days until you see a mammoth. It's easy."

      Caveman: "..."

  3. Crystal Space 3D by The+Snowman · · Score: 3, Informative

    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!
  4. Ogre 3d by Andyman1134 · · Score: 5, Informative

    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.)

    1. Re:Ogre 3d by Anonymous Coward · · Score: 5, Informative

      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.

    2. Re:Ogre 3d by kunzy · · Score: 3, Informative

      Ogre has nice Python bindings, which makes it well suited for beginners. See here: http://www.ogre3d.org/wiki/index.php/PyOgre. Also it's lgpl, which makes it very free to use.

  5. Blender by WWWWolf · · Score: 3, Informative

    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.

  6. Ogre and friends by Anonymous Coward · · Score: 4, Insightful

    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?

  7. Pick two... by NevarMore · · Score: 3, Insightful

    Simple, Open Source, 3D Game Engine

    You get any two.

  8. Torque by Beowulf_Boy · · Score: 5, Informative

    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.

  9. Game coding is not for beginners by NekoXP · · Score: 3, Informative

    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 :)

  10. Quake engines by layernheart · · Score: 5, Informative

    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.

  11. Mod mod mod by sd.fhasldff · · Score: 5, Insightful

    "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!

  12. Irrlicht by game_dev · · Score: 3, Informative

    You should try Irrlicht: [ http://irrlicht.sourceforge.net/ ]

    It's relativily easy and yet versatile and powerfull

  13. A bit of a contradiction by Yst · · Score: 5, Insightful

    "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)
    1. Re:A bit of a contradiction by Jack9 · · Score: 3, Insightful

      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.


      There's nothing out of the ordinary about a person admitting that they are not very familiar with how to properly implement a very complicated system. Looking for a packaged suite is quite typical.

      While you may be competent enough to write an inventory control system, that doesn't mean you are confident or even interested in discovering, coding, and implmenting the features that stock managers would consider "basic"...especially with the wide variation from industry to industry (discovery!).

      This should help relieve your baffle.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
  14. Toruqe by BShive · · Score: 3, Informative

    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.

  15. Panda3D by rrwood · · Score: 3, Interesting

    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.

  16. Soya3D by bitspotter · · Score: 3, Informative

    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.