Game Engine or not?

Started by
102 comments, last by JosephParrilla 12 years, 11 months ago

Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
Never, ever stop learning.
- Me
Advertisement

[quote name='Serapth' timestamp='1305388062' post='4810708']
Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
[/quote]

No, you dont HAVE to use an engine and in some cases a viable engine may simply not be available for the type of game you are trying to create. That said, even in a 2D Diablo clone you could do just as well piecemealing various libraries together. All situations are different. You can use tile based engines, or you can roll your own. A 2D tile based game is going to be substantially less work than a full blown 3D game engine, but it is still a lot of work. You will have to create the tiling system, a level editor or an importer from an existing editor, collision detection, AI/pathing, sound, lighting, etc... It's less work, but still a lot of work.

[quote name='joeparrilla' timestamp='1305391979' post='4810738']
[quote name='Serapth' timestamp='1305388062' post='4810708']
Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
[/quote]

No, you dont HAVE to use an engine and in some cases a viable engine may simply not be available for the type of game you are trying to create. That said, even in a 2D Diablo clone you could do just as well piecemealing various libraries together. All situations are different. You can use tile based engines, or you can roll your own. A 2D tile based game is going to be substantially less work than a full blown 3D game engine, but it is still a lot of work. You will have to create the tiling system, a level editor or an importer from an existing editor, collision detection, AI/pathing, sound, lighting, etc... It's less work, but still a lot of work.
[/quote]

So an engine would do ALL of those things for me, including collision detection and AI? Or does it depend on the complexity of the engine?

Well Im starting to see why an engine would be a good idea, so what are some of the most general purpose engines that really dont get in the way of the programmer? I want something that allows me to actually create something in a reasonable amount of time(I dont want to work one one project for years), but also doesnt do too much for me. I do have a very solid programming background, so I feel like I am capable of implementing certain things pretty well, and I would like to be able to use my skills in my game, not just have the engine do everything.
Never, ever stop learning.
- Me

[quote name='Serapth' timestamp='1305392486' post='4810742']
[quote name='joeparrilla' timestamp='1305391979' post='4810738']
[quote name='Serapth' timestamp='1305388062' post='4810708']
Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
[/quote]

No, you dont HAVE to use an engine and in some cases a viable engine may simply not be available for the type of game you are trying to create. That said, even in a 2D Diablo clone you could do just as well piecemealing various libraries together. All situations are different. You can use tile based engines, or you can roll your own. A 2D tile based game is going to be substantially less work than a full blown 3D game engine, but it is still a lot of work. You will have to create the tiling system, a level editor or an importer from an existing editor, collision detection, AI/pathing, sound, lighting, etc... It's less work, but still a lot of work.
[/quote]

So an engine would do ALL of those things for me, including collision detection and AI? Or does it depend on the complexity of the engine?

Well Im starting to see why an engine would be a good idea, so what are some of the most general purpose engines that really dont get in the way of the programmer? I want something that allows me to actually create something in a reasonable amount of time(I dont want to work one one project for years), but also doesnt do too much for me. I do have a very solid programming background, so I feel like I am capable of implementing certain things pretty well, and I would like to be able to use my skills in my game, not just have the engine do everything.
[/quote]

It really depends on the engine, but in many cases yes. If they don't do them completely, they make them a hell of a lot easier. As to recommending an Engine to you, you need to answer some questions. 2D/3D? What platforms are you targeting ( Windows, Mac, Linux, iOS, Android? ), what Language do you want to work in? Whats your budget? Going to sell it commercially? What tools are you going to use for graphic creation?

If you are making your game art in a 3D application like 3D Studio Max or Blender, I would give Unity a try. It may be overkill, but it is a full featured engine that is pretty accessible and is free for non-profit work. Check out this sample http://unity3d.com/support/resources/tutorials/2d-gameplay-tutorial and see if it looks like a good fit.

If Unity doesn't fit your fancy or you want to stay pure 2D, there are literally hundreds of other options and probably hundreds of threads on this forum specifically about 2D engines.

[quote name='joeparrilla' timestamp='1305394976' post='4810772']
[quote name='Serapth' timestamp='1305392486' post='4810742']
[quote name='joeparrilla' timestamp='1305391979' post='4810738']
[quote name='Serapth' timestamp='1305388062' post='4810708']
Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
[/quote]

