Jump to content
  • Advertisement
  • entries
  • comments
  • views

The damn devil is in the damn details

Sign in to follow this  


I've been dreading a certain aspect of the S3 Engine, which I know I am going to need to solve sooner or later.

So now I'm going to tell my problem to you all =)

The problem is one of Interiors and Exteriors, or indoors and outdoors.

Currently, the S3Engine is exceptionally well suited to outdoor maps; you have a terrain and you can plop stuff down on it, trees, people, cars, houses, whatever.

But indoor maps are going to be somewhat trickier; Flare3 used the same map system for both indoor and outdoor maps and it worked fine in most cases, indoor maps simply had more walls, different scenery, etc. and that is what the problem really boils down to, walls.

all of the sprites in S3 are traditional isometric sprites, they are drawn on carefully aligned billboards so everything lines up.

but when it came to walls, this system seemed exceptionally wasteful, because there is such an 'easy' alternative.

for instance, in 2D isometric a wall would be a specially drawn image in isometric perspective and it would be placed on the map.

due to the nature of isometric graphics this wastes a good amount of space on the image (to account for the angle) and it also means in some cases specialized images are needed for different wall directions.

in 3D however, making a wall is SUPER SIMPLE, it's 3 planes (bottomless rectangular solid) it can be textured with a nice 128x256 texture, and it can be placed anywhere, and lit properly.

So given that I have this power at my finger-tips, I cant quite bring myself to kluding walls by sticking with the old isometric way, it seems very stupid.

however this does complicate the map format a good bit, it will likely use a dedicated geometry for a wall, and will be translated and rotated in place during rendering, though I am still unsure how well these 'real' elements are going to play with the billboarded elements.

thankfully the motion system for S3 will utilize a node network of predefined paths, which characters can walk on based on inference where a player clicks (dijkstra's algorithm will be used for path calculation)

this means we can control where the player can and cant walk, which can remove potential issues dealing with overdraw and such.

so, it looks like I will need to implement extra data about each tile's ability to have a wall on any side.

Sign in to follow this  


Recommended Comments

One question.., why don't you simply go 3d all the way ?
I think you are overcomplicating things the way you are going, but good luck with it :)

Share this comment

Link to comment
the main reasons are.

1. Designing low-poly, well-textured, rigged, realtime 3D models is an absolute pain (i've tried it). Plus implementing a system that utilizes these would also be hard.

2. I really like the look of 2D elements in most cases, and i think it will look nice against a 3D terrain.

Share this comment

Link to comment
It's a tough call: full 3D or hybrid 2D/3D or full 2D. I understand the decision you're grappling with, EDI, I'm tossing the same thing around in my head right now.

Part of me is very tempted to do it pure 2D, but I like the idea of a 3D terrain and some other 3D effects (particle effects, lighting). These obviously have the advantage of being a bit easier for those without artists (like myself).

Of course, given a talented 3D modeller, I'd go with pure 3D as it would dramatically increase the amount/quality of the animation (see Silent Storm for an excellent example of a pure 3D "isometric" engine).

Considering that Photoshop is my only art tool (that I have any skill using), I'll be doing a hybrid approach. Characters will likely be 100% sprites/2D, with environments being 3D (buildings, terrain, walls).

Share this comment

Link to comment

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
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!