A different approach

I was looking at my post the other day and thinking about the whole scheduling malarkey. So I have asked for some input from a friend and colleague. We are both lucky because I give him a lift to work every day and I get to pick his brains, so, I think it’s a fair deal.

He said that I really shouldn’t over plan things because due to my level of experience in software engineering it is likely that I’ll get a lot of things wrong. Even experienced engineers make mistakes and have to do a lot of rework. I should try a different approach.

So this is basically his advice. Look to your project and think about what you need it to do, and everything you think you might need in order to get that to happen. Plan those tasks, prioritize according to the dependencies and then start coding straight away. You will get results, and your project will move forward, there will be a lot of refactoring but there would be a lot of refactoring anyways because it’s unlikely that you will stick with the first implementation of any code that you write, and Get Cracking.

So I chose something I need to do. I need to have a spaceship on the screen that moves around, and can be targeted, attacked, destroyed and can fight back. Doesn’t seem much. But breaking down what I need to make this happen I came across a small mountain of work.

So far I have a pretty busy schedule that leads up to the end of April. In total I have:

  • 4 Art Tasks: No big deal
  • 1 Audio Task: No big deal
  • 31 Code Tasks: Ahem…

And I can start working straight away. At least I already have a secondary viewport that draws my current target on in. Pretty neat… but I guess I’ll only put a video of it when I finish my March/April Sprint.

And the winner is

bafta 

I am thrilled that FABLE II has won the BAFTA for Action & Adventure Game last night!

The Boring Stuff?

I got to a point of my little XNA project that I’m quite comfortable to set myself a deadline for completion. Two years. TWO YEARS??? Well… I am working on my own after all, and it’s a little but ambitious projects. 

Now, if I want to get this out of the door I need to set myself some deadlines… Let’s say, Complete my code by next March, have all the final Assets in game by next September, and have six months to fix bugs and polish.

It’s all fun and games when you are coding and you get visual improvements on the screen. There is a sense that things are moving forward. Up to this point I have been pretty much doing what I felt like doing. All important things that were needed in the final project but now I have reached a point when every time I want to sit down and do some work on it, I need to first spend about an hour reviewing the code I have already written trying to work out what my next step should be. And that’s wasting precious time. Especially because I might decide to work on something that isn’t as important than something else in the huge mountain of works there is to be done.

How big is the mountain? How many things do I have to do, what should I be working on now? The good thing about being working on the games industry is that I now have a pretty good picture of how game development works as a whole. And how much more work there is to be done than one actually would think there was, and how we go about managing the production cycles.

The big difference here is that I am on my own and I can’t do everything simultaneously like it’s done in the industry. But I need to take advantage of that. In the development process of a large game there is a lot of reworking, things that get changed, chucked away, designs that sprout out of nowhere in the middle of a milestone, and other things like that. Most of this is because things are done simultaneously and due to communication problems. Unless I get a split personality in the middle of the process communication with myself isn’t exactly a problem so when I tell myself I need these model to look like this, I will immediately understand what I mean and won’t spend two days working on something that does not please me. And I won’t do things simultaneously, which means it’s unlikely that things I change will have an unexpected effect, and if they do I can resolve it there an then. All and all it means that the project will move a lot slower but it should be leaner.

Basically, looking to the near future of the project there is little code work to be done, but lots of planning. Up until the end of the month I need to have:

Finished the design of the Mechanics and Systems.
Model the Code Structure
Schedule Code Tasks
Schedule the whole project.

On the 360

I have finally managed to deploy my project to the 360 for the first time, after a bit of a battle of wits against the XNA content Pipeline.

It’s an awesome Pipeline for small games but I took sometime to get my head around it. Now Inside my solution I have 5 Projects.

Here is how it’s roughly organized.

  • A Windows Game Project containing the game code.
  • A Windows Game Library that contains readers and importers. It also contains all of my Assets, this is an awesome idea given to me by a friend, which means I don’t have to build my assets every time I change something in the game code.
  • A Windows Pipeline that Contains my Type Writers. This was the tricky part to get my head around, since the Content Pipeline will only run on Windows and only at build time, so you don’t created a version of it for Xbox because you don’t need to. You use a reference to the same pipeline project in both your windows and Xbox Game Libraries.
  • An Xbox360 Game Library that is a copy of my Windows Game Library with some reference changes.
  • A Xbox Game Project that is a copy of my windows Game project with some changes to the references.

And now I also added Source Control to my Project, using Perforce (That is free for use with up to two clients, and I’m only one).

Here is a little video of it all running. Don’t mind the quality of the video because it was made using my fairly old digital camera.

WordPress Themes