Jan 01, 2006 23:03
Popped in a few more improvements to the cell phone 3D engine today:
1- Unrolled the arrays in the Matrix class; that gave about a 50% performance boost during matrix multiplication
2- Added fast-paths (special-purpose, highly optimized code for common cases) for some aspects of rendering and triangle sorting
3- Disabled backface culling by default, since the renderer is far faster than the position calculator
Overall, the engine is up to ~2650 tris per second unlit, and ~2370 lit. That should be plenty for a 100-triangle scene at 20 frames per second, so I'm going to declare success and move along.
The next step is the fun part: selecting a game, and designing how it should look. Some of the top ideas at the moment, in no particular order:
Stun Runner - Kind of like the luge in winter olympics: you're flying a car that's stuck to the inside of a pipe. As the pipe twists and turns, you have to dodge obstacles and catch powerups, while trying to stick to the outside of the curves so that you can stay as fast as possible. This was one of the first 1st-person 3D games to hit the arcades: it didn't use any lighting or texture mapping and the scenes were always simple, so I could actually recreate the graphics pretty accurately.
Moon Patrol 3D - You're driving a vehicle in 1st- or 3rd-person 3D, probably on the surface of the moon or something. You can steer around some obstacles, jump over others, and fire at baddies that come swooping down on you.
Battlezone - A 1st-person 3D tank game. Probably the first 3D first-person game--so old it only used vector graphics (the 3D scene was drawn in wireframe--fortunately, with culling by occlusion). This game's novelty was partially due to its twin controllers, but it was still a lot of fun.
As-Yet-Unnamed 3D RPG - A much more ambitious project, which I'd love to do but probably should sit on for a while. Think of a recent Zelda game and we'll be on the same page here.
Any suggestions?