Skip to content

Challenge #3 – Day 7

Monster icon created!  Mazes left random, and it seems to work pretty well.  Sometimes I get locked into the entryway, but I’m pretty okay with that since it’s so easy to restart.  I did add some code to make sure I wasn’t locked into the opening square, so that’s good.  I’ve also added basic keyboard support.

In the end, I’m a little nervous about releasing my code, since it can be reverse engineered so easily.  I wonder if people are going to pull apart all of my hard work and laugh at some of the hackneyed things I did in making this game.  I mean, .NET Reflector is probably a tool everyone uses to check up on other shop’s techniques, right?

Anyway, final weigh-in is 86.7K.  We have a splash screen, a main menu, and a game that resets itself on success and failure.  All of the art was custom-made, and I personally consider it hideous but functional.

This means I’ve completed my first XNA7day challenge.

How awesome!

Challenge #3 – Day 6

You can tell I’m getting close to the end, because tonight’s update only touched two files.  ;)

I removed the special-case exterior walls, which were being rendered and checked for separately from the potential internal walls.  Now, every wall is the same kind of wall.

Rather than representing things by room and hooking them together via linked lists (a solution I employed to solve a similar problem almost a decade ago), I just used a multi-dimensional array of boolean values for whether or not a given wall existed.  That made rendering a lot easier too, though I had to play around with rectangle sizes to get the walls to fit together in a reasonable fashion.

I only need to create my monster icon, and then make the mazes slightly less random; as it stands, the endpoint can be completely blocked by walls (accidentally) in some cases.

87.2K tonight.  Not bad!

How svelte!

Challenge #3 – Day 4

Man, today was a long day at work.

But I still got home and did some xna7day.  Luckily, I set some reallly simple goals for myself last night, and I’m already done!  My little guy moves around on the screen, hits the blue square, wins the game.  He’ll also lose the game, if you just stand around long enough (about a minute and a half!).

Tomorrow, let’s try randomly generating some walls.

86.7K?

How did that happen?

Challenge #3 – Day 3

Character movement marked off the list!  The character does this neat fake walking thing, which is accomplished using SpriteEffects (to great effect).  The character even stays within the borders which were created last night; great news!  Also, the timer works exactly as I wanted, halting the game if the time is reached, so that’s done as well.

Tomorrow, I want to randomly pick a place on the map as the endpoint, and shade it blue.  I also need to ensure that the game restarts as appropriate when that spot is reached by the character (or when the timer runs out).

89.2K!

How on time and in budget!

Challenge #3 – Day 2

Still on the XNA7Day thing!

Last night, I decided against the story screen; we go straight from splash to menu.  The menu is totally retro.  I love it!  It has a lovely juxtaposition with the sprite text used for the actual menu options, which is not retro at all.

I also made my first stab at the character art.  Front & back views are pretty good, but the side view is funky.

Today, I started work on the gameplay screen.  Currently, all that renders is a border for the maze.  I think I’m going to make a timer which is the sun setting, and try to do something nifty with gradients and shading so that the sun changes color as the day goes on.  Tomorrow, though, I need to get my character moving around in the area where the maze will be!

Also, I probably need to try to draw a monster and a damsel at some point.

87.4K at the moment, of which 20K is splash & title art.  An additional 10K is used for a small audio clip, and a final 8K is blown on a second font file.

How extravagant!

Challenge #3 – Day 1

I’ve decided to give XNA7Day a try.

This one is interesting, in that the resultant, compiled files need to weigh in at less than 100K, total.  So, every decision made during this project will require a careful consideration for that decision’s impact to the overall space allowance.

I’ve already begun work by taking the GameStateManagement library I put together for Unlink & Celestial, but with some modifications to make it as ultra-slim as possible.  The first thing I did was enable compression in the Content Build section of each project.  This made for some sizable & immediate improvements in my art, font, and audio choices.  Secondly, I dropped all of the debugging content from the Release build, so that I can judge the final size w/o unpacking the CCGAME.  Finally, I’m going to scale the game down to 480p, so that my art can be made smaller as well!

I’ll likely create a small script or app to gauge the final size of the Release folder, adding it as a post-build step so that I don’t have to check the folder manually.

As for the game itself, I think I’ll make a simple, top-down, maze-walk game.  Get to the center, win the game.  I might make the maze auto-generate, if I have time.

At this time, the game starts and displays a (miniaturized) RM splash screen.  ;)  Next up:  show a quick story screen, and then head into the main menu!

How magniloquent!

Revision 54

I’ve done further work to fix MU crashers.

With my solution, there can be data loss in some situations (namely if you select the MU, then remove it, then quit the game).  I was thinking about making the save auto-failover to the HDD, but I’m pretty sure folks might not like that, if their HDD save were wiped.  So, the key thing here (I believe) is that the game doesn’t appear to crash anymore.

At one point during my testing I did get a chance to see my error handler throw an exception to the screen.  That was pretty slick; I’d forgotten that I added that!

Also, under the advice of some of the XNA forum folks, I’m going to review about a dozen games before I head back in to repost Unlink.  It feels ready to go, but I want to try to improve my reputation on the boards before I put it back up.

How thoughtful.

Revision 53

It’s been a good long while since I posted an update!

More MU bugs were found, and so I went back and made some significant revisions to my data management code.  Additionally, I worked out some better error handling, so that when people post bugs in the future, I can get more specific information.

I’ll try to work on this more tonight.  We’re coming up on the 1 year anniversary of when I thought I would be done with this project.

How lackadaisical.

Revision 52

During Peer Review, a serious bug was detected when a HDD and an MU were both present in the 360.  It was such a serious bug, that it would actually hang the 360 completely, requiring it to be hard terminated.

The fix was simple, and it only took about 20 minutes to identify (once I owned an MU).  However, now I get to wait 7 days before I can re-upload my game.

Seven days seems somewhat arbitrary.  On the one hand, I can understand incurring a cost when attempting to publish bad code; it will certainly make me do more in the future to ensure I don’t get fails.  However, I think 7 days is a pretty significant cost to incur.  Perhaps 3 days would be more reasonable, with an escalation to 7 days if the product continues to fail peer review.

How contentious…

Day 1

I began work on the renderer for Celestial.  It’s necessary groundwork, to understand how the room files will be generated by the Editor.

I ran into a RIDICULOUS issue around serializing Lists of Lists that kept me wrapped up for several hours.  But I finally got that wrapped up to my satisfaction.  So, now I can stack barrels on top of each other!

How tidy!