Lower Decks II (WIP): Warp Drive - 1-4 player!
Posted: Thu May 09, 2024 8:15 am
WORK IN PROGRESS
Try It Now!
EDIT: 2024/05/12 VERSION 2 UPDATE
Think have the gamepad-jittery issues resolved, added background audio (randomizes the playback rate between rounds).
Added PAUSE (via pressing START) and SELECT now toggles hard-mode.
Remember to pass -joy1 or -joy2 or -joy3 or -joy4 to enable gamepad in the emulator (or try passing all of those). You can play with "gamepad0" (keyboard) as well.
I'm trying to stick to "regular BASIC" usage as much as possible, not much fancy peek/pokes - as an interesting style and challenge of coding on the X16. Although I do plan to use the ZSMKIT for some audio. But I need to learn a bit more about ZSMs - although if anyone wants to take a stab at making some sound FX, a stock repository of some sound effects would be a nice thing for the community (and maybe toss them onto future SD card updates).
Lower Decks #1 was about PMS... Power Management System!! It's in the BASIC-GAMES folder and is a "requires-mouse" X16 exclusive.
Lower Decks #2 is about the Warp Drive!
How To Play
The job is to match both the WARP and POLARITY settings on the left with the TARGET values on the right. Those TARGET values will change each time the hourglass becomes full (actually there is a bit of delay once the hourglass becomes full, to keep it a little suspenseful on how much time you have left). Basically when the hourglass becomes full, it's an intermission time while the Captain is waiting for new orders and deciding the new warp speed.
What most don't realize about warp drives is that the "density" of space changes across regions. So that's why the polarity changes, and to get a stable warp field the polarity has to match. And it's why even for the same warp speed, you may need a different polarity setting.
WARP speed request can go 1-8, while POLARITY can go 2-64. (cause, you know, 8-bit computer and 64K address space)
Dilithium crystals are the fuel of warp drives, but you can't touch them by hand! So the ship has these special controls to move crystals over to the warp drives. Like all crystals, they grow at varying speed. Larger crystals impact the warp field greater than smaller crystals. You select (using <A>) a crystal from the 16 chambers at the top. Move left/right with the game D-pad, or the L/R buttons at the far edge of the gamepad.
Only one player can select a chamber at a time. Once selected, then you decide what to do with the crystal (after selecting with <A>, your focus then switches to either the Left or Right nacelle - then use up/down on the D-pad to select what action, and <B> to select that action). Actions are: You can toss it into the W+ to increase the warp speed, or P+ to increase the polarity. Alternatively, you can dissolve crystals by tossing them into the W- to decrease the warp speed, or P- to decrease the polarity. How much is increased or decreased just depends on the size of the crystal you used.
Once a crystal reaches the size of its chamber, it can start to rot and go bad. You'll have a few moment, but once it becomes black, it becomes a dead crystal and has to be dissolved before anything else in that chamber can grow. Use button <B> to dissolve dead crystals. This is why you might need other players, to just help dissolving dead crystals. Or, one player can focus on Polarity while another handles Warp. All up to the team!
And that's it! You don't have to match the TARGET warp and polarity exactly. When the graph at the bottom is GREEN, the warp field is stable and you'll earn a point. When yellow, it's a warning, and you neither gain or lose a point. When red, the target parameters aren't reached and you may break the engines! (so you lose a point, for each plot of this status). The accumulated points are applied to the score at the end of each hourglass round.
A couple strategy hints:
- when a chamber is selected, that crystal won't grow. So other players can "hold" a crystal at a certain size, which can help.
- you can dissolve aged crystals early (anytime the edge starts changing color from magenta). Eventually you'll need small crystals to tiny adjustments, so it's good to keep a mixed variety of growth.
- SELECT enables HARD-MODE!! In this mode, rotted crystals start to destabilize your warp field.
- START is used to PAUSE
Pretty silly, but it's a demo of something that can be done with BASLOAD Plus I just wanted to see if a 4-player gamepad game could be made in BASIC (what I mean is, at 8MHz is it enough performance to poll and react to that much input). So far it does have a little bit of jitter gameplay issues, I may have to drop down to 2-player only (and the code is setup to be fairly easy to do that). I also wanted up-to-4-players to be able to join the game at any time.
EDIT: Better just get the ZIP since the PRG now depends on a few external files (font and zsm)
Try It Now!
EDIT: 2024/05/12 VERSION 2 UPDATE
Think have the gamepad-jittery issues resolved, added background audio (randomizes the playback rate between rounds).
Added PAUSE (via pressing START) and SELECT now toggles hard-mode.
Remember to pass -joy1 or -joy2 or -joy3 or -joy4 to enable gamepad in the emulator (or try passing all of those). You can play with "gamepad0" (keyboard) as well.
I'm trying to stick to "regular BASIC" usage as much as possible, not much fancy peek/pokes - as an interesting style and challenge of coding on the X16. Although I do plan to use the ZSMKIT for some audio. But I need to learn a bit more about ZSMs - although if anyone wants to take a stab at making some sound FX, a stock repository of some sound effects would be a nice thing for the community (and maybe toss them onto future SD card updates).
Lower Decks #1 was about PMS... Power Management System!! It's in the BASIC-GAMES folder and is a "requires-mouse" X16 exclusive.
Lower Decks #2 is about the Warp Drive!
How To Play
The job is to match both the WARP and POLARITY settings on the left with the TARGET values on the right. Those TARGET values will change each time the hourglass becomes full (actually there is a bit of delay once the hourglass becomes full, to keep it a little suspenseful on how much time you have left). Basically when the hourglass becomes full, it's an intermission time while the Captain is waiting for new orders and deciding the new warp speed.
What most don't realize about warp drives is that the "density" of space changes across regions. So that's why the polarity changes, and to get a stable warp field the polarity has to match. And it's why even for the same warp speed, you may need a different polarity setting.
WARP speed request can go 1-8, while POLARITY can go 2-64. (cause, you know, 8-bit computer and 64K address space)
Dilithium crystals are the fuel of warp drives, but you can't touch them by hand! So the ship has these special controls to move crystals over to the warp drives. Like all crystals, they grow at varying speed. Larger crystals impact the warp field greater than smaller crystals. You select (using <A>) a crystal from the 16 chambers at the top. Move left/right with the game D-pad, or the L/R buttons at the far edge of the gamepad.
Only one player can select a chamber at a time. Once selected, then you decide what to do with the crystal (after selecting with <A>, your focus then switches to either the Left or Right nacelle - then use up/down on the D-pad to select what action, and <B> to select that action). Actions are: You can toss it into the W+ to increase the warp speed, or P+ to increase the polarity. Alternatively, you can dissolve crystals by tossing them into the W- to decrease the warp speed, or P- to decrease the polarity. How much is increased or decreased just depends on the size of the crystal you used.
Once a crystal reaches the size of its chamber, it can start to rot and go bad. You'll have a few moment, but once it becomes black, it becomes a dead crystal and has to be dissolved before anything else in that chamber can grow. Use button <B> to dissolve dead crystals. This is why you might need other players, to just help dissolving dead crystals. Or, one player can focus on Polarity while another handles Warp. All up to the team!
And that's it! You don't have to match the TARGET warp and polarity exactly. When the graph at the bottom is GREEN, the warp field is stable and you'll earn a point. When yellow, it's a warning, and you neither gain or lose a point. When red, the target parameters aren't reached and you may break the engines! (so you lose a point, for each plot of this status). The accumulated points are applied to the score at the end of each hourglass round.
A couple strategy hints:
- when a chamber is selected, that crystal won't grow. So other players can "hold" a crystal at a certain size, which can help.
- you can dissolve aged crystals early (anytime the edge starts changing color from magenta). Eventually you'll need small crystals to tiny adjustments, so it's good to keep a mixed variety of growth.
- SELECT enables HARD-MODE!! In this mode, rotted crystals start to destabilize your warp field.
- START is used to PAUSE
Pretty silly, but it's a demo of something that can be done with BASLOAD Plus I just wanted to see if a 4-player gamepad game could be made in BASIC (what I mean is, at 8MHz is it enough performance to poll and react to that much input). So far it does have a little bit of jitter gameplay issues, I may have to drop down to 2-player only (and the code is setup to be fairly easy to do that). I also wanted up-to-4-players to be able to join the game at any time.
EDIT: Better just get the ZIP since the PRG now depends on a few external files (font and zsm)