GP2X Tiny Critters


Stuckie

Member
Joined
Apr 7, 2004
Messages
492
Age
38
Location
Tired, and sleeping in the basement...
Website
www.stuckieworld.net
Heya :)

Contrary to popular belief, I've not been a lazy git over the months.. I've just been lurking and getting on with uni stuff and so on... so I've made up for it with this long, rambling post ;)

Anyway, I've decided to try and fill in a gap in the homebrew games that everyone seems to scream for at times. My answer to this is a demented action-puzzle game, Tiny Critters.

A quick overview of the game (hastily written at like 3am in the morning the other day, does it show? ;) ):
In the land of Alvonia, there are two main types of creature.
The Critters and the Beasties.
Critters are what can only be described as fluffy yellow things with big feet. Whereas the Beasties are fat red things with horns, big teeth, and a pointy tail.
Also, Critters are quite docile creatures, as well as being incredibly stupid, with the Beasties being vicious and with a taste for Tiny Critter.
Although this might seem doom and gloom for the Critters... save for a few rogue Beasties getting over the mountains, they're separated from their hunters and live quite happily.
However, an evil wizard, Taz, has descended upon the land, destroying the mountains which separated the Critters from the Beasties, and now the Critters need your help!
Try and save as many Critters as you can by leading them to the safety of the caves, away from the Beasties who are too fat to squeeze into them.
Luckily, the Beasties are just as stupid as the Critters and only seem to bounce in straight lines, tending NOT to chase the Critters unless they're in their path.
As a young wizard yourself, you are able to cast walls to deflect the Beasties away from your Critters, as well as placing guide markers on the ground for the Critters to follow. The Beasties can also follow these guide markers, so you may be able to use this to your advantage to lure them away from your Critters.
The problem is, being a bit of a novice to the arts of wizardry, you can't maintain too many spells at the same time, so you will be limited as to how many walls or markers you can create per level. Luckily, you can always recall your spells when they are no longer needed.
But you must hurry! The Beasties are feasting on the poor defenceless Critters! You must save as many as you can!


"Sales blurb" aside, basically you can think of this as mix of Chu Chu Rocket, Lemmings and (in my opinion) the best Lemmings clone that was released, Troddlers. You control a Wizard (who I prolly should name, hehe), as they try to guide the Critters from A -> B by use of guide markers (the arrows in Chu Chu Rocket that control where your mice go ;) ), and walls (that the Critters will hit and turn in a clock-wise direction, whereas the Beasties will just hit it and bounce the other way).
Sounds pretty simple, and it would be if it wasn't for the fact that I'm an evil sod and it features a set amount of Critters to rescue per level, a time limit, hordes of Rabid Beasties, a limit on how many markers and walls you can have placed at one time, and random level generation ;) Though I'd probably include a proper set of levels as well. The Beasties will also attack your character, but the Critters will generally just ignore you and carry on regardless.

I actually already have the game logic done (the random level gen. bit being specifically worked on), as I started it for one of my courseworks earlier this year, I just need to work on the graphical interface and squeezing it down on to the GP2X's screen, and that's where I'm stuck at just now :)

Being a top-down tile-based game in nature, and having large sprawling levels, I'm not quite sure on what tile sizes I should use (or can get away with, to be honest).

I've done a quick throw-together of 3 tile sizes (20, 30 and 40px squares) with concept art of the two main sprites on the screen size of the GP2X, along with a rough idea of how big the HUD is gonna be. I've already viewed this image on the GP2X itself and it looks like I might even get away with 10x10 at a push (though would prolly need to find a pixel-artist who loves making incredibly small sprites ;)).

size%20test.png


The original proof-of-concept had about 100 odd Critters running around on-screen at any one point, along with about 30-40 odd Beasties trying to eat them. Seeing as there will obviously be a lot going on, I don't want to overwhelm the player with a screen full of tiny 10x10 sprites running amok, nor do I want to have massive 40x40 sprites where the player can't see what's going on around them (Ofcourse, a mini-map would help in this respect, hence the large HUD placekeeper).
Culling back the amount of sprites that will be in the level at any one time would also help, including the level sizes (they're something like 80x80 tiles in the proof), but that would kind of knock off the frantic Lemmingy-ness I'm going for.

So what's the general views on my rather bizarre game idea?
Firstly, tile sizes.. ofcourse without a proper playable mock-up, it'll be hard to judge at this stage, but I'm thinking that 20x20 seems alright. What about you lot?
Secondly, please don't ask for the proof-of-concept... it was done for a coursework submission on PS2Linux (using nCurses of all things) and the only bits of sourcecode I kept were the level generation and AI (the important bits), I will have a mock-up done as soon as I can, so please be patient :)
Finally, you're going to have to be patient anyway, as I always have a lot of stuff to do at any one time so hassling me to release things will get you squat ;)

Before I run off, here's the two original concept drawings I did for the Critter and the Beastie:
http://gamez.stuckieworld.net/gamez/tinycr...tinycritter.png and http://gamez.stuckieworld.net/gamez/tinycritters/beastie.png

My art isn't exactly the best, but it fits the game style I'm going for -- cute and cartoony. The game is just meant to be fun and if the proof was anything to go by ( there were always a few people loading it up in the labs to play it at times, hehe) it should be a fiendishly addictive little game.. pretty much like the three games it's heavily influenced by -- Lemmings, Troddlers and Chu Chu Rocket, of which I highly recommend to anyone who hasn't had a chance to play those gems yet.
 
Sounds like a good conept! And also the games you mentioned are in my top20 games :)

And did I understood it right, the beastie's will attack the player as well? So the player is walking on the playfield just like the critters and the beasties? That sounds like a great idea!

The tilesize, I'd stick with the 20*20 as well, the other are just too big. With the 30*30 you just coud have a field of 10*8 tiles if there isn't any hud, but that will be there for sure. So I'd use the 20*20.

I hope the random level generator will output some levels on a high niveau, that would be awesome as well.

So Good Luck with your project!
Cheers, David
 
DaveN posted on Jul 26 2006 at 03:28 AM said:
And did I understood it right, the beastie's will attack the player as well? So the player is walking on the playfield just like the critters and the beasties? That sounds like a great idea!

Yep, the player walks on the same field, much like Troddlers (which is probably has the biggest influence on the game idea, to be honest).

The random level generator certainly output a wide range of levels and did some checking to make sure they could always be completed. They did range from insanely easy to ludicriously difficult.. it will probably need to be tweaked again as 80x80 maps will probably be a bit too big ;) and my pathfinding and checking algos would most likely need a re-write to run as fast as possible on the little GP2X. I'll also have a look into seeing if I can make it semi-predictable so you can play on random maps of a selected difficulty, rather than having pot luck... cause it was rather evil at times, hehe

DaveN posted on Jul 26 2006 at 03:28 AM said:
So Good Luck with your project!
Cheers, David

Thanks :)
With any luck, I'll have a working proto-type within about a month.. like a one level demo or something to check tile sizing and so on, but I'll basically be posting in here like a "developer diary", which could prove useful to those wanting to start making games.
Give them an insight as to what's involved in what's basically a 'lone-wolf' setup (I do everything -- code, graphics, music and sound .. though sometimes get help for my crap graphics ;) ), and programming things in general :)
 
Last edited by a moderator:
By the way, you may want to ask a mod to move this topic to the GP2X-General forum. Most of these 'Work In Progress/Diary' threads are there as well and you'll get more attention and feedback there.

And the graphics really aren't that crappy, they fit in really well to this game. As I read the description, the creatures in my imagination and the drawn out one's above were really close.

Cheers, David.
 
DaveN posted on Jul 26 2006 at 03:56 AM said:
By the way, you may want to ask a mod to move this topic to the GP2X-General forum. Most of these 'Work In Progress/Diary' threads are there as well and you'll get more attention and feedback there.

I thought about that, but there's mostly a lot of the newer members posting for help on whether to get the GP2X or not, and other general stuff (surprisingly ;)). So I stuck it in here so it's easier to find (for me atleast, I don't have to scour through half a dozen pages to get to it ;)).

Any half decent release would probably get a news post anyway, which will bring some attention to it, but considering I don't really have a working proto-type to show off yet, I'd rather leave it in here till I do at the very least.

I got a slight problem with my sprite list just now (it doesn't seem to add new members, just re-use the first two nodes.. rather annoying), but should be able to get it sorted fairly quick and then I can get started on this thing proper.
 
Last edited by a moderator:
I've done some of the sprites already (ouch drawing in 20x20px squares takes a bit of skill), here's how they look:

crittersheet1.png

beastiefront.png


Not too bad I guess, hehe..

I'm hoping to get a quick stress-test thing coded over the weekend to see how many sprites I can get running about on screen before the GP2X starts buckling, specially while playing a MOD file in the background (which seems to be a bit processor intensive, from looking at various people's experience, and my own with GP2XTong a while back)

Course, for a bit of fun, I did this quickly --> http://www.stuckieworld.net/files/demos/gp2x/snake.zip <-- it was actually done a while ago (20th March to be exact, my birthday, lol), but not really released. It's a port of something silly a friend did in SDL as a bizarre screensaver thing. It's got windows exes aswell if you can't be bothered to copy it over to the GP2X (you can't quit out of it on the GP2X.. need to turn it off after you've melted your screen with colour ;)). The music is "Happy Mushrooms" by Maktone .. which I thought fit rather well, hehe.. Snake.exe is a direct port of Snake.gpe .. to put it on the GP2X, copy snake.gpe and music.mod to any folder you like and run snake.gpe.


Unfortunately, I have a maths exam to do in about a week's time so I'll be working more for that than on this, but it shouldn't take long to fill the screen with hundreds of Tiny Critters and to push in the basics of the game to see if it'd work on the GP2X (in regards to controls and screensize), so I should have something done by Monday.

I'll gibber some more randomness later ;) For now, you can laugh at my crappy art, and the concept design a friend did for the Beastie jump animation:
beastiejump.gif


(still trying to figure out who's more insane -- artists or coders ;))
 
Well I finally got round to trying to kill my GP2X with as much list operations and things on screen as possible.. and although it slows down, it's still reasonable considering just how inefficient I wrote this thing ;)

Here's a little of example of something that you really should never ever write:
Code:
			if((buttons[SDLK_LEFT]
			#ifdef GP2X
				|| buttons[GP2X_BUTTON_LEFT]) && released == true
			#endif
			#ifndef GP2X
			)
			#endif
			)
			{
				released = false;
				if (PLYR.x>-1)
				PLYR.x--;
			}

Part of the reason for this nonsense is that on the PC, using the keys you can press LEFT ARROW and UP ARROW to go UP-LEFT ... on the GP2X, UP-LEFT is an actual button and if you hit that spot between UP-LEFT and LEFT, you'd go LEFT-UP-LEFT .. if that makes much sense.. hehe

But I really should have behaved myself a bit.. the code is written inefficient on purpose to see how much I could get away with (I'm doing 2 loops of the Sprite List inside another loop.. one to draw the sprites, then again to check every single sprite against the list to see if there's a collision.. yet when it slows down when half the screen is filled, it doesn't get any slower which I'm really surprised at, I expected it to crawl)

Anyway, as a quick test.. I have an unlimited number of beasties (complete with the bounce animation ;)) attacking stickman and you can beat them back with mutated american footballs.

Couple of problems I've noticed so far, when moving, the directions can "stick".. and when you die (after being hit three times), you can't quit.. yet you can quit when you're still alive (press START+SELECT at the same time to quit).. which is a bit bizarre.

A Win32 binary is included where the controls are the Arrow Keys to move, and WASD to fire, whereas on the GP2X, the stick controls your character and YAXB fires.

massofbeasties.png

http://gamez.stuckieworld.net/gamez/tinycr...sofbeasties.rar

Course I don't know WHY you'd want to download it unless you were REALLY bored ;) but it's there anyway.. hehe
 
Well, I'm now able to show an in-game screenshot of what I currently have.. wanted to wait till I had a few things working before I decided to show-off a bit ;)

screen1.png


The Critters (and Beasties for that matter) will turn 90deg clock-wise everytime they hit a wall, or will turn to face whatever way an arrow tells them to (arrows being what your character, that funky looking Wizard with the big eyes, places to "direct the traffic" ;))

Seeing as I'm evil, the levels themselves are rather big, hence the need for a mini-map in the bottom right corner. That mini-map took a while to get working properly and I'm not so happy about the placement as if I want to do bigger horizonal maps, it's not going to work right... I'll prolly remove the Tiny Critters logo thing from the status area as there's a few bits I've missed out (like a Time Limit *evil grin*) that should be there.

But basically, at the moment, it loads in a relatively complicated map (to make sure that those buggers bounce off the walls and turn properly), the player character can drop arrows to influence the direction of the Critters (and the Beasties eat them and follow them too ;)), and the Critters come from those door things and can leave via another set of doors elsewhere in the level.

The Wizard can't be eaten by the Beasties yet, nor can the Beasties eat the Critters, but that's relatively easy to do, and I haven't got a simple animation done for them anyway.
Score-wise, I've not decided how to work it out (at the moment, it adds 100 for every spell you cast, which is a bit silly but meh, needed to test it somehow)
You can't cast walls yet (though I also haven't got space in the status area to show how many spells you have casted or how many you can sustain).
And there's a few other niggles I need to sort out.. but the basic game seems to work, just need to fine-tune it to make it more fun and insane :D

Oh and speaking of The Wizard, here's the concept doodle of him:
wizard.png

Not inspired by a certain Final Fantasy character, honest! *cough*

Anyway, I should prolly get back to work and stuff.. games don't write themselves and I'd like to have something a bit more playable before releasing anything to the hungry hordes ;)
 
Looking really good! Reminds me of 'Creatures' by Thalamus. Remember that old 64 game? That rocked...

Keep up the good work and keep us posted =D
 
Cool game, keep us posted with screenshots and updates as they come along :)

- Alex
 
Back
Top