MTM2.com

A forum for mtm2 discussion
FAQ :: Search :: Members :: Groups :: Register
Login
It is currently Sun Nov 24, 2024 6:42 pm



Post new topic Reply to topic  [ 34 posts ]  Go to page 1, 2  Next   
Author Message
 Post subject: (OT) 'SplatMaze' game project...
PostPosted: Thu Apr 11, 2002 11:08 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
Hi all,

I figured I might start another thread for my splattable-critter-game-assignmnet-whatzit, now that I've got something that works in practice as opposed to the first thread that was just throwing theoretical ideas around...

Anyway, I've finally got a just-about-working version of the program happening, and I've posted it so anyone who's interested may download it, have a play around with it and maybe give me some feedback and suggestions (absolutely no qualifications necessary).

It can be had from my account on the university servers: http://athene.riv.csu.edu.au/~dcarr03/itc320/

or, just for good measure, I've also stuck it on Phineus' server: http://mtmtracks.cjb.net/d2s/SplatMaze.zip

A followup post detailing the intricacies of this thing will be forthcoming presently. Thanks y'all.

------------------
If it's a good idea,
Phineus has probably already done it.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 12, 2002 1:50 am 
Member
User avatar

Joined: Mon Jul 02, 2001 2:01 pm
Posts: 1426
Location: Lost in Translation
Ouch! That colors hurt my eyes. Mostly that white background and the mixture with the other colors.

Can't play it for long because it really hurts my eyes. Can't really suggest anything (yet) except an improved color pallette (if that is how you call it).

------------------
Idle hands are the devils playground!


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 12, 2002 1:57 am 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
Ok, first off I have to say that this turned out to take a lot longer than I thought. I figured it would be pretty quick to knock out a test version - I could use some of the code I'd written during prac classes in weeks earlier, and get a test version out for you netizens to test and critique for me... Instead I had lots and lots of problems with maze scrolling, sprite rendering, assertion failures, positional determination etc etc. (They were all logic problems - I didn't have any.)

Well, it works now; there's still a few glitches and lots of stuff yet to be worked out, but I don't think it's too bad for something knocked together inside of a week.

Anyway, this post is about you and me having a chat about this program (well you read my prattlings about it anyway), that you might better understand and be able to critique it for me...


Where to start?...

From the beginning I guess... The program is written and compiled using MS Visual C++ 6.0 Standard with the DirectX 7 SDK, here on my humble Win95 machine (gee whiz, program compilation takes a LONG time on this!), and has been tested with DirectX 8.0a runtime. We've been using the 8.0/8.1 SDK at uni and been getting horrid memory leaks with every program, but I didn't encounter any of that here, so it should be sound. You'll need DirectX 7 or later and that's about it... as longas your PC goes, it should run (it did on this dinosaur). Presently, it runs in 800x600x16 mode, so you'll need at least 1MB of video memory for it (which I don't think is asking too much).

At present I'm still using the bitmaps created for us by Jason, one of our lecturers. If you've already run the program you've probably seen that they're ugly as heck, but they'll do for working out the mechanics of the game. The player sprite (hereafter 'Zippy') is also still a poorly-drawn platypus that does not quite match the size of the tile elements of the maze it wanders around in, but it's free-roaming so this is not a problem.

The maze is made up of 9 tiles to form a world of 3x3 tiles, each with the same dimensions as the screen (which as I said above, is 800 x 600). Each tile is made up of 16 x 12 elements - walls, pickups etc. I'll have more to say on all this later. Do the mathematics and you'll see that this means that there are 192 elements per tile, and 1728 elements for the whole maze, which is quite a lot, so rather than define a maze I've written an algorithm to randomly generate the maze every time the program is run. Initially I was worried that this might produce some duff terrain, and sometimes it does, but from my testing it's turned out to be quite satisfactory so I'll probably just leave it as it is and just tweak the weighting for the random element generation depending on the feedback I get (IIRC it;s something like 50% is empty, 25% is walls and the rest is divided between holes, food and poison).

