WIP: Saucelifter
Paul Pridham

OK, I'm getting pretty close to finishing this game, and have just added a ton of sound effects... so now would be a good time to post a little demo and get some feedback.

Presenting my Choplifter remake... "Saucelifter!"

Screenies:
http://www3.sympatico.ca/ppridham/misc/images/saucelifter/title.png
http://www3.sympatico.ca/ppridham/misc/images/saucelifter/start.png
http://www3.sympatico.ca/ppridham/misc/images/saucelifter/tank.png

And the demo:
http://www3.sympatico.ca/ppridham/misc/tmp/saucelifter-demo.zip

It's fully playable, and here are the keys:
ARROWS - fly
Z/Y, X, and C - shoot

The rest you should be able to figure out. :)

Let me know if you have any problems, and well, just generally how you like it! :D

Tomasz Grajewski

Hey, this game rocks! Nice graphics and sound effects, very addicting gameplay, cool physics. Runs smoothly and without any problems. :D

One thing that you should consider implementing: joystick support.

Now I will go playing one more time... ;)

ngiacomelli

I love it. Off to keep playing.

Paul Pridham

Great! Sounds and everything working OK?

Tomasz, I'll definitely add joystick support. I need to add another menu for configuring the buttons. Guess I can do that now while I ponder over how to tackle the music. ;)

OICW

Looks good, I like that vector/polygon graphics. I just didn't figured out how to unload passengers - though I tried to kill them at first ;D

Paul Pridham

Land beside the pad. ;) I figured the "warning" sound when you land on the transporter pad might be enough of a hint... but I'll eventually add a HELP menu option.

ngiacomelli

Sound worked perfectly for me. I love how the screen shrinks when near a tank. Very slick. Not really a gameplay suggestion, but it'd really add polish if the aliens waved their arms when you hovered close to them.

Paul Pridham

I'd thought about that one, since the original Choplifter does that, but it's more work. ;) We'll see.

Trent Gamblin

Cool game! I would like to see a "laptop mode" option, but that's a bit of a nitpick. It ran very nice through Cedega. At first I didn't know where the landing pad was, probably because I wasn't paying attention at the start of the game. I really enjoy it though, good job.

OICW

Laptop mode? What do you mean, I was playing it on my notebook and I cannot complain.

Paul Pridham

Thanks!

Yes, I too would like to know what a laptop mode is. If you're talking about CPU usage, it's pretty hard to do anything about it since all the drawing is done using Allegro's software 2D polygon functions. :)

If it's some alternate control scheme or something else, then fill me in!

Paul whoknows

Just amazing! one of the best allegro games I pleyed, at first I thought you were using OL or something 3D accelerated!
Only allegro 3d functions? wow! but it runs so smoothly! what's your secret?
About the game it's beautiful, I love the animation when the ship open its "legs".
Just great! and it's just a WIP! OMG:o

Kikaru

When I land on the triangle-pad, it beeps and flashes, but nothing else happens no unloading. :( What else should I do?

Paul whoknows

Do not land on the pad, land beside it instead.

Kikaru

Oh. Thanks. You know aside from totally rocking, this game would do well for an online highscore chart. :)

Also, how do you use Allegro's built in 3D? ???

TeamTerradactyl

Wow! That's a fun game, ppridham!

Very cool; is your source open, or are you keeping that to yourself?

nonnus29

PP, this game is, to quote Jimmy Walker, 'OUTA SIGHT!' It's really cool, wow, I can't say how cool it is.

My question: is your forth thingy in there somewhere?

Paul Pridham

Thanks for the praise, guys! I've had a blast working on it so far.

Paul whoknows, that's right, it doesn't use OpenLayer, OpenGL, or even any 3D functions... it's all just simple Allegro 2D polygon calls, with my own turtle-graphics layer on top. Made everything really easy and fun. :)

Kikaru, I've played a bit with the Allegro 3D stuff, it's not too hard really, but at the moment I don't recall much of it. ;)

TeamTerradactyl, it's currently closed as I'm still working on it, but I may release the code when it's done. There's really nothing much fancy in there though.

nonnus29, Thanks dude. :) Actually, my Forth stuff is not in there. Forth is fun, and I'm going to combine Forth and this stuff eventually, but for this I just wanted to focus on getting a game finished for once, heh. People are still waiting for SAKFU, after all (which is coming next I might add!) ;)

Trent Gamblin

By laptop mode, I mean don't use 100% cpu. Add some rests in there. Depending on how you coded it, that could be easy or it could be hard.

Paul Pridham

There's a rest(1) in idle part of the main loop, but it really doesn't cut the CPU much for some people. I could add an option to cap the framerate to a lower value, though, which should free up some of the software polygon craziness.

Trent Gamblin

Yeah, that would be cool. Capping it to like 20-30 FPS would be good I think.

Paul Pridham

Trent, I just added a frameskip option to the video menu. Try that out on your laptop, see if it helps.

piccolo

very nice took couple tries you have to land next to the triangle to the end on the right to unload cargo z and c hit background x hits foreground.

edit:
i get 100 frames p/s very smooth controls and movment are excellent .

Ultio

I finally got a chance to sit down and play the game. My thoughts... (same as on GDR forums):

The menus and all of the UI that you go through before getting into the game is well done. The only thing I dislike is the in/out floating of the title text. Some other people might not be bothered by it, but it's the only thing I dislike about the UI, for the most part. Other than that, it's really solid and has an awesome retro feel. Going through the options operates as it should (minus the unimplemented sound controls). Good job on that front. The menu sounds aren't annoying either--and I liked the little touch of going "back" produced a different pitched sound. These are all things people come to expect, but it's good that they are there.

Into the gameplay: I've only played on normal level, and I think that's good enough. I can't chance playing on the super hard difficulty and keep trying until I ultimately beat it. That said, I was able to achieve "Victory" on normal mode. I guess first we should discuss the difficulty: I found the normal difficulty to be a complete pain in the ass. By pain in the ass I mean incredibly hard. Eventually I got the hang of how the controls go and what the size of the hitboxes for various enemies are. For instance, upon first encountering the turrets I figured I had to hit the actual turret itself (the gun part) as opposed to the base on which it stood. This was tad bit annoying because if you fly down right next to it you cannot shoot a horizontal bullet and destroy it. That said, I'm not sure if you should change that. This is what makes the game difficult. One thing you might consider in order to even beef up the difficulty is when the saucer is too far from a tank's reach to be hit by its bullets, the tank should then just kill the hostages instead of shooting aimlessely (or doing nothing). Cool things I noticed: I like the animation of the legs-very cool. There are also a lot of cool little touches like landing showing a tiny (but noticeable) animation (like the ship pushing down a bit when you land quickly). The little men floating up on the platform is really awesome, too. The letterbox mode works as expected and is a great feature.

Things I think could possibly be changed:
-I absolutely hate the waiting time to watch my ship (not) explode (but rather smoke up). Additionally, the wait time to get past the game over sequence is annoying too. Sure, it's only a second or two, but being unable to bypass it frustrates me to no end. When I was at the end of my lives I would simply exit out and abort in order to restart rather than waiting. I think you should make these delay times skippable by pressing enter or some other key.

-It's not 100% obvious what to do with the platform. When you land on it, it starts making some sounds and flashing. For some reason (maybe I'm dumb), I didn't realize you need to land next to it. Some kind of little graphical indicator on the ground (even a little circle would probably do) would help eliminate that confusion

-I think the minimap is great, but could use some work. Currently there is no border to it or anything. I think having some kind of border would be nice to help you get a grasp of where you are within the map/course itself. Maybe you wanted it set up so you can only decipher enemy's proximity to yourself--I don't know. I guess you could see what other people have to say about it.

-You need a menu option for viewing the scores.

Overall, it's really well put together and feels solid. The difficulty is great and gives the player something to overcome. I'm interestsed to see what the most difficult level is like to play. One other little note, though: while the game is difficult, I found a very easy way to destroy all turrets without being in harm's way by their bullets. I would simply lift off the ground as little as I could, and then fly across the screen. The regular bullet turrets cannot aim low enough to hit you at this point (leaving you open to just destroy them as you fly past). The rocket-launching turrets also cannot shoot the missiles directly at you, and you can do the same thing. Most of the time, you can outrun their heat-seaking ability and will be out of harms way. This tactic also seems to work quite well for destroying tanks. Incidentally, for the most part you can just stay low to the ground for the entire duration of the game until the jet fighters come out (since you can shoot backwards and up, the helicopters aren't that much of a distraction). I think this low-to-the-ground approach cheapens the play a little bit. You might want to do something with it such as being able to crash into turrets if you fly past them? Make the tanks have a horizontal attack? I'm not sure exactly what you would want to do, but the player is almost invincible from most enemies while flying low to the ground.

For the record, my score on first victory was: 41150. I'll most likely try again on a harder difficulty. Great job. I can't wait to see what kinds of additional stuff you put in. Are you planning on making different levels (like the water and cave levels)?

Trent Gamblin

Thanks, now it doesn't burn my thighs! I had to restart the program for the change to to effect, but that's OK.

Paul Pridham

Ultio, thanks for the big review! Much appreciated. You've given me some good points to think about, and some ideas for things to tweak and improve. I've already chatted with you about some of them, so I won't go into it again here.

Trent... that's cool, glad it works for you. You shouldn't have to restart the program, though... the frameskip change is immediate. Could you check again and let me know if that's the case for you? Press 'F' to show the framerate, and then change the frameskip and see if the framerate drops.

Trent Gamblin

OK, it actually does work. The CPU just hadn't cooled down enough to stop the fan the first time.

Paul Pridham

Don't go exploding a battery on your lap there, Trent. ;) That would suck.

Neil Walker

That's excellent. A really good game. You just need to improve your website's speed for downloads :)

Kikaru

You know, I found something cool: Skipping. If you move down to the ground and land on it without opening the legs. Then, you can tap in a direction, and you get really good speed and avoidance abilities. :)

BTW, I found something cool: If you set the resolution to 400 x 300, and the color depth to 8-bit, it looks like an old arcade game! :)

Lastly: What is the requirement for winning?

gnolam

I like it! It feels very polished, and I love the graphics style! :D

I did find a bug though: if you alt+tab away from it, the sound hangs until you switch back in.

Paul Pridham

I've just uploaded an update. It has the following changes:

- Added a tinted letterbox mode
- Changed behaviour of guns, let them shoot at a lower angle
- Added an ALT+ENTER shortcut for windowed/fullscreen
- Press 'H' to show highscores at title screen
- The saucer can shoot itself in the foot if it's too near the ground.
- More delay skipping options for gameplay and scores

File mirror on googlepages:
http://ratziggurat.googlepages.com/saucelifter-demo.zip

Ultio, you shouldn't be able to easily accomplish your cheat anymore. I think my adaptations are fair, but let me know what you think. ;) I've just had an idea about making certain enemies smarter, so we'll see what comes of that.

Also, you can skip those spots that frustrated you now using the ENTER key, and you get the 'H' highscore cycle key. I'm not going to add a menu option at this point.

The minimap shows the saucer (blinking white diamond), so I'm not sure what trouble you were having with it. The bounds of the arena in the minimap are the bounds of the screen.

I'm not likely going to add other levels (want to move on to the next project), but I might add some unlockable options and modes.

Neil, yea Sympatico seems to have trimmed its server bandwidth lately, my mail is slow now too with them. :-/ I'll call them next week. In the meantime, try the googlepages mirror above.

Kikaru, heh I'm not quite sure what your new technique is, but it sound fun. ;) To finish the game, save the majority of the 64 captives without dying. Glad you like the retro resolutions... I play in those modes myself sometimes. :)

gnolam, thanks! I've noticed that bug too, and I can't seem to be rid of it. It only happens to me when I ALT-TAB from fullscreen, and my registered display switch function does get called, at which point I set the volume to zero... but it doesn't work. I've even tried stopping all samples at that point. In windowed mode though, everything behaves as expected. It could be an Allegro bug dealing with looping samples. I also noticed that when I switch screen modes, the display switch callbacks get unregistered, so I have to re-register them.

gnolam
Paul Pridham said:

gnolam, thanks! I've noticed that bug too, and I can't seem to be rid of it. It only happens to me when I ALT-TAB from fullscreen, and my registered display switch function does get called, at which point I set the volume to zero... but it doesn't work. I've even tried stopping all samples at that point. In windowed mode though, everything behaves as expected.

Sorry. It happens in windowed mode as well. What display_switch_mode are you using?

Neil Walker

Windows only works with amnesia in fullscreen mode. It does work with pause in windowed mode though.

gnolam
Quote:

Windows only works with amnesia.

No. No it doesn't. :P

Which switch modes are available depends on the screen mode.

Paul Pridham

Hmm, strange, that. I'm using SWITCH_BACKGROUND. I was using SWITCH_PAUSE, but that's when I first noticed the looping problem, so I switched to BACKGROUND so that I could continue controlling the program and try to set the volume to 0, etc.

Neil Walker

Did you check the return flag to see if the mode was successful? as mentioned, pause only works with windowed mode. I wouldn't use background mode though, simply use pause/amnesia and on re-entering the program set your timer counter to zero to stop any bad things from happening in your timer code.

the way you mention it sounds as if you have made the call to set the mode but not the callback hook?

Paul Pridham

I've certainly set the hooks, as I mention above. My breakpoints catch the switch-in/out as it happens. The sample loop just occurs anyway. I'm not checking the return value of the switch register function though, so I'll take a look at that. My logic update is robust, I've checked it already, and it's not getting stuck in any kind of weird timer loop.

Really, it doesn't matter what switch mode I'm using, this shouldn't happen. Switching out while a looping sample is playing should not cause problems, and as far as I can tell, it's an Allegro bug or undocumented issue.

Neil Walker

If it's a bug you think and it worries you (I've never had it), you could always dump allegro sound and use something like fmod to fix it.

Paul Pridham

Yes, I'd thought about FMOD as well. We'll see how it goes, thanks Neil.

Maybe I'll code up a simple test that just demonstrates the loop bug.

FMC

24500 on the first try... fun game!

One thing struck me as strange though: if you fly low enough you should be able to destroy turrets by "lateral" shooting them, but as it is i see the bullet fly over the turret without actually making it explode.

Paul Pridham

FMS, yes, you have to shoot the base of the turret in order to destroy it. This follows the behaviour of the arcade Choplifter. Plus, it would be too easy otherwise. ;)

nonnus29

Sound works fine for me.

OICW

Damned, those missile turrets are pain in the ... if I miss them in the first attack run I'm toasted. Anyway I have a decent chance to score direct hit from at least one of the missiles. On the other hand jet planes are piece of cake.

Paul Pridham

Ok, I've changed it to use BACKAMNESIA if BACKGROUND fails, and that takes care of the problem on my machine... so hopefully that's the extent of it. I'll upload a new build shortly.

OICW, heh. Get good at dodging. ;) If you think the jets are easy, I guess they haven't really armed themselves yet...

Tomasz Grajewski

How to get a highest hi-score? Just kill only enemies, without rescue any of the aliens and you can play forever. This should be fixed, because players could have 50 000 scores without any effort. I think, that how many enemies are hunting the player (tanks, choppers, turrets...) should be calculated by how many enemies player had killed.

Also, number of aliens should be unlimited. Game shouldn't end when all of the aliens were rescued, but when player lost all of his lives. To make game harder in the later stage the enemies could be faster, shoot more often and accurate. Maybe even more instances of the same type of enemy should appear (10 tanks, 4 choppers...). IMHO this would be great!

OICW

Hm, I think that one jet plane equiped with missiles combined with a chopper firing at your saucer is enough. You're doing nothing more than dodging the missiles and trying to shoot down the aircraft.

Besides you can try to play on the impossible difficulty.

Tomasz Grajewski

OICW:
Yes, but I was talking about a situation, when player kills only enemies and this way he can beat hi-scores very easily without any effort, because number of enemies doesn't increase this way. It's like destroying this first tank, that appears in the game. To get 50,000 score you can just kill 200 of them and you won't even lose a life (at least when difficulty is set to easy).