No, you dont HAVE to use an engine and in some cases a viable engine may simply not be available for the type of game you are trying to create. That said, even in a 2D Diablo clone you could do just as well piecemealing various libraries together. All situations are different. You can use tile based engines, or you can roll your own. A 2D tile based game is going to be substantially less work than a full blown 3D game engine, but it is still a lot of work. You will have to create the tiling system, a level editor or an importer from an existing editor, collision detection, AI/pathing, sound, lighting, etc... It's less work, but still a lot of work.
[/quote]

So an engine would do ALL of those things for me, including collision detection and AI? Or does it depend on the complexity of the engine?

Well Im starting to see why an engine would be a good idea, so what are some of the most general purpose engines that really dont get in the way of the programmer? I want something that allows me to actually create something in a reasonable amount of time(I dont want to work one one project for years), but also doesnt do too much for me. I do have a very solid programming background, so I feel like I am capable of implementing certain things pretty well, and I would like to be able to use my skills in my game, not just have the engine do everything.
[/quote]

It really depends on the engine, but in many cases yes. If they don't do them completely, they make them a hell of a lot easier. As to recommending an Engine to you, you need to answer some questions. 2D/3D? What platforms are you targeting ( Windows, Mac, Linux, iOS, Android? ), what Language do you want to work in? Whats your budget? Going to sell it commercially? What tools are you going to use for graphic creation?

If you are making your game art in a 3D application like 3D Studio Max or Blender, I would give Unity a try. It may be overkill, but it is a full featured engine that is pretty accessible and is free for non-profit work. Check out this sample http://unity3d.com/s...meplay-tutorial and see if it looks like a good fit.

If Unity doesn't fit your fancy or you want to stay pure 2D, there are literally hundreds of other options and probably hundreds of threads on this forum specifically about 2D engines.
[/quote]

Well right now I wanna stick with 2d, and then move onto isometric 2d (diablo like). My main interests are action rpgs, strategy games, etc. Im sure I will want to go to 3D eventually, but not yet. I really prefer not to learn a new language, Im most comfortable with C/C++ or Java. I used java for game programming before, but decided to try to move to C++, which is why I thought SDL/OpenGL was the way to go. Some what are some 2D engines for C++ that really allow a programmer to get into the source code and do what he wants. To me, the ideal engine would do what it is supposed to do, but allow you to get into the source code for the engine and change things as you need to. Does anything like this exist. That seems like it would be the best fit for me. For example if the engine had a tiling system that I liked, but I wanted to tweak it, I would want to be able to get into the actual code for how it deals with tiling and change it to fit my needs. So basically an editable engine.
Never, ever stop learning.
- Me

[quote name='Serapth' timestamp='1305395613' post='4810777']
[quote name='joeparrilla' timestamp='1305394976' post='4810772']
[quote name='Serapth' timestamp='1305392486' post='4810742']
[quote name='joeparrilla' timestamp='1305391979' post='4810738']
[quote name='Serapth' timestamp='1305388062' post='4810708']
Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
[/quote]

No, you dont HAVE to use an engine and in some cases a viable engine may simply not be available for the type of game you are trying to create. That said, even in a 2D Diablo clone you could do just as well piecemealing various libraries together. All situations are different. You can use tile based engines, or you can roll your own. A 2D tile based game is going to be substantially less work than a full blown 3D game engine, but it is still a lot of work. You will have to create the tiling system, a level editor or an importer from an existing editor, collision detection, AI/pathing, sound, lighting, etc... It's less work, but still a lot of work.
[/quote]

So an engine would do ALL of those things for me, including collision detection and AI? Or does it depend on the complexity of the engine?

Well Im starting to see why an engine would be a good idea, so what are some of the most general purpose engines that really dont get in the way of the programmer? I want something that allows me to actually create something in a reasonable amount of time(I dont want to work one one project for years), but also doesnt do too much for me. I do have a very solid programming background, so I feel like I am capable of implementing certain things pretty well, and I would like to be able to use my skills in my game, not just have the engine do everything.
[/quote]

It really depends on the engine, but in many cases yes. If they don't do them completely, they make them a hell of a lot easier. As to recommending an Engine to you, you need to answer some questions. 2D/3D? What platforms are you targeting ( Windows, Mac, Linux, iOS, Android? ), what Language do you want to work in? Whats your budget? Going to sell it commercially? What tools are you going to use for graphic creation?

If you are making your game art in a 3D application like 3D Studio Max or Blender, I would give Unity a try. It may be overkill, but it is a full featured engine that is pretty accessible and is free for non-profit work. Check out this sample http://unity3d.com/s...meplay-tutorial and see if it looks like a good fit.

If Unity doesn't fit your fancy or you want to stay pure 2D, there are literally hundreds of other options and probably hundreds of threads on this forum specifically about 2D engines.
[/quote]

Well right now I wanna stick with 2d, and then move onto isometric 2d (diablo like). My main interests are action rpgs, strategy games, etc. Im sure I will want to go to 3D eventually, but not yet. I really prefer not to learn a new language, Im most comfortable with C/C++ or Java. I used java for game programming before, but decided to try to move to C++, which is why I thought SDL/OpenGL was the way to go. Some what are some 2D engines for C++ that really allow a programmer to get into the source code and do what he wants. To me, the ideal engine would do what it is supposed to do, but allow you to get into the source code for the engine and change things as you need to. Does anything like this exist. That seems like it would be the best fit for me. For example if the engine had a tiling system that I liked, but I wanted to tweak it, I would want to be able to get into the actual code for how it deals with tiling and change it to fit my needs. So basically an editable engine.
[/quote]

I've not had much experience lately in the 2D space so I am not really the one to make a recommendation ( now 3D engines... damn I've evaluated too many! ). But I would definetly take a look at Root's work. I only just looked at it, but for an open source game project, it seems to be coming along exceedingly well. If you were willing to spend money, I would consider Torque2D, it's scripting is C++ based and can link to C++ sources, tools seem very polished and has a good community. 99$ bucks though.

[quote name='joeparrilla' timestamp='1305396127' post='4810781']
[quote name='Serapth' timestamp='1305395613' post='4810777']
[quote name='joeparrilla' timestamp='1305394976' post='4810772']
[quote name='Serapth' timestamp='1305392486' post='4810742']
[quote name='joeparrilla' timestamp='1305391979' post='4810738']
[quote name='Serapth' timestamp='1305388062' post='4810708']
Pure hobbyist work I say it depends on what you want to get out of it. Learning is never a waste of time, and trying to write your one engine will ultimately give you a better perspective of how things work. Just don't expect to ever actually finish it, or for that matter, expect to spend as much or more time on your engine than your game. Again though, this experience is an invaluable one, so when you do use an engine down the road, you will have a better time understanding things and can probably better deal with one of those .1% issues that sneak through the cracks.

Creating a simple 2D game in something like XNA? This is one could go either way, but rolling your own is probably as efficient as learning someone else's engine.


Want to actually ship a product? Use an engine, end of story. Just look at something like OGRE 3d, which literally has 10s of thousands of man hours invested in it... and it's just a renderer. There are almost no valid economic arguments for rolling your own engine. Hell even when you look outside of Indy games, where licensing costs are in the 100K-1M range, it's still probably economical to buy off the shelf.


Well I dont exactly want to write my own engine. A long time goal of mine was to write a diablo-ish RPG. For something like this, is an engine necessary? I mean isnt it possible to create the tile maps and levels and all that with more of a game programming API such as SDL or Allegro? I mean, I know people make pretty awesome stuff with LWJGL and Java (Minecraft), and thats nothing more than a game api, its not a game engine.
[/quote]

No, you dont HAVE to use an engine and in some cases a viable engine may simply not be available for the type of game you are trying to create. That said, even in a 2D Diablo clone you could do just as well piecemealing various libraries together. All situations are different. You can use tile based engines, or you can roll your own. A 2D tile based game is going to be substantially less work than a full blown 3D game engine, but it is still a lot of work. You will have to create the tiling system, a level editor or an importer from an existing editor, collision detection, AI/pathing, sound, lighting, etc... It's less work, but still a lot of work.
[/quote]

