In the spirit of Terry's Tutorials - GUARDIAN Alien Space Ship Game
#14
I just got done playing a few rounds of Guardians. It's amazing how much can be done on a giant ASCII screen. I see no reason why this game couldn't be converted to graphics easily.

The game play is difficult. It took me a few times to beat level 3 "Guardian Wins". It's difficult to aim the bullets at the enemy since you really have no indication of where the enemy ships are heading. There's no "front end" of the ship so to speak. The game play reminds me of a cross between Asteroids and Phoenix.

https://en.wikipedia.org/wiki/Phoenix_(video_game)

Converting this to graphics would allow:

- Rotating the player ship in more than 8 positions allowing for finer missile aiming
- The player and enemy ships could have front ends showing which direction they are heading
- The enemy ships could be made to turn around in tight circles showing they are changing direction
- Explosion effects (although your ASCII explosions are really cool)
- Allow the player ship to be thrusted around like the ship in Asteroids. That gets intuitive pretty quickly and allows "sliding" around enemies.

When converting I would suggest:

- use sprites that have the same odd dimensions: 129x129, 65x65, 31x31, etc..
    This gives the sprite a definitive center point for _MAPTRIANGLE rotation. Over the years I've found this to work best with _MAPTRIANGLE.
- Use a combination of rectangular collision and line intersect collision. Rectangular for proximity and then line intersection to see if a bullet crosses the rotated bounding box surrounding the enemy ship. Basically a box rotating inside of another box. The inner box will always maintain the same dimension while the outer box changes in size.
    (As you rotate a sprite it changes size. The overall rectangle grows and shrinks. This is where rectangular collision comes into play for proximity. The four points of rotation are used to create a bounding box of four lines that line detection can then use to see if the actual sprite was hit. Line detection eliminates the effect of "bullet pass through" where an enemy is heading straight for a bullet and the bullet passes through because of the speed of the bullet and enemy combined causes the bullet to skip over. I had to do this in Widescreen Asteroids because of small fast moving asteroids. An imaginary line is drawn from the previous bullet location to the next and that imaginary line is used for line intersection with the four bounding box lines. This also gives you a precise coordinate of collision allowing for accurate explosion placement.)

Some suggestions to add:

- A limited number of "smart" missiles per level that lock on to an enemy and chase it down.
- As the enemy ships get closer to the player they get "smarter" and home in on the player.
    As the player gets "braver" they'll get closer to the enemy ships for better aiming knowing the risks of doing that.
- Every once in a while the enemy ships could group into small attack formations and swoop toward the player.
- As the levels progress the enemy ships gain skills: shooting, better attack formations, the "smart" home in distance gets greater, etc..

This is a concept for a game that graphics would really enhance. all of the above suggestions could easily be put into the ASCII version as well.

Terry
Reply


Messages In This Thread
RE: In the spirit of Terry's Tutorials - GUARDIAN Alien Space Ship Game - by TerryRitchie - 10-15-2022, 05:35 PM



Users browsing this thread: 8 Guest(s)