Options for indoor and outdoor areas.

Blitz3D Forums/Blitz3D Programming/Options for indoor and outdoor areas.

Magian(Posted 2004) [#1]
I am able to create and texture my own 3D objects for use with Blitz3D and I am finally becoming acclimated to placing objects using code.

However, I am uncertain how to progress from here. My goal is to be able to design levels that have both inside and outside areas that are as expansive as I can get them to be with respect to gamespeed. But how do I design a mesh that a character can walk inside of such as a house with a door? From what I've gathered so far, the door needs to be a completely different mesh object. Additionally, it seems to me that in order to pull it off fluidly each wall of the house will need to be a separate mesh object and then placed together using code. Is my thinking on this correct? I'm also concerned about how placing objects like this in such close proximity will affect collisions.

Needless to say, I may be COMPLETELY wrong about how to reach my goal. If I am could someone please point me in the right direction? Perhaps some relevant posts or even some tutorials that may shed some light on what I need to do?

Finally, I'd like to ask if the Maplet application could help me out.

Thanks! :)


Zethrax(Posted 2004) [#2]
Try doing some searches on this site and at http://www.blitzcoder.com/ for visibility, vis, occlusion, portals, frustum, and culling to get a clearer idea of how to go about managing mesh visibility. All that has been discussed many times before and you should find plenty of information on the subject.

As far as positioning objects goes, what you need is a good map/level editor. Try searching the toolbox section of this site ( http://www.blitzbasic.com/toolbox/toolbox.php ) and the showcase at http://www.blitzcoder.com/ ( http://www.blitzcoder.com/cgi-bin/showcase/showcase_frontpage.pl ) . I think the Gile[s] lightmapping application in the toolbox has a good map editor built into it, too.

Maplet in its current form is probably not what you're looking for as it's only designed for creating and lightmapping meshes, not for positioning imported items.


ZombieWoof(Posted 2004) [#3]
Look hard at the threads on CSP (Cubic Space Partitioning).

I'm working on a 2 level implementation of CSP that handles terrain+building exteriors with a coarse grained CSP, and building interiors with a finer grained CSP grid. The code for detecting/picking the exterior meshes of a building is done, coarse grained terrain/exterior CSP and fine grained interior CSP is next :)

My artists us Poser5 to create entire buildings as a single model with lots of child meshes that LoadAnimMesh handles quite nicely, giving access to all the "pieces" they used. I'm planning a small app to enable picking child objects of the model and assign properties to them, such as if they are a door, an activator, a light source, etc, thus avoiding having to "piece together" a building from seperate models in a map editor or code.

The visibility and property data will be used to generate BB scripts to load and manipulate an entire "level" without the main game code having to know much if anything about the level contents, simplifying the main code, while still allowing the main code to dig in and access any object.

Over all, it sounds like you are creating an environment fairly similar to mine, so maybe some of these ideas will help you out. Of course, you could help me out getting all the tools created for my setup, if you think it will address your issues, so I can release it faster :)


Beaker(Posted 2004) [#4]
You need a level editor:
Quill3D
Cshop
Milkshape
3DSmax

You need a lightmapper:
gile[s]
Quill3D
Cshop

You need a dropper:
gile[s]
Dropper
Droplet
???

You shouldn't ever need to position anything but moving-animated objects using code.

A door should be placed using a dropper program, and then animated/triggered using code.

You also need some way to occlude areas/rooms/zones using portals, quadtrees or BSP.


Magian(Posted 2004) [#5]
I'm having trouble finding a URL for CShop... is it still available?

Thanks a mint for the tips!! :D


Bot Builder(Posted 2004) [#6]
http://cartographyshop.thegamecreators.com/


podperson(Posted 2004) [#7]
One approach which is easy to implement and used in quite high end games (e.g. EverQuest and World of Warcraft) is to put "s-bends" in the transitiona (doorways, canyons, etc.) between areas. E.g. large buildings, dungeons, and inns are designed so that there's no line of sight from inside to outside, making for very simple occlusion (if you're in a building, you don't need to render ANYTHING outside).


ZombieWoof(Posted 2004) [#8]
While I admit the solution, I cant say that it helps me much :) I dont think many buildings in a medieval village had that kind of structure :)