About Tangent
Yep. That project got dropped. That happened for two reasons:
1. Poor Planning. Once again it is so important to actually plan out what you're going to do in your game before making an engine. I definitely over engineered the engine to make it as robust as possible and that sucked time out of the actual game development. Then once I was actually ready to add a functionality to the game, I pretty much had to break what I generalized in my engine design to get that functionality working. Deep inheritance trees (A table is a prop, which is a physics object, which is a game object, which has a mesh, which has animation, which has ...) and poor messaging between game objects really ruined it for me.
2. It was just going to be a clone in the end. In the end it was really just going to be a better version of Diner Dash, with RPG elements. I didn't think I could be happy if I made something that lived in the shadow of a different game or being labeled as a clone. Especially since the branding of diner games is so strong with the Diner Dash brand, I became less thrilled with my progress and more worried about the outcome.
But you know, many projects are canceled and started again so maybe Tangent will make a comeback when I'm confident enough that I can provide an alternative experience to the customer catering genre of games that would appeal to the hardcore people.
So what are you working on now?
I took a month off from programming after a disappointing cancelation of my last project to collect my thoughts/motivations and started to play some other games for inspiration and continued to read development journals for insight on how to do things right.
In the past 2 weeks I've dusted off my own engine and rewrote it from the ground up to be a component-based object model instead of an inheritance model. At first it was a pain to get everything set up again due to all of the querying that the components have to do: i.e, A physics component has to know the dimensions of the model before it can move the collision box every frame. So I assigned each component to have a mComponentName member variable and then just have a component query the component list of an object if it has reference something else. That way, I can plug and play components.
My new project I'm very thrilled about. I can describe it as Asteroids/Geometry Wars meets Hunt the Wumpus. It should be good times.
That and Bioshock and Persona 3 have completely STOLEN MY FREE TIME.