Progress thread for original version (2006)
Moderator: benryves
- benryves
- Maxcoderz Staff
- Posts: 3089
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
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).
Not sure what I can do about that, beyond using vertical 'stripes' for 50% grey.
@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).
Not sure what I can do about that, beyond using vertical 'stripes' for 50% grey.
- Calv!n.n0.1
- New Member
- Posts: 49
- Joined: Fri 17 Dec, 2004 10:16 pm
- Contact:
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
- benryves
- Maxcoderz Staff
- Posts: 3089
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
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.
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.
- benryves
- Maxcoderz Staff
- Posts: 3089
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
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
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
-
- Calc King
- Posts: 2195
- Joined: Sun 27 Mar, 2005 4:06 am
- Location: sleeping
- Contact:
- benryves
- Maxcoderz Staff
- Posts: 3089
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
As promised, 5 levels of grey... 0%, 25%, 50%, 75% and 100%.
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.
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.
- 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:
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?
- benryves
- Maxcoderz Staff
- Posts: 3089
- Joined: Thu 16 Dec, 2004 10:06 pm
- Location: Croydon, England
- Contact:
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:
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.
The background image (sky) is 128x64 size, and is scrolled horizontally based on your viewing angle:
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.