Sign in to follow this  
rpgdeveloper

Is a game engine like Baldurs Gate, 2D or 3d

Recommended Posts

TANSTAAFL    1160
Baldur's gate used 2D predrawn artwork. Passable, impassable, and sections where the character was "behind" something or in shadow were just 2D polygons, superimposed onto the 2D artwork.

Share this post


Link to post
Share on other sites
MonkeyCookie    144
It's a 2D game made to look 3D. That's the whole point of the isometric perspective: to make it look 3D without requiring 3D hardware, 3D development, and 3D art and models. There are only bitmaps that are drawn with a 3D look.

Share this post


Link to post
Share on other sites
rpgdeveloper    110
man, I tell you. i started a while ago in darkbasic, and the coding was easy:

load model "model here.3ds", 1
load music 1
load sound 1
if upkey()=1 then player gosub shoot

now I am learning C++, and it's a lot different, especially since I have to basically set up the entire game to run. right now I am developing on Windows, and hoping to develop on a mac. my redhat linux wont boot the graphical anything, if I change the resoulution over 640x480x8. I guess its not compatible with the pc I am running right now. i need to upgrade my graphics, looking into a 256mb nvidia card to give the ol pc a boost. The processor is so slow, 1.80ghz, upgrading that too. lol. is windows programming harder than linux or mac programming?

Share this post


Link to post
Share on other sites
Solias    564
Well here is one approach. Start with a prerendered 3d scene or a hand drawn image for a map. The entire map is one single large image, unlike tile based maps which are composed of small sprites and tiles.

This map has several layers, each one an image. The first layer is the artwork of the map which the players see. Then you have a set of greyscale layers which encode information about the map layout. One layer would hold the walk information, anywhere the player can't go is marked on the image and if they move the mouse over that spot the cursor changes to indicate they can't walk there, movement into those regions is blocked.

Another layer holds occlusion information. Any region of the map where the player would be behind the geometry in the map is marked in a color. You take the player's position and look up the value in the map there, if it is marked as occluded then you blend the player sprite with the map image instead of drawing the player sprite over the map image.

Now there is a subtle issue here in that you could have a thin wall that the player could either stand in front of or behind. If you compare every pixel of the player sprite against the occlusion map then the player will be blended in both cases. One solution to this is to realize that in general in isometric perspective, "above" implies "behind", so you could use a point at the player sprite's feet to do the lookups.

Shadows would be harder but the general approach would be the same. You would have a brightness map that encodes the shadow values for each pixel, and use that brightness to modulate your sprites as they move through the map. This could be used for both shadow and light.

I see two issues here however. The first is that you can no longer just lookup the pixel at the player's feet. You will need to sample every pixel the sprite covers. This brings back the problem where a single pixel in the map represents multiple voxels in 3d space. The second issue is that since a sprite has no 3d information, a shadow falling accross it will not be correct. This is going to be most noticable on large, non convex sprites and with sharp shadows.

I think you can probably fudge this enough to get a good looking effect if you are careful with you art. Don't have sharp shadows and high contrast light changes. Since your sprites won't be casting shadows, or at best casting blob shadows, you want to go with subtle lighting anyway. Also try to avoid situations where a small number of pixels divides two different scene volumes with different lighting properties. (Don't have situations where a wall that a player can stand in front of or behind casts a strong shadow).

If you are using rendered 3d scenes for your maps you may be able to auto-generate the lighting and occlusion maps, otherwise you'll have to draw them by hand.

It's been a while since I did anything with the infinity engine so this probably isn't exactly the approach they used. However if you take a look through their data files you can see the maps they used and get some good ideas. I'd recomend takeing apart bg2 anyway to anyone who is interested in making 2d rpgs, you can learn a lot by looking at how they did stuff.

Share this post


Link to post
Share on other sites
The_Nerd    100
Quote:
Original post by rpgdeveloper
man, I tell you. i started a while ago in darkbasic, and the coding was easy:

load model "model here.3ds", 1
load music 1
load sound 1
if upkey()=1 then player gosub shoot

now I am learning C++, and it's a lot different, especially since I have to basically set up the entire game to run. right now I am developing on Windows, and hoping to develop on a mac. my redhat linux wont boot the graphical anything, if I change the resoulution over 640x480x8. I guess its not compatible with the pc I am running right now. i need to upgrade my graphics, looking into a 256mb nvidia card to give the ol pc a boost. The processor is so slow, 1.80ghz, upgrading that too. lol. is windows programming harder than linux or mac programming?


I personally think Linux programming is the easiest (nice development tools, people say "No" to that, but they are full of sh*t). You definetly want to program on it if you are trying to make a cross platform app.

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