Dungeon Master / EOB Graphics

BlitzMax Forums/BlitzMax Programming/Dungeon Master / EOB Graphics

impixi(Posted 2006) [#1]
Hello all,

I'm looking for information and/or code (any programming language) relating to the Dungeon Master / Eye of the Beholder style of graphics (ie tiled/stepped "Pseudo" 3D). Can anyone point me in the right direction? I've written some BlitzMax dungeon generating code I'd like to post to the code archives but not before I have decent viewer code to include with it.


Tachyon(Posted 2006) [#2]
There's two ways you can do this: a true 3D engine that is "lock stepped" in perfect increments to a world grid (you need your entire level- all walls, doors, and objects- perfectly snapped to this world grid as well), or you can fake the whole thing with 2D graphics. You need to start by deciding which method you are going to use.

FYI- I have a 2D version of an engine like this with walls pre-rendered in Studio Max and I think it looks better than other realtime 3D versions. Just depends on your Studio Max abilities.

The 3D method should be straight forward if you know 3D engine concepts. The 2D version requires you to pre-render every individual wall section (blocks) in advance and then code a sorting engine to draw the wall sections according to your map data, from furthest to closest to the player's square, sorta like a depth-buffer. An optimized engine would know what wall section blocks are hidden so you don't waste time drawing them. I don't have any links to send you to, but I was able to come up with something nice in 2-3 days. It's not terribly hard.


Grey Alien(Posted 2006) [#3]
Fake it all with 2D. I made one on the Amiga that let you walk around the memory, it was pretty cool. You just need to work out which way you are facing and draw the correct walls unless you want to hide some to speed it up.


impixi(Posted 2006) [#4]
Thanks for your input, guys. Retro-style 2D is my preferred approach.
I will give it some further thought and see what I can come up with.


Gabriel(Posted 2006) [#5]
I'd do this with 3d now, to be honest. I know it'd be cool to make it like the originals were but I've written a game engine which did this and it's really finicky to get right. It's so much easier with 3d, and you can smoothly transition them from step to step, which will look nice. ( Have an option to turn those off in case it gets annoying, of course! )

As much as anything it's drawing all those little tiles and fitting them together right. Be a lot quicker just banging out dungeons in Maplet.


H&K(Posted 2006) [#6]
Well.... I would do it with 2d sprites/graphics, but I would generate them via the 3d engine. That is say you know you need a wall "sprite" to represent a wall directly to the left, then I would put a camera and a 3dwall and would "screen grab" the wall. Then just paste that image whenever I wanted a wall like that to the left.

That is though only If I really really wanted it to be 2d, (like to run on old machines). If not I would just do it in 3d and be done with it.


Grey Alien(Posted 2006) [#7]
Yeah I made my 2D walls in Deluxe Paint with the "turn 2D into transformed 3D" kinda option, it was cool. Only thing with making steps smooth is that in Dungeon Master you could run pretty fast, so the scrolling fro one place to another would need to be pretty fast. You could have cool stuff though like rotating round 180 degrees quickly (with a special key) or look up and down (esp when falling down a pit) etc.


bregors(Posted 2006) [#8]
.


H&K(Posted 2006) [#9]
I sometimes miss AMOS and it's dinky little compilier
Huummm. Amos was interpreded not compiled. There was a compiler for amos pro. (And there might have been one for ordinary AMOS, but I dont think you ment that, so pedantic I agree)


bregors(Posted 2006) [#10]
.


Azathoth(Posted 2006) [#11]
I just got the compiler free off a coverdisk or something.


impixi(Posted 2006) [#12]
I knew I'd seen some relevant Blitz code somewhere. There's a simple example by TeraBit/Lee Page that's bundled with the BlitzPlus demo. I think I'll port this to BlitzMax and modify it for my purposes.

As I mentioned in my first post, I just need something simple to include with my dungeon generation code to add to the code archives. I would use my port of JFK EO-11110's raycasting code (3D Maze), but I can't get the perspective correction (?) right at higher resolutions.


Gabriel(Posted 2006) [#13]
I believe Amos Professional was the compiled version. Came in a big white and gold box, as I recall.


bregors(Posted 2006) [#14]
.


Gabriel(Posted 2006) [#15]
That'll teach me to reply to a thread without checking the name of the person posting. Now you're so desperate for a fight you argue with someone was actually agreeing with you.


SculptureOfSoul(Posted 2006) [#16]
I think he was directing his comments to you Gabriel.


ImaginaryHuman(Posted 2006) [#17]
Yes there was originally Amos 1.2, then there was an update 1.3, then there was the first compiler for basic Amos (not pro), then Amos3D came out, then there was Amos Pro in a white box, then there was separately an Amos Pro Compiler.

At least 5 products.

And yes the original Amos was that blue box with the spaceship. The compiler box was similar color scheme if I recall, so too was 3d. Amospro was white and gold.

There has since been some kind of Amos AGA, or at least an extension to it, since I think someone got sourcecode and has made a new version. But I don't think it was sold in a box and might be just shareware.


bregors(Posted 2006) [#18]
.


H&K(Posted 2006) [#19]
MAybe Im wrong in this (again), but is PureBasic not AMos?
(In the same way as BMax is Blitz)


bregors(Posted 2006) [#20]
.


impixi(Posted 2006) [#21]
Well, I've managed to come up with something of my own concoction, ‘inspired’ by Terabit’s code and some of the ideas in this thread. Thanks all.

I’ll post my code in a few days, after I’ve added some more features.


Azathoth(Posted 2006) [#22]
I wonder if anybody actually used Amos3D for anything. I never got it myself. Something like that would have been minutely useful if texture-mapping existed back then. :/

I got Amos3D off a cover disk, it was very limited in what it could do.

MAybe Im wrong in this (again), but is PureBasic not AMos?

Amos was more like DarkBasic with commands containing spaces.


Grey Alien(Posted 2006) [#23]
Hate to burst the bubble but AMOS was rubbish and you could spot an AMOS game a mile off, that's why I got BltizBasic 2 and did inline assembly in it etc. It *was* compiled and was lush.


bregors(Posted 2006) [#24]
.


LarsG(Posted 2006) [#25]
I used Amos.. I could never get the grips on BlitzBasic for the Amiga.. it just seemed too cryptic for me..


tonyg(Posted 2006) [#26]
WorldCreator has a 'pseudo-3D' image creation option.


Azathoth(Posted 2006) [#27]
Amos had some scripting language called AMAL which was cool, it was like threading with animations. Also BlitzBasic2 on the Amiga seemed alot easier to crash.


Sonic(Posted 2006) [#28]
I made a commercial (well, licenseware) game in Amos, a full four disks! You can pick it up here:

http://hol.abime.net/4684

To run in UAE it works best with Kickstart 3.1 and 1meg chip ram, 1 meg fast ram.

It was compiled in Amos Pro, took almost two years. Blitz back then wasn't for me, but I am now very fond of Max.


impixi(Posted 2006) [#29]
Okay, here's my BlitzMax proof of concept pseudo-3d :

...



Related Code archive entry: TDungeon


Damn, what a hack job… But an interesting coding adventure in any case.

EDIT: Removed dead links.


Booticus(Posted 2006) [#30]
Rad!


impixi(Posted 2007) [#31]
Here’s another proof of concept, this time using ‘proper’ 3D to ‘simulate’ pseudo 3D, as per Gabriel’s suggestion:

...


It utilises Simon’s excellent MiniB3d engine.


EDIT: Removed dead links.


Booticus(Posted 2007) [#32]
Damn! Cooler still!


impixi(Posted 2007) [#33]
I’ve been toying with the idea of turning this into a full-featured engine and editor, something like Unlimited Adventures, minus the AD&D rule-set and old-fashioned interface… But then the sordid truth hits me: my time would be better spent on something else. :)


impixi(Posted 2007) [#34]
Tweaked and updated proof of concept tests: TDungeon