OICW

Well then yes, but I can guarantee that you will deinately get bored.

Richard Phipps

If you switch away while sounds are playing in looped mode they will still loop unless you stop the samples before fully switching out.

I had to do the same thing in Neon Wars.

Paul Pridham

Tomascz, good point. I can make it so that the enemy alert level will also increase after time, or after so many enemies are destroyed instead of activating the transporter, etc. As for unlimited captives, that's not really in the cards, but I am planning to have an unlockable "survival" mode which is just about fighting infinite enemies with no captives.

Richard, does that still happen with the currently uploaded version? I've changed the switch-out mode and so I should retain control of the program while switched out (and thus turn down the volume).

I've a nice OpenGL version built currently, and after making some other enhancements, (such as addressing Tomascz's issues) I'll upload a new WIP.

enric

Absolutely fantastic!!!
The best allegro game, ex equo with icytower I would say. The good thing about it is that I can literally see all the work you've put in it!

nonnus29
Quote:

I've a nice OpenGL version built currently, and after making some other enhancements, (such as addressing Tomascz's issues) I'll upload a new WIP.

Does that mean you dropped the allegro 3d stuff? That's too bad. :(

Poor allegro 3d, no one wants to use you... :'(

Kikaru

He didn't use Allegro 3D. He used 2D polygons to imitate 3D. ;)

Paul Pridham

enric, thanks! :D

nonnus29: No, I won't be dropping the software-only build, I'll just have two binaries... saucelifter and saucelifterGL. I was working on switching between software and GL video modes in the one build, but for some reason the software video modes fail for me when AllegroGL is initialized. :/ If I get it working I'll combine them.

Kikaru: Basically right... except, there's really not much 3D in there at all, aside from the saucer's landing gear and the tank turret. It's just a little bit of cos(), really. ;)

Kikaru

I noticed some of that. When on high-resolution with full color, you can see the separate polygons. ;)

Paul Pridham

I've uploaded a new WIP: http://www3.sympatico.ca/ppridham/misc/tmp/saucelifter-demo.zip

This version includes:

- OpenGL and software-only builds
- Bonus scoring based on shot accuracy, saucers remaining, and perfect rescue
- Updated scoring and alert level behaviour
- Improved "AI" and flight behaviour of the chopper drone
- Adjusted the tank shot to be more dangerous
- Various other tweaks and fixes

Most likely this will be the final WIP update before I release the full version, but things like the scoring and gameplay should go basically unchanged from now until then. The remaining bits to be added will be title and highscore music, and extras such as various unlockables and game modes.

Please let me know if you find any new issues or gameplay "cheats" and such with this version!

Kikaru

I like the new version! It's really neat. :)

Tomasz Grajewski

Found a bug: when auto-zoom is on and the game screen zooms out (the drawing area gets smaller) entering to the options and setting auto-zoom off doesn't restores drawing area to fullscreen, it just stays in size, in which it was before disabling auto-zoom.

And for switching between fullscreen and windowed mode you could also consider using the F11 key, as it is more natural (at least for me).

And one more thing: keep up the good work, because this game will be probably one of the best on Allegro.cc! :D

Paul Pridham

Tomasz, thanks for the free testing! ;) Much appreciated.

The autozoom intentionally doesn't restory the area to fullscreen, because you can manually zoom using teh PGUP/PGDN and HOME, END, INS, DEL keys. Try it out. :)

I will consider adding another key for fullscreen... it's no big deal, really. Joystick support is going in next, so maybe I'll pop that one in as well.

CursedTyrant

Really neat! I love this game. Reminds me (and it most probably should) of Airlift Rescue that I had on my old PC (486 DX4 feels nostalgic). If only I could figure out how to actually save them after they entered the saucer, since there seems to be a limit on how many of them can get in.

EDIT: Nevermind, I tried to land ON the black triangle, but it seems I had to land beside it.

Paul Pridham

Yes, I really must add a tutorial mode that explains how to play, heh.

Thread #588986. Printed from Allegro.cc