Story-driven Baloon Fight with guns :|

Please use this Board for QBasic related requests ( file research, programming, etc.)

Moderators:Administrator, Global Moderator

Post Reply
mooseproduce
Newbie
Posts:6
Joined:Mon Aug 06, 2007 2:08 am
Story-driven Baloon Fight with guns :|

Post by mooseproduce » Mon Aug 06, 2007 2:15 am

I'm writing a pure-QB game with no POKE or PEEK; the gameplay is designed so that tapping keys, as opposed to holding them, is the optimal way to play (so that INKEY$ works perfectly, even with two players). It's in a fairly alpha state, but very playable... and, as is obvious, it's based on Baloon Fight for the NES.

I'm looking for feedback on the gameplay, design, framerate, and compatibility. Methinks I may need to replace my PSET stuff with POKE at some point for the benefit of slower computers, though the game runs fine on my computer with 10 players onscreen firing rockets and spurting flame particles everywhere (which is impressive). I've got the beginnings of a full-fledged campaign mission system, complete with in-game cutscenes, dialogue, and goals, etc. Control can be removed from the user and then given back after characters act out the story - whatever that will be - all in real-time.


Anyways. Try everything and tell me what works and what doesn't... and laugh at my funny code. I'm so backwards. :'(

Edit: Download.
Last edited by mooseproduce on Tue Aug 07, 2007 9:30 pm, edited 2 times in total.

mooseproduce
Newbie
Posts:6
Joined:Mon Aug 06, 2007 2:08 am

Post by mooseproduce » Mon Aug 06, 2007 2:17 am

(Code was too big to post)
Last edited by mooseproduce on Tue Aug 07, 2007 9:30 pm, edited 1 time in total.

Mac
Full Member
Posts:48
Joined:Wed Jun 29, 2005 2:01 am
Contact:

Code missing?

Post by Mac » Mon Aug 06, 2007 8:32 pm

IF p1 = 0 THEN c = 8
ELSEIF spr%(x, y, frame) = -6 THEN
c = p3 + 8
IF p1

' Seems to be missing code here (unless I am missing something)

IF selected = k THEN
IF doloop = 1 THEN
COLOR 12, 0
ELSE
Mac
The QBasic Forum
http://www.network54.com/Forum/13959

mooseproduce
Newbie
Posts:6
Joined:Mon Aug 06, 2007 2:08 am

Post by mooseproduce » Tue Aug 07, 2007 9:31 pm

:P You are too right. Luckily, I found a host, so I don't have to post retarded amounts of code. Download link in the first post.

Mac
Full Member
Posts:48
Joined:Wed Jun 29, 2005 2:01 am
Contact:

Post by Mac » Wed Aug 08, 2007 4:32 am

OK

Why did you include all of QB4.5? The download took forever! You just needed to upload the BAS program.

I posted it on The QBasic Forum on your behalf and will send interested people here.

Mac
Mac
The QBasic Forum
http://www.network54.com/Forum/13959

mooseproduce
Newbie
Posts:6
Joined:Mon Aug 06, 2007 2:08 am

Post by mooseproduce » Wed Aug 08, 2007 7:39 pm

