What engine/language/platform to use?

Started by
12 comments, last by DevLiquidKnight 11 years, 9 months ago
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 smile.png I find it difficult to google this topic because of the broadness or complexity of my question :|


Thanks, and sorry for the noobishness.
Advertisement
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....

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


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.)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
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.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

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.

+---------------------------------------------------------------------+

| Game Dev video tutorials -> http://www.youtube.com/goranmilovano | +---------------------------------------------------------------------+
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...


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.


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 smile.png

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 smile.png

Thanks

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 smile.png


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.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni


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.


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)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
You might want to check out Polyvox if you're interested in Minecraft style graphics & building: http://www.volumesoffun.com/polyvox-about/
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 http://www.panda3d.org ) isn't going to cut it.

Learn the language you choose to use first, THAN try out game creation.


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.


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

I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.

~ Ralph Waldo Emerson

This topic is closed to new replies.

Advertisement