Skip to content

Day 20

Tonight, I intend to work on an input handler for the StoryScreen, such that pressing any button during the story will skip you straight to the main menu.

However, I have to work through my pictures from PAX first.

How nostalgic!

Follow-up (11:20pm):
I actually didn’t work on the input handler tonight.  I finished up the timer for the pages, and now they deserialize from XML, iterate through on a timer, and switch to the main menu when done.  Tomorrow, I’ll work on the input handler stuff.

How procrastinating!

Day 14-19

I went to the Penny Arcade Expo this last weekend.  That was a lot of fun.  The XNA booth was pretty anemic, however, compared to some of the other shops that set up there.  It really surprised me that there was no DBP presence.

Also, I was surprised by the lack of basic functionality that a lot of the XNA games that were available there.  In some cases, cryptic controls and no tutorial made an otherwise beautiful game frustrating.  In other cases, a perfectly fun game was rendered unenjoyable as I had to jump through a series of menu-based hoops to get from level to level.

Finally, the guys manning the booth were busy handing out some pretty serious misinformation regarding trademark & copyright infringement issues.  It was a little unnerving to see those dudes as the face of XNA; maybe they were developers, and not marketing people?  I don’t know.

—–

I found out this evening that IntermediateSerializer doesn’t work on the 360, so I had to roll back to XmlSerializer.  It still works, I just don’t like it as much.  ;)

Also, I got some art over the weekend!!  Tonight, I wrapped up the code to present the story pages that I mentioned before.  All that’s left now is to figure out how the pages should transition.  I may need a StoryPageTransitionManager now, huh?

Anyway, still really enjoying the Subversion setup here @ dreamhost.  I’m making sure that each build that I check in compiles and runs, so no matter what happens, I’ll always have something available for DBP.

How forward-thinking!

Day 13

Today is my birthday!

Also, I’ll be looking into IntermediateSerializer for my XML needs.  I know I have a working solution, but I’d rather use the XML technology that’s available.  ;)

How pedantic!

Follow-up (9:15pm):
I implemented the IntermediateSerializer in my game saves; it’s very nice.  I’ll be using the ContentReader/Writer paradigm for the Story Pages, I think.  I think I need a StoryBook class to bring them all together.

But that’s for tomorrow.  Tonight, I’m having a birthday dinner with my girlfriend!

How romantic!

Day 12

Looks like a Content pipeline is going to be the easiest way to create my story screen.  I was surprised to see how similar the Content model is to simple Serialization.  Anyway, it should be as easy as creating a StoryPage class, or something similar.  Then, load them all up into a list from the XML, and iterate through them!

I am also, by the way, very pleased with the DreamHost setup.  It’s pleasant to use, easy to configure, and had everything built-in that I needed to get going.

How pleased!

Day 11

Today, I went to a fish fry instead of doing work.

However, while I was at the fish fry, I had some interesting ideas for driving my main menu & story screens.  I’m going to try to use XML!

The only way I’ve found so far to drive the main menu via XML is if each menu option transitions to another screen.  Then, I can assign an option a new screen, and let the transition manager take care of it.  However, that would mean I’d have to replace my “difficulty” menu item with an “options” menu item, and then the options screen would only have one item in it.  That doesn’t seem like a great idea for my current design.

For the story screen, though, I think it’ll work exceptionally well.  A story has pages, and each page has one or more lines & images on it.  The lines and images will have locations & ranges, as well as content – all of which can be easily stored in the XML.

I need to do some research tomorrow, to see if there’s an easy way in XNA to get at XML files stored in the game object.  In normal C#, you have to jump through a few hoops, and I hope that’s been resolved for this platform.  :)

Also, after my post last night, I tried my code on the XBox.  There were some issues with the timing of the GamerServicesComponent being added & used, but that was resolved with an Initialize() hack.

How exciting!

Day 10

I appreciate the irony of posting two days after I said I’ll try posting daily.

Yesterday, I did not get much done.  I sent an email reply to the artist, clarifying a point.  She definitely made more progress than me, yesterday.

Today, I shall strive to outpace her, however.  I have a standard workday ahead of me, with dinner plans set with some friends for 5pm.  I plan on working on the menu screen, as well as saving settings from said menu screen.  The menu screen should have a “Start Game” option, a “Difficulty” option, and an “Exit to Arcade” option.  Stretch goal for the day:  save the difficulty setting.

All of this, of course, means that I need to start slacking off IMMEDIATELY.

How exciting!

Follow-up (4:15pm):
Rough drafts of all items above have been completed.  We have a menu that now immediately follows the splash screen.  There’s no fancy background yet, because I haven’t figured out how I want the menu to look.  The “Exit to Arcade” command works, saving whatever difficulty you had set previously.

In Windows, it appears that the SignedInGamers collection is empty, so I had to do some tricks to get the filesave to work per-user like I want it to work on the 360.  I DO need to test the file save on the Xbox, to confirm that the per-user settings are retained properly.  Maybe I can test that tonight.

Difficulty is based on the built-in functionality.  And the GameScreen that’s in there now is just the default from the GameStateManagement sample.

Speaking of which – I’ve taken some code from the GameStateManagement sample, but also improved on it.  In their sample, each window seemed to be in charge of loading the next windows in the sequence.

I moved that functionality into a GameService, so that the GameScreen objects do not have to be aware of what follows them, and neither does the ScreenManager.  It’s all hard-coded now into a TransitionManager, but I think it would be pretty sweet to switch the transition elements into XML.  I’m DEFINITELY saving that for the end, though, since it’s not specifically a gameplay element.

Additionally, I’ve set up subversion, so that I can maintain my code remotely and not have to stress about anything being lost.  It should also let me share my code with the artist, as I progress.

Finally, I did a little work on the icons for the game executable.  Nothing I’m proud of, mind you, but I’m working towards an overall design that I really think I’m going to like.  Of course, the more I think about those things, the more work it means for the artist.  ;)

How exciting!

Day 8

From now until September 23rd, I’ll try to blog daily about my progress on my DreamBuildPlay game.  I hope that this will keep me on target.

I changed my game design two weeks ago.  I decided to try for something a little simpler – graphically, and programmatically.  If you’ve ever played Mastermind, you’ll be able to get the functional premise of the game.

Tonight, I wrote up the game flow, wrote out the basic background for the “story”, and designed the main game window.  I need to think about the menu options that will be available; I don’t want it to be too complex, since I hope to only have to implement one actual game.  ;)

Earlier this week, my artist joined the team by producing our studio’s AWESOME logo.  My first XNA implementation, then, was the splash screen for our game!

Which, by the way, will be called “Unlink”.  How exciting!

First Post!

This is the first post in the Red Mawashi Entertainment blog.  Please don’t expect much.