development     reviews     feed

The Mercury Particle Engine

Today I’ve been working on integrating the Mercury Particle Engine into my project. At first I wanted to just have the DLLs in folders in my project, but I couldn’t get that to work with the DLLs that are available on Mercury’s download page (the Xbox DLL was not satisfying my namespace references for some strange reason - I’m interested to see what happens when I use the DLL I compiled myself). So I downloaded the source code and added more projects to my solution, and just added references to those projects. I will probably go back to work in a moment to try to remedy this now that I have the code to compile myself, on top of the fact that I got it successfully integrated. Also, I’m a little tired of looking at the list of projects in my solution right now, which when taking into account the Xbox copies of everything is over ten entries long.

I also spent today maintaining the Xbox copy of my project, which implies maintaining the Xbox copies of everything else. I have everything nicely differentiated between Windows and Xbox now, and I made sure to make absolutely sure that everything I’ve integrated so far also works on the 360, which I am happy to report is indeed the case. It’s exciting to see it sitting in my list of games and being able to run it from the console, and also seeing it in full screen, which I am not currently running it in during development.

Integrating Mercury was not too hard - the camera is usually the main thing that I need to worry about because I’m handing everything that needs to draw anything on the screen a matrix transformation to make sure that everything lines up correctly. It’s still a little confusing to me, but I am starting to understand how it works a little more every day, at least enough to make things happen. I plowed through the bug in which shadows were not being drawn correctly according to where the camera was pointing today - it’s interesting that I can barely even remember what the silly issue was, because everything just seemed to make sense when I went to fix it. I’ve added a simple particle effect for rain, which is something that I want to use in the project when I’ve got more important things lined up - again, I’m in a situation where I did something that isn’t absolutely crucial to the project, but there are so many important effects that can be created with Mercury’s help that I view it as a solid accomplishment.

An image of a red glowing box sitting on a platform while it rains.

I feel good enough about what I’ve got right now that I think, after I refactor some of the code into its place in my engine, I’m ready to start tackling creating the first component. It should happen before November 9th, which is the end of Sprint 2. But I don’t think that will be a problem at all - I’m definitely on schedule for what I want to be accomplishing so far. Hopefully things will keep going as well as they have been! There’s so much help on the forums for the technologies that I’m using that I don’t think I’ll run into any problem that won’t be solved.