I was pleasantly surprised when my fellow Hull Computer Scientist and good friend John Van Rij pointed out that my version of Sweepy Cleaner was listed as the 7th most “New and Impressive” application on AppFlow.
AppFlow describes a new and impressive app as one that was “released in the past few months and according to ratings so far is definitely worth trying”. That to me seems quite good 🙂
For those who don’t know AppFlow is an alternative way to find and view applications on your windows phone, in my opinion its 100x better than the built in marketplace and some of the statistics it provides are actually better than the Windows Phone Developer portal, create.msdn.com. But don’t get me started on that… It really needs some work. AppFlow is also one of the most beautifully designed Silverlight applications I’ve seen.
If you still haven’t downloaded and played Sweepy Cleaner it’s available here.
Thanks to all 320 people that have download the game so far!
It’s been a while since I’ve posted, but at least that shows I’ve been busy :).
Last Monday I had my exam for Quantitative Methods for Computing, having spent the previous weekend solidly revising I think it went pretty well. Not as badly as I’d expected, not as well as I’d hoped but good enough to get me a good grade in the module overall I think.
Since then I’ve been working on some of my applications. I’ve implemented Photo Highscores into Sweepy Cleaner and Evil Squash 2 and got a lot of the features working in my Hull Computer Science Blog application which displays the blogs of all the computer scientists at my university as well as shows off some featured applications by students in a random order and allows users to go directly to their Marketplace page to download them.
Speaking of the marketplace I’m very happy to announce that Sweepy Cleaner has had over 200 downloads already — 218 to be precise — and has been enjoyed and reviewed by people as far away as America and Australia. 🙂
Tomorrow I have my programming 2 examination, having looked over the previous 3 years’ past papers I don’t think I have anything to worry about. Programming the apps I just mentioned has almost been like revision — there’s nothing quite like doing something in order to revise it.
Thats all for now,
This morning I handed in ACW 2 for programming 2, A.K.A Sweepy Cleaner. I’m quite happy with the design of the game, particularly the fact I built it so that adding a new level requires only 4 additional lines of code and the relevant graphics. Below you can see some screen shots showing how it turned out:
My time to present my code to my programmer lecturer is midday Friday, so I’ll update the blog then letting you know what grade I get. Friday is also the day the game should go live on the Windows Phone 7 Marketplace, subject to being approved by Microsoft, so that’s something to look forward to! 🙂
Once its up expect an update within a few weeks adding in some features which I’m working on now, including more realistic cleaner movement and additional levels.
I’d like to thank Shane Gravestock for producing all the music and sound effects for the game and Shaun Rhodes for making the game logo and the vacuum cleaner sprite 😀
Thats all for now,
I posted this video to Youtube today which details the advancements made with my Sweepy Cleaner XNA game project for my Assessed coursework 2 for the Programming 2 Module. As I state in the video its mainly for the benefit of my friend Shane, who has very kindly agreed to make some banging 8 bit tunes for the Marketplace release of the game, but it does give an overview of the game as a whole for anyone who is interested (you also get to hear my very weird voice).
3 Windows Phones, Running 3 different versions of “Sweepy Cleaner”
Nick took this photo today of 3 windows phones running three different version of “Sweepy Cleaner”, the all action domestic cleaning game. I thought it was interesting how, given the same brief, we had all came up with different implementations. John’s version, shown on the cyan Nokia Lumia 800, has a really cool attract mode on his menus with an artificially intelligent vacuum cleaner picking up dirt, whereas I’ve gone for a metro style menu with a simple, pre set, vacuum animation. (By the way, check out Johns Blog here)
Even in the actual game we had all gone for slightly different implementations, my game (shown on the Black Samsung Focus Flash) respawns your vacuum in the middle of the screen if you loose a life by touching the edge of the screen or the furniture whereas Robs game (shown on the HTC Radar) bounces you away from said object at the speed you collided into it. Again, both ideas work, both fit the specification for the coursework, but both are different. This shows how creative programming can be. 🙂
Look out for all 3 versions of the game on the Windows Phone Marketplace soon!
Short version of this post: Randomization on a computer system is totally impossible, any “Randomization” you do see is purely clever deception.
Today I’ve been writing the Start Game logic for Sweepy Cleaner. One of the things I have to do during the start of a game is randomize the position of 5 pieces of dirt, and I have spent some of the night tinkering with getting things as random as possible. I say as random as possible because making random numbers is impossible, a number is selected based off of the exact time of the System clock in your PC or on your mobile device. You can prove this with the following C# code:
for(int i = 0; i < 1000; i++)
Random r = new Random();
int randomInt = r.Next(0, 3000);
Console.WriteLine("Random Number: " + randomInt);
For me this outputted “Random Number: 1742” around 500 times and “Random Number: 2818” around 500 times. This is because this entire loop takes place in just a few milliseconds, not allowing for much change in the System clocks time. Producing lots of identical numbers in a short space of time can be a pain, especially if you want to initialize a game quickly but want random locations for dirt like I do. The solution I found is simple, pause the thread for a “Random” amount of time as well before each pass.
Random RandomX = new Random();
x = RandomX.NextDouble() * (RandomX.Next(0, 800));
Random RandomY = new Random();
y = RandomY.NextDouble() * (RandomY.Next(0, 480));
This makes things a little more random but as I said at the beginning Randomization on a computer system is totally impossible. If this makes little sense to you think about what a computer is (an arithmetical and logical processor), there is no such thing as random in Logic, hence there can’t be in a logic system. 🙂