Sign in to follow this  
bludshot

What engine/language/platform to use?

Recommended Posts

I'm thinking about making a 3D game, but I don't know what a reasonable path to take is. Generally speaking, the genre of my game would be minecraft-esque, with building and multiplayer.

I could just start coding in Java and start building my game from scratch, and go from there, but, to be honest I don't know what people do, how people make games these days? I don't want to start it that way and then find out 1000 man hours later that it was a ridiculous or unsuitable way of doing it.

Should I be using an engine such as Unity, Crytek or Unreal, or should I be just coding the game myself? And if I do code the game myself, should I use some sort of framework (I don't even know what those would be but I'm guessing they exist), or just code it from scratch?

Also, what language should I use? Or more specifically, what are the reasonable choices? Is it just Java or C++ or what?

And what about cross platform? What languages/engines/platforms work on what devices? For example if I went with C# would that mean my game can only ever work on a windows PC and Xbox 360?

What if I wanted to make a game that would work on windows, mac, ipad, and xbox marketplace?


If there are already good threads or pages about these kinds of questions please link me [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] I find it difficult to google this topic because of the broadness or complexity of my question :|


Thanks, and sorry for the noobishness.

Share this post


Link to post
Share on other sites
Personally I go with Ogre, but I know c++ and Blender and am on Linux. For you, I'd recommend to have a look at Unity and UDK. And hey, without lots of time....forget about it. This should also go into a FAQ section....

Share this post


Link to post
Share on other sites
[quote name='mike4' timestamp='1340950801' post='4953845']
Personally I go with Ogre, but I know c++ and Blender and am on Linux. For you, I'd recommend to have a look at Unity and UDK. And hey, without lots of time....forget about it. This should also go into a FAQ section....
[/quote]

I'm not sure unity is that well suited for a minecraft clone, you'd most likely benefit quite a bit by writing your own voxel renderer for such a project.

As for C# it will work on Linux and OS X aswell as long as you don't use XNA(or one of the DX wrappers), (there is an XNA port called monogame in development aswell but i don't think its quite there yet). C#+OpenTK work really well for cross platform development (atleast on desktop pcs).

If you are going to target a wide variety of platforms you really want to make sure you keep as much of your game logic separate as possible since you might have to replace/rewrite other parts of the game. (You cannot target the xbox360 as an indie without using XNA and you cannot target the ipad using XNA, you can however use C# for both platforms and just swap out the rendering/sound/input libraries.)

Share this post


Link to post
Share on other sites
I have never seen a project failing because of the wrong language/api/framework was chosen. Software projects fail because the people working on it fail.
So stop worrying about languages, just pick one (possibly the one you feel more comfortable with) and start working... you are the bottleneck, always.

Share this post


Link to post
Share on other sites
Ever heard of the Blender Game Engine?

I have a series of video tutorials that cover the basics: http://www.gamedev.net/topic/625003-video-tutorials-blender-game-engine/

That said: a Minecraft clone is not exactly a trivial project, especially if you're not an experienced game developer - You might want to try a more realistic project.

Share this post


Link to post
Share on other sites
Ok, well I have read what you guys all said, but I find I'm still fairly lost.

I'm pretty clear on the process of making a game using an existing engine like UDK, Unity, etc. I'm cystal clear on how I would make a game with an idtech engine for example.

So far from this thread the options given are:

- XNA (for xbox and pc)
- OpenTK for cross platform PCs
- Blender, Ogre, other engines.

My assumption, which could be wrong, is that using engines like blender and ogre would basically not be sufficient, like, for the things I want to do I'd probably find myself boxed in, or having to add so much that it doesn't make sense to use the engine in the first place. This is an assumption from the point of being fairly ignorant about this though...

[quote name='kunos' timestamp='1340953004' post='4953860']
I have never seen a project failing because of the wrong language/api/framework was chosen. Software projects fail because the people working on it fail.
So stop worrying about languages, just pick one (possibly the one you feel more comfortable with) and start working... you are the bottleneck, always.
[/quote]

Fair enough, but I guess what I'm asking is, what are my options? Like could someone name 10 ways people make games? Presumably there's a pretty small number of *sensible* ways to make a 3D voxel game with building and multiplayer, like methods/frameworks that people who know what they are doing would use, as opposed to silly ways of trying to do it.

I could just decide to start it with Java, but I'm not confident that that is a wise choice. So I'm here to get some advice about that [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

I realize that people will read this in a beginner forum and think I'm a moron or something, talking about a grandiose game while not having experience making games but, I'm just trying to learn guys [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

Thanks

Share this post


Link to post
Share on other sites
[quote name='bludshot' timestamp='1341010007' post='4954131']
I realize that people will read this in a beginner forum and think I'm a moron or something, talking about a grandiose game while not having experience making games but, I'm just trying to learn guys [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
[/quote]

the problem is that you are not learning by asking these things, you're just wasting time. Because people can come here and start listing anything from Java to some exotic language and, maybe, present you with a list of reasons why that would be a good decision. But you wont be able to understand any of those reasons because you're probably at step 1 and they are talking about step 1346.
There is nothing that makes a 3d voxel engine a-la minecraft any different from whatever other game style from a language/tech point of view, so there is nothing different from your question and the other million "what language should I use?" questions on the forum. They all go down the same path, a random sequence of : "you should use C#, Java, Phyton, C++, no C++ is not a good beginner language, yes it is, no it isn't, look at my links, bla bla bla bla bla"... over and over again.

You have a success story right there: Minecraft is coded in Java. What do you need to know more? You want a list? Here's the list for you, you could do it in:

- C / OpenGL
- C++ / OpenGL
- C++/DX9 , 10 , 11
- C#/Xna
- C#/SlimDX
- C#/SharpDX
- C#/OpenTK
- Unity
- Java
- Python / PyPy
- Blender Game Engine
- UDK
- CryEngine
- D/OpenGL
- Google Go/OpenGL

I could go on forever.. you can do Minecraft with all of the above, these are some of your options (there are literally hundreds more) what's the REAL decisive factor? You are! All these tools are capable of accomplish the job... are you?
Just pick a random one and start, brake down your problem into small sections, google for info, code, test, iterate. If anytime during the development you'll feel like the tool/language is holding you down, think again, it isn't.. it's all about you.

Share this post


Link to post
Share on other sites
[quote name='bludshot' timestamp='1341010007' post='4954131']
Fair enough, but I guess what I'm asking is, what are my options? Like could someone name 10 ways people make games? Presumably there's a pretty small number of *sensible* ways to make a 3D voxel game with building and multiplayer, like methods/frameworks that people who know what they are doing would use, as opposed to silly ways of trying to do it.
[/quote]

There are lots of ways to do it but none of the big engines is really helpful (you can't just hand them your voxel data and expect them to deal with it as you can for games using meshes or sprites) you will have to write mesh generation and physics code yourself anyway (For voxels its best if you do your collision tests against the voxel data rather than creating collider objects to use with a normal physics engine).
This means that the only features you need from a game engine is the ability to create custom meshes at runtime and render 3D graphics, Any 3D engine should let you do this and as you are ignoring most of the engines other features the things you should be looking at are:

1) Platform support (Try to pick a language that is available on all your target platforms and libraries/frameworks/engines that support as many of them as possible, keep your own code as isolated as you can so that moving it to a different engine or swapping out the libraries it uses stays reasonably easy)
2) License costs and restrictions (You won't use most of the functionality provided so cheap/free and as few restrictions as possible are a good idea)

Share this post


Link to post
Share on other sites
You might want to check out Polyvox if you're interested in Minecraft style graphics & building: [url="http://www.volumesoffun.com/polyvox-about/"]http://www.volumesoffun.com/polyvox-about/[/url]

Share this post


Link to post
Share on other sites
You need to learn the language you want to code in first.
Jumping into 3D, with no knowledge of Java ( as you mentioned ) is doomed to failure. Even blindly doing 3D with a simplistic language such as Python ( Panda 3D [url="http://www.panda3d.org"]http://www.panda3d.org[/url] ) isn't going to cut it.

Learn the language you choose to use first, [b]THAN[/b] try out game creation.

[quote name='bludshot' timestamp='1341010007' post='4954131']
I. If anytime during the development you'll feel like the tool/language is holding you down, think again, it isn't.. it's all about you.
[/quote]

I disagree .... there are quite a few languages that are notorious for not being able to develop with Edited by Shippou

Share this post


Link to post
Share on other sites
[quote name='bludshot' timestamp='1341010007' post='4954131']
My assumption, which could be wrong, is that using engines like blender and ogre would basically not be sufficient, like, for the things I want to do I'd probably find myself boxed in, or having to add so much that it doesn't make sense to use the engine in the first place. This is an assumption from the point of being fairly ignorant about this though...[/quote]
If your seriously worried about being boxed in by a game engine that likely has more features then your able to implement yourself. Learn a graphics programming API, such as DirectX or OpenGL and use it for your game. You will have no more limitations, other then the hardware. This is quite involved however and will result in you being required to understand really a lot of mathematics, although if your willing to do this its a good thing. Edited by DevLiquidKnight

Share this post


Link to post
Share on other sites
[quote name='Shippou' timestamp='1341141529' post='4954495']
there are quite a few languages that are notorious for not being able to develop with
[/quote]

such as?

Share this post


Link to post
Share on other sites
[quote name='kunos' timestamp='1341154826' post='4954539']
[quote name='Shippou' timestamp='1341141529' post='4954495']
there are quite a few languages that are notorious for not being able to develop with
[/quote]

such as?
[/quote]

[url="http://en.wikipedia.org/wiki/Brainfuck"]http://en.wikipedia.org/wiki/Brainfuck[/url]
Hello World
[code]
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
[/code]

Good luck making something that is actually useful with it [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] (Its not even the worst language out there, some such as "whitespace" are even worse). (When it comes to mainstream languages however its quite hard to find one that is really awful, some are quite a bit worse than others though)

Share this post


Link to post
Share on other sites
[quote name='SimonForsman' timestamp='1341223079' post='4954845']
[url="http://en.wikipedia.org/wiki/Brainfuck"]http://en.wikipedia.org/wiki/Brainfuck[/url]
Hello World
[code]
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
[/code]
Good luck making something that is actually useful with it [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] (Its not even the worst language out there, some such as "whitespace" are even worse). (When it comes to mainstream languages however its quite hard to find one that is really awful, some are quite a bit worse than others though)
[/quote]
I've made useful programs using this language, its particularly a good language if your interested in studying turning machines, but it is by no means something a normal person should be coding in. [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this