I included all of QB4.5 for the benefit of people who don't have it. That download is entirely self-contained and plug-and-play. Sorry if 2MB is too much for your connection. :'(

Thanks.

Mac
Full Member
Posts:48
Joined:Wed Jun 29, 2005 2:01 am
Contact:

Post by Mac » Wed Aug 08, 2007 8:27 pm

mooseproduce wrote:I included all of QB4.5 for the benefit of people who don't have it. That download is entirely self-contained and plug-and-play.
Well, that's great for non-QBasic people. Agreed.

But on this forum, I would suggest just uploading the BAS file. We all have QBasic whatever.

Check out the post I made on your behalf:
http://www.network54.com/Forum/13959/me ... 63/bwarior

The Phylogenesis evidently likes it!

I have some trouble figuring out the user manual. I guess I am slow. So it blinks and looks impressive, but doesn't do anything I can understand or control.

Mac
Mac
The QBasic Forum
http://www.network54.com/Forum/13959

Dr_Davenstein
QBasic God
Posts:166
Joined:Tue Mar 25, 2003 12:45 am
Location:U.S.A.
Contact:

Post by Dr_Davenstein » Sun Aug 12, 2007 7:36 am

Hi. I can't run QB on this pc, so I'd like to try it wth a different compiler, if you don't mind. Can you post it as a text file somewhere? You can always use this site to post your code:

http://copy-pasta.com/

Thanks and have fun! :D
Come check out [url=http://www.freebasic.net/forum/index.php]FreeBASIC[/url]. The syntax is based on QuickBasic, but it expands to use pointers, operator overloading, etc... The list goes on and on!

Mac
Full Member
Posts:48
Joined:Wed Jun 29, 2005 2:01 am
Contact:

Post by Mac » Sun Aug 12, 2007 1:55 pm

What was wrong with the copy referenced in my link above? It is "text".

Mac
Mac
The QBasic Forum
http://www.network54.com/Forum/13959

Dr_Davenstein
QBasic God
Posts:166
Joined:Tue Mar 25, 2003 12:45 am
Location:U.S.A.
Contact:

Post by Dr_Davenstein » Sun Aug 12, 2007 10:59 pm

I missed that somehow. Thanks Mac. ;)
Come check out [url=http://www.freebasic.net/forum/index.php]FreeBASIC[/url]. The syntax is based on QuickBasic, but it expands to use pointers, operator overloading, etc... The list goes on and on!

mooseproduce
Newbie
Posts:6
Joined:Mon Aug 06, 2007 2:08 am

Post by mooseproduce » Thu Aug 16, 2007 3:48 am

So... has anyone actually managed to play it yet? :D


I added a bunch of new stuff, mostly new abilities for the campaign system... but at this point the source is too big for QBasic to handle. :'( An easy fix will be to take my DATA statements and use OPEN/CLOSE from data files instead.

New stuff includes:

- "Beacons" à la Starcraft, so that things will happen when the player reaches a certain position (new weapons gained, advancing the story etc).

- The level can resize the map; when combined with Beacons, this basically means that the map can start off small, but as the player reaches key points, he not only advances the story but also gains access to new areas.

- Each character in a level can have his existence turned on or off at each point in the story. So basically, I can do things like create ambushes where the player gets to a Beacon, sees some text telling him he's been ambushed, and then has a bunch of enemies appear around him.


Anyways, eventually I hope to have a robust enough campaign system that I can tell a story in-game with a level of awesomeness comparable to Starcraft. (The system will be awesome, not the story.) So the gameplay is super-simple and arcade-y, but hopefully I can transcend that by having cool scripted things happen and immersing the player that way.

Mac
Full Member
Posts:48
Joined:Wed Jun 29, 2005 2:01 am
Contact:

Post by Mac » Fri Aug 24, 2007 8:33 pm

mooseproduce wrote:So... has anyone actually managed to play it yet? :D
So... have you actually read my reply here? :D

See where I posted on your behalf. There are people who tried it. You need to post detailed user instructions.

Mac
Mac
The QBasic Forum
http://www.network54.com/Forum/13959

mooseproduce
Newbie
Posts:6
Joined:Mon Aug 06, 2007 2:08 am

Post by mooseproduce » Mon Aug 27, 2007 4:16 am

Oh, the replies in that forum go wayyy at the bottom - I'd kind of ignored your post because I couldn't see them. Thanks, though.

Um, I don't know why there is flicker and a lack of working. The game uses SCREEN 7, 1, 1, 0 and PCOPY 1, 0, so maybe your computer lacks VGA abilities? If you do a search-and-replace in the code for SCREEN 7 and replace it with SCREEN 8 or SCREEN 9, maybe it will work. On a different forum, someone said keypresses weren't being recognized; I can't see this being the case, because INKEY$ (while terrible) is, I thought, fool-proof. If all else fails, try running it in DOSBOX... the lag might suck, but it should have no other problems.


Whatever, here's a "detailed user manual" for you:


When you go to "set keys", it shows the default for each key as you set it. So, when you start the game, you can simply use those keys instead of setting them every time. If, for whatever reason, you can't see the defaults, here they are for player 1:

W - flap
S - dive
A - left
D - right
F - fire
R - weapon 1
T - weapon 2
Y - weapon 3
H - fists

During gameplay, you need to flap constantly to stay aloft. The more baloons you have, the less gravity affects you (although the effect is slight). Each time your health bar reaches zero, you lose a baloon, and gain a new health bar (although damage that went over the limit of your previous health bar is carried over). Press "fire" to use your currently selected weapon... note that shooting/melee-ing someone in the baloon does more damage, by a factor of 1.5 if I recall, than shooting/melee-ing them in the body.

Here's a weapon guide:


Fists - Minimal close-range damage. It pushes you forwards slightly, so that repeated punching can make you move faster than the maximum speed (for chasing enemies down).

Pistol - Simple, low-damage projectile weapon. The benefit of the pistol is that, when you run out of ammo, pressing Fire reloads five bullets: in effect, this weapon has infinite ammo.

Shotgun - Fires an expanding group of damaging pellets. Every time you press fire, you alternate between shooting and reloading the chamber; this is so that you can fire close to the bottom of the screen, and then have time to flap back up before reloading.

Minigun - Fires a stream of low-damage bullets. Pressing Fire once causes you to begin shooting, and pressing Fire or Flap again causes you to stop, which allows rapid fire despite INKEY$'s limitations. :)

Rocket Launcher - Rocket-propelled explosives; low ammo, high splash damage. This weapon is heavy, and therefore affects your speed and gravity. Also, firing it pushes you back a bit for that extra feeling of power.

Dual pistols - Works exactly like a single pistol, but fires twice in quick succession. By moving upwards or downwards while shooting, you can put a vertical space between the bullets in order to hem your target in. After every five shots, pressing Fire will result in a reload animation (although re-selecting the weapon resets the counter, and you do not gain any ammo).

Katana - It's like fists, only better. Use it against enemies in Debug Mode to see the hitbox. Remember that every slash propels you forwards, even past the maximum horizontal speed... so, in a chase, the katana guy will always win if he slashes constantly.

Chainsaw - Press Fire once to rev it up, and again to turn it off. While revved, the chainsaw consumes ammo and deals damage (and I think I made it reduce your horizontal speed). Additionally, if you press Dive while revved, there is a super-special secret downwards attack; try this with enemies in Debug mode to see the difference in hitbox. Also try doing the downward attack above an enemy, and then Diving... it's possible to push them off the bottom of the screen, with luck. This is my favourite weapon. ^____^

Rifle - When you press Fire, your character takes aim for a second and then fires a fast-moving, super-damaging bullet. This can be difficult to use, but deadly when mastered - if you hit someone's baloons, it deals an entire health bar's worth of damage (i.e. they automatically lose an entire baloon). Hint: it's generally good to hit Flap + Fire in quick succession, so that your character gets a bit of extra height before taking aim. That way, you should hopefully shoot just as your character falls back down to the position you originally wanted to fire from.

Bowling balls - These are heavy, and therefore slow you down. I think they leave your gravity alone, though. At any rate, dropping bowling balls is unique because A) since you're attacking from above, every hit is basically guaranteed to hit the opponent's baloons as opposed to his body, and B) it is possible to kill by knocking opponents off the bottom of the screen, instead of wearing down their health.

Flamethrower - This is the best animated fire I've ever seen in a Qbasic game, if I may congratulate myself. Anyways, the flames pass through enemies, dealing damage to each enemy every frame they make contact. Obviously, this equals major damage if used properly. The setbacks are the short range of the weapon, and a cooldown time. Pressing Fire begins the attack, and pressing it again stops it, although it will automatically stop after 12 frames. The cooldown time depends on when the user cancelled the attack; obviously, the full 12 frames will have the longest cooldown. You can see an indication of the length of the attack / time till cooldown ends by looking at the character's weapon... the green stuff is supposed to represent a fuel tank, and it empties as you shoot, and refills as the cooldown takes effect.

Shield - The shield only works if you are facing the bullet (or attacker, in the case of melee attacks). It converts damage into ammo usage for the Sheild, and once you're out of Shield ammo it stops blocking damage. If I recall, the chainsaw and flamethrower are unaffected by Shield, as is the splash damage from the rocket launcer (although the rocket itself is blocked in the case of a direct hit).



Anyways, the idea is to introduce the player to more and more weapons as they progress through the game, probably with a description similar to those above when they recieve each new weapon, so you won't have to memorize the effects of all the weapons before you start playing. Also, once team commands are in place, the player should be able to do things like - for instance - direct Rifle-wielding teammates to Defend, and Shield-wielding teammates to Attack, so that enemies' bullets get deflected while they are peppered with rifle shots. Then, the player can come in with a Chainsaw or Flamethrower and kick some ass. :O

I'll probably work on this again sometime soon, get my DATA statement system converted to an OPEN - CLOSE one with data files, and finish up the campaign mission system... then it's just AI work and making an entire campaign (and maybe removing all instances of text-inputting, and using completely graphical menu systems instead).

Mac
Full Member
Posts:48
Joined:Wed Jun 29, 2005 2:01 am
Contact:

Post by Mac » Mon Aug 27, 2007 8:48 pm

Thanks for the user manual. I posted it with your program.

Mac
Mac
The QBasic Forum
http://www.network54.com/Forum/13959

Post Reply