About this blog
Journeys of a game developer through the lands of managed code.
Entries in this blog
You know, I really suck at coming up with cool code names for projects. So, I'm going to adopt my own style. All I can say is that a thesaurus is the best friend of a person like me. Well, to make a long story short (o.k., it's not really that long anyways, like you care...), I decided to use the thesaurus this time around. Since I will be making two engines for Managed World, the first one being a simple 2d engine, the next one being a 3d engine, I decided to do a trusty thesaurus lookup for "engine". So, I would like to present to the world the first two projects for Managed World, "Dynamo" and "Turbine". Yay!
Dynamo is making good progress. Dynamo is the revamped "Harvest" engine. I have thrown away a lot of the abstractions that were diluting the design simply to accommodate for being able to plug different technologies into the engine (like DirectX vs. OpenGL). Well, that crap is gone now. The designs definitely already seem much more pure and better and conveying the aspect of game engine design.
Now, I just need to go back and revamp the first couple articles up at Managed World to reflect the changes I have made. Perhaps at the same time I can crank out the next article. It's been way too long. Well, a lot of work ahead. I fear I must now get back to it :).
I did some more work on the 2d engine for Managed World. I've decided to step back and revise my plans. I was taking a pretty abstract approach to the engine, to the point where I could plug in an OpenGL renderer if I wished to. Well, in order to be able to abstract the renderer, you need to abstract almost any feature of DirectX or OpenGL that you wish to use so that the end-user (the actual game code) can use the abstractions and not care how they operate under the hood.
All in all, this isn't the real problem. Really, there is no problem. I've been doing find abstracting the details when I need to. It's definitely a fun exercise in software design. However, I stepped back and asked myself what the true audience is for the articles that I will be writing, and for Managed World in general.
Well, the audience I'm targeting is Managed DirectX developers. So, in that case, I don't think it is a problem if I expect the users to be using DirectX. I don't want to make it too complicated, unnecessarily. So, time to pull out the abstractions tonight and get a straight forward, DirectX-specific, engine running.
The good part is that I can simply tag this source release in source control and then go to town chopping stuff out. If I find myself up poopy creek, I can simply check out the tagged release and consider myself good again.
Well, I was finally able to get around and make more progress with the Harvest engine. It's still in the ridiculously early stages, but it feels good to actually make some more progress. I wired up (again (and got it working properly this time)) a C++ Makefile project in order to build the solution (the engine + the sample application) using the NAnt build project from within Visual Studio. Last time I tried it I couldn't get intellisense to work on an ongoing basis. It turns out that it was an easy fix. I'm not exactly comfortable with it, but at this time building a solution builds both with devenv.exe (aka Visual Studio (this helps Intellisense continue to function properly)) into a temp directory, and then builds it again with the C++ makefile project (e.g. the nant build script).
Outside of the build and development environment, I was able to get the Vertex Manager and Vertex Cache working. The sample is ridiculous right now. It just shows two animated triangles and an animated square, but the manager and caches are working nonetheless :D. The next step is to wire up texturing. Once texturing is wired into the Vertex Cache, the bulk of the rendering engine is complete. All that would be left after that is to implement lighting. All in all, good progress.
Sooner rather than later, it looks like I'll finally be able to get around to implementing my own sprites and maps. Yee haw!
Well, it's probably no secret that I'm a Microsoft technology fan. I'm willing to be flamed about that, because I like working with the technology. However, I think it is a BAD thing to have only one-sided technological knowledge. After all, how can you expect to have a civilized conversation with another person (let's say a Linux fan) without saying total FUD.
In that vein, I have finally installed Linux at home. I figure that if I really want to contribute to the community, I need to know my sheeite. So, I finally installed it. I chose to install SimplyMEPIS because I have heard a lot about the distro and it is gaining a lot of popularity over at Distro Watch (it's already #8 on the Top 25 list). The biggest reason I chose MEPIS is that I wanted a Debian-based distro (can you say "apt-get" baby?!?!) that wasn't actually just the normal "Debian" distro. There were a couple flavors I found. There was Libranet, SimplyMEPIS, Linspire, and such. Linspire was out of the question because I wasn't going to buy it. And SimplyMEPIS seemed like the most "user-friendly" and "noobie-friendly" Debian-based distro that I found.
The first thing that I will be installing on the box is Subversion source control. I've been using CVS (ala CVS NT) for quite a while now. However, being the big Refactoring supporter that I am, I really wanted Subversion's capability to rename files. Anywhere doing Refactoring with CVS source control probably knows how much of a pain it can be at times.
After Subversion will come PHP5 and probably MySQL (or maybe PostgreSql, I haven't made up my mind yet). And then I can finally talk my way around PHP5 and know what is better about both PHP and ASP.NET. It's all about using the right tool for the right job, don't cha know!
Anyways, since this is a long post, there probably won't be any comments (sans Mushu's post), but I don't care. I'm just using this as a spew tray, anyways :).
Well, I was finally able to get some time last night to do some more coding up on my engine. I got the Vertex Manager and Vertex Cache wired up. It's not quite hooked into DirectX yet, but the whole rendering pipeline of the engine (from Renderer -> Vertex Manager -> Vertex Cache) is finally working properly.
I'm hoping that I can continue to make progress on it tonight. I'm a lot further behind on this engine than I wanted to be at this point. To tell you the truth, it's not nearly as far as I've seen a lot of other people make more progress on their projects in the same amount of time. Arg, sometimes it's quite intimidating being surrounded by Type-A people when you are not a Type-A person yourself. Oh well, that's the way of the world I suppose (and yes, I have been listening to a lot of Earth, Wind, & Fire lately).
If all goes well, I should be able to hook the Vertex Cache into DirectX this evening and at least have an actual rendering pipeline in the engine by this evening. Then I can start making true progress on the meat of the project. All I have to say is this: I LOVE software architecture! There's just something exciting about designing a solution with known and tested software architecture memes that makes me giddy like a schoolgirl.
Until then, my friends....
The next article is up over at Managed World. It is "Development Environment - An Implementation" and is a follow up from the last article. Starting to get down and dirty, I love it :D.
Don't expect the articles to flow this much. I have one more article that I can crank out before there will be a long silence due to the actual development of the game. The next article will deal with the actual architecture of the game and game engine. It probably won't be up for another week or two, depending on how other tasks come along.
Well, I got the first article up over at Managed World. You can find it here. It's not much, but it's a start. Hopefully this means that I can continue the progress and really get this thing off the ground.
On a different note, I've made some more progress on the engine for the side scroller. I wish I had more time though. It can be kind of a pain in the butt being so overloaded at times. I'm so eager to get Managed World off the ground that I wish I could just release the entire series now.
Unfortunately, I think it's important not to rush into this. I want the articles to be of higher quality than you would find on other sites. Also, I want to completely finish the game and be able to do any optimization necessary before starting on the real articles. I don't want people to get frustrated because the articles are always changing.
Oh well, enough of this journal stuff for now. Now to get back to making progress. Enjoy!
Well, I got the rest of my development environment setup this evening. I'm currently running Visual Studio 2003 for IDE, NAnt for building, NDoc for documentation generation, NUnit for unit testing, and CVS NT for source control.
I'm hoping that once I get another server here in the office, I can set up CruiseControl.Net to get some continuous integration / nighly build love happening for all my projects. It will be a while until I get another box here to act as my build server, so on the back burner goes that project :).
Anyways, now with the full environment setup I'm hoping I can crank out the first article on Managed World. It will be about setting up the development and build environment for a new project. Once that's out of the way, I hope to make some more progress on my 2d-engine code-named "Harvest" (stupid, I know :P) in order to allow me to make even more progress on the other articles that I would like to get up in place on Managed World.
I'm starting to think that with my schedule it might take until Christmas time to get Managed World really cooking. But at least once it is cooking, the real rollercoaster will start :D.
And not that it matters in the least, but I got the "links" section up on Managed World. I figure any progress is good progress at this stage. Just as long as I don't let this project die out :).
Not much to update on the game development / article writing. I did however fix the stylesheets on Managed World. The site was not displaying correctly on Firefox or Netscape. This is corrected now.
I'm hoping to start article writing this week or weekend. The first article(s) that will go up will be on setting up the development environment. This will cover issues like writing NAnt scripts, configuring CVS NT, etcetera.
Howdy, Pilgrims! I figured it's about time that I start taking advantage of my membership, so why not actually use my journal, eh? I also started up a website with my webspace here on Game Dev. It is called Managed World and will contain all sorts of article and series on game development with managed code (using C#). As many of you may or may not know, I have already started a series of articles over on my blog. The problem that I've been having though is that a blogging engine isn't really that conducive to building a game development site. I'm hoping that by moving the articles over here (where I spend most of my game development surfing time anyways), that the solution will be more scalable and customizable.
I'm hoping that over the years I can write a lot of interesting stuff that you can't really find in other places today. Most of the articles that you can find on managed game programming today on the internet usually are just about initializing a direct3d device, or creating a vertex buffer. Well, what kind of fun is that? I'm personally more interested in the process of building a game using the technology, not the low-level how-to's of the technology itself. So, expect to see articles focusing more on architecture and such when it comes to developing a game as a whole.
There probably won't be many updates here while I try to get Managed World off the ground. Stay tuned!