A brand new game
for Windows, HTML5, iPhone, Android TV and more,
Folk who previously visited my DSBrew site will now find themselves plonked into this site.
This is AGameAWeek, and here I write a game a week! Just as it says!
I opened up my own little DSBrew site a while back, and started cataloguing DS games, but soon realised that keeping a DS Homebrew catalogue + writing a game a week didn't really work that well together, so DSBrew got left behind.
Up until today I've left it be, rotting away in an unused corner of the internet..
But.. There have been 4 new members join the site in the past couple of days!
It's a bit weird, considering no-one's joined there in the past 3 or 4 months.. The total is now 14!
And, really, I'm not sure if they're spambots or not.
I'm not taking the chance of spambots infecting my otherwise clean server, so.. Off it goes.
DSBrew's now an officially dead website. What was is no more..
For the regulars, normal Alien Deathmatch blog stuff is inside..
Today I started on the online highscore stuff.
Having sat playing AD2 for a while, again, last night, I figured I'd better get a move on and finish the basics off.
So, into the database we go, and I've set up the tables. I implimented the basic checksums to ensure each level is unique enough to qualify, and I additionally added a secondary "Bag" table, that can hold new levels until they're ready to be downloadable. Always something new, ready and raring to be sent!
Next up, work on the script that handles it all. Should be fun!!
I might also add some kind of web-based system, too, so you can check out the online highscores from your browser. Although I'm not too sure how that'd work, what with there being an unlimited number of levels, and all!!
For reference, this is the previous game's Online Highscore thing. It's not all that fancy, but it's good for checking out the latest scores!
Might be fun to turn that into an RSS feed this time..
Today I did a few fiddly little menu based things..
1. The menu->Level switch now plays the "Beeeoooo-weeeee!" sound as the level starts.
2. There's a progress bar whenever a level is being rendered. ('cos it takes a teensy bit longer than it should! 160x160 tiles over a 5120x5120 pixel area!!)
3. When you die, you now go splatter, as opposed to the game just stopping, and unceremoniously dumping you back at the menu again.
4. The screen fades to red, then black when you die, and then waits for your name if you've got a local highscore..
All those things should be expected, but weren't in the game until this morning.
But now they are, so the game's a little closer.
I've also been tweaking some other ingame things..
1. I was still not sure about the AI, but a bit more tweaking this morning left me a little less alive, more often!
2. The Green and Red splodge weapon was never that great, so instead of being a slow moving blob of blobs, it's now a slow moving blob of Kabloowee... It leaves the same blast wave as the little red bombas do, making it a much more powerful weapon.
3. Upping the power of the Blue Swirly Laser thing because once you got up to the really tough alien, it was hardly doing anything.. And what's the point of a "Super" weapon if it's not doing anything?
4. FINALLY getting rid of that silly mousepointer, ingame, and replacing it with the crosshair.
Meanwhile, I've still not added any online components, whatsoever, but I am at least considering some nice new elements for the game itself, which should be easily doable. :D
It's getting there! Slowly but surely.
I got the levels to doodle themselves, and everything swooshes around quite nicely (if a little blocky!)
I've had to implement a menu buffer image to keep the speed up (even if it is still a teensy bit slow) but everything's looking good for the menu.
At this point, I'll probably have a "Hold mouse over X object" thing to reveal the scoreboards, or something, because I'm not entirely sure that it'll all fit in the space available.
Still, it's nice to have a menu system, and with that, a working editor, and some nice saving and loading, this game's starting to look more and more like a complete game every day.
Shouldn't be too long, now!!
.. Now to add the 17,000 possible control schemes that were in the last one..
Uhoh!! I see rewrites ahead!!
The main menu of AD2 is still pretty much a blank screen! Albeit a red blank screen, with a couple of white rectangles sliding into place..
So is the addiction of the game at this point, that it's quite easy to click the mouse, and accidentally play for 20-minutes.. whoops!
I have managed to tweak a few ingame things, though. And the Menu -> Game -> Menu transitions are more or less working, except for one small thing.
I'm not sure how to fade in a level, at this point.
The last game started off with the small image of the map, it scrolled to the center of the screen, and then zoomed in to become the real map.
This time, that can't happen.
Unfortunately, the switch from 3D background to 2D background has killed that nice little effect, so I'm going to have to come up with something nice, and fluffy, in a vein attempt to beat it..
I'm not sure what that is, though!
Last time in the main menu, you had lots of little maps to flick through. This helped you choose which map to play at a glance. Unfortunately, this time, that probably isn't going to work, since each map can be 160x160 pixels.. Unless of course, I only show a couple of maps onscreen at once.. Which I'd rather not end up doing..
I'm currently considering an on-the-fly map doodler.
The player clicks a level name on the left, the previous map slides out, and the new map slides in..
This way, not only do I limit how much is onscreen at once, but I can also redraw over the same map image, over and over again.. That's SO much easier to do, since we're not holding every single map in memory, all the time!!! (yikes!)
Also, I'm thinking that I might leave the map in memory.. I haven't added any real changes to the level at this point.. So, a level layout is always the same, even if you splatter it with blood!
What this means is, if you start the same level again, I can quickly get it going without then having to sit and re-render the whole map each and every time.
Obviously, picking a different map will require the re-render, but I'll probably be able to do that during the map doodler thing, and keep everything up to speed..
Either way, it'll mean you can restart the same level quicker this time, which is always handy.
Now, less of the typing.. time to get back to that menu.. again!
(Oh, and the editor now loads and saves without any issues.. I've been playing 3 or 4 different levels :D )
Another week working on Alien Deathmatch means another week that I've not done AGameAWeek, so it's back into the big bag of failures to see if we can dig anything new out.
But, the lack of anything new, and finished, doesn't always mean nothing on this Blog.. Let's bring back the old "Experimental" tag from way back when, and show off a few random bits of unfinished garbage.
Today, I really need to buckle down, and pad out the menu a teensy bit.
As you can see, it's... a little bit empty right now!
I'm still not sure how everything's going to fit onto the screen, but I found a nice font last night so it shouldn't be too hard to get everything nice and padded out, whilst still being jam packed with menu-style goodness.
After that, I really should start to add some kind of scores into the game! I haven't yet bothered to do that, what with all the testing and stuff, so it's about time it went in there.
Menu, scoring, multipliers, super-weapons. That's the main 4.
Once those are in, it's time to throw up a small demo edition for people to try out. With any luck, the game should work!!
Then I'll carry on building the editor, finish off the online highscores, and get everything neatly packaged for a proper release.
I'd say it should take no more than about a week, but then I also have to be 100% sure that the game's "DONE" before I upload it with the highscore system attached.
There's nothing worse than finding a stupid silly bug that people can score millions of points on, just after the thing's been uploaded!!
Yesterday was my long work day, and since I didn't get up until about an hour before I was meant to go, I didn't really get much work done!
Still, no matter, today's a longer day..
Unfortunately, most of today was spent playing GTAIV
... Note to those who are getting used to my "Play it, now make it!!" habit... I'm not going to make a GTA game!! That would be nuts!
So, there's nothing to report today, other than the fact that I'm enjoying GTAIV.
I'll get back to work tomorrow!
With the editor in, pretty much, full swing, I'm heading back to playing with the bugs again..
Having been undecided for a while, I eventually decided that the green bad guys should explode with a nice little puff of green smoke..
This is what happens when you turn off the death routine, fill the screen with Greenies, and then touch a Bomba..
Obviously that won't happen in the real game, because the Greenie's would've killed you minutes before this situation arises, but even still, the framerate's holding on at 37fps.. That might not seem a lot, but this is running on my rubbish "Let's check it works AT ALL!" Celeron system, whilst Winamp's playing the Sonic R soundtrack in the background...! (Winamp takes a lot out of a Celeron, these days!!)
So, I'm pretty happy that the game will keep on ticking.. Nice to know!
More to come!
I'm quite happy with the level compression, now. Things are nice and trim, and everything's fitting into a small enough area.
So, today I'm thinking about how the server should work.. Note, I've not added the server yet, but I'm definitely getting prepared! What I've decided to do is implement an Author name and Level name directly into the checksum.
This way, when the server checks your game for new levels, it can automatically dig out the new stuff, and it'll know what it's meant to be doing. You also won't be able to rename a filename, and have your own silly highscore, because you renamed someone elses level to "My Copy for My Highscore.lev!" or something.. The original name's kept at all times, so everything should be good.
As with AD1, whenever the game does find a new level, it'll nick it from you, and pop it onto the server. AD1 would send you two new levels every time you've played every other level, so long as there's any levels left on the server.
It'd be a bit quiet about this, though, so this time I'll make a bit more of a song and dance about it.
It'll tell you when it's stealing your levels. It'll stuff it into a great big bag of random levels, and then .. perhaps daily, it'd send you a new one. I'll get the server to pick a level at random, each day, and then send that out to everyone that plays. The level will of course be saved to your system, but it'll only ever be sent out once. If you miss it, you've missed it.... No going back!
My hope is, that if everyone gets the same level on a certain day, it'll lead to more competitive highscores. Whether or not that'll work, we'll have to wait and see.
Meanwhile, it'll keep track of the random bag of levels, and probably let you know how many are left.
I'm thinking that, maybe, if the bag gets below about 14 or so levels, that it could switch to a weekly level instead.. That way the game would last a little longer, depending on how many people are building and uploading their levels. Keep the flow going!
And that's a lot of work that still needs to be done.
Still, it's good to get these things written down, and the thought processes churning on.
Meanwhile, I have to come up with a nice menu system that's not as "Obviously just a big menu" as the last one. I say that, but there's still a whole lot of stuff to show onscreen, anyway!! If there's lots of levels, it'd probably be a good idea to shrink the text size down a bit so I can fit more onscreen. And then there's the achievements to fit in, and the online highscores, and message of the day, and a whole big bunch of other stuff, too. Whew!
I might nick the NXE idea of having levels above one another, highscores if you scroll right..
That'd be nice.. And since the PC doesn't have a really really really shit DPad, it'd mean you could scroll left and right without accidentally ending up in a completely different section, because you accidentally hit up.. .. Oops, seem to have whinged about the Xbox a wee bit there.. Still, this whole game's appearing because GW2's so damn blurry, so I might as well moan about other things, too ;)
More to come.. (game making, and possibly whinging, too!)
To stop my head from exploding from all the compression stuff, I decided to play with the theme tune, today.
First off, I tried something different.
It was rubbish.
Next up, I tried the old theme, but rejigged.
Today's work has been mostly of the external variety.
First off, compressing a level..
I'm taking 160x160 pixels, each one being around about 16 different colors (give or take, depending on what walls/floors/etc I bother to add.) and trying to bundle them up into a teensy tiny bit of data.
To me, compression's a fun time, where you get to play with lots of fiddly numbers, and chaotic maths, just to get large things down to size.
Today, however, .png is annoying me.
Because my 160x160 is down to about 3716 bytes and png's is 1007..
But at least my version is a neatly formatted string, and not a nasty mess of binary data, which means I'll be able to upload and download these things in a relatively easy manner.
I'm still working on the compression, mind, so I'll probably get it down a teensy bit further still.
Meanwhile I'm starting to think about the uploaded highscores, and how I'll be able to keep track of them. You might be aware that I've already created a nice highscore system for basic games, so I'll be nicking parts of that code. The checksums, the user handling, and things of that nature will be grabbed and used in this game, since they work well enough.
I'm also going to use shorter checksum values to check each level between the player and the scoreboard server. It'll help relieve the strain that the last one took. (The previous one used the whole level as a checksum, so entire chunks of data kept being sent back and forth each time you updated your highscores!!! Hey, it worked, stop moaning!!)
Hopefully I won't end up with any nastily clashing levels, and if there are any clashes, I'll implement some kind of double checking system to be sure of which one's which. (!)
With all this input/output/overthenetput work, there's not much to show off, really. But rest assured that the game's coming together little by little..
Even if it's not actually loading the saved levels, or doing anything over the internet, yet!!
Yesterday was spent playing with the editor some more.
As the game and editor become more closely entangled, I'm finding lots of little extra tweaks that need to be made to the game, so that the editor can be that little bit more complex.
Here's a nice list of things you can currently tweak within the editor..
The start weapon (1-16 so far.. there are 16 forms of Basic weapon, and then the Super weapons on top. I've yet to add any Super weapons, yet, though!) and also how fast the weapon builds up... Basically meaning that, if you wanted to, you could ensure the player never actually changes their weapon in your level..
The initial wave layout (1-17.. from "An alien" to "OMG!WTF! LOTS OF ALIENS IN A CIRCLE!!") and how fast the layouts build up.
The initial Alien (1-6 as before, but additionally the breeds too..) and again, how fast they progress.
The randomness of alternative breeds, so that Red Bombas, Pink Spawns and Yellow Bonus aliens can all randomly appear within other basic breed type waves. Keeps things a bit more interesting when the Spawn type starts appearing at the basic levels..
That's your basic tweaks, and there's a few extras in there, too. You can also disable the progress for all the settings, and even the random breeds, to keep your level within strict rules. Should be plenty to keep the editor peeps busy.
I should mention, at this point, that I've actually reduced the Bomba alien quite a bit.
Previously, the Bomba would explode with a nice radial swirly blob, killing everything around it.... Including you!
If the Bomba ran up to you (which they tend to do!) and then exploded, you'd be too close, and die.
It was a teensy bit unfair, to say the least.
So, taking a leaf from Geometry Wars 2 (hey, why not!) I've turned the Bomba types into more of a "That gate thing" type of alien.
The Bombas still go boom, they just won't kill you.
And if you step on one, it also goes boom.
In basic terms, it means that in the middle of frantic action, you can stop shooting, run up to a flickering red guy, and blow everything up.
In complex terms, it means you can turn up the Randomness of Bombas, turn down the evolution of Aliens, Turn off weapons, and you've got yourself the lovely "Pacifism" mode from GW2.
Now, that's progress!
More to come.
I'm ashamed of myself!
This site's meant to be a game a week. I'm meant to be challenging myself..
True... Making Alien Deathmatch 2 is a challenge all of it's own, but I was wanting my own special little site with it's own special little gimmick, and it'll all look a little bit worse for wear if I leave a second week without a new game...
So, let's have a rummage through Jay's directory of leftover bits, and see if we can come up with something special..
How about a brand new, previously unreleased edition of Stringy Things DS!
Today, I finally got around to making the editor. Starting nice and easily, I'll be adding bits and pieces as I go, so that .. hopefully.. when you get hold of it, it's not as empty as it currently is!
Yesterday I said I'd be working on something else..
I didn't! Alien Deathmatch keeps dragging me back in ;)
Today I played with the weapons a bit more, to try and get a nicer feel to all the different main weapons. I also messed about with Particles because unbelievably I'd forgotton to put the things in! Silly me!
After that, a teensy bit more Alien AI work, and some more background tweaks managed to keep me busy through most of today.
They're little things, really, but it's those small niggling things that keep you busy for ages, as you load the game up, and "Test" it for 20 or so minutes at a time..
And by "Test" I mean sit and play it for ages, and forget you're meant to be working on it!!
More to come.. If I can drag myself away!
*... quite a bit!
Since we're already up to Saturday, and there's still an amazing amount of work to be done, I think I'm going to bump the deadline for Alien Deathmatch 2.. (OMG!! Missed Deadline!! WTF?!!?)
So, with that in mind, and since we missed AGameAWeek last week, I'm quickly heading back to Wednesday Workshop for a nice quicky idea.. This week's challenge is to create a game that works just as well played with a pen and some paper, as it does ingame..
For my entry, I'm not 100% sure, but I think I'll probably do the good old Dots/Lines/Squares thing.. Where you start with a grid of dots, and each draw lines in turn to create squares.. You know the one.. You probably sat at the back of the classroom playing it, just like I used to.
I'll get that done nice and quick, so you can look forward to "enjoying" that on Tuesday, and then I get back to coding Alien Deathmatch some more.
The editor's been started, today, but only in so much as I realised I'd probably need a better zoom, cos otherwise the 160x160 grid looks kinda tiny..
Zooming's not easy in Blitz!
I won't post a screenshot.. you wouldn't be able to tell the difference!!
But there is a difference..
Today I spent most of my day working a little more on the "Building up" stuff. That is, setting things up so that you start off easy, and things gradually get tougher.
I've put into place a huge number of little variables, all over the place, that should help decide how things progress in a level. Again, these will (somehow?!) be accessible within the editor.. once I bother to start it!
But currently I can have chaos from the start, or a really nice paced slow build of doom.
So that's nice to have.
I also nipped back into the graphics and did a few nips and tucks here and there, as well as getting the Red Breeds to explode nastily, the Pink Breeds to do their "Release a Swarm" thing, the Blue Breeds to run a little faster, and the Yellow Breeds to drop Multipliers..
Then I removed the Yellow Breed's Multipliers! I'll probably get them to drop guns, or something, 'cos it got WAY too easy to keep your Multiplier thriving when they actually came towards you!!
I should probably point out that the Guns and Multipliers will pretty much work the same way they did before, except that when the Multiplier hits the bottom, rather than hitting 1x straight away, it'll start beeping, and then plummet from your current multiplier, back to 1x.. This oughta give you a second or so to find a Multiplier pickup, and save at least a small bit of it!
Seems a bit fairer.. It was no fun when you'd racked up a high multiplier, and then suddenly lost it..
Um.. More to come!!
Haven't done a thing, today!
Actually, that's not entirely true. I spent most of this morning playing about with the Enemy Spawning layout code, and tweaking it to be a little fairer.. One of my annoyances when playing Geometry Wars is when you're running in one direction, and a bad guy spawns RIGHT in front of you, giving you a fraction of a second in which to go "Oh, FFS!" and then die horribly!
Maybe I'm just rubbish at it (so says my gamerscore), but that always pisses me off.
So, I've tried to ensure that won't happen in Alien Deathmatch 2.
The game checks that enemy won't spawn at any point within a 0.5 second radius.. (3 pixels per frame x 30 frames worth = 90 pixel radius.. although I actually set it to 100, just to be on the safe side.)
I'll probably reduce the spawn time, though, 'cos they took way too long in the last game.
What I have been doing, today, is waiting for NXE to appear, and then pissing about with all the lovely new stuff.
Which, since I'm in the UK, and we don't have NetFlix is approximately bog-all.
The avatar's nice, and all, but.. it's severely limited.
I did make a very very rubbishy not-too-much-like Pikachu-ish gamer icon, though! So, can't complain!
Meanwhile I took some time out to play both Geometry Wars (woot) and it's headache inducing elder brother.. I lasted about 5 minutes on GW2, and currently have a headache.. GW1 was more fun, and I think I've picked up a few new AI traits that'll be plonked into the game.
I also considered creating some kind of proper Achievement system into the game, this time around, and.. since I'm so mindnumbingly rubbish at GW1 (I have a whole 3/12 achievements!!) I might even incorporate a type of Suckage Unachievement list... or something.. Although I'm not sure how easy that would be to do, since it would be pretty easy to trigger the unachievements by purposely sucking at it..
Might be tricky!
So, all in all, a nice day of *cough* Market Research *cough* that oughta keep me active for a while.
Tonight, I'll get back into the code, and hopefully get quite a bit more done.