Select a blog chapter:
More stuff you can do
Your accented quote and dictionary feed
Madonn': Madonna, common expression meaning holy smoke, holy cow, holy shit.
The Sopranos: Mobspeak

Safehouse

Engines: PGE and PGEX 06/16/2009 14:15 GMT+8
Mood: I don't know.
BGM: Silence.
If you were eyeing this website for some time already, you might remember Precureon Game Engine (PGE). Well, it's a long time ago and I actually stopped doing it when I realized the API on it is beginning to look like it's hard to use even for me. After that, I just decided to go towards in creating an engine in DirectX 9.0 and just that. It was called PGEX, where X stands for the X in DirectX.

In creating PGEX, I've fairly managed to keep the code well organized, trying to be truly OO. Let's just say, I'm satisfied on how it is coded so far, but I am aware I might still be missing tons of design issues ahead that I still can't picture for now. However, there is this time I encountered a stumbling block on development. I was having a hard time making my InputManager and Engine class communicate each other. That's when I saw that I need a lot of refactoring and clarity of what are the primarily responsibilities of the classes. I did not throw away PGEX as I think it's just a matter of refactoring and not restructuring. In the end, I realized it would be best to just make the engine cross-platform, as it enforces good unified abstracted interfaces to make the Engine easy to use and less coupled.

I actually just merged the good stuff from PGE into PGEX. It took a while to make it done but it was a soothing and logical path to take. Now, technically it's not PGE and not PGEX. But, I retained the named to PGEX as it could be cleverly read as PGE, and X for "Cross". PGEX is now on the cross-platform route again but only the Windows versions of the classes are implemented.

The takeaway from this experience is to realize when to back off early and look at the big picture of what you are doing. Find out if anything you have done so far still makes sense in the perspective of each class' responsibility. Gauge whether it is much better to rewrite or to just refactor. Don't ever be afraid to use the delete key on your code if you think it really needs a rewrite, but you just have to make sure that it can not be solved just by refactoring, as refactoring saves more time and normally fix design issues.

Comments

There are no comments for this entry.

Have your say...

You must log in first to be able to add a comment.


  And you are?
  Gimme the code.
 Don't forget.
Still a nobody? Sign up.  |  Why join?
Lost password  |  Reverify email

Message through the Mouth
  Who are ya? (Blank = Your IP)
  What is it? (English only)
   

Notable Associates of the Family

Al Capone took only 0.008 seconds to extort this page.