tags:

views:

234

answers:

4

Hi all. I have been working on a java simulation game for some time (remaking theme hospital in my own way). Up to now, I have done everything in 2d, using squares and circles etc. I have looked for some tutorials on how to do 3d in java, found coke and code, however I am unsure if this is what i need to use. My idea was either to have simple 3d, as in flat 3d. or real 3d, which would be a lot more work, and more difficult. I really wanted to hear peoples general thoughts on going 3d. Here is a video of my progress from a few months ago (http://screenjel.ly/bdO7Rj8DVl8). The 2d graphics are rather unimpressive. I want to make some more progress, however I don't know if I should continue developing in 2d, if I want to eventually go 3d.

Also, I don't know how difficult 3d would be. Ideally, I want 3d fully rotational. I know that is rather ambitious, but I would settle for blocky people and items rather than circles and squares. Anyone know of any good 3d in java tutorials, which includes rotation?

Any other thoughts or comments on this?

Thanks

+8  A: 

Going 3D will raise content creation costs by 7x. (Sorry, can't reference the study, but NCsoft Korea looked into it, and reported a 7 times increase). This is because creation of viable, efficient and good looking assets require a multitude of skill sets. So, keep that in mind. Many people think moving to 3D will magically make their game "look better". This is a fallacy. It will only look better if the assets are good enough to create a level of immersion better than what you had before.

Staying 2D gives you a lot of freedoms. You can really create an art style, focus on game play, etc. Once you enter 3D, you'll be spending most of your time optimizing the client rather than making a better game.

So, ultimately, the decision is yours, we can't make it for you.

If you do decide to go 3D you need to then decide what your goal is. If it's just to create the game, then you may want to look into an engine to reduce development. If you want to learn about the underlying mechanics of 3D graphics, go straight to OpenGL using JOGL or LWJGL.

Some engines to look into:

  • jMonkeyEngine (I'm biased here).
  • Ardor3D
  • jPCT

Good Luck.

MarkPowell
Thanks for weighing both sides up. I'm not very much of an artist, so 2d or 3d, I probably won't be doing any of the graphics.I know very little about actually using any engines for games. This is my first game, so I hope to learn :)jME looks a bit too big for a project of this size. I plan to keep the 3d graphics to one z plane (i think), as in only one floor at a time, so items would only have an x and y, and z would always be 0.Looked at the jPCT, interesting...
Relequestual
+1  A: 

If you're going to do 3D, you're almost certainly best off using something like OpenGL (e.g. via JOGL). In this case, you basically describe your objects in 3D space (e.g. positions and colors of walls, positions and colors of lights, etc.) You then specify a current "camera" location. Rotation is (normally) handled by simply specifying a different orientation for the camera.

Learning the OpenGL API isn't trivial, but chances are that you're concerned for the wrong things -- just for example, full 3D rotation is fairly trivial. Creating realistic lighting (especially if you want to include shadows) is a great deal more work.

Jerry Coffin
Hum, Ok, yeh I can see your point. If I did, I think I would defiantly go OpenGL. Lighting would be a secondary issue for me, although it would be nice to have.
Relequestual
+2  A: 

Theme Hospital - good memories :)

If this is a learning project, I'd definitely start off 2D. You'll get a lot more done, and a working game much sooner. Adding 3D at this stage will just add complications.

Plus, Theme Hospital would just look weird in 3D!

Skilldrick
hehe oh yes, good memories indeed!Yeh, it's my first project of any decent size, so I'm leaning and have learnt alot already! I just want to have the option to go 3d at a later date if i want to. Probably harder than I think it would be
Relequestual
I would say do this all in 2D, then when you want to go 3D go for something a lot simpler to start with. Maybe then you can revisit Java Hospital...
Skilldrick
Yeh I agree I think. I mean 3D sounds like a nice idea, but to introduce it into my first project this complex... Ah well. Thanks for your input :)
Relequestual
+2  A: 
sfussenegger
Sorry, I know very little about graphics... What do you mean by, "Simply bend your vertical raster lines by 45 degree"?I'm not sure if I want to go for the look of Theme Hospital completely, as there are already 2 projects that are using the original graphics. I want to have something graphically unique about the game.
Relequestual
Just added an example
sfussenegger
That's called isometric viewing.
Blindy
Cool, finally an expert joined the conversation :) Thanks!
sfussenegger
Thanks for the example. That seems to be pretty much what the original theme hospital looks like. I was trying to be a bit different from the other projects which use the original graphics. My original thought was to just have the people graphics go over one square, so the same, but without the slant. Thanks for your input though! :)
Relequestual