So an engine would do ALL of those things for me, including collision detection and AI? Or does it depend on the complexity of the engine?

Well Im starting to see why an engine would be a good idea, so what are some of the most general purpose engines that really dont get in the way of the programmer? I want something that allows me to actually create something in a reasonable amount of time(I dont want to work one one project for years), but also doesnt do too much for me. I do have a very solid programming background, so I feel like I am capable of implementing certain things pretty well, and I would like to be able to use my skills in my game, not just have the engine do everything.
[/quote]

It really depends on the engine, but in many cases yes. If they don't do them completely, they make them a hell of a lot easier. As to recommending an Engine to you, you need to answer some questions. 2D/3D? What platforms are you targeting ( Windows, Mac, Linux, iOS, Android? ), what Language do you want to work in? Whats your budget? Going to sell it commercially? What tools are you going to use for graphic creation?

If you are making your game art in a 3D application like 3D Studio Max or Blender, I would give Unity a try. It may be overkill, but it is a full featured engine that is pretty accessible and is free for non-profit work. Check out this sample http://unity3d.com/s...meplay-tutorial and see if it looks like a good fit.

If Unity doesn't fit your fancy or you want to stay pure 2D, there are literally hundreds of other options and probably hundreds of threads on this forum specifically about 2D engines.
[/quote]

Well right now I wanna stick with 2d, and then move onto isometric 2d (diablo like). My main interests are action rpgs, strategy games, etc. Im sure I will want to go to 3D eventually, but not yet. I really prefer not to learn a new language, Im most comfortable with C/C++ or Java. I used java for game programming before, but decided to try to move to C++, which is why I thought SDL/OpenGL was the way to go. Some what are some 2D engines for C++ that really allow a programmer to get into the source code and do what he wants. To me, the ideal engine would do what it is supposed to do, but allow you to get into the source code for the engine and change things as you need to. Does anything like this exist. That seems like it would be the best fit for me. For example if the engine had a tiling system that I liked, but I wanted to tweak it, I would want to be able to get into the actual code for how it deals with tiling and change it to fit my needs. So basically an editable engine.
[/quote]

I've not had much experience lately in the 2D space so I am not really the one to make a recommendation ( now 3D engines... damn I've evaluated too many! ). But I would definetly take a look at Root's work. I only just looked at it, but for an open source game project, it seems to be coming along exceedingly well. If you were willing to spend money, I would consider Torque2D, it's scripting is C++ based and can link to C++ sources, tools seem very polished and has a good community. 99$ bucks though.
[/quote]


I know this is still in the lower level of API's, but what have you heard about SFML? It seems to be a more modern SDL that supports more features and uses more advanced graphic techniques (no blitting like SDL). Would something like SFML with C++ compare to XNA/C#? So many people seem to be using XNA these days, and its not an engine. Ive heard of people being quite productive with it, it seems to be sort of in between a game engine and a multimedia library. From what Ive understood it does alot more than something like SDL, but less than something like Ogre or Unity
Never, ever stop learning.
- Me
Not to start a language war, but a lot of XNA productivity can be ascribed to C#.

If I was working on a 2D game these days I would rather swallow razorblades than use C++.

Oh and no, no experience with it.

If I was working on a 2D game these days I would rather swallow razorblades than use C++.


It isn't just games that goes for - C++ is painful in most walks of programming.

Unless you are severely limited by platform (i.e. mobile/embedded platforms that only support C/C++), then you should at least be considering a different language.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Just spent the last hour learning SFML and I really like it. Its already cleaner than SDL, and the fact that its object oriented makes it much better in my opinion. I think Im gonna do some simple projects with it and see what happens.

And about avoiding C++, I really disagree. I spend a lot of time learning C++ and I really love using it. I switch back and forth with Java, but I really dont find that C++ causes me problems. HAving memory issues and all that is something you learn to deal with, and the C++ classes I have taken really taught us how to use the language properly. If you know your pointers well, its not an issue. I do agree that if your an artist, designer, etc just wanting to make a game, C++ is probably a bad choice. But if you are a programmer who already has a lot of non-game related programming experience, I dont see C++ being a problem
Never, ever stop learning.
- Me

This topic is closed to new replies.

Advertisement