What to choose: 2D or 3D for java games

What should a small team choose for their first game when they are too low in time but have big ambitions? I am an experienced programmer, but before that I did not program the game. My designer is very talented and artistic, he worked with 3D about a year ago, but didn’t do it, as it may take some time to get to know him again, and I’m not sure that he can do a good job on it, although his graphic design skills are amazing otherwise.

Our main task is to complete the game as quickly as possible, and also make it easy, since this is my first game programming project. At the same time, we do not want to have any restrictions that could hinder our progress in the future or otherwise make the game not fun in a certain way.

For example, I found out that some animations are not possible in 2D, such as rotation, etc. I would like the player’s character to be able to turn into animals, and there should be the ability to shoot monsters (for example, shoot an arrow and see how it flies and hits another person). Is this possible in 2D?

In the future, if we wanted to switch from 3D to 2D, would it be possible without a complete rewrite of the game?

+6
java 2d 3d
source share
6 answers

You do not need to use 3D for 3D viewing. Things like rotations, movements, or transforms can be pre-recorded or pre-recorded as animations or sequences of images and are easily integrated into a 2D game. The only thing that is impossible in 2D is to move freely around your “game space” (for example, walk or fly freely, turning freely, etc.).

The main problem, however, when choosing 2D or 3D is the gameplay. There are games that are absolutely necessary for 3D (shooting games, simulations), while others do perfectly (adventures, puzzles, ...). Thus, you do not need to decide, but choose the best form for your game idea.

Personally, I would avoid using 3D in your first game, if possible, to eliminate all the limitations and hassles that come with it.

When using 3D, you usually have to decide on a three-dimensional structure that will greatly affect the design of your software, the appearance of the game, and overall performance. Java3D, for example, introduces a complex class structure that you must adapt to. And a lot of effort goes into ensuring that this 3D material works in general. Simple things like spinning a square turn into matrix operations involving quaternions. Each effect must be performed in a complex three-dimensional world and in such a way that its 2D-projected appearance turns out to be what you intended it to be. Not to mention the fact that 3D applications often suffer from a very stereotypical look, which is very difficult to overcome.

In 2D, you literally avoid one dimension of complexity. You do everything as it should look, you can use standard graphics applications and open file formats to simplify the workflow between the developer and the developer. And a lot of pseudo-3D effects, such as parallax movement, depth of field and preliminary artwork, surprise the look in the 2D world.

+9
source share

You have to go in 2D. You have indicated several reasons for this approach:

  • You are a small team, and 3D takes more work.
  • This is your first game, so you need to keep it as simple as possible, or the project may fail (you are at great risk!)
  • 3D artist must relearn crafts!
  • You have (seemingly self-imposed).
  • Etc.

3D takes a lot of time and is best invested in improving the rest of the game. Think of all the amazing games that existed before the 3D era.

Don’t be afraid to accept limitations: while 3D can give you many opportunities, 2D can lead to more creative work!

+5
source share

I would consider several factors:

  • Is it mobile or applet? If so, I would go for the 2D version. In these conditions, it is very difficult to get 3D.
  • What is better with your designer? Can he model, texture and animate a character faster, and not create all the sprites needed for a two-dimensional character?
  • Tool support. What output formats can your designers create in both 2D and 3D? What formats are the middle dishes that you intend to use that can be processed? Can your 3D engine load or at least convert .obj files (just an example, could use any other model format.)?

Even if you want to go in a 3D way, you can still make a 2D game (sometimes called 2.5D or pseudo 3D). There are also some good third-party frameworks for 2D and 3D materials in Java. You do not need to use java2D / java3D.

+3
source share

Given your requirements, I would choose 2D. You have more tools to choose from. more affordable talent for contracting artwork .. and the asset pipeline is easier. In the end, it will be all about how well the game is worth it. 3D is sometimes more difficult for your average user.

Depending on what you conceptualize, rotations and morphing should be quite possible in 2D. You can even consider the ala Paper Mario pseudo-3d approach ..

The transition from 2D to 3D should not be a serious problem if you design your code structure with this in mind ...

+2
source share

I would also recommend 2D. A 3D game will be more demanding on a user's computer, and many things, such as collision detection, are significantly easier in 2D. You can even make your character models in 3D and then project them onto 2D to make sprites for a real game. Puzzle Pirates ( http://www.puzzlepirates.com/ ) uses this approach, and it works great in terms of consistent lighting, etc.

+2
source share

I think writing a 2D or full-fledged 3D game requires a completely different design approach that cannot be easily changed later: SUN provides the Java 2D API and the Java 3D API for two development solutions. For the first game with a limited duration, I would vote for the two-dimensional version. If the gameplay is interesting and the design is good, then 3D is not necessary.

+1
source share

All Articles