• entries
    222
  • comments
    607
  • views
    588104

Enlarging the world

Sign in to follow this  
benryves

1946 views

There have been very few changes to the features of Nostromo recently. I have tried a number of ways to optimise the performance and whilst the handful of micro-optimisations I have made have boosted the frame rate a little none of the higher-level optimisations have done much. I did try, for example, storing a bounding box around each BSP node and ignoring it (and all its children) should this bounding box fall outside the field of view; the additional code to check the bounding box ended up halving the framerate rather than improving it.

Nostromo 3D engine????Nostromo 3D engine????Nostromo 3D engine

Nostromo 3D engine????Nostromo 3D engine????Nostromo 3D engine

I have, however, enlarged the level quite considerably. A staircase connects the central room with the pit to a rather strangely-shaped arrangement of walls (again copied from E2M7). The room with a pit continues to cause issues; looking across it towards the room with the small central staircase forces the engine to step through a very large number of convex sub-sectors and check many walls. This drops the frame rate down to about 3 FPS on a TI-83+. However, this is specific to that room; the newly-added rooms have not noticeably affected the frame rate in other parts of the level.

Another minor improvement is that the engine now supports different sprites. I'm not too good at drawing them, as you can probably tell from the above screenshots, but at least the code is there to support them.

You can download a TI-83 and TI-83+ binary to try the demo on your calculator (please back up any important files first). Alternatively, here is an animated screenshot.
Sign in to follow this  


4 Comments


Recommended Comments

I have been following this series on you journal for a bit. I find it very intriguing and interesting.

I do not fully well understand this yet, but this has got me very interested in computer graphics, and I hope to learn, and perhaps one day create half as interesting a project.

Share this comment


Link to comment
If you don't have Michael Abrash's Graphics Programming Black Book (Special Edition), I suggest getting it. It uses x86 assembly, but it is _full_ of tricks and optimizations relevant to rendering engines from Wolfenstein 3d to Quake. Despite the fact that many of the tricks are specific to the x86 architecture and instruction set, I'd be surprised if you didn't find something useful in there for this project. However, you'll definitely need to get familiar with x86 assembly to get the most out of the book (which shouldn't be a problem since Intel offers the instruction set books as free pdfs).

Edit: Using google, I found Graphics Programming Black Book here on gamedev in pdf form, so I guess you don't even need to buy the book..?

Share this comment


Link to comment
Quote:
Original post by Extrarius
If you don't have Michael Abrash's Graphics Programming Black Book (Special Edition), I suggest getting it. It uses x86 assembly, but it is _full_ of tricks and optimizations relevant to rendering engines from Wolfenstein 3d to Quake.
It sounds great — thank you very much for the recommendation! [smile] I've read some of his articles before (and found them interesting, even if not directly relevant to anything I've been working in) but not this particular book.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now