• Advertisement
Sign in to follow this  
  • entries
    3
  • comments
    0
  • views
    3130

About this blog

A history of the development of the Reactor Engine.

Entries in this blog

So it's been a few weeks since my last journal. I've mainly been working on things other than the rendering pipeline. Things like package support (loading of zip files, etc), serialization, platform specific utility code, profiling support, vorbis audio support using OpenAL, things of that nature. I'm almost done with all of that and can focus again on the rendering pipeline (because pictures are pretty...)

As soon as I start work on that, I'll be posting here some more. Until then, back to the trenches.
So I've gotten to a point where the engine itself is capable of rendering meshes as well as 2D textures and things. I've added a blend state manager to manage the countless combinations of blend states in opengl. I've tested texture loading on Mac and Windows and it looks to work ok. I'd still love to have a cross platform C# image loading library that works on x64 on Mac (MonoMac's System.Drawing.Bitmap only works on x86!).

But other than that, I can't complain. A lot of the previous engine ports over nicely when *cough* borrowing some classes from MonoGame.

I ditched the content pipeline for a more streamlined approach, I've ditched the shaders for a pure OpenGL solution (note: research ProgramPipelines to build dynamic shaders based on user input for model features).

I'm going to have a hell of a time implementing animations and such but I'm waiting until I have further fleshed out the 2D drawing (with texture fonts) before coming back to the 3D stuff.

I'm trying to keep the API as clean and concise as I can. This was a struggle with Reactor3D 1.0 as while I knew what I was doing, I never had an "architecture" in mind when I started nor did I ever look at the public facing API as much. This time though, the public API was fleshed out before work began. I'm vigilant about checking the public API to make sure everything makes sense and shares similarities where necessary.

Pretty soon I'll be able to start posting some pictures once I get back to fleshing out the rendering pipeline. But for now, I'll cya in a few days.

The beginning...

Back in 2007 I started work on Reactor3D, a 3D game engine for XNA. Originally planned as a commercial product, Myself and a few others worked on it. Pretty soon though, the two other people who were working with me decided to put their development efforts into other projects. That was fine and I continued solo...



Almost two years later, I released a beta version to a few developers who loved it. There were bugs, there were missing features, but for the most part it was a successful engine. I decided to build a game in 15 days with it, a match-3 puzzle game called Alchemist and released it on XBox Live Indie Games. While the game itself was a complete flop, it did prove the engine was ready for main stream development.

I released it.



And the community cried about the lack of features... and I took it personal... ...and I quit.

I open sourced the license and soon after Microsoft released XNA 4.0, breaking my engine because of API changes and I never bothered to go and update the engine code. So it died really quickly.

Well...



I was dumb. What I should have done was to start to convert it all over to C++ and OpenGL. I didn't.

So, while back then I was pretty much fed up with indie game development and tools development I decided that this time around, I'd build it for me, as a passion to myself. No commercial plans, open development, open source, open mindset, with no promise of features, I'll just see how it evolves.

So I would like to welcome you all to my journey. My tools are still somewhat the same, C#, mono for cross platform support. Only this time, OpenTK (OpenGL4.5 context) and OpenAL.

I've already got a good foothold and brushed back up on my 3d math knowledge. I've got a decent code base going.


Those interested can take a look at: http://code.reisergames.com
Sign in to follow this  
  • Advertisement