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.
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!
Shooter Mcgavin on
0
Posts
amateurhourOne day I'll be professionalhourThe woods somewhere in TennesseeRegistered Userregular
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)
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.
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.
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.
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.
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.
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 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.
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.
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...
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 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.
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.
Sir CarcassI have been shown the end of my worldRound Rock, TXRegistered Userregular
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.
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).
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.
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.
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.
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
0
Sir CarcassI have been shown the end of my worldRound Rock, TXRegistered Userregular
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.
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).
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.
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?
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.
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.
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.
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.
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.
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.
Posts
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)
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.
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.
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.
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.
A) I want to get my hands dirty with 3D
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.
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
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)
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.
Not with id software you can't.. you can make money off other GPL software however, as long as you distribute source.
Sauerbraten is basically Cube 2.
Right. Sorry, I only skimmed the replies. >_>
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.
And I really, really recommend your first project be something simple like a 2D Pacman game or a Tetris clone.
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.
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.
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).
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.
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?
C programs, and its descendants, will result in pages of code for relatively simple tasks.
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.
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.
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.
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.
I'M A TWITTER SHITTER