Want a game where you can jump on people's heads to escape from people on a zombie walk? Want a game where you can parkour on rooftops with a bunch of weeaboos? Want a game where you can catch pizzas thrown by robots while you jump between airplanes? Star Runner has all the excitement you're looking for!
Available for Xbox 360 on XBLIG and coming soon for PC through Desura.
I haven't said much lately, but that's because I've been working at finishing the game! It's taken longer than I'd hoped, but a large part of that was the decision to create (and test) a PC version. Expect to be hearing news about that soon!
I decided to change the title from "Runner Girl" to "Star Runner" in an attempt to be less assumptive about gender and to not step on the toes of apparently preexisting uses of the term "Runner Girl". Also, I think "Star Runner" sounds more like a late 80s/early 90s videogame title.
The game has been submitted for peer review on Xbox Live Indie Games, and is prepared for a same-day PC release on Desura whenever it gets accepted. It'll be 80MSP on XBLIG and $1.99 on Desura.
Honestly, I had been pretty anxious about the state of my career since the notice about XNA being discontinued. When the Xbox Reveal came around, I started to scramble and read up on the PlayStation Mobile service, find out what was going on with the Ouya, and see how much 3DS development would cost.
Then, E3 came by and the path seems pretty clear. I'm going to move into PlayStation development.
Even before any of these issues came up, my plan was to make three games for XBLIG and then look into porting to other systems. I'm still going to follow that plan and get a foundation in XBLIG since I've already built an engine for it. But, the question of "What system do I move to" has been answered.
I'm curious to hear more details about their self-publishing service, and how this works between the PlayStation 4 and the Vita. However, at least I can say that I'm eager and excited about this generation, rather than worried and anxious like I had been recently.
I wanted to make some promotional images, so I hastily copied over a Windows version of Runner Girl. After taking a couple screenshots, I searched for a program to record GIFs from my desktop. I minimized the game, downloaded and installed a program, and when I brought game back up...
... This... Is not what I was expecting. It did make me smile, though. This is the fun kind of error! This is a rare gem. I had a vague concept that my data was being overwritten at some point, but I didn't really know why. This seemed like something that might happen in a C program, not a C# program. Was memory for the graphical data not reserved for some reason? Or, were my Texture2D variables actually dead and I was drawing from memory locations that only happened to remain intact in the sterile environment of the Xbox?
Apparently, when the window is minimized, the GraphicsDevice class lets go and the operating system is free to use the graphics memory however it wants. When the game takes control again, it returns to those memory locations to discover... Well... What you see above. Random data, parts of my desktop, and misplaced game data.
In most cases, this doesn't seem to be an issue. I tried a couple of 2D tutorial games I'd found online and none of them have this issue. It seems to be something related to my use of RenderTarget2D. To explain a bit, it's way too slow to draw my maps tile-by-tile every time Draw is called. To get around that, I draw my map tiles to a RenderTarget2D when the level is loaded, then just draw that to the screen. The tutorial games just draw their small maps tile-by-tile, with the tiles being Texture2D objects directly loaded through the Content pipeline.
But, enough talk. What's the solution? During level load, I use the GetData function to store the pixel data to an array... When the game is brought back from being minimized, the IsContentLost flag on my RenderTarget2D is flipped and I use SetData to dump the array back in there. It seems like a silly an inefficient way to do this, but it works and it only affects the Windows version, and only when someone minimizes the game. This doesn't seem to be possible on the Xbox, considering that the game closes completely if you try to do anything else. I'll also take a moment to note that RenderTarget2D.RenderTargetUsage doesn't help. Setting that to RenderTargetUsage.PreserveContents during instantiation did nothing. Not sure if I missed something, but either way, the above method does what I want.
Anyway, the point is, I can now take pretty screenshots and make GIFs and videos and stuff. Pretty cool. This program doesn't really keep up with my framerate, though... Oh, well. I'll find something. For now, I'll leave you with what the above image was SUPPOSED to look like.