Jump to content

Sohl

Members
  • Posts

    155
  • Joined

  • Last visited

Everything posted by Sohl

  1. The pandemic... I was sort of imagining what would be going on inside my body and everyone else's in early 2000. I thought it would be empowering or at least psychologically comforting to be able to "fight" a virus in a more direct way via gameplay. So I wanted to have some fighting game elements, not just a shooter. I didn't get a direct fight against the viral RNA strands implemented like I first considered (that part ended up more-or-less "shooter" style) but I got a "bounce" effect for Energy molecules into the mitochondria and, closer to my earlier thought, the idea of "thumping" the cell membrane to shake loose spike protein that can be used to generate more antibodies. I added some resource management ideas with powerup effects to make the game play a little more strategic, but very loosely based on health/metabolism dynamics. But the main dynamic is use antibodies to neutralize each virus then gobble it up with macrophage, and to slow down the growth of new viruses as you rebuild more antibodies. By the way, I tinkered a LOT to make the virus graphics look good on the 2600. I use some different methods depending on what part of the different screens the virus appears in. The screen cap you have there is formed by a player sprite for the red spikes over a playfield square (one bit), so you don't see what would be bottom row of the whitish virus body as you can when they are free-floating. But in that part of the screen, the virus is supposed to be implanted in the membrane, so I can sort of justfy why you might not see part of it. Right?
  2. Thanks @magnusfalkirk. Glad you and @Living Room Arcade found it and/or found it interesting! I've been a little scarce lately, so I didn't even realize you've been referring to my game Immunity.
  3. That's an awesome video @BitJag! I'm really happy how your work on the box and manual turned out. You took my rough vision and made it better and more complete with your tremendous talent and skills. I'm honored to have you as my artist and manual designer! I'm going to forward this video to friends and family!
  4. Thanks for grabbing a copy of my game Immunity! I hope you like it and the packaging and manual I put together with @BitJag and @Albert.
  5. Very cool game... I love the play mechanics demo'ed on the ZPH show. I also wondered about the Driving controller, but you have ruled it out I saw earlier in the thread.
  6. I would love to have XPx to directly set the X positions, even if we need to use the direct LFSR values to do so. The other things you list for TIA would be nice too. For the 6507, a "load accumulator with one of two options, based on a condition flag" instruction would be great. I think there is an undocumented one that sort of works, but maybe has some other side-effect or limitation.
  7. Cool look so far! The ball is only available once per scanline, and is the same color as the playfield foreground (COLUPF), but can be a few different widths. Ball width of one or two color clocks (= 1 or 2 sprite pixels) can help smooth out playfield "pixels", which are 4 color clocks wide each. Missiles do allow repeats like the player graphic sprites, but are the same color as the corresponding player sprite (COLUP0 or COLUP1), so can be tricky to use in some cases. A lot of game ports made back in the 2600 heyday took a lot of liberties with look and layout (arguably too much liberty, in the cases of Donkey Kong and Pac Man), but I would encourage you to simplify the look a bit more to more naturally fit the rendering capability of the 2600. CDFJ+ can help make more complex graphics possible by streaming data from an ARM processor in the cart to the same memory location visible to the 2600's CPU so you don't need as much code on the 2600 to jump around and manage pointers and offset indices, etc. But if the 2600 is producing the picture, it needs to be done through the TIA's graphics objects and color registers.
  8. If the color change needs to happen cleanly at only one or a few locations, why can't you waste a few cycles with NOPs or 4cycle writes, etc. so that the real STA that you want to do hits when you want? Am I missing something special about your situation? Nevermind, I think you are talking about the 3 color clocks per CPU cycle.
  9. That's awesome, but I didn't catch your notice in time, and was kind of busy on Tuesday. Thanks for playing during your show. One hint for higher score is to hold the fire button longer, especially when the beam speeds up. At the faster sweep speeds, this allows you to sort of scoop the objects along rather than bump them. Early though, quick taps of fire can sometimes allow you to double-bump the objects in one beam pass. Also, press & hold fire earlier to make smaller pushes when you have objects close to the incinerator. There's a couple of fixes and other improvements I know I want to make: 1) It's too easy to start a new game immediately after loosing... I need to have the game ignore the fire button during the "loose" music motif and perhaps a bit longer to ensure you see your final score. 2) I want to make the Advanced difficulty switch setting start the same with speed level 2 (currently both A and B start the beam at speed level 1). That would allow better players skip the slowest phase. The speed is how many pixel positions or scanlines the beam advances each video frame (currently it is 1, 2, 3... no matter the difficulty, and then 4 is possible if difficulty is set to A). 3) Make the current moving objects just a little faster. 4) Add additional object types with unique ways of moving 5) Slow the title music, maybe add a second voice accompaniment I haven't decided if I want to grow the feature set with things like: 1) Game version where you set the beam sweep direction each time. 2) Two-player version(s)
  10. I agree it's possible. I did a lot of asymmetric playfield in my game Immunity for score and status bars. I recommend pre-computing as much of the math as possible and put it in tables for relatively simple look-up operations rather than number crunching on the CPU.
  11. Some notes on the typical behavior of space-varmits™ * Creepers: Move slowly outward from the incinerator. Sliders: Move in a straight horizontal or vertical path, usually whichever would be longest path to the edgewhen the varmit begins motion. Zipsters: Chooses a random direction, slightly biased away from incinerator, but they are know to frequently zip right into it! Zagsters: Generally alternate between a horizontal and vertical path away from incinerator. Pushing any of these varmits to a new location will trigger them to re-establish their path. * (not actually trade-marked... yet, at least!)
  12. Sweep Shot Welcome Space Station 48-307 Custodial Cadet! Your first job is to operate the station debris incinerator, which is enhanced with a laser-guided ion-beam sweeping device to push unwanted objects, including some nasty space-varmits, into the incineration zone. The ion-beam is easy to operate, but tricky to master! The laser guide line will continuously sweep across the station sector in a repeating pattern. You inject an ionic pushing wave when you press your control button. The guide beam will glow orange as it energizes… but press too long and it looses effect. After you release the button, the beam will require a fraction of a second to recover before it can be utilized again. Note that you push the objects stronger if the beam activates on or very close to an object, and pushes more weakly if activated before reaching the object. Timing is critical! Station “dust bunnies” will not move on their own, but the space-varmits will! Nudge them quickly into the incinerator in the center of your sector or they can escape. You will hear a warning tone if the object is close to the sector edge. If four objects escape, your shift will be terminated early and you will be sent to kitchen patrol… or worse! Your performance will be monitored, and you will receive more performance points if you incinerate the unwanted objects with fewer ion blasts. The more quickly-moving objects can earn higher amounts of performance points. If you clear all of the objects in one sector, you will advance to another sector, but the ion-beam sweeping rate will increase each time up to the max speed seen in the third and later sectors. Many custodial cadets find that the higher sweeping speed becomes easier to use than the slowest speed once the timing is familiar. Objects and space--varmits: DustBuns: Creepers: Sliders: Zipsters: Zagsters: A good, clean incineration: We’re counting on you to maintain a clean station. Now get to it! [2600 control notes: Reset Switch will restart the title screen; press Fire on the title screen or a game-over screen to begin play; pressing Fire on the game over screen (which looks white with black score digits) for a longer period will restart the title screen again; only the Left Joystick fire button is used to play; The Left Difficulty Switch allows the beam sweeping speed to reach a level of 4 (beginner is limited to 3); Right Difficulty switch disables ongoing beam rumble sound in the the A position; there are no game variants.] sweepshot - 2022Dec31.bin
  13. Coming later today (Dec. 31st)! Just needs a bit more cleanup and tuning... Will post my best version around 3:00 PM EDT.
  14. Here is a new playable demo. It has the new features described in my recent posts minus two that I'm holding for potential commercial release: 1) Resting (skip ahead) 2) Two of the six tissue types I increased some of the movement rates to make it a bit more challenging. The beginner difficulty level is perhaps still a bit easy, but the advanced difficulty is quite hard to beat in my opinion. I don't know of any major issues with this, but if you notice a bug or weird issue, let me know! Also if you have feedback on the gameplay challenge level, etc. that would be great to hear. Happy Holidays! imm _demo_2022dec23.bin
  15. Ahh, see how ignorant I am? It would be easy to make a separate ROM image with alternative colors. It would be nice to be able to support dynamically with the color/bw switch, but I don't think there's any way to do that and still fit the 16K F6 bank-switching scheme. My latest build has approximately has 52 bytes free.
  16. Hi @Bomberman94 ! I have zero experience making PAL versions of games. The Immunity code has very many drawing kernels with hard-coded scanline limits and not a lot of extra ROM or RAM to make it dynamically adaptable, but perhaps it's possible. Otherwise, eventually, I can use conditional assembly statements to be able to build a PAL version instead of a the NTSC version with different hardcoded loop limits, color values, etc.). I'm not sure if this could be carried as a separate item in the AA store (assuming I get it there, as hoped), but perhaps at least I could release a demo version in PAL at least.
  17. New gameplay feature for the two-player game... brief virus "shield" when player controlling virus hits the fire button. When active, an antibody flung by the ribosome player will not hit & stick to the virus. The virus shield state is shown by a different virus body color (green currently). The length of time will be very short, so the virus player needs to time it precisely. If the player continues to hold the fire button, the shield will no longer be active, and can only be re-activated by releasing the fire button and pressing fire again. P.S. This will only apply to the game variant 4 (the rapid-fling two-player game)
  18. Based on some feedback during the @ZeroPage Homebrew Twitch stream, I have implemented an antibody "rapid-fling" option, enabled by selecting game variant 3 (one-player rapid-fling) or variant 4 (two-player rapid fling). A small "r" is shown with the game variants 3 & 4 digits to better indicate the "rapid-fire" option. In the rapid-fling mode, you still cannot have more than one antibody flinging upward at a time, but each fire button release will restart any currently flinging antibody back to the current ribosome location; meaning, you don't need to wait for the antibody to reach the top of the playfield if you miss a virus... you can fling again as soon as you want. But be judicious with this option... you can more quickly run out of antibodies, which is GAME OVER! I've also found and fixed a few other bugs. I hope to get a playable demo with these new game variants out before Christmas, which will also feature some of the other changes mentioned above, minus any "commercial only" features.
  19. Many new updates to my game code and some graphics updates as well. Many fixes for virus motion bugs, scanline count inconsistencies, and a few visual glitches Did some tuning of virus motion rates in the various tissues to be more interesting and challenging. Probably will tweak a bit more with further testing I changed the order that tissues are played to be more bio-inspired: Lung - Mucous Membrane - Bloodstream - Muscle - Brain - Bone - (then repeats) Bone tissue is a lighter color, to differentiate it from Brain tissue better, but it will make virus and antibody visibility a little more challenging for the player I have a hint of a "skin" tissue that shows up only in the upper part of the first "intra" (mostly blue) screen the first time it is played per game in the one player version. I've recolored part of the two-player score display so the score numerals and player sprites are on top of a blue background, which helps contrast. "Three items at a time" update animations in the scoring/bonus review intermission screens so they are faster - nice when there's a lot of new antibodies Monophonic but better-sounding splash screen music; main title screen theme music is the same New "Rest" feature, described below The new "rest" feature allows you to skip ahead to the end of the exo-cellular screen when your antibody level is very low and you need to build up more in the intra-cellular (mostly blue) screen. I'd like to add an audible alert that the antibody levels are low to help players know when to "rest", but not done so yet. (ROM is starting to run out and it is quite challenging to add more code and/or data in some parts of the ROM!) Resting is triggered pulling the joystick down and holding a few seconds. You will see a non-play screen with a clock icon and the word "Rest" ... but if hold long enough, you will see a "sleeping" ribosome character, which lets you know you have committed to the rest period. Then when you release the joystick, it will immediately trigger the exo-cellular intermission/score-review screen. You will still loose health for any viruses that had or can latch or are still free in the tissue, but unless that takes your health down to zero, you will have a chance to build up antibodies again so you "live to fight another day." I'm planning to hold this "rest" feature out from any new playable demos I post to save a few elements for those who purchase a packaged version of the game someday soon (I hope). Might also reserve the last two tissue levels for the commercial release. Stay tuned for further updates!
  20. Here is the ROM image of the version of Immunity played last night on the ZPH Twitch stream. Thanks @ZeroPage Homebrew! I'll need to look into that "orange screen" crash! immunity_wip_20221126.bin
  21. Using the "Big Sprite" drawing method used in the game select screens as shown above, I've revamped many of the non-play screens for title, winning, two-player prompts, credits etc. Here is my current title screen. I still have a bit more work to do to fix regressions caused by the non-play screen changes, plus a few more things to get the non-play screens switching/cycling as intended. But I'm starting to see a glimmer of light at the end of the tunnel of coding!
  22. Demo with two-player mode is posted! It's a bit rough around some of the edges... you may see scanline count issues in a few spots, and the virus sprite sometimes only partly visible when low, but you can try out the two-player game. When on the Immunity title screen, the game select switch, or... being couch-compliant , pulling down on the left joystick will activate the game select screen (as seen below), while additional game select switch presses or downward motions of the left joystick will toggle the selected game version. You will see a "1" or "2" at the top of the screen for one-player and two-player and a visual representation of a joystick icon horizontally aligned with the ribosome character for both games, or a blank or a second joystick horizontally aligned with the virus character depending on the current game selection of 1 or 2. Gameplay for two players is as described above in my previous posting in this thread. As of now, neutralizing a virus scores a player 1 point (don't forget to push up on the joystick to enable the macrophage as done in the one-player game). Latching a virus scores the other player 3 points, but to do so requires a player to move back and forth a few times over a good (and open) latching spot when at the membrane. Later I plan to have the game briefly display a version of the above game select screen to show which player is controlling each character in the game whenever the player control swaps back or forth. Furthermore, I want to rework the title screen and most of the non-play screens to leverage these new character graphics (aren't they cute?), but that will require some significant tear up and refinement in other parts of the code. Stay tuned for that. If you have feedback or bugs to report, especially on the two-player mode, I'd appreciate it! I've had one of my college-age kids help me playtest a bit, but I'd love to get others' impressions too. Have Fun! Another bug I've noticed in this demo release: If you win in the one-player mode and the non-playing game is cycling back and forth between the win screen and the score & playfield screen and you then pull the game select switch, the game select screen will be corrupted. You can first hit game reset switch or the (couch compliant) fire button when on the win screen to reset the game completely, then select the game (1 or 2). imm_2player_20221106.bin
  23. Two-Player teaser... The basic idea for the two-player game is that the left and right players take turns controlling the ribosome (at the bottom) or the infecting viruses in the "exocellular" gameplay mode. The player controlling the ribosome moves left and right and flings antibodies upward hopefully to cover the attacking virus, as in the one-player game version. I have not decided yet to leave the macrophage (gobbler) mechanics in or automatically remove the covered (and therefore neutralized) virus (Maybe this could be a minor game variant) The player controlling the viruses may move them sideways at various speeds depending on the tissue type, but generally slower than the ribosome. If the player does not press the joystick in the upward left/right direction, both viruses move in the same direction. If the player does push the joystick in the upper direction left or right, the higher virus will move in that direction while the lower virus moves in the opposite direction. If the player pulls the joystick downward, in any direction, the viruses will move straight down, but faster than the default decent rate. (Note that the body's breathing affects virus vertical movement in two tissue types, while pulse effects virus horizontal motion in two other tissue types.) I have the two-player scoring display basically done, as seen in this screen shot (unless I want to make it fancier later). Each player has a two digit score. The left player is yellow and right player is turquoise green. The player controlling the ribosome will have a copy of the ribosome sprite next to their score digits, while the player controlling the viruses will have a virus sprite next to their score digits. I don't have the scoring worked out exactly, but when a player controlling ribosome neutralizes a virus, perhaps 1 point will be earned. On the other hand, if the player controlling the viruses manages to get one to the cell membrane and "latch" it on, a higher number of points will be earned (maybe 3? I'll try to balance this depending on how easy/hard each side is to play). Right now, I don't plan to limit the antibodies as in the one-player game. After three viruses latch or the ribosome player has neutralized a certain number (9 minus the latched number?), the players will swap roles. After both players have completed both roles in a specific tissue type, the game will move to a new tissue type which will have different virus horizontal and vertical speeds, and possible effects from the body's breathing and pulse. As of now, first to 99 wins the game. All of this is still subject to change as I implement things and determine what works well in gameplay. I still have many changes and additions to get the two-player mode fully playable, but I want to get a new playable demo out within two-three weeks.
×
×
  • Create New...