Progress thread for original version (2006)

A DOOM-style 3D engine for TI-83 and TI-83+ series calculators.

Moderator: benryves

CompWiz
Calc King
Posts: 1950
Joined: Thu 13 Oct, 2005 1:54 pm
Location: UB

Post by CompWiz »

yeah, that looks great. So, how long until you put a demo up for download? :)
In Memory of the Maxcoderz Trophy Image
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4141
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

Okay, yep ... thats AWESOME! :D.

Its actually been pretty good for 3D engines around here lately :). Nice move on the 50/50 walls too, the effect is really nice and it should look fine on hardware.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Thanks for the positive response :)

@Timendus: wall colours (of which there are a mighty 3) are hard-coded into the wall structure in the level (start vertex, end vertex, colour and sector). On that note, the wall structure really could do with an overhaul - I'm leaning more towards DOOM's style where each wall has a start vertex, end vertex, front sector (the sector in front of the wall) and back sector (the sector behind the wall) and three texture numbers (in this case, colour numbers) for upper, middle and lower wall regions. This has a number of advantages - for example, the window in the demo could be represented with a single wall with no middle colour and an upper and lower colour. I'm sure you can realise why this is good - with the current solution (using two walls) you end up with having to needlessly clip the wall twice!

Of course, this also gives the level a more natural way to link sectors together.

@CompWiz: for every screenshot I post, there's a blooper reel. In this case, walls with upper or lower edges that have a y delta > 127 will not draw correctly, and if a wall is drawn but falls entirely above or below the screen, you get a single horizontal line at the top or bottom edge of the LCD (there is a flash of it as I leave the 'front door' in the previous screenshot). Even worse, if I move around to the far side of the building you can see the front wall and two side walls through the back wall - there is no real occlusion.

You'll have to wait for these things to be fixed before I put out any sort of demo, sorry.

@tr1p1ea: it looks rather bad on hardware due to the way the LCD handles columns of alternating pixels (I guess the rapidly changing high/low draws a lot of power and so the voltage level drops on said column).

Image

:)

Image

:(

Not sure what I can do about that, beyond using vertical 'stripes' for 50% grey.
User avatar
Calv!n.n0.1
New Member
Posts: 49
Joined: Fri 17 Dec, 2004 10:16 pm
Contact:

Post by Calv!n.n0.1 »

Wow Ben, this looks quite amazing. You always seem to amaze with your ability to test the TI's hardware. Keep up the awesome work. :)
Revolution Software - http://www.revsoft.org
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I've started adding timing to the engine (so you can walk around at a constant rate):

Image

Each tick works out at about 3ms, so dividing the ticks by 333 gives me a nifty FPS counter. As you can see, there is a rather pressing need for sorting...
CompWiz
Calc King
Posts: 1950
Joined: Thu 13 Oct, 2005 1:54 pm
Location: UB

Post by CompWiz »

Yeah, I see what you mean about needing sorting. Other than that, it looks great. Just curious, will this engine support wall textures? Or is it limited to black, white and grey?
In Memory of the Maxcoderz Trophy Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I'm not really into texturing for a number of reasons - scaling them takes a lot of CPU time (especially if you want them to be perspective correct) and they do look rather ugly at such low resolutions. I certainly want to have two other levels of grey (25% and 75%) to add to the level designer's palette.

One thing I have been pondering is the ability to have wall-aligned sprites - sprites that can be drawn onto a wall (a bit like a bullet-hole decal in modern engines). You could then have, for example, a switch texture, adding to the detail of the levels.

I don't want to plan too much, though, as it all depends whether I can pull off the basics first.
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4141
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

I dont think you should worry about texturing, would be a waste of time really. Besides the shaded walls are plenty.

Very nice fps counter and im pleased with the overall speed of the engine thus far. You going to work on sorting next?
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Aye, sorting is a major concern. :)

The biggest issue with sorting, really, is establishing where to start from. If I had collision detection it would be easy enough to track when I had crossed over sector boundaries, but without that it makes life a little more interesting.

I'll probably start more simply (create a blockmap with start sector indices in each area), take it from there :)
threefingeredguy
Calc King
Posts: 2195
Joined: Sun 27 Mar, 2005 4:06 am
Location: sleeping
Contact:

Post by threefingeredguy »

Sorting is why I gave up writing my own 3D thingy in Java.
Image
User avatar
CDI
Maxcoderz Staff
Posts: 321
Joined: Tue 24 May, 2005 7:25 pm
Location: If I find out, you'll be first to know.
Contact:

Post by CDI »

this is orgasmic, benryves has, of course, pwnd the calc
ImageImage
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

As promised, 5 levels of grey... 0%, 25%, 50%, 75% and 100%.

Image

The 25%/75% dithers aren't as pretty as the ones in qarnos' engine, but they work. :)

I think I'll give the Z80 side a rest, and work on the level editor side. The advantage of that is that I can work out the wall/sector/subsector structures, and also that I can use the editor to simulate how the renderer will step through sectors to sort things.
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4141
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

Thats madness ben. 5 lvl's of shading and 3D ...

You're going to make your calculator spontaneously combust with all this magic you know :).

Ahh yes, the editor. You will have to explain your solution to us :).
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
CDI
Maxcoderz Staff
Posts: 321
Joined: Tue 24 May, 2005 7:25 pm
Location: If I find out, you'll be first to know.
Contact:

Post by CDI »

good work ben, I can't belive you are getting 11fps on that o.o well, then again, it is you there. I was wondering, since you have a BG image, is it any size and then scrolled? Does that mean you could perhaps, have a very large building you are in, and have windows that peek out and show you the BG image?
ImageImage
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

11FPS is a useless figure alone; it's more a question of how well the engine scales. At the moment, it scales terribly; the framerate would halve if I added one more room like the above, and now we're at 5FPS for something that's rather pathetic as a level.

The background image (sky) is 128x64 size, and is scrolled horizontally based on your viewing angle:

Image

Being 128 wide, it means that it is wrapped around twice... not sure if I'll extend it to 256 for a full circle or not.
Post Reply