When playing, the maze continually scrolls around at constant speed - the direction and time (up to 10 sec of scrolling) is determined randomly. The player (as Zippy) has to navigate around, avoiding getting 'splatted', either by getting squished between a wall and the edge of the screen, or by running out of health. Zippy has a minimum move rate of 50 pixels per second, plus an extra 50 multiplied by his health as a decimal (so at 100% health, you can move 100 pixels per second). The maze scrolls at 60 pixels per second, so obviously you want to keep moving as fast as possible to negotiate the maze and not get splatted.

In the maze, blank while is empty ground.
The red-and-yellow crosshatched things are meant to be walls, and Zippy cannot travel through them (well, except for when the game glitches).
Food is represented by the red-and-yellow cans of Beans - if you run Zippy into them, he gains a random amount (up to +10) health which makes him go faster. As yet there is no upper limit on the amount of health you can have, so you start on 100% and can get well over 300% (currently record is 650+ set by brother, although that was with an earlier development version of the program in which you could still walk through walls).
Poison is represented by the skull-and-crossbones - if Zippy eats them, he loses up to 10 health, which makes him go slower, and if it reaches 0, he dies.
The round green things are actually holes - I was at bit of a loss for what to do with them, so for now they just halve Zippy's movement.

Zippy's current health is displayed in a read-out at the top left corner of the screen. When you first run the program, it will be paused for your convenience. You can press 'P' to pause/unpause the game. If you want out, hit the Escape key with enthusiasm to terminate the program.


Hidden goodies

The effects of my debugging and diagnostic work still riddle the program and can be called upon if you know the correct keyboard codes (just like with MTM2 in fact!):

Framerate counter: I have placed a framerate readout (to two decimal places) in the bottom right corner of the screen so I can monitor performance. Presently it defaults to on, but you can make it go away (and then come back again) by hitting the 'F' key. The program maxes at 60 fps, so the counter shouldn't go any higher than that. On my comp it was averaging about 10 fps in the screen mode it'd chosen, which probably isn't too bad if you consider what my algorithms look like! Some convoluted stuff, let me tell you. (Not that that has any more than a minor effect on the slowdown - the main culprit is DirectDraw, as bit-blitting at high colour depth causes the most lag.)

Maze Reader: each tile of the maze is really just a big array of integers. For stuff like collision detection with walls, and detecting whether we've just run over a pickup, the player sprite has to 'read' the maze. This is down to some tricky algorithms to quantify screen position of the sprite in terms of what element of the array we're looking at. While I was trying to get this to work, I made the program paint a number on Zippy's back so I could see what it though it was walking over. You can toggle this on/off by pressing capital 'M' (ie. Shift+M).

Diagnostic Readout: Debugging is practically impossible with a program like this, and when the above approach didn't give me enough information to work out what was happening, it was time to resort to the sledgehammer method of printing every variable involved - screen coordinates, world coordinates, tile numbers, array indices, the lot - onto the screen so I could see the numbers in real-time. The master switch is 'D' (that's capital D, mind) which will print out said values in a hefty portion of the lower left of the screen, as well as override the Maze Reader mode above.


Known glitches

Sometimes (on my computer at least) the game will hang momentarily to load a new tile from memory as the maze scrolls. Because the player movement is based on time elapsed to keep a constant rate of motion, it sometimes happens that Zippy will travel right through walls because the collision detection method isn't called until after it moves: ie. game hangs = long elapsed time = long distance travelled before the game checks where the sprite has got to).

The collision detection works by drawing an invisble bounding box around the sprite and reading the maze at 8 points along the sides of that box (in each corner, and the middle of each side). I fudged the collision detection method because I was worried about CPU time - instead of doing it the failsafe way of calculating the position of each point in the maze world from scratch, I just calculated the position of the middle of the sprite and then adjusted this for each point. This means that when the sprite is moving from one tile to another, some of those coordinate values become invalid, eg. when half of the sprite is on one tile, and half on another. To avoid errors I simply temporarily switched-off the detection of walls with the affected points while the sprite is in the transitory state, so it is posible to have weird things happen like running halfway up a wall where the tiles join. I've also had it appear to bounce or slide off walls in an unusual fashion one or twice (may or may not be related to the above) but overall I surprised myself in that it seemed to work quite well.


Things to do, and stuff I'd like help and ideas for

First, I want to make some nicer bitmaps. Still not decided on what critter I'll go for, but at this stage it's looking like I'll either stick with the platypus, or maybe some sort of lizard (chameleon or iguana) would appeal...

