Well hello everyone! Sadly I still haven’t heard any word from the professor and well sadly I think I never will. But that does not make me feel like I wasted my time. In fact it opened my eyes to a lot of things. One of which was design flaws in my engine. Now I didn’t find them at first due to the fact it worked for me very well so why would I try to find them. But I had a friend of mine who goes by VarmintTheRat take a look at the engine and in one line he told me what he needed to. The line was “This needs to be rewritten.” So he told me the flaws etc and I agreed with everything he had to point them out but as soon as he did I was confident that he was correct so the redesign started to go underway. Now I will be recoding the new engine from scratch. Most of you are probably screaming right now but hear me out. I did rush the previous engine due to time constraint. Thus a lot of things were over looked like proper error checking and const use. Among other things the engine had issues such as it requiring a nice high end machine to run at anything playable.
Another issue was the actually api implementations they weren’t as easily changeable as I once thought. So these issues I mention are enough to convince me to do a rewrite. Now huge change will be the api’s being used as the default for the engine. I plan to make these truly interchangeable using interfaces that interact with implementations. Now the api’s that are going to be used are as followed.
OpenSceneGraph: For 3d and 2d rendering
Nvidia Physx: For physics simulation
OIS : For keyboard input and mouse
AngelScript / Mono: For Scripting *this is still undecided*
RakNet: For networking
cAudio: For 3d Audio
Now if you’re curious why I dropped Irrlicht and irrKlang it’s not because I don’t like them but simply I need to expand my abilities to other apis. I have to be able to do anything in any api if I ever plan to make it in the industry. The challenge OpenSceneGraph gives me is that there irc channel is practically dead and the forum isn’t beginner friendly. I will be relying on docs, tutorials and sample code just as I would if I was in the industry. Has you know I am one to challenge myself and well this is just another challenge.
As for the engine design I will be attempting a parallel game engine. In short it’s a multithreaded game engine with data synchronization only were needed. Most of the api’s I use are already threaded so I just need to thread the engine itself rather than modifying the api’s. I’ve only done minor threading in QT so this should be quite a interesting challenge. If you’re curious on how a parallel game engine works here is a link to the doc I will be using has a base design: Design Link
Finally for this engine I will be trying to be as professional has I can be so I will be making flowcharts, notes, documentation, clean code, among other things on the way I do not have a set due date on this one for I plan on taking the time to do it right. The svn for this project will not be available online. Until I believe it’s usable. As always the code will be free to use and probably be under lgpl.