newer 2.5d viewer

Community Forums/Showcase/newer 2.5d viewer

Kalisme(Posted 2008) [#1]

YAY! finally floors!

Ok, here's the new version of the WIP 2.5d vecter map viewer with editor... unfortunatley I had to lower the resolution...
But I'm pretty happy with it so far.

http://www.uploading.com/files/OL8312WW/3.zip.html

includes code, images, readme & *.exe.


Doggie(Posted 2008) [#2]
I think you need a password to download the file?
All I'm getting is the Beauty of Big Bear Lake ad!

;)


slenkar(Posted 2008) [#3]
i cant download it either


Kalisme(Posted 2008) [#4]
EEEEK! :o!
Ok... Fixed it... I removed the password... now just click on it and wait 10 seconds to download... sorry guys :(


plash(Posted 2008) [#5]
Interesting, but I'm curious why you are going backwards in technology? (this wheel has been re-spun so many times already..)


Kalisme(Posted 2008) [#6]
plash: Simple; it's because I want to teach myself all this from the ground up instead of just jumping to Direct3d or openGL and using basic 3d maths and other peoples libraries. Besides, by doing this, you get to play around with all the code and come up with little nifty tricks that no-one really talks about much. Oh, and it's fun!


Yahfree(Posted 2008) [#7]
what's it written in? bmax + raw opengl?

And I also get a MAV when I hit the space key...


slenkar(Posted 2008) [#8]
it has a nice retro feel,
you could create large worlds with this?


*(Posted 2008) [#9]
Jeezus, tried to download and got multiple virus threats from AVG 8 :s

This has nothing to do with the 3.zip file maybe the site your on


I get MAV when hitting space


Kalisme(Posted 2008) [#10]
MAV eh?
Hmmm.... I'll double check the *.exe and the code...
Sorry guys.
Yahfree: It's written in Blitz3d, but only using the 2d commands... I think it would work in blitzplus and the old freeware blitz2d... but I'm not sure.

Jeremy Paxman - Yeeeeeeeees: Yups, since I'm using Vectors, I don't think there's a size limit at all. I just had the small plane (the floor) because I thought having a floating entity in the middle of a void looked kinda cool... But it's easy to make the floor infinite and if I made a better editer with scrollng, the maps could go for miles.
I'm thinking of doing a simple Ultima underworld-esque game crossed with nethack (If I can figure out a good algorithm for dungeon generation... any help guys?)


Ginger Tea(Posted 2008) [#11]
although doom killed the method off i do kinda like the old one block wall maze games of old (dungeon master, captive, bloodwych althogh that had thinner walls too which made more sense to me)

instead of having to make a 3d file of a level all you had to do was have a data file of some kind with
floor
wall
door type north south facing
door type east west facing
floor switch
wall switch north facing
wall switch east facing
wall switch south facing
wall switch west facing


and a few others for good measure
and possibly all using just the 16 hex values in a text file
eg 0 = Floor F = Wall and the rest inbetween (i say wall = F as i used to use colour blocks on paper when doodling years ago and used a similar method for 16 colour bitmap maps black nothing (floor) white wall (FFFFFF in rgb/hex) )

so although wolfenstien was one of the last games to use this method (however they layed out the level data files) you didnt need to invest in learning a 3d level editor (or dooms '2.5D')


Yahfree(Posted 2008) [#12]
kalisme, I'm very interested in this stuff, can you explain how it works?


Thanks


Kalisme(Posted 2008) [#13]
Yahfree: I was actually going to type out a complete description of how it works (from constructing the types and viewing them through a camera vector), I still may finnish writing that but for now I'll just do a brief version...

The map editor is pretty much a good explanation of how the maps work... the dot point vectors are placed and connected by the walls (lines connecting the dots)... Sprites are just vector points aswell.
When conerting to "pseuodo 3d" (2.5d), the whole map is rotated and shifted so that the eye (camera) sits at 0,0 and everything visable will sit above "0" on the y axis... (meaning they sit at y points lower then 0... eg: -10, -520 and so on..).
All the walls that are beneath the clip plane (0,0) are culled.... Walls that sit on the clip plane (one vector point beneath, the other above) are "clipped"... this is done using the gradient of the line and figuring out the X position of the point if it sits on a Y position of "0".
Then each point is shifted (maniplulated?) by the perspective code... (just a short formula) The same is done to the Y point... (which is more of a Z point when converted to a 3d point). This displays the dot points in the 2.5d view... Then I render the rectangles... A bit like polygon rendering, but as squares... I just used the gradient between the two points.

If that didn't make much sense (nevermind.. I explaimed it quite badly), it's just 3d mathamatics, but only using X & Y points to create a raycaster-ish looking engine, but keeping 3d polygon methods in mind.
(hopefully that one makes sense).

Oh, and floors are just using a flood fill and reconverting the plotted pixels back to there original points on the 2d map so I can figure out where it would sit. (I got the idea from reading an article about the DOOM engine on wikipedia.org) The fllod fill was just plotted down when the current pixel location didn't have any information in the Z-buffer.