An artillery style game for the Apple IIgs. But with cats.
Go to file
blondie7575 1d3bfeba8f Font engine refactor
String rendering code is now replicated for each font, which makes the code much faster and tighter. This will also immensely simplify switching to left-justified text rendering, which turns out to be important. :-|
2023-07-16 20:10:00 -07:00
Art Integrated tiny number font with font engine 2023-07-16 15:18:06 -07:00
DiskImageParts Smarter disk image management 2023-06-18 16:59:37 -07:00
GSCats.xcodeproj Integrated tiny number font with font engine 2023-07-16 15:18:06 -07:00
Sound Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
.gitignore Font engine refactor 2023-07-16 20:10:00 -07:00
animation.s Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
boot_mame.sh Fix scrolling speed 2021-07-24 13:55:16 -07:00
cadius Smarter disk image management 2023-06-18 16:59:37 -07:00
circleTable.s Fixed craters on hi-res terrain 2017-09-17 16:17:27 -07:00
collision.s Optimized span rendering moved to $E1 2018-01-16 12:56:53 -08:00
CompileFont.py Font engine refactor 2023-07-16 20:10:00 -07:00
crosshair.s Added power indicator to crosshair 2023-06-25 18:43:07 -07:00
dirt.s Better looking dirt explosions, at cost of some terrain artifcats 2020-01-05 16:18:01 -08:00
equates.s Font engine refactor 2023-07-16 20:10:00 -07:00
fan.s Added option for weapon deployment delay 2021-07-24 14:41:48 -07:00
font8x8.s Integrated tiny number font with font engine 2023-07-16 15:18:06 -07:00
font16x16.s Combine cross-row stack moves in font compiler 2023-07-13 13:34:03 -07:00
fontEngine.s Font engine refactor 2023-07-16 20:10:00 -07:00
fonts.s Font engine refactor 2023-07-16 20:10:00 -07:00
gamemanager.s Replaced debug font rendering with real thing 2023-07-16 14:17:02 -07:00
gameobject.s Added animation system with hit animations for cats 2023-06-30 15:32:17 -07:00
GenerateCircles.py Fixed craters on hi-res terrain 2017-09-17 16:17:27 -07:00
GeneratePixelCircle.py Foundation work for aiming crosshair 2023-06-21 20:07:30 -07:00
GenerateRenderSpans.py Optimization 2017-08-07 22:10:16 -07:00
GenerateSoundBank.sh First implementation of sound 2023-07-04 20:09:17 -07:00
GenerateSpanDataTable.py First working version of virtual stack unrender 2018-01-06 15:30:06 -08:00
GenerateTrigTables.py Basic rendering of projectiles 2017-08-24 21:45:05 -07:00
GenerateVRAMTable.py Optimizations and cleanup 2017-08-06 13:26:31 -07:00
GenerateVRAMYOffset.py Lookup for render span VRAM rows 2017-12-27 10:06:42 -07:00
graphics.s Font engine refactor 2023-07-16 20:10:00 -07:00
gscats.s Missed in last commit 2023-07-16 15:19:55 -07:00
input.s Added power indicator to crosshair 2023-06-25 18:43:07 -07:00
inventory.s Font engine refactor 2023-07-16 20:10:00 -07:00
linkerConfig Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
loader.s Combine cross-row stack moves in font compiler 2023-07-13 13:34:03 -07:00
macros.s Added power indicator to crosshair 2023-06-25 18:43:07 -07:00
Makefile Font engine refactor 2023-07-16 20:10:00 -07:00
MerlinToCA65.sh Fixed art pipeline bug 2017-10-17 08:21:29 -07:00
ParseMapFile.py Optimized span rendering moved to $E1 2018-01-16 12:56:53 -08:00
player.s Font engine refactor 2023-07-16 20:10:00 -07:00
projectile.s Added animation system with hit animations for cats 2023-06-30 15:32:17 -07:00
random.s Dirt clod creation and explosion working 2020-01-05 15:11:14 -08:00
ReadMe.md First implementation of sound 2023-07-04 20:09:17 -07:00
RenumberSpriteFiles.sh Overhaul of art pipeline to support sprite flipping 2018-08-06 13:00:13 -07:00
sound.s Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
SoundBank#060000 Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
spritebank.s Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
SpriteBank#060000 Added shoot animations and more sound 2023-07-05 20:27:47 -07:00
tables.s Foundation work for aiming crosshair 2023-06-21 20:07:30 -07:00
terrain_e1.s Fixed compiled terrain rendering 2018-07-24 18:43:41 -07:00
terrain.s Added power indicator to crosshair 2023-06-25 18:43:07 -07:00
tinyNumbers.s New font cleanup 2023-07-16 19:01:14 -07:00
utility.s Added animation system with hit animations for cats 2023-06-30 15:32:17 -07:00

GSCats

Introduction

This is a simple game in the style of Apple II Artilley, Scorched Earth, or Worms but with cats and nobody gets hurt.

This was written as an exercise for me to learn the fundamentals of Apple IIgs game programming, and I certainly won't claim there's anything special here technically. The neatest part is probably the terrain, which is deformable and scrolls at 60fps on stock hardware. Well, sometimes it does, anyway, depending on how you hold your nose. The GS is hard.

Acknowledgements

I'm writing this game now because I'm learning all the things I wished I could know when I was a teenager and playing all the amazing GS games. Games like Rastan, Task Force, Alien Mind, The Immortal, and Sword of Sodan that did things that people said the GS shouldn't be capable of. I was never able to acquire the knowledge of how these things were done back then, but thanks to an amazing modern retro community, I can! In that spirit, thanks to:

  • John Brooks, who has forgotten more about the GS than I will ever know.
  • Rebecca Heineman, who wrote every good game on the platform that you probably played except the ones John wrote
  • Jeremy Rand, who is inspiring to me with his prolific retro programming endeavours and humble spirit. Not to mention I learned a lot from reading his code for BuGS.
  • Brutal Deluxe, who have made so many great GS tools, including Mr. Sprite and Cadius, upon which this game depends. I doubt you could find anyone more consistently devoted to the platform than these guys. Mr. Sprite's Tech Page is probably the greatest single treatise ever written on how to do fast Apple IIgs graphics.
  • Dagen Brock, for tirelessly maintaining the last remaining (as of this writing) good GS emulator, GSPlus. Without good emulators, retro-development dies, so thank you for fighting the good fight, Dagen. Emulating the GS is a thankless job for a platform almost nobody cares about.
  • All of the KansasFest and Apple II community on Slack and elsewhere

Sound Credits: