Jump to content
  • Advertisement
  • entries
  • comments
  • views

Perf time

Sign in to follow this  
Mike Bossy


When I started working on my engine I tackled things from an OO angle. Every class was clean and separate allowing for great orthogonality (sp?) between game objects. I can just throw together a bunch of textured quads, double sided quads, tile sheets or meshes in any order and things just work. Unfortunately this power comes at the price of performance. My engine definitely doesn't maximize the hardware. At GDC this year I had a little bit of validation on doing things this way when i went to the Tim Sweeny talk on Unreal Engine 3 and they do the same thing where they sacrifice performance to acheive orthogonality. I'm not even going to pretend my engine stands up to the readme.txt file of Unreal but it was still nice to hear I was on the right track.

As I'm getting closer to the finish line in my current project I'm starting to look for places to get the perf a little tighter. My renderer is definitely a great candidate. I have calls being made in each object that could be called only once per frame if I went about things a little different. The interesting thing to see is if I'll still be able to keep the level of orthogonality high. I have a goal of 50% perf improvement in the renderer which looks very achievable at first glance. Wish me luck.
Sign in to follow this  

1 Comment

Recommended Comments

One of the interesting side effects of a truly othogonal design is that it can actually make optimization easier at the algorithmic level, despite the (usually unimportant) sacrifices made at the micro-scale. Since algorithmic-level complexity is almost always the main bottleneck in most performance-critical code, this often winds up meaning that clean code architectures can actually be tuned to perform better than ad hoc implementations.

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
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!