Geeks With Blogs

News

Series

Add to Technorati Favorites


An Archived Managed World This blog has moved to http://www.managed-world.com/blog

Well, I didn't get nearly as much done as I was hoping for today. A lot of the time was spent wrestling with NAnt and getting my build scripts to properly reference the Managed DirectX assemblies. I still don't really like the solution I came up so maybe I can find some time soon to see if I can wrangle up a better solution. However, with all that said, I have my projects all setup for the Harvest Engine (it's just a code name (I wouldn't go with a name that cheesy, I swear (well, I probably would (but that's not really the point is it?)))). I have the NAnt build scripts running and compiling the application properly.

I also got the Direct3D device up and running in windowed mode. I know, not that big of a step, but I'm trying to do some cool stuff to really make this engine cross-API possible. That involves a lot of coding up my own enumerations among other things so that display modes and card capabilities can be read in structures specific to my game engine so that the Direct3D renderer and the OpenGL renderer can read the same values. No sense for striving for cross-API capabilities if you aren't going to go the whole way, eh?

The next step is to get the enumerations and renderer config file working so that I can implement the fullscreen as well as the windowed mode and allow the user to switch between the two. Before I go there and while I am still working on the bare-bones windowed mode, I am going to implement some swap chains so that you can render into as many as eight windows controls. We will see how that goes. I think the money number of swap chains is four to be able to implement the level editor. That way, I can do some level editor development while I am developing the engine side-by-side.

Perhaps before I go on with other .plans, I should outline exactly what I am shooting for for this engine. I am *not* shooting for cross-platform development. However, I am shooting for cross-API development. I am also not shooting for native code development. This engine will be entirely managed code (probably all in C#), and is meant to be used only in a managed environment. You *could* use it from native code I suppose by implementing a COM wrapper, but that seems pretty pointless to me. To recap: the engine will be a Windows-specific, cross-API, managed engine. The architecture for the engine is that the actual game will be in an EXE and the engine itself will be in a statically-linked assembly (although the renderer will be dynamically loaded in order to allow changing between the different graphics APIs). I am aware that this is not “the” approach that companies like id use. id uses an architecture where the game is in the dll and the engine is in the EXE (I believe). We are not developing this engine to easily support mods. The engine will be a simple 2d (via Direct3D) tile-based engine.

After much wrestling with myself, I am going to be using few of the “helper” classes in Direct3DX. This is not because they aren't useful. They are, and they are implemented better and faster than I could probably do at this point in time. However, the key to this engine is to *teach*. I want all of you to understand exactly *how* the helper functions work by implementing them yourself. Yes, this is re-inventing the wheel. I am usually strong opposed to re-inventing the wheel. However, when dealing with a performance-oriented application like game development, I think it is important to understand exactly what is happening under the hood rather than taking it for granted. This is also the main reason that I won't use the sample framework that the DirectX Template from the 2004 Summer Update installs.

At this point, you might notice that comments are not enabled on these .plan updates. That is on purpose. I am really gearing these updates as a one-way communication. If you do have questions/suggestions about things I bring up, please feel free to contact me through the contact form on my homepage here or email at jolson88 AT yahoo NOSPAM DOT com.

I think that's all for this brain dump (at least I hope so since I can't remember anything else at this point).

Until next time.....

Posted on Monday, September 6, 2004 1:53 AM Game Development | Back to top

Copyright © Jason Olson | Powered by: GeeksWithBlogs.net