Jump to content
  • Advertisement
  • entries
  • comments
  • views

Engine Explosion

Sign in to follow this  
Mike Bossy


So I've been working on creating unit tests for a bunch of my engine. In doing so I realized that some of it was easier to test than the rest. The places that are easy to test utilize objects that are based on an abstract base class making it easy for me to create mock objects for testing purposes. This naturally got me thinking about if I should abstract out all of my objects to make testing easier.

If I didn't already like the structure of the engine I for sure would have said no instantly but I'm used to the object model and I actually like it. Most of my development pains have to do with becoming more data driven than with the object model itself. I also have plans to extend to other platforms like Mac so investing in the organization of the engine will pay off in the long run.

Once I decided to do some cleanup around base classes I decided to go all out and take it to the complete level of platform abstraction as well. This means abstracting everything from Matricies to Mutexes. Obviously this has created a bunch of churn which I'm still in the middle of but I like the new feel of things already.

My new set of base classes have a tonne of functionality which is now totally platform independant and easy to test. That means a potentially rock solid core to build new features on and support new platform with. As a small indie shop that really is a huge selling feature. I can't compete on crazy feature sets for games, but I can compete on quality and speed of development. Having a solid engine that I know and can tweak if needed helps to give me that edge.
Sign in to follow this  


Recommended Comments

There are no comments to display.

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!