TGB Dungeon Builder
by David Higgins · 03/18/2007 (4:10 pm) · 17 comments
Ok, some of you who lurk around the forums may be aware of this, but for those of you who do not read or don't have access to the TGB Private Forums, here's what I've been up to this week ...
Pseudo-3D Dungeon View
Now, for those of you who can't access that, basically, a question was posed about how to create a "Pseudo-3D Dungeon", similar to what "Cute Knight", or "Eye of the Beholder" uses ... well, after reading this topic, It sort of peaked an interest ... being me, what did I do, I started writing code to do it ...
Here's a link to a Video I just took a few minutes ago, it's a general "walk through the dungeon",
TGB Dungeon Builder by David Higgins and James Rozee, Video Demo 1
TGB Dungeon Builder, Demo 2
I give James Rozee quite a bit of credit, he gave me the idea, as well as the artwork used (his artwork looked a lot better then it does in the video, I took the liberty of adding debug outlines and text, his textures are seamless!)
The second Demo shows some of the glitches corrected, and I now believe the render system is finished and just needs a usable framework wrapped around it ... the 'UI' displayed in Demo 2 was actually taken from one of James .plans, I believe it was made by Nauris, as an alteration to one of James concept UI's ...
And, onto the necessary screenshot stage of this .plan:
One of the original renders, with debug outlines

Another render, using James newly provided art

And, a "PoV" altered render

Enjoy

UPDATE:I'd like to thank Richard Van Stone for his contributions as well, without RVS I would not have found the Edit->Transform->Perspective option in Photoshop -- haha, but no seriously, Thanks Rich!
UPDATE: I fixed some of the rendering glitches, and added a the Demo 2 video link
Pseudo-3D Dungeon View
Now, for those of you who can't access that, basically, a question was posed about how to create a "Pseudo-3D Dungeon", similar to what "Cute Knight", or "Eye of the Beholder" uses ... well, after reading this topic, It sort of peaked an interest ... being me, what did I do, I started writing code to do it ...
Here's a link to a Video I just took a few minutes ago, it's a general "walk through the dungeon",
TGB Dungeon Builder by David Higgins and James Rozee, Video Demo 1
TGB Dungeon Builder, Demo 2
I give James Rozee quite a bit of credit, he gave me the idea, as well as the artwork used (his artwork looked a lot better then it does in the video, I took the liberty of adding debug outlines and text, his textures are seamless!)
The second Demo shows some of the glitches corrected, and I now believe the render system is finished and just needs a usable framework wrapped around it ... the 'UI' displayed in Demo 2 was actually taken from one of James .plans, I believe it was made by Nauris, as an alteration to one of James concept UI's ...
And, onto the necessary screenshot stage of this .plan:
One of the original renders, with debug outlines

Another render, using James newly provided art

And, a "PoV" altered render

Enjoy

