The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
Please vote in the Forum Structure Poll. Polling will close at 2PM EST on January 21, 2025.

Open-source game engine?

Shooter McgavinShooter Mcgavin Registered User regular
edited January 2008 in Games and Technology
I didn't really look to see if a thread already existed, but I doubt one does. Anyway, I'm basically looking to mess around with a free game engine in C++. I've used Actionscript 3.0 for a couple years, and I've spent the last month going over C++, and now I want to get my feet wet and learn along the way.

I've looked at Ogre3D, but from what I could tell it's just a graphics engine, not a game engine. What I would like to do is play around with a 3D game engine, that is free/open source. I know this isn't exactly the forum to go to for this kind of stuff, but I figured hey, my PA guys tend to be reliable and have a wealth of knowledge covering just about anything!

banner.gif
Shooter Mcgavin on

Posts

  • amateurhouramateurhour One day I'll be professionalhour The woods somewhere in TennesseeRegistered User regular
    edited January 2008
    I didn't really look to see if a thread already existed, but I doubt one does. Anyway, I'm basically looking to mess around with a free game engine in C++. I've used Actionscript 3.0 for a couple years, and I've spent the last month going over C++, and now I want to get my feet wet and learn along the way.

    I've looked at Ogre3D, but from what I could tell it's just a graphics engine, not a game engine. What I would like to do is play around with a 3D game engine, that is free/open source. I know this isn't exactly the forum to go to for this kind of stuff, but I figured hey, my PA guys tend to be reliable and have a wealth of knowledge covering just about anything!

    The quake 3 arena engine is free now. That would be the best place to start imo. Also, isn't the first half life engine free now? (I forget what it's called)

    amateurhour on
    are YOU on the beer list?
  • Shooter McgavinShooter Mcgavin Registered User regular
    edited January 2008
    Ooooh, Quake 3 sounds fun. I'll definitely check that one out. I forgot all about that :)

    Shooter Mcgavin on
    banner.gif
  • Sir CarcassSir Carcass I have been shown the end of my world Round Rock, TXRegistered User regular
    edited January 2008
    http://en.wikipedia.org/wiki/Microsoft_XNA

    It actually uses C#, but it's close enough.

    Sir Carcass on
  • BuchwaldBuchwald Registered User regular
    edited January 2008
    can't you just use the Source SDK?

    Buchwald on
    "That theory is just the looniest of a whole bunch of complete nonsense that is spouted by Amanda Winn Lee and her cohorts in the Audio Commentary."
  • HandkorHandkor Registered User regular
    edited January 2008
    http://en.wikipedia.org/wiki/Microsoft_XNA

    It actually uses C#, but it's close enough.

    It's not really a game engine though but more a wrapper on DirectX. You still have to make everything. But there are some good samples that can be built upon though.

    Handkor on
  • DoctorArchDoctorArch Curmudgeon Registered User regular
    edited January 2008
    Buchwald wrote: »
    can't you just use the Source SDK?

    Ditto, I thought Valve let anybody use their source code (pun not intended) free as long as you don't charge for it, and if you decide to do so, they're tremendously supportive.

    DoctorArch on
    Switch Friend Code: SW-6732-9515-9697
  • agoajagoaj Top Tier One FearRegistered User regular
    edited January 2008
    Archgarth wrote: »
    Buchwald wrote: »
    can't you just use the Source SDK?

    Ditto, I thought Valve let anybody use their source code (pun not intended) free as long as you don't charge for it, and if you decide to do so, they're tremendously supportive.

    You have very limited access. It was a big deal when Garry of Garrysmod got access to the source source for GMOD 10.

    agoaj on
    ujav5b9gwj1s.png
  • templewulftemplewulf The Team Chump USARegistered User regular
    edited January 2008
    I haven't seen it in at least a year, but I would say that the actual code in Source is unpleasant to work worth. On the other hand, I've never seen a professional architecture or engine that was as tidy as stuff in std::anything.

    Are you new to C++ Shooter? If so, I'd go with C# or Python. Otherwise, C++ has IrrLicht and Crystal Space. If you want to go Python, Blender has an integrated game engine.

    templewulf on
    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • JaninJanin Registered User regular
    edited January 2008
    Quake3, Irrlicht, or Crystal space are the only engines I'm aware of that have actual games built on them.

    Janin on
    [SIGPIC][/SIGPIC]
  • IShallRiseAgainIShallRiseAgain Registered User regular
    edited January 2008
    Seriously just use XNA. it removes almost all the painful stuff involved with rendering models, so you can make games pretty easily.

    IShallRiseAgain on
    Alador239.png
  • xzzyxzzy Registered User regular
    edited January 2008
    I saw this recently on Slashdot:

    http://www.linux-gamers.net/smartsection.item.81/comparison-of-free-software-shooters.html

    The Sauerbraten engine looks extremely nice. I always liked Irrlicht as well.

    I think the advantage of using an engine that's designed to be hacked on, unlike the Quake engine which was never written to be distributed, is that the documentation will be better, the communities tend to be more helpful, and you have a better shot of getting the damn thing to actually compile.

    If prototyping is all you're interested in, there are some decent flash, perl and python 3d engines floating around as well.

    xzzy on
  • Shooter McgavinShooter Mcgavin Registered User regular
    edited January 2008
    Well, I'm mainly looking to create a fully commercial 3D game. I'm not looking to create the next Halo or Gears or anything. I don't really even have an idea of what I want to do yet. All I know is:

    A) I want to get my hands dirty with 3D
    B) I want to use C++

    From what it looks like, I think I'm going to have to use either ioquake3 (a community managed version of the quake 3 source), Irrlicht, or Ogre3D.

    Feel free to discuss my reasonings for doing so. Why C++? Because 99% of all commercial games use it, and I want to have that skill set. Why commercial? Well, mainly because I want to do this for a living. That's an ultimate goal, but right now, even something to put in my portfolio would be nice.

    I'm not very experienced in C++. I have a friend who is, but I don't get the chance to talk to him much lately. I'm fairly well versed in OOP principals I believe, so that isn't a stumbling block for me. Most of my experience is in Actionscript 3.0.

    Shooter Mcgavin on
    banner.gif
  • zanetheinsanezanetheinsane Registered User regular
    edited January 2008
    Another place to scour through: http://en.wikipedia.org/wiki/List_of_game_engines

    Also, if you like Ogre3D there's always someone making a game engine (they never seem to go anywhere). EGE might come to fruition sometime, which could be something you'd be interested in.

    EDIT: Sorry forgot to add in the Ogre3d forum thread: http://www.ogre3d.org/phpBB2/viewtopic.php?t=37437

    zanetheinsane on
  • SilvoculousSilvoculous Registered User regular
    edited January 2008
    The full source code is available for the first two Quake games.

    Silvoculous on
  • halkunhalkun Registered User regular
    edited January 2008
    CrystalSpace is all in C++, witch a very expansive plug-in system.

    I'm a little confused... If you use an Open Source engine like CS and modify it, you are going to need to release the source code when you sell the game commercially.

    It also looks like you want an engine where you can drop in levels, 3D objects, and other bits of functionality out of the box. That's going to be much harder to do. The closer you are to the engine code, the less "nice things" you are going to gave to make it work out of the box.

    Give us a rundown: Why are these unacceptable to you...

    1) Quake3
    2) CrystalSpace
    3) Orgre3D
    4) Irrlicht
    5) Torque Game Engine (TGE)

    halkun on
  • evilmrhenryevilmrhenry Registered User regular
    edited January 2008
    Well, I'm mainly looking to create a fully commercial 3D game. I'm not looking to create the next Halo or Gears or anything. I don't really even have an idea of what I want to do yet. All I know is:

    A) I want to get my hands dirty with 3D
    B) I want to use C++

    From what it looks like, I think I'm going to have to use either ioquake3 (a community managed version of the quake 3 source), Irrlicht, or Ogre3D.

    Feel free to discuss my reasonings for doing so. Why C++? Because 99% of all commercial games use it, and I want to have that skill set. Why commercial? Well, mainly because I want to do this for a living. That's an ultimate goal, but right now, even something to put in my portfolio would be nice.

    I'm not very experienced in C++. I have a friend who is, but I don't get the chance to talk to him much lately. I'm fairly well versed in OOP principals I believe, so that isn't a stumbling block for me. Most of my experience is in Actionscript 3.0.

    For a fully commercial game, you can't use GPLed tech.
    http://www.idsoftware.com/business/technology/techlicense.php
    For $10,000, you can get a non-GPL version of the Quake 2 engine (that doesn't include the adjustments/improvements made by the community after GPLing.) Quake 3 is $250,000.

    Torque is $150, on the other hand. Haven't used it, but if you want commercial, that seems the best bet.

    evilmrhenry on
  • xzzyxzzy Registered User regular
    edited January 2008
    For a fully commercial game, you can't use GPLed tech.
    http://www.idsoftware.com/business/technology/techlicense.php

    Not with id software you can't.. you can make money off other GPL software however, as long as you distribute source.

    xzzy on
  • ZetxZetx 🐧 Registered User regular
    edited January 2008
    You could try the Cube engine. Haven't used it myself, so I can't really say much about it. Though the game it comes with is fun :P

    Zetx on
  • xzzyxzzy Registered User regular
    edited January 2008
    Zetx wrote: »
    You could try the Cube engine. Haven't used it myself, so I can't really say much about it. Though the game it comes with is fun :P

    Sauerbraten is basically Cube 2.

    xzzy on
  • ZetxZetx 🐧 Registered User regular
    edited January 2008
    xzzy wrote: »
    Zetx wrote: »
    You could try the Cube engine. Haven't used it myself, so I can't really say much about it. Though the game it comes with is fun :P

    Sauerbraten is basically Cube 2.

    Right. Sorry, I only skimmed the replies. >_>

    Zetx on
  • templewulftemplewulf The Team Chump USARegistered User regular
    edited January 2008
    Why C++? Because 99% of all commercial games use it, and I want to have that skill set.
    That sounds like a good reason at first, but it's really not. You have to think of programming in general as a craft, like carpentry. Programming isn't C++ in the same way that carpentry isn't a hammer. Learn how to program in general, then learning a new language will be much easier, like learning how carpentry works makes it easier to understand how to use a new power-drill.

    I still recommend C#/XNA or Python/PyGame; but this is without knowing how ready you are for C++. You might well be ready to tackle a project like this, but I'm assuming you're new to programming in general as well as C++.

    www.gamedev.net is a great site for learning game programming in whichever language you choose. The articles are getting a bit old, but most of them are relevant, and the forums are full of industry vets.

    templewulf on
    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Sir CarcassSir Carcass I have been shown the end of my world Round Rock, TXRegistered User regular
    edited January 2008
    I will say that unless you're writing a text game of some sort, learning C++ while writing a game is probably a bad idea. The great thing about XNA is it allows you to forget about a lot of the boring bits of game programming and get right to creating content.

    And I really, really recommend your first project be something simple like a 2D Pacman game or a Tetris clone.

    Sir Carcass on
  • xzzyxzzy Registered User regular
    edited January 2008
    Except XNA locks you into using Microsoft operating systems, and you can't sell the game. Apparently your game isn't even allowed to connect to a network without their say so (ie, you pay them a bucketload of cash).

    xzzy on
  • Shooter McgavinShooter Mcgavin Registered User regular
    edited January 2008
    templewulf wrote: »
    Why C++? Because 99% of all commercial games use it, and I want to have that skill set.
    That sounds like a good reason at first, but it's really not. You have to think of programming in general as a craft, like carpentry. Programming isn't C++ in the same way that carpentry isn't a hammer. Learn how to program in general, then learning a new language will be much easier, like learning how carpentry works makes it easier to understand how to use a new power-drill.

    I still recommend C#/XNA or Python/PyGame; but this is without knowing how ready you are for C++. You might well be ready to tackle a project like this, but I'm assuming you're new to programming in general as well as C++.

    www.gamedev.net is a great site for learning game programming in whichever language you choose. The articles are getting a bit old, but most of them are relevant, and the forums are full of industry vets.

    I would consider my self pretty experienced in programming. Like I've said, it's been mostly Actionscript 3.0, but that is OO, and I would say the main difference between that and something like C++ would be that you don't have to manage memory, although the closest thing to AS would probably be Java/C#. Maybe I'll go that route...XNA does seem to have a lot of the tools I need, such as the content pipeline.

    EDIT: D'oh, just read the part about not selling your game with XNA. Is this a definite fact? If so, my search continues.

    Shooter Mcgavin on
    banner.gif
  • HandkorHandkor Registered User regular
    edited January 2008
    templewulf wrote: »
    Why C++? Because 99% of all commercial games use it, and I want to have that skill set.
    That sounds like a good reason at first, but it's really not. You have to think of programming in general as a craft, like carpentry. Programming isn't C++ in the same way that carpentry isn't a hammer. Learn how to program in general, then learning a new language will be much easier, like learning how carpentry works makes it easier to understand how to use a new power-drill.

    I still recommend C#/XNA or Python/PyGame; but this is without knowing how ready you are for C++. You might well be ready to tackle a project like this, but I'm assuming you're new to programming in general as well as C++.

    www.gamedev.net is a great site for learning game programming in whichever language you choose. The articles are getting a bit old, but most of them are relevant, and the forums are full of industry vets.

    I would consider my self pretty experienced in programming. Like I've said, it's been mostly Actionscript 3.0, but that is OO, and I would say the main difference between that and something like C++ would be that you don't have to manage memory, although the closest thing to AS would probably be Java/C#. Maybe I'll go that route...XNA does seem to have a lot of the tools I need, such as the content pipeline.

    EDIT: D'oh, just read the part about not selling your game with XNA. Is this a definite fact? If so, my search continues.

    For XNA

    On PC you are free to sell your game without restrictions other than the networking.
    Wiki wrote:
    Software License Terms and Distribution Restrictions
    Licening terms specifically prohibits the distribution of any networked videogame in any platform: "Commercial Networked Programs. In the absence of a specific agreement signed by both you and Microsoft which specifically grants you the rights to develop commercial programs that connect to any network, including Xbox Live and/or Games for Windows Live, you may not use the software to develop commercial programs that connect to any network, including Xbox Live and/or Games for Windows Live." In addition, you may not distribute games outside of the windows platform: "Distribution Restrictions:you may not...distribute Distributable Code to run on a platform other than the Windows platform"

    Whatever you decide to do I suggest to start small and learn the basics. You are looking for an engine though and not an API, XNA is just an API like C++/DirectX. You still need to create the game engine.

    Look up the examples people listed previously for free code sample and demos of the engine.

    One last tip: unless you absolutley want to make money think about doing free games using whatever tools that the liscence allows you to freely distribute your stuff. Once you have a good grasp of what you need to do to complete a project buy a liscence to an engine or port to C++ and make a commercial game.

    Handkor on
  • xzzyxzzy Registered User regular
    edited January 2008
    Handkor wrote: »
    One last tip: unless you absolutley want to make money think about doing free games using whatever tools that the liscence allows you to freely distribute your stuff. Once you have a good grasp of what you need to do to complete a project buy a liscence to an engine or port to C++ and make a commercial game.

    One nice feature of Irrlicht is that it supports loading Quake BSP files, which means in theory you could develop your content in Irrlicht and if you end up with something you think is marketable.. you could license the Quake engine and (in theory) be able to load it right away.

    Obviously you'd have to program the game but they say content is the biggest investment anyways. ;)

    All this ignores that Irrlicht lets you sell your game and you don't have to distribute source (it's under the zlib license).

    xzzy on
  • Sir CarcassSir Carcass I have been shown the end of my world Round Rock, TXRegistered User regular
    edited January 2008
    Handkor wrote: »
    One last tip: unless you absolutley want to make money think about doing free games using whatever tools that the liscence allows you to freely distribute your stuff. Once you have a good grasp of what you need to do to complete a project buy a liscence to an engine or port to C++ and make a commercial game.

    Hence my suggestion to start small. If you start out trying to make a full-fledged commercial game, unless you have several people working with you, you'll most likely quit somewhere in the middle. Start with small, free games and learn from feedback from those.

    Sir Carcass on
  • Shooter McgavinShooter Mcgavin Registered User regular
    edited January 2008
    The more complex Flash games that I've made have averaged around 1000-1500 lines of code. From start to finish (including graphics. good graphics, not "programmer" graphics), I average between 40-50 hours per game, and this is after I'm already familiar with the language. How big of a step up are we talking about here in terms of time-commitment would you guys think? I'm aware Flash games are simple compared to commercial games (even simple commercial games).

    Shooter Mcgavin on
    banner.gif
  • templewulftemplewulf The Team Chump USARegistered User regular
    edited January 2008
    The more complex Flash games that I've made have averaged around 1000-1500 lines of code. From start to finish (including graphics. good graphics, not "programmer" graphics), I average between 40-50 hours per game, and this is after I'm already familiar with the language. How big of a step up are we talking about here in terms of time-commitment would you guys think? I'm aware Flash games are simple compared to commercial games (even simple commercial games).
    1500 lines is hilariously small by C++ standards. I don't want to be "that guy" that pisses in your cheerios, but it's tremendously harder. If you think you're ready, I support you 100%, but I'm mostly trying to save you the certain headaches if you're not ready.

    templewulf on
    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Shooter McgavinShooter Mcgavin Registered User regular
    edited January 2008
    templewulf wrote: »
    The more complex Flash games that I've made have averaged around 1000-1500 lines of code. From start to finish (including graphics. good graphics, not "programmer" graphics), I average between 40-50 hours per game, and this is after I'm already familiar with the language. How big of a step up are we talking about here in terms of time-commitment would you guys think? I'm aware Flash games are simple compared to commercial games (even simple commercial games).
    1500 lines is hilariously small by C++ standards. I don't want to be "that guy" that pisses in your cheerios, but it's tremendously harder. If you think you're ready, I support you 100%, but I'm mostly trying to save you the certain headaches if you're not ready.

    Yeah I know, I've heard C++ games are in the 80,000 range, probably more...but that's kinda why I was wanting to go for an engine, so I could avoid a lot of that and just jump into it, you know?

    Shooter Mcgavin on
    banner.gif
  • xzzyxzzy Registered User regular
    edited January 2008
    Any scripting language will have fewer lines of code.. because you don't have to manage memory allocation and cleanup. Bytecode compiled languages will be the same (java, flash).

    C programs, and its descendants, will result in pages of code for relatively simple tasks.

    xzzy on
  • DocDoc Registered User, ClubPA regular
    edited January 2008
    I'm working on a game with Ogre and PhysX. Not sure if we'll switch to a new engine eventually.

    Doc on
  • peterdevorepeterdevore Registered User regular
    edited January 2008
    DevMaster.net has a nice database of 3D engines that you can browse by language, price and other features.

    I applaud you for not being a weener(like me) and wanting to use C++ to program your game in, but it does have its pitfalls. Quake 3 is one the few (only, outside of the other id engines?) complete, serious C++ games that is open source. Making a cool game to put in your portfolio out of it by yourself is pretty challenging, but I guess it's great to learn how real games look inside.

    If you just want to make a small 3D game by yourself, look around and see that those are actually really rare. To get anything beyond basic graphics requires a tremendous amount of art effort, and to get that to run smoothly requires another tremendous amount of programming effort. Even if a good engine cuts out the latter, you're still stuck with the former, so I'll suggest an unconventional idea to you:

    Try and learn to make your game engine from the ground up, built for a specific gameplay idea you polish the shit out of. Do not set the bar too high on graphics. Most single developer 3D games use unconventional/abstract art to cut down on the requirements of making a fast engine or complex art. This does not mean you cannot pull fancy stuff down the line, like shaders, animation or networking (and you should, to show your understanding), you just have to plan in advance and acknowledge you can only do so much by yourself.

    The problem with making a game by yourself is that there are so many skills you need in order to make a good game. In order to still impress, you have to know what it is you are good at, and leverage the fuck out of it. Make every other part of the game second to the part that makes it fun, and make sure that it's the same part as the one you are good at making.

    The tried formula here is: get together with some other people and collaborate, finishing a 3D game as a team is a lot easier, and the people skills look good on your CV next to a finished game. Mods are another great way to get accustomed to game engines, knowing the nuts and bolts is a plus, but knowing how to work with engines in general like that can also get you good jobs.

    peterdevore on
  • templewulftemplewulf The Team Chump USARegistered User regular
    edited January 2008
    templewulf wrote: »
    The more complex Flash games that I've made have averaged around 1000-1500 lines of code. From start to finish (including graphics. good graphics, not "programmer" graphics), I average between 40-50 hours per game, and this is after I'm already familiar with the language. How big of a step up are we talking about here in terms of time-commitment would you guys think? I'm aware Flash games are simple compared to commercial games (even simple commercial games).
    1500 lines is hilariously small by C++ standards. I don't want to be "that guy" that pisses in your cheerios, but it's tremendously harder. If you think you're ready, I support you 100%, but I'm mostly trying to save you the certain headaches if you're not ready.

    Yeah I know, I've heard C++ games are in the 80,000 range, probably more...but that's kinda why I was wanting to go for an engine, so I could avoid a lot of that and just jump into it, you know?
    To segue from my earlier tool analogy, C++ is like a nuclear powered submarine when you might only need a rowboat. It's cramped, uncomfortable, and full of horny guys in the dark that aren't getting any, but it will tear shit up if you know how to work it. On the other hand, just get in the goddamn rowboat. :lol:

    If you've still got the resolve for C++ (and $150), Torque is supposed to be pretty good. I used IrrLicht, since it had built-in collision detection, and it was okay. It seems geared toward Quake-like shooters, but you can rearrange it to do anything.

    templewulf on
    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • xzzyxzzy Registered User regular
    edited January 2008
    I applaud you for not being a weener(like me) and wanting to use C++ to program your game in,

    I'm a confirmed weener, and have been keeping an eye on this project:

    http://www.pysoy.org/

    It's a fork of another (poorly maintained) python engine and I'm hoping they'll have a 1.0 release on schedule. I'm too lazy to do garbage collection, which makes me a huge fan of scripting languages.

    edit - I'm a bit of a perl fanboy too, and once wrote a sprite based "engine" using perl and an SDL binding. I even had a network layer working! Got distracted though and it's sat around doing nothing for a couple years now.

    xzzy on
  • Recoil42Recoil42 Registered User regular
    edited January 2008
    If you're already familiar with AS3, you might jut want to try messing around a bit with Collada and Papervision3D:

    http://blog.papervision3d.org/

    It is technically just a 3d engine, but at that point, it's already really fully featured, and then there are a number of libraries already out there for physics, animation, etc. that basically turn it into a full fledged game engine.

    Recoil42 on
Sign In or Register to comment.