Do some sort of frontend for the game - just a dialog box window would do. Figure out how to Enumerate Display Modes, so the player can pick the display mode they want to play at before the game starts from said dialog window. Maybe even customise controls.

Figure out transparency so we haven't got an ugly green rectangle around the sprite...

As I said, the tiles are each set to the screen dimensions. I did this because in a tutorial we were meant to develop a scrolling circular world that used tiles that exactly fill one screen (640x480) though I note that's not a prerequisite of the assignment. Anyway, if I were to implement a method for picking what screen res to run at, I wanted to make the tiles scale so that someone running at 640x480 could still see the same area (in lower detail) as someone running in 1024x768. To make it exactly tile to fit screen dimensions of 640x480, 800x600, 1024x768 etc, you have to use a factor of four. The only ones I could work out that fit were 16x12 elements per tile (40x40 tile elements for 640x480, 50x50 for 800x600, and 64x64 for 1024x768), which I felt was too many elements per tile and too small for the elements I wanted to draw (especially for defining a maze!), and 8x6 (80x80 tile elements for 640x480, etc), which was too few and too big. After seeing the results of my random maze generation, however, I've come to think that maybe 16x12 elements per tile isn't too bad. So what I'm considering (if I do get EnumDisplayModes figured) is to draw my tile elements at 64x64, and shrink them for smaller resolutions. Just wondering if anyone else has any thoughts on this.

At present, there is no victory condition for this game - if you're good enough you'll just keep wandering around for eternity, I haven't even got it to keep score yet. Jason suggests:
You need to add at least one other challenge to gain the reward of finishing the maze (eg: picking up an axe, and breaking down a door to leave the maze). An invisible door exists, which becomes visible only when you have (say) achieved a certain amount of points, or picked up an axe surrounded by poison. I leave it to you to animate a platypus carrying an axe.
So that's one thing I need (hopefully I can do better than that example though!). One idea I had was the collection of baby platypi from the maze to open the exit? The problem is that it scrolls randomly, so it wouldn't be good to employ something that requires you head from A to B. Also some powerups (double speed, invulnerable) and useful items (freeze maze, etc) would be fun.

Finally (for this post anyway) I need help tuning the game, as I think it's probably a bit too easy to survive at present and needs more ideas... any suggestions on this - things like changing the proportions and types of maze elements, speed of scrolling and/or player sprite, and any other ideas for things to add to it (levels with increasing difficulty, victory conditions, scoring mechanisms...) would be most welcome.


You can read the assignment criteria at the following link, might give a better idea of what's needed: http://clio.mit.csu.edu.au/subjects/itc320/02_assignments/assignment1.html

Anyway, I'll be off for a day or two, so leave your thoughts and I'll come back to it when I get back. Enjoy playing with it for me Image

D2S

[This message has been edited by Drive2Survive (edited 12-04-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 12, 2002 1:59 am 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
LOL, Fila is quick off the mark! Yeah, those bitmaps are a real eyesore, I promise they won't stay that way for long... in fact, if anyone wants to try editing them you're free to do so (just don't change the sizes, otherwise the program will probably screw up).

That's enough for now. Sleep time...

[This message has been edited by Drive2Survive (edited 12-04-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 12, 2002 4:53 am 
Glow Ball
User avatar

Joined: Tue Feb 02, 1999 7:00 pm
Posts: 23
General
<ul>[*]changed/scrambled file associations on my comp. eg. bmp is now a netscape file. I haven't checked for any other damage yet.</li>
[*]moving/scrolling screen is a problem, I'd rather zippy's movements effect screen positioning, or, at the very least, slow it down. It's way too fast.</li>
[*]random maze generation is a great idea, but I've started out where I was boxed in by poison</li>
[*]zippy loses too much power with just one bit of poison and in a maze of all round green things you're better to hit escape and start again</li>
[*]"hit the Escape key with enthusiasm" ; I tried hitting it with semi-pseudo-indifference but had the same effect</li>
[*]fps = 60</li>[/list]

Feedback

>>tiles are each set to the screen dimensions

The size of the things on the screen look fine

>>The problem is that it scrolls randomly

Yes.

>>Also some powerups (double speed, invulnerable) and useful items (freeze maze, etc) would be fun.

Yes.

>>as I think it's probably a bit too easy to survive

With a name like drive2survive you might well say this. But there are shelves and shelves filled with games that cannot be finished or are too frustrating to enjoy. The duration of my average game was under twenty seconds. Off the top, I'd say there are too many random things happening. More balance would be something to think about.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 12, 2002 6:19 am 
Member
User avatar

Joined: Mon Jul 02, 2001 2:01 pm
Posts: 1426
Location: Lost in Translation
My longest surviving period was 2min Image

------------------
Idle hands are the devils playground!


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 12, 2002 6:41 am 
Member
User avatar

Joined: Mon Jul 02, 2001 2:01 pm
Posts: 1426
Location: Lost in Translation
Haha, game is pretty cool. When i am bored i am playing a lill' Zippy.

Oh yes, i think there are too many green things that u get caught into. That's it for now.

------------------
Idle hands are the devils playground!


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 14, 2002 12:48 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
>> changed/scrambled file associations on my comp. eg. bmp is now a netscape file. I haven't checked for any other damage yet.

My program did that? That is weird.

>> moving/scrolling screen is a problem

Sorry, that's the whole idea behind the Splatt game. Like I said, we have to make the game function along those lines, but we can change the specifics of it. I'm not keen on the randomness either, but that's how it's going to work.

>> random maze generation is a great idea, but I've started out where I was boxed in by poison

I was worried about things like that happening. I've also seen mazes where you literally can't get from side to another because it's planted a wall running almost the entire length of the maze.

>> "hit the Escape key with enthusiasm"

The things you write at 2am.


Now to the question of game difficulty...

Are you serious you guys can't beat this thing? When we play it here, all that seems to happen is that your health increases out of sight which leaves you moving around so fast you can extricate yourself from almost any position. But now I think of it, the structure of my code coupled with my slow comp probably has a hand in that.

To cut a long story short, the game uses a timer to keep the framerate to 60. It checks the elapsed time, and if it's time to render the next frame, it does so and resets the timer. The kicker is that I'm resetting the timer AFTER running through the algorithms and rendering the frame. On my comp, I'm getting 10 fps. So while it takes a long time to render each frame, that time isn't being taken into account when it checks the timer. So on a faster machine, the game is going to move a lot faster than on mine. In other words, we're not playing the same game here.

But that was the whole idea of getting you guys to test it for me - to catch mistakes like this before I got to trying it on the hi-po machines at uni.

About an hour later: I've been fiddling with the program to try and see what's up. First I fixed the problem of resetting the timer above, but that didn't appear to make any difference except that I was now getting a framerate readout of 8-9 instead of 10-11. Hmmm, now I think of it, maybe it wouldn't make such a difference after all. I next dropped the colour depth from 16 bits to 8, and was now getting between 20 and 40 fps. This made it move a lot smoother, but something else happened - the maze didn't seem to go any faster, but Zippy was going much slower! I then dropped it down to 640x480 res, and was now getting anywhere between 20 and 60 fps. Zippy almost seemed to be even slower. He certainly didn't look like he was moving 66% faster than the maze was.

I tried changing my variable type casting in case I was losing data for the movement. No discernible difference. I've also bumped up Zippy's move rate, so now at 100% health he should go 180 pixels a second - that's three times the maze scrollrate. I wasn't sure how I should weight the basic move versus the extra health-affected move, so for now they're both even at 90. This seems to make Zippy move at the rate I originally intended for him. When I reset the screen res to 800x600x16 he was tearing around at an obscene rate, but at decent frame rates he should now not seem to lose speed anymore. Getting multi-resolution support into this game has just moved up my list of priorities.

I've re-uploaded the game to the above-mentioned locations ( http://athene.riv.csu.edu.au/~dcarr03/itc320 and http://mtmtracks.cjb.net/d2s/SplatMaze.zip ), so you can try 'er out now and see what you think. I'll try and have a more extensive version ready in the next few days.

[This message has been edited by Drive2Survive (edited 15-04-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 14, 2002 2:40 pm 
Glow Ball
User avatar

Joined: Tue Feb 02, 1999 7:00 pm
Posts: 23
>>My program did that?

It also changed my folder options.

>>Are you serious you guys can't beat this thing?

I'm up to 30 seconds on a good round. Never thought a faster comp would be a problem.

I think we should work on re-skinning this game. Here's my start.

Skins. You'll probably be able to tell I'm leaning toward the mouse in a maze idea. Still needs a good wall and something for the ugly green hole.


oh, the game doesn't switch quickly or easily enough from one direction to another, and you can't hold two buttons at once.


edit. spelling


[This message has been edited by Phineus (edited 04-08-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 14, 2002 4:08 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
>> I'm up to 30 seconds on a good round. Never thought a faster comp would be a problem.

Me neither. Dunno why increased framerate should play havoc with it like it did either. Did the changes I wrought on it at least make it a bit more playable, or is the platypus still moving too slow to keep up with the maze?

>> I think we should work on re-skinning this game

No argument there.

>> Here's my start

LOL. That cat looks wicked.

>> oh, the game doesn't switch quickly or easily enough from one direction to another, and you can't hold two buttons at once.

Yeah, that's because I'm still relying on Windows messages for keyboard input. Not a good way to go about it, at all, but we haven't been taught anything different yet.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 14, 2002 4:18 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
Actually, I just thought of something. I'll bet the reason that Zippy seemed to move slower the faster the framerate got, is because the WM_KEYDOWN messages don't arrive as fast as the frames are drawn. And since the sprite only moves upon receipt of a WM_KEYDOWN message...

Here's what I'll do. Instead of telling the sprite to move every time it gets a WM_KEYDOWN, I'll re-jig the control loop to make the sprite begin moving at a constant rate when it receives a WM_KEYDOWN, and stop when it receives a WM_KEYUP. Should fix the control problems of relying on repeat count to move the platypus and the speed disparity as well.

[This message has been edited by Drive2Survive (edited 15-04-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 14, 2002 5:39 pm 
Glow Ball
User avatar

Joined: Tue Feb 02, 1999 7:00 pm
Posts: 23
>>Did the changes I wrought on it at least make it a bit more playable

I think so.

>>or is the platypus still moving too slow to keep up with the maze?

On a par now. Your proposed change sounds interesting.... And I liked the cheese, myself.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Apr 14, 2002 6:04 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
That was easy - a fixup for the program message pump, a little modification to the movement function, one or two other quick fixes and a Windows crash later Image and presto! All I did was introduce a boolean variable to keep track of when an arrow key is pressed/released. The routine for moving the sprite is now called from the frame rendering function, so now Zippy's movement is in step with everything else on the screen. Works like a charm. I've been able to drop the move rate back down it's original values (50 basic + 50 * health extra), but unlike last time, he actually moves at a constant rate now!

http://athene.riv.csu.edu.au/~dcarr03/itc320 or http://mtmtracks.cjb.net/d2s/SplatMaze.zip
That's my second update-and-upload for today. Let me know if it's any better than before (personally I'm sure it is, but I'll let you decide youself...).

Next I'll tackle the EnumDisplayModes bit, and make some new bitmaps that are proper size (64x64) and then get the program to scale them on startup to suit the res chosen. I'll also tidy up my collision detection algorithms (seeing it 'teleport' through walls is NOT cool) and get some transparency happening with that sprite. Ahh, so much to do...

[This message has been edited by Drive2Survive (edited 15-04-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 15, 2002 3:12 am 
Member
User avatar

Joined: Mon Jul 02, 2001 2:01 pm
Posts: 1426
Location: Lost in Translation
Oh yeah, now we're talking! That speed is right.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 15, 2002 5:32 am 
Glow Ball
User avatar

Joined: Tue Feb 02, 1999 7:00 pm
Posts: 23
I got up to 383. But the green holes don't take points off. They slow zippy down while he's running over them but they have no lasting effect - unless you have no power, then you can't get over them. Also, I morphed from one part of the screen to another, once. And, it needs a restart button (or at least I couldn't find one). The arrow button response is much better, still needs work. Lastly, we lost the cheese and the cat =(


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 17, 2002 12:19 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
Thanks for your continued support, guys! I've got a new version uploaded for ya to try, which I'll talk about in a minute...

---------------------------------------------

>> But the green holes don't take points off. They slow zippy down while he's running over them but they have no lasting effect

The assignment stated that if Zippy got squashed by a wall, ran out of health or fell down a hole, he would be splatted. Given the numbers of holes that I've got appearing in the maze with the random generator, I thought it would be a bit extreme for every one of those to mean instant death to you, so I just made them slow him down to half his current rate while he's running over them. Makes it a bit more tactical, I think.

>> Also, I morphed from one part of the screen to another, once

Yep, I've seen it do weird stuff when in contact with walls sometimes too. The new version has vastly improved collision detection.

>> The arrow button response is much better, still needs work

That's the problem with working off Windows messages. We haven't been taught DirectInput yet, and funnily enough, my textbook ("Teach Yourself DirectX 7 In 24 (frustrating) Hours") doesn't touch on it until chapter 17 (as we're doing one chapter a week, and are currently up to chapter 7, we will probably never reach this!). Actually, I peeked at it just now and it doesn't look too hard... something to think about if I get time for it.

>> Lastly, we lost the cheese and the cat

I figured if people wanted to use those, they could just download via the link you provided earlier... I kept the platypus-on-white-background though, as it was a bit less eyesore wandering through the maze...

---------------------------------------------

Now for the new version. I've uploaded it same place as before ( http://athene.riv.csu.edu.au/~dcarr03/itc320 or http://mtmtracks.cjb.net/d2s/SplatMaze.zip ) so if you want to keep the old one, you'd better rename it so it doesn't get overwritten. This new one has a completely new set of bitmap files, so you don't need any of the old versions for it.


New features, improvements and fixes:

Multi-resolution support: When you start the program, it first launches a dialogue box. It enumerates the display modes supported by your hardware and displays modes from 640x480 up to 1024x768 in a listbox - you can then choose the resolution at which you want to play the game.

Better bitmaps: Bitmaps are now in three files - one for the sprite walking, one for the sprite getting splatted, and one for the tile elements of the maze. They've all been set to 64x64 for each tile element/sprite frame, but theoretically you could make them any size, as the game will scale them depending on what screen res you choose (at 640x480 they will be shrunk to 40x40, at 1024x768 they will be 64x64 etc).

On the subject of bitmaps, after some deliberation I decided to swap the playpus for a frill-necked lizard, with orange, green and yellow patterns on his back. Image
"Ground" now looks like ground;
"walls" have become big rocks;
"holes" have become long grass;
"food" (beans) have become meat pies;
"poison" have become steel traps.

Transparencies: wheeee! Now the sprite bitmap is treated as being transparent wherever black has been painted. Looks way cool.

Superior collision detection: a lot more complicated, but it's not being fudged like before. It's a bit more computationally intensive, but I figured that given our computers are capable of hundreds of millions (or even billions) of calculations a second, doing a little more arithmetic wouldn't hurt it.

Due to some hefty code restructuring, diagnostic mode has been disabled.


Stuff yet to do and other sticking points:

I think I've just about got the mechanics of the thing sorted, so now it's time to start looking at the specifics for the game...

The maze and sprite now move at a rate determined from the screen resolution. The maze is now moving slightly faster compared to the sprite than it was before, so I'm not sure whether it's too fast or not, so let me know.

Having gone to the trouble of drawing those nice new bitmaps, I'm not sure if I'm happy with them. The lizard looks a bit small and skinny after navigating the blob of a platypus around, so I may yet return to the platypus or go for Phin's idea of a mouse in a maze (but I do like the patterns on his back). Of course, the idea was to make the game easily skinnable, so maybe we could do multiple critters and tilesets to choose from.

Oh, and with the current bitmaps, the game does NOT look swell in 8-bit colour. At all.

Needs a "Game Over" notification when you die, and as Phin says, a way to restart. I also had the idea of maybe having five levels to the game, with each level increasing in difficulty (not that I have much idea of how I can alter the difficulty without running the risk of it generating unplayable mazes).

Also need to balance the random maze generation algorithm (there's far too much food and poison at present). Do you think I should make the sprite's health have more of an effect on it's movement? Do you also think I should cap the maximum health you can get (say at 200%)?

Powerups. So far I've got ideas for doublespeed, demolish/walk through walls, freeze maze and (maybe) teleport (dunno whether it should choose your new location randomly, or you can steer it). I can't think of many 'bad' powerups, or whether there should be any at all - things like freeze player, half-speed, maybe insta-kill. Would a random teleport be a 'bad' one? I'm open to any suggestions here.

Needs a scoring system. I thought maybe 10 points for every second that you survive, plus extra for finding food/pickups/collectible items, and when you win, extra again for your remaining health. I also want to make a nicer HUD than just printing text onto the screen...

Also need victory conditions - something to open the exit to the maze. (See the extract from my assignment in my first long post, or better yet, visit the page.) At the moment about all I can think of is collecting items (like baby platypi when we still had a platypus sprite). Again, I'm open to suggestions.

And I think that's the lot...

[This message has been edited by Drive2Survive (edited 17-04-2002).]


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 17, 2002 2:53 pm 
Member
User avatar

Joined: Mon Jul 02, 2001 2:01 pm
Posts: 1426
Location: Lost in Translation
Wow. This new version is very cool. It was really enjoyable playing.

I used 1024x768 and 32bit and it looked gorgeos. Speed was fast enough i reached 300 points in no time. The prob here was that the dang moving screen kinda remained stuck in a spot for 1min. I mean it moved almost equally without going down. I had to stay in the same spot for the whole minut.

I was thinking of a bad powerup to instantly get ur health to half then u had before going over.

Victory conditions: Perhaps find 3 baby lizards and then find the cave or the whole in the mud or where lizards live...

------------------
The humans think it is a poison of the blood that makes us what we are.
Fools, the blood only feeds the bodies we live in. To create a vampire,
one must steal a soul from the abyss to reanimate the corpse.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 17, 2002 8:29 pm 
Member
User avatar

Joined: Fri May 04, 2001 2:01 pm
Posts: 495
Location: Bathurst, NSW, Australia
Thanks, Fila! Nicer bitmaps make a great difference to it, eh?

My dad just proffered the idea of collecting rubbish - like the lizard is cleaning up his backyard! The exit opens once you've collected a defined value or number of items.

I s'pose I could make each item worth an amount of points, and once you reach a certain target score, you are allowed to exit... by collecting the rubbish (or whatever) you'd greatly increase your score and hence make the exit appear sooner! Subsequent levels would have higher target scores, requiring you to survive longer.

One other thing that I thought might be cool would be to swap tilesets between levels - so the first level uses the normal outback bush tiles, then it could be 'bush at dusk', then maybe suburban, then maybe a weird art-deco layout... mmm...


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 18, 2002 1:46 am 
Member
User avatar

Joined: Mon Jul 02, 2001 2:01 pm
Posts: 1426
Location: Lost in Translation
That's interesing to have different textures for different levels.

------------------
The humans think it is a poison of the blood that makes us what we are.
Fools, the blood only feeds the bodies we live in. To create a vampire,
one must steal a soul from the abyss to reanimate the corpse.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 18, 2002 2:25 pm 
Glow Ball
User avatar

Joined: Tue Feb 02, 1999 7:00 pm
Posts: 23
The graphics are almost fine. Let's see, those pies or tarts or whatever they are fine. You can tell it's food. In fact, I'm kinda hungry right now. uh, nevermind. Oh, those 'rocks' look like burlap bags filled with grain or something. The grass and traps look good, and zippy's lost some weight. No doubt from not being able to get those munchies. I can relate. Anyway, the screen goes in one direction too long. Unless I'm lucky with the object placement, I last about five seconds. Here's an idea for difficulty levels that might save you some grief.
<pre>
Rocks Grass Traps Food
Rookie 10 5 5 15
Intermediate 15 10 10 10
Pro 20 15 15 5
</pre>

Adjust and multiply all numbers by appropriate values.

Varying screen res's etc. Save the settings some place. I don't want to set them every time I start the game. Then have an option in game, if you can, to change it. Low color is terrible. Higher res pushes the frame rate off to the right, only a little but not aligned properly, and the score off to the left. oh, I got stuck in the grass and can't get out. correction, low res and low color stalled me. High res and high color worked best. Optimal settings 800x600x32

Time for a new name now, don't ya think?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 34 posts ]  Go to page 1, 2  Next   


Who is online

Users browsing this forum: No registered users and 140 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group