The most effective way to make 2.5d graphics

So um, I’m currently thinking of making a little 2d online rpg game here.

One of the things I would really like to hear other peoples opinion on is:

what is the fastest way to do 2.5d graphics?

I’m looking to try to make something along the lines of mu-online or trickster online. From what I can see, it is probably just sprites being drawn on the screen. The question is how do you make those sprites from all the angles? Do you somehow make a 3d model and take screen shots from different angles? Or do you have to somehow actually draw all the sprites, which seems illogical, since you would need like infinite amount of sprites if you are to add multiple armors, weapons to the game.

I’m thinking about 2-2.5d, but the more I think, the more it seems that 3d would be the easiest way to do it… I mean, years ago people used to make 2.5d to fake the 3d, because computers weren’t fast enough. It probably is easier to make 3d stuff instead of 2.5d.

do you want your models to feel 3d ish like diablo 3 or flat like dont starve?

The most sensible approach is probably to have 3D models that you render out to isometric sprites. While you can do isometric art pixel by pixel, changing the look of something becomes a lot of extra work. I believe most major developers use the 3D rendering to create the basic object/animation, then do minor tweaks on the rendered sprites that are produced.

Fun fact, the sprites for Doom actually started out as physical 3D models that were photographed, digitized, then edited by hand into the final product. Granted, Doom is not isometric, but it goes to show that using 3D models to produce 2D results has been in use for quite some time. The same techniques most likely predated ID’s development days.

I think I will just go with the old (2004-2007) runescape look :smiley: I will have to put a lot of effort into learning bone animations though… Will take months…

If you don’t want to learn bone animation:

I would have a depth perception feature in your code. Like, when you have a renderable object, the renderer can get the z coordinate, and draw it smaller the farther it is.

For perspective, you can modify the width and height by a factor, relative to the center of the screen.

So if you are asking whether to render with 2d (orthographic) or 3d(perspective), I would stick to 2d(orthographic TRICK perspective. It’s not easier, but it’s (probably) faster, and you could learn a lot from it!

That would give a nice 2.5d look.

Hope this helps!

-wes

Also, you could always do “fake 2.5D” that is a 3D game with a fixed camera angle or 2d playing field to mimic 2d behavior.

Trine 2 and Diablo 3 are both full 3D games but have some sense of fixed 2D-ness about them. Otherwise baking a 3D model into a 2D sprite is next best choice in my opinion. But then you lose a certain depth/field of view

In the past I’ve been pixeling them, but if you need 8 or 16 views of an objects, it’s getting tedious. These days I make 3D models and render them to bitmaps which I use in the game. Particularly if you need many views (as is angles), the rendering approach is more efficient. And you can always touch up the renders and pixel in some more details.

Taking photos of real models also works. For those who are better at skulpting than at drawing :smiley:

Gpu’s are fast. Just use real 3d models with real shading. Even mobile devices can do this with great results. Then just fix camera and game play to 2d and you are all set. Using pre rendered sprites with blending/alpha testing can be even slower(with missed hierarchical depth buffer culling)

Thanks for the comments. Now the thing I need to learn is bone animation in LWJGL. Are there maybe bone animation libraries out there? I was looking the other day, but didn’t really find anything. If not I will just start working on my 3d engine :stuck_out_tongue:

SPINE!
Made in java, and freaking awesome.

But it is 2d :frowning: Though I don’t think I will use 3d models for my first mmorpg anyway, so I guess I will use SPINE to make stuff :stuck_out_tongue: