So I took off more time than I had intended when recording these posts. I was trying to update it once each week or so, but I Just haven’t been making enough progress to justify it. I don’t have much to show in terms of screenshots either because I haven’t made any progress in the visual department.
I did get the HUD up and running though. I previously used a scoring system, where it would only take 5 points to win the game, and a small point tracker above either player would update accordingly. I scrapped that in favor of a health system, where a red bar updates dynamically, and with each point scored, the health is reduced. I’ve also added a working powerup which increases your health when it is randomly acquired. I’m also trying to implement a regeneration powerup that slowly adds health, up to a certain point, but I’m still working on that.
Again, I went back to George Clingerman’s excellent site for his “Not So Healthy” health bar tutorial. It went up without any problems, and was probably the easiest one I found, in terms of adding graphical information on screen. I plan on adding improved graphics towards the end of the project, but for now it is in place and working well.
Game Screen Management
This is what has been holding me up the most lately. As I mentioned in my previous article, I was trying to use Oneksoft’s excellent XNA Starter Kit to with my project, but it proved entirely too difficult. A few more weeks of reading and sifting through some code, and I seem to have it manageable at the moment. That’s not to say that it didn’t come without quite a bit of help.
You’ll see a common trend here is that I point out, in detail, the individuals who help me along the way. I do that because I feel that they deserve recognition, but also to help people who are new to programming and with XNA specifically, that there is still a strong and vibrant community of people willing to assist one another. The AppHub may not be nearly as bustling as it once was, but there is certainly a dedicated population who take pride in helping others.
When I tried to get the game screen manager up and running again I ran into quite a few conflicts, namely with my inputs not being recognized. With the new system also came a new way of handling the inputs, namely controller detection. Previously I was only using player one to handle all of my inputs, instead of using an array for both controllers and the keyboard, and this way seems to work more efficiently. This way if a controller is pulled, or a player picks up any controller lying on the table, XNA can determine which controller to expect inputs from.
Jim Perry was once again extremely patient in helping me understand how the GameScreenManagement class worked and offer just enough advice along the way for me to understand how to further educate myself in certain areas of XNA without giving anything away. David Henry (@Mort8088) also volunteered to help me fully understand the class, in addition to have the GraphicsDevice is called, as that completely threw me through a loop.
Thanks to those two, I have a far better understanding of both parts. The most difficult area of it came from me using my Game class to handle most of my display logic, whereas now my Game class doesn’t have much, and most of it has since been relocated to my GameplayScreen class. Most of this comes from Microsoft’s supplied GameStateManagement kit, but having Oneksoft’s starter kit adding quite a few other useful features, like Nick Gravelyn’s easy storage.
Should I do this all over again, I would definitely begin with something like his starter kit again, and then build my game on top of it. But in order to do that I needed to first understand how XNA works, and that’s exactly what this process has been so far: A lesson in learning.
A continued education
I’ve continued to read books throughout the week and especially on my commute back and forth to work every day (I take the train, don’t worry). I often go back to re-read old material after take a bit of time off, and see that I absorb it much better now that I’ve come back to it.
I’ve also stumbled across this excellent site, LearnVisualStudio.net, and fund it to be an outstanding resource. His videos are professional, well planned out, and done in a methodical order. If you’re new to .NET or want to have a better understanding of C#, I’d suggest giving it a try. I’ve used YouTube frequently as an educational resource, but often struggle to find anything of value.
I plan on covering a few of the plugins I’ve been using for Visual Studio in my next post. I wish I had used several of them earlier, StyleCop specifically, as it would have reinforced some valuable style lessons, but it is better late than never I suppose.
Perhaps next week I’ll have a few moments to update you.You can find my other Dream.Build.Play entries below: