View Single Post
Old 07 June 2016, 03:25   #1
alpine9000
Registered User

 
Join Date: Mar 2016
Location: Australia
Posts: 612
Blocky Skies - My first Amiga game

I am getting close to finishing my first Amiga game and I thought I would post some details here for other newbies thinking of doing something similar.

TLDR - download demo from blockyskies.com. Full game/tools source code https://github.com/alpine9000/blockyskies.

@nobody came up with the idea for doing this game and he did all of the artwork. @saimon69 is the musician.

The game is 100% assembler/hardware. It is cross compiled on a mac using vasm/vlink and a handful of tools that I wrote in C to convert the graphics assets into Amiga format data.

In order to actually get something finished in a reasonable timeframe, I banned refactoring unless the frame rate fell below 50fps or the code compromised the game. This rule has resulted in some quite hard to understand routines but I did get something finished. In around 8 weeks of working a handful of hours a week a basic game was ready.

It uses quite a lot of the Amiga hardware features including:
  • Two Independently scrolling play-fields (foreground/background).
  • The copper switches screen modes mid-screen for the status/message panels.
  • The copper switches palettes many times each frame.
  • The blitter is used for all drawing (probably in some cases where it should not be ).
  • Hardware sprites are used for all of the items that appear on the board. Sprites are re-used vertically (not horizontally).
  • Three audio channels are used for the P61 music player, the other channel is used for sound effects.
  • A hardware track loader (thanks Photon) is used to load data directly from the floppy.

The build creates both a trackloaded ADF and a Workbench launch-able executable. At the moment the trackloaded version runs with 512kb of ram and the Workbench version requires about 650kb of free chip ram.

I used FS-UAE and WINUAE extensively to debug the game. This saved me a lot of time. Learning the full power of the UAE debugger would be my #1 recommendation for anyone thinking of developing a trackloaded hardware game. My hacked version of FS-UAE makes this even easier by giving me debug symbols and command line history/completion.

The other slightly different thing I did was to use a vlink linker script to keep track of ram usage, making it very easy to know when I had blown the 512kb chip ram limit.

I found coding asm on Amiga hardware to be super fun and surprisingly painless, so I can't wait to get started on the next game.
alpine9000 is offline  
 
Page generated in 0.04111 seconds with 11 queries