Skip to content

Commit

Permalink
Version Beta 0.2 - Hangar Screen and Skill levels
Browse files Browse the repository at this point in the history
- Added 3 Difficulty Levels (Easy, Normal, Hard)
- Added 4 new ship sprites (based on the original game)
- Implemented Hangar Screen to select ship model, ship and shield colors
- Added option to save high scores and hangar settings to disk
- Added Game Over screen with mission statistics
- Added more aliens wave configurations
  • Loading branch information
lvcabral committed Jan 19, 2018
1 parent eb0f14c commit 11f926c
Show file tree
Hide file tree
Showing 25 changed files with 1,243 additions and 227 deletions.
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
## Retaliate 64 Changelog

##### v0.2 - 18-Jan-20178 - Hangar Screen and Skill levels

- Added 3 Difficulty Levels (Easy, Normal, Hard)
- Added 4 new ship sprites (based on the original game)
- Implemented Hangar Screen to select ship model, ship and shield colors
- Added option to save high scores and hangar settings to disk
- Added Game Over screen with mission statistics
- Added more aliens wave configurations

##### v0.1 - 30-Dez-2017 - Initial Version

The main additions/changes to the code from the book were:

- Added a splash screen for the game
- Added the Retaliate logo (as sprites) on the Menu
- Added a intro screen with game story/instructions
- Added a credits screen
- Changed sprites of the ships to reproduce Retaliate design
- Changed aliens movement from swinging horizontally to moving down vertically
- Implemented ship-to-ship collision logic
- Limited the vertical movement of the player ship
- Implemented the shield (activated with joystick down)
- Implemented the shield energy gauge on the bottom line
- Implemented limited bullets for player, and added an Ammo counter on screen
- Implemented bullet collection feature (using the energy shield)
- Reduced to a single life for the player
- Changed score system to: 5 points killed by shield, 10 points killed by bullet

---
Original repository <https://github.com/lvcabral/retaliate64>
Copyright (C) 2017,2018 Marcelo Lv Cabral - <https://lvcabral.com>
35 changes: 10 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Retaliate for the Commodore 64
Project to remake, using 6502/6510 Assembly, the space shooter game Retaliate (available on Roku & Android)

![Retaliate Screens](http://lvcabral.com/images/C64/RetaliateScreens.png)
![Retaliate Screens](http://lvcabral.com/images/C64/RetaliateScreens02-900px.png)

## Introduction
After developing remakes of classic 8bit games (Prince of Persia, Lode Runner, Donkey Kong) to the Roku platform (streaming box/TV OS)
Expand All @@ -27,38 +27,21 @@ for the Commodore 64, and still is an ongoing project, this way, as I learn more
If you found bugs or have any suggestions please go on and report those at the [Issues Backlog](https://github.com/lvcabral/retaliate64/issues),
and If you also want to collaborate with the game, fork the project and send your pull requests!

![Retaliate Gameplay](http://lvcabral.com/images/C64/retaliate64-beta-gameplay-300px.gif)

### Features
With this initial release my main goal was to implement the basic funcitionality to reproduce (as much as possible) the original game mechanics and graphics.

The main additions/changes to the code from the book were:

- Added a splash screen for the game
- Added the Retaliate logo (as sprites) on the Menu
- Added a intro screen with game story/instructions
- Added a credits screen
- Changed sprites of the ships to reproduce Retaliate design
- Changed aliens movement from swinging horizontally to moving down vertically
- Implemented ship-to-ship collision logic
- Limited the vertical movement of the player ship
- Implemented the shield (activated with joystick down)
- Implemented the shield energy gauge on the bottom line
- Implemented limited bullets for player, and added an Ammo counter on screen
- Implemented bullet collection feature (using the energy shield)
- Reduced to a single life for the player
- Changed score system to: 5 points killed by shield, 10 points killed by bullet
My main goal is to implement the basic functionality to reproduce (as much as possible) the original game mechanics and graphics.
The current release (v0.2) introduces the new ship sprites (image below) and the Hangar Screen to select and save the ship model and colors.

![Player Ship Models](http://lvcabral.com/images/C64/retaliate-ships-comparison.png)

Open the [Changelog](https://github.com/lvcabral/retaliate64/blob/master/CHANGELOG.md) to check all the currently implemented features.

### ToDo List
The current planned improvements are listed below:

- Multiplex sprites to have bigger alien waves
- 3 Difficulty Levels (Easy, Normal, Hard)
- Hangar Screen to select ship model and shield color
- Add Gameplay Background Music (any SID expert to help?)
- Improve sound effects
- Multiple high scores table with names
- Save high scores to disk

## How to Play the Game
You can run the game on a real Commodore 64/128 or using an emulator, below the two methods:
Expand Down Expand Up @@ -87,8 +70,10 @@ You can run the game on a real Commodore 64/128 or using an emulator, below the
5. Open project file retaliate.cbmprj
6. Press CTRL+F5 (build project and execute)

![Retaliate Gameplay](http://lvcabral.com/images/C64/retaliate64-beta-gameplay-300px.gif)

## Resources Used
These are the books, tools and websites that are helping me developing this project:
These are the books, tools and websites that are helping me to develop this project:

- [Retro Game Dev: Book by Derek Morris](https://www.retrogamedev.com/)
- [Romans I XVI Gaming: Original game developer](https://www.romansixvigaming.com/)
Expand Down
Binary file modified source/characters.bin
Binary file not shown.
21 changes: 15 additions & 6 deletions source/gameAliens.asm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
; Copyright (C) 2017,2018 Marcelo Lv Cabral - <https://lvcabral.com>
;
; Distributed under the MIT software license, see the accompanying
; file LICENSE or http://www.opensource.org/licenses/mit-license.php.
; file LICENSE or https://opensource.org/licenses/MIT
;
;===============================================================================
; Constants
Expand All @@ -14,15 +14,14 @@ AliensFirePatternMax = 50
AliensRespawnDelay = 255
AliensYStart = 30
AliensYDelay = 1
AliensYSpeed = 3
AliensYPriorityTop = 56
AliensYPriorityBottom = 224
AliensExplode = 12
AlienRed = 5
AlienShooter = 6
AlienFirePos = 70
WavesMax = 7
WaveIndexMax = 37 ; last index + 1
WavesMax = 10
WaveIndexMax = 55 ; (WavesMax - 1) * 6 + 1

;===============================================================================
; Variables
Expand All @@ -32,21 +31,28 @@ aliensActive byte 0
aliensCount byte 0
aliensWaveIndex byte 0
aliensWaveTimeIndex byte 0
aliensWaveTimeArray byte 25, 15, 25, 5, 25, 15, 25
aliensWaveTimeArray byte 25, 15, 25, 5, 25
byte 15, 25, 15, 25, 5
aliensWaveArray byte 6, 5, 5, 5, 5, 6
byte 6, 6, 6, 6, 6, 6
byte 5, 5, 6, 6, 5, 5
byte 5, 5, 5, 5, 5, 5
byte 6, 5, 5, 5, 5, 5
byte 6, 6, 6, 6, 6, 6
byte 6, 5, 5, 5, 5, 6
byte 5, 6, 5, 6, 5, 6
byte 5, 5, 5, 5, 5, 5
byte 5, 5, 5, 5, 5, 5
aliensFormationArray byte 100, 50, 70, 70, 50, 200
byte 100, 100, 100, 100, 100, 100
byte 50, 100, 200, 150, 100, 50
byte 50, 50, 50, 50, 50, 50
byte 200, 90, 80, 70, 60, 50
byte 100, 100, 100, 100, 100, 100
byte 200, 80, 100, 80, 100, 200
byte 50, 50, 50, 50, 50, 50
byte 50, 100, 150, 150, 100, 50
byte 100, 100, 100, 100, 100, 100
aliensFrameArray byte 6, 5, 5, 5, 5, 6
aliensFrame byte 0
aliensColor byte 0
Expand Down Expand Up @@ -79,6 +85,8 @@ aliensPriority byte 0
aliensStep byte 0
aliensCollision byte 0
aliensScore byte 0
aliensSpeed byte 3
aliensSpeedArray byte 3, 3, 6

;==============================================================================
; Macros/Subroutines
Expand Down Expand Up @@ -320,7 +328,8 @@ gAUPIShooters
bcs gAUPISetPosition
gAUPIIncMove
adc #aliensYSpeed
clc
adc aliensSpeed
sta aliensY
cmp #254
bcs gAUPIMoveUp
Expand Down
54 changes: 28 additions & 26 deletions source/gameBullets.asm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
; Copyright (C) 2017,2018 Marcelo Lv Cabral - <https://lvcabral.com>
;
; Distributed under the MIT software license, see the accompanying
; file LICENSE or http://www.opensource.org/licenses/mit-license.php.
; file LICENSE or https://opensource.org/licenses/MIT
;
;===============================================================================
; Constants
Expand All @@ -15,33 +15,35 @@

BulletsMax = 10
Bullet1stCharacter = 64
BulletSpeed = 3 ; higher number slower bullets

;===============================================================================
; Variables

bulletsXHigh byte 0
bulletsXLow byte 0
bulletsY byte 0
bulletsXCharCurrent byte 0
bulletsXOffsetCurrent byte 0
bulletsYCharCurrent byte 0
bulletsColorCurrent byte 0
bulletsDirCurrent byte 0

bulletsActive dcb BulletsMax, 0
bulletsXChar dcb BulletsMax, 0
bulletsYChar dcb BulletsMax, 0
bulletsXOffset dcb BulletsMax, 0
bulletsColor dcb BulletsMax, 0
bulletsDir dcb BulletsMax, 0
bulletsTemp byte 0
bulletsXFlag byte 0

bulletsXCharCol byte 0
bulletsYCharCol byte 0
bulletsDirCol byte 0

bulletsUpdCnt byte 0
bulletsXHigh byte 0
bulletsXLow byte 0
bulletsY byte 0
bulletsXCharCurrent byte 0
bulletsXOffsetCurrent byte 0
bulletsYCharCurrent byte 0
bulletsColorCurrent byte 0
bulletsDirCurrent byte 0

bulletsActive dcb BulletsMax, 0
bulletsXChar dcb BulletsMax, 0
bulletsYChar dcb BulletsMax, 0
bulletsXOffset dcb BulletsMax, 0
bulletsColor dcb BulletsMax, 0
bulletsDir dcb BulletsMax, 0
bulletsTemp byte 0
bulletsXFlag byte 0

bulletsXCharCol byte 0
bulletsYCharCol byte 0
bulletsDirCol byte 0

bulletsUpdCnt byte 0
bulletSpeedArray byte 3, 3, 1 ; higher number slower bullets
bulletSpeed byte 3

;===============================================================================
; Macros/Subroutines
Expand Down Expand Up @@ -131,7 +133,7 @@ gameBulletsUpdate
ldx #0

lda bulletsUpdCnt
cmp #BulletSpeed
cmp bulletSpeed
beq buloop

inc bulletsUpdCnt
Expand Down
Loading

0 comments on commit 11f926c

Please sign in to comment.