The other half…

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..

The little things…

Today I did a few fiddly little menu based things..

Things like…
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! 160×160 tiles over a 5120×5120 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..

Things like..
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. 😀

A level, selectable..

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!!

A Menu progressing….

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 160×160 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 😀 )

Menu Fail!

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!

What to do…

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!

Between you and the net..

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!)

A piece of music..

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.
It’s not terrible..

But it’s a shame that it’s not better.

I’ll be tweaking it along the way, and seeing what else I can come up with.

I’m not sure what’ll happen ingame, right now. The last game didn’t really need it, so I don’t think this one will, either, but if I feel it does I’ll probably head over to the ModArchive forum, and request whatever bits and pieces folk there can send me. It’s either that or you have to put up with even more of my rubbish music!

Aw well, enough playing with music.. Time to get back to the real work!

External Files…

Today’s work has been mostly of the external variety.
First off, compressing a level..
I’m taking 160×160 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 160×160 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!!