UPDATE:
UPDATE: I fixed some of the rendering glitches, and added a the Demo 2 video link
About the author
#2
03/18/2007 (5:31 pm)
I've been following this David, great work. Can't wait to see where you go with it next! :)
#3
Also, some general background on the project -- the Tile-Layer that is shown at the end of the video is how the dungeon is actually rendered -- the 'render system' looks at the tile map, to see where floors/ceilings and walls are located ... and then uses some fairly basic math algorithms to render the images properly on the screen ... the images used are a power of two, the square wall image (says "wall") is a 512x512 texture, and the Left, Right, Ceiling and Floor images are 128x512 and 512x128 depending on whether they are vertical or horizontal ... they are then scaled up or down by 50% (configurable for different art assets) to give the appearance of 'depth' ...
03/18/2007 (5:31 pm)
Freaky? Please do explain ... Also, some general background on the project -- the Tile-Layer that is shown at the end of the video is how the dungeon is actually rendered -- the 'render system' looks at the tile map, to see where floors/ceilings and walls are located ... and then uses some fairly basic math algorithms to render the images properly on the screen ... the images used are a power of two, the square wall image (says "wall") is a 512x512 texture, and the Left, Right, Ceiling and Floor images are 128x512 and 512x128 depending on whether they are vertical or horizontal ... they are then scaled up or down by 50% (configurable for different art assets) to give the appearance of 'depth' ...
#4
03/18/2007 (7:02 pm)
That is really awesome!
#5
03/18/2007 (8:10 pm)
I was recently considering doing something 3D stuff in TGB this way - sweet .plan!
#6
03/18/2007 (8:21 pm)
Nice work David. You always have interesting stuff to show...
#7
In the video, you'll see some frames where it renders "wall" and nothing else ... this is because I stepped outside of the boundaries of the "dungeon" and was actually standing "in" the wall -- this has nothing to do with the render system, and should be controlled by the player movement, in the player callbacks for interaction (keypress, mouse down, whatever) some look-ahead code should be added to prevent the player from walking "into" a wall ...
With the, as I see it at this point, completion of the render system ... I am now going to focus on some more general "Dungeon" framework code ... such as the previously mentioned "walk into wall" prevention code, as well as the ability to place items into the dungeon, such as objects, NPC's and ... MONSTERS!
I'm also going to look into rendering some "FPS" style hands as well ...
For those who are interesting, and reading, I'm a developer, not an artist ... James has been kind enough to provide some artwork, and I'm always willing to accept free hand outs for additional artwork ... anything that would be useful ...
Thanks for all the kind words, I'll try to keep everyone updated as to the progress, and eventually have this "out" as either a free resource or a commercial content kit ... depending on the amount of work put into it ...
03/18/2007 (8:35 pm)
Just posted another video link, it's the "Demo 2" link above -- shows the code wrapped around a nice 'UI' (ripped from James .plan) ... also show cases all of the rendering glitches being corrected ...In the video, you'll see some frames where it renders "wall" and nothing else ... this is because I stepped outside of the boundaries of the "dungeon" and was actually standing "in" the wall -- this has nothing to do with the render system, and should be controlled by the player movement, in the player callbacks for interaction (keypress, mouse down, whatever) some look-ahead code should be added to prevent the player from walking "into" a wall ...
With the, as I see it at this point, completion of the render system ... I am now going to focus on some more general "Dungeon" framework code ... such as the previously mentioned "walk into wall" prevention code, as well as the ability to place items into the dungeon, such as objects, NPC's and ... MONSTERS!
I'm also going to look into rendering some "FPS" style hands as well ...
For those who are interesting, and reading, I'm a developer, not an artist ... James has been kind enough to provide some artwork, and I'm always willing to accept free hand outs for additional artwork ... anything that would be useful ...
Thanks for all the kind words, I'll try to keep everyone updated as to the progress, and eventually have this "out" as either a free resource or a commercial content kit ... depending on the amount of work put into it ...
#8
03/19/2007 (1:13 am)
One of the types of games on my list of things to do some day is make an Eye of the Beholder style first person / room based RPG. This is looking really good already. If someone makes a game using this I will most likely buy it. Great job David. I will definitely be keeping an eye on this.
#9
03/19/2007 (4:17 am)
I saw the forum link to this from another post somewhere, but I didn't read it fully and naturally assumed it was for TGE :-> The fact that it's for TGB makes it all the more cooler then it already was after first seeing it! :)
#10
03/19/2007 (6:20 am)
Nice work David! Each update just gets better and better.
#11
03/19/2007 (9:20 am)
Shadows?
#12
This is all, at this point, just an experimental thing we are toying with, and may or may not actually work out as well as were hoping ... if it does not, lighting could/would still be able to be done using additional artwork ...
In either case ... I'll keep everyone up to date with the latest progress ... the best place to obtain information is in the TGB Private Forums mentioned above -- however, for those of you interested who do not have access to this forum, would it be better if we moved the forum discussion into a more general/public location?
03/19/2007 (9:28 am)
@Allyn, me and James are working together on some ideas that may work for simulating light sources ... ie; simulating shadowing on the walls ... for example, if the light source is in the room you are standing in, the hallway would gradually get darker and darker as you looked further down it ... however, if the room you are in has no light and 3 rooms ahead of you do ... the rooms would gradually get brighter and brighter ... This is all, at this point, just an experimental thing we are toying with, and may or may not actually work out as well as were hoping ... if it does not, lighting could/would still be able to be done using additional artwork ...
In either case ... I'll keep everyone up to date with the latest progress ... the best place to obtain information is in the TGB Private Forums mentioned above -- however, for those of you interested who do not have access to this forum, would it be better if we moved the forum discussion into a more general/public location?
#13
03/21/2007 (9:07 pm)
Hey David, just checking in to see what's the latest, thanks sir.
#14
03/21/2007 (10:06 pm)
@A, no updates as of yet -- still toying with some ideas, and ran into a personal life brick wall :)
#15
03/22/2007 (9:25 am)
Ouch! PLBW usually hurt. I hope you come out of it fairly unscathed. :)
#16
But yeah, as for updates, I do have one ... I started reworking the 'level building' concept a bit, and split it into numerous Tile-Layers, one for the floor, one for the walls, and one for the ceiling, and I even included a fourth that will contain 'objects' ... however, I'm not 100% sure how best to approach the 'objects' concept ... as technically, objects should be able to be placed anywhere in the room (on the wall, on the floor, floating, hanging from the ceiling, etc, etc) ... so I'm toying with a few different ideas, to allow for the best possible object assortment and the least number of restrictions ...
So far, splitting everything up into the 4 tile-layers is working out great, I had a few glitches I had to tackle when I first approached it ... and I am now at a point where I -must- utilize some C++ modifications ...
I wrote a 'getTileSceneObject' a while back that returns a t2dStaticSprite (yeah, naming convention is off, haha) ... and I plan to use that to retrieve the information about the current ImageMap being used, and using a pre-defined 'sprite sheet' configuration, I can quickly and easily switch to the appropriate 'perspective' frame based on Left, Right, Top, Bottom or Front views ...
If I can find a way around doing this, I will, but for the time being ... it's whats gotta be done ... otherwise, you'd have to hard-code the ImageMap into the CustomData, and setting up those brushes is a pain in the arse ... though, it could be scripted, I guess ... I might look into that ... who knows ...
Hope to have another 'useful' update soon, possibly even something worth writing a new .plan about ... ;)
03/22/2007 (5:39 pm)
No worries, I have no intentions on dropping this project and I hope to see it through until it's as reusable as possible ... I just may need to take some time off to do some other things, possibly Torque related, possibly Real World related, who knows ... But yeah, as for updates, I do have one ... I started reworking the 'level building' concept a bit, and split it into numerous Tile-Layers, one for the floor, one for the walls, and one for the ceiling, and I even included a fourth that will contain 'objects' ... however, I'm not 100% sure how best to approach the 'objects' concept ... as technically, objects should be able to be placed anywhere in the room (on the wall, on the floor, floating, hanging from the ceiling, etc, etc) ... so I'm toying with a few different ideas, to allow for the best possible object assortment and the least number of restrictions ...
So far, splitting everything up into the 4 tile-layers is working out great, I had a few glitches I had to tackle when I first approached it ... and I am now at a point where I -must- utilize some C++ modifications ...
I wrote a 'getTileSceneObject' a while back that returns a t2dStaticSprite (yeah, naming convention is off, haha) ... and I plan to use that to retrieve the information about the current ImageMap being used, and using a pre-defined 'sprite sheet' configuration, I can quickly and easily switch to the appropriate 'perspective' frame based on Left, Right, Top, Bottom or Front views ...
If I can find a way around doing this, I will, but for the time being ... it's whats gotta be done ... otherwise, you'd have to hard-code the ImageMap into the CustomData, and setting up those brushes is a pain in the arse ... though, it could be scripted, I guess ... I might look into that ... who knows ...
Hope to have another 'useful' update soon, possibly even something worth writing a new .plan about ... ;)
#17
I am currently waiting for the resource to be approved, and once it is, I'll provide a link to it here ... otherwise, just keep an eye on my Blog and you should see it soon.
03/19/2008 (10:57 pm)
I have decided to abandon this project, but ... do not freak out, coming to this decision, I also decided to distribute the source to the project 'as is' -- I am currently waiting for the resource to be approved, and once it is, I'll provide a link to it here ... otherwise, just keep an eye on my Blog and you should see it soon.

Torque Owner DodongoXP
Cheers