Page 6 of 9

Posted: Sun 16 Jul, 2006 1:16 am
by CompWiz
yeah, that looks great. So, how long until you put a demo up for download? :)

Posted: Sun 16 Jul, 2006 4:27 am
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.

Posted: Sun 16 Jul, 2006 12:41 pm
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.

Posted: Sun 16 Jul, 2006 5:05 pm
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. :)

Posted: Mon 17 Jul, 2006 11:06 am
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...

Posted: Mon 17 Jul, 2006 2:37 pm
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?

Posted: Mon 17 Jul, 2006 2:50 pm
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.

Posted: Mon 17 Jul, 2006 3:55 pm
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?

Posted: Mon 17 Jul, 2006 4:38 pm
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 :)

Posted: Mon 17 Jul, 2006 7:04 pm
by threefingeredguy
Sorting is why I gave up writing my own 3D thingy in Java.

Posted: Mon 17 Jul, 2006 8:10 pm
by CDI
this is orgasmic, benryves has, of course, pwnd the calc

Posted: Wed 19 Jul, 2006 10:13 am
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.

Posted: Wed 19 Jul, 2006 12:55 pm
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 :).

Posted: Wed 19 Jul, 2006 6:04 pm
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?

Posted: Thu 20 Jul, 2006 11:31 am
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.