top of page

Create Your First Project

Start adding your projects to your portfolio. Click on "Manage Projects" to get started

Duel at Dusk

Role

Game Programmer

Date

November 2024

Genre

Classic turn-based Artillery Shooter

Github

Description

A two-player, turn-based artillery game written entirely in Easy68k assembly. Players adjust angle, power and battle dynamic wind on a hostile battlefield. Delivered under tight low-level constraints, it features:

– Custom Memory Manager: Heap initialization, allocation/deallocation, block coalescing & shrinking to support bitmap rendering and dynamic projectile lifecycles without leaks

– Optimized Bitmap Renderer: Selective sprite‐sheet extraction, transparency handling & background redraws tuned for 30–40 FPS on 68k hardware

– Fixed-Point Physics (12.4): Lookup-table sine/cosine & pre-shifted multiplication enable accurate projectile trajectories under varying wind conditions

– AABB Collision System: Bounding-box checks with segmented head/body/leg hitboxes for precise impact detection using minimal cycles

7-Segment Display UI: Assembly-driven segment control renders real-time health and wind meters on simulated hardware displays

– Procedural Wind Randomization: Timestamp‐bit PRNG produces unpredictable wind speed/direction each turn

– Sprite Animations & Sound Effects: Frame‐by‐frame animations for throws and hits, plus basic sound effects for a more engaging experience.

Instructions to Play

To play Duel at Dusk on Easy68k:
Clone or download the repository from the Github link.
Open the DuelAtDusk.X68 file in the Easy68k environment.
Assemble and run the program to start playing.

Controls

Angle Control:
Player 1 uses the A and D keys to adjust the projectile angle whereas Player 2 uses the left and right arrow keys.

Adjust Power:
Player 1 uses 'Space' to control the power whereas Player 2 uses 'CTRL' to control the power. Hold down the power button to gradually increase the power you shoot with.

Launch Projectile: Release the power button when ready to fire

bottom of page