English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Coders. Asm / Hardware (https://eab.abime.net/forumdisplay.php?f=112)
-   -   Blocky Skies - My first Amiga game (https://eab.abime.net/showthread.php?t=82998)

alpine9000 07 June 2016 02:25

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.:D

hooverphonique 07 June 2016 10:17

Good effort and nice write-up :-)

alpine9000 07 June 2016 11:28

Quote:

Originally Posted by hooverphonique (Post 1093981)
Good effort and nice write-up :-)

Thanks, I probably should have mentioned that I am close to releasing a test of the workbench launch-able version.

If that tests out OK (and we have finished the levels/music) then I will put out the final version and it will be time to start on the next game :)

Steve T 07 June 2016 13:41

Good effort all! Great to see more software coming along.

kamelito 07 June 2016 13:46

Nice to see a new Amiga game, and with the source code congrats!
Kamelito

DamienD 07 June 2016 13:49

Very good work indeed alpine9000 (and nobody + saimon69) :great

Amiga1992 07 June 2016 15:41

This looks interesting!

I have to ask though: what is the main sprite supposed to be? I can't figure it out :/

Great job!

alpine9000 07 June 2016 17:00

Quote:

Originally Posted by Akira (Post 1094052)
This looks interesting!

I have to ask though: what is the main sprite supposed to be? I can't figure it out :/

Great job!

In the full release there is a different sprite each level.

The sprite in the video on the site (kaboom level) is a tank, and for the demo version it's a flying pig :)

alkis 07 June 2016 17:30

Nicely done! :)

Amiga1992 07 June 2016 17:49

Quote:

Originally Posted by alpine9000 (Post 1094073)
In the full release there is a different sprite each level.

The sprite in the video on the site (kaboom level) is a tank, and for the demo version it's a flying pig :)

I see, taking after crossy road and stuff.
Nice one.

amiman99 07 June 2016 18:35

Looks interesting, I'll try it for sure.

Mrs Beanbag 07 June 2016 20:31

oh! looks nice! i love the idea... a memory game

Franchute13 07 June 2016 21:34

Hi Alpine9000!
Excelent!
Thank you for the source code and the game!!!

phx 08 June 2016 08:30

Quote:

Originally Posted by alpine9000 (Post 1093948)
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.

That's the way to do it! :)

I see you used the free portable Tiled editor for the maps. I also plan to do that for my next game.

alpine9000 08 June 2016 08:35

Quote:

Originally Posted by phx (Post 1094177)
That's the way to do it! :)

I see you used the free portable Tiled editor for the maps. I also plan to do that for my next game.

Yes Tiled is cool. I didn't really use many features and ended up using hard coded tile addresses to determine tile properties which I might not do again if I had my time over again.

alpine9000 08 June 2016 09:16

I uploaded a test release of a hard drive installable version to the website. It requires about 600kb of free chip ram.

I tested it as thoroughly as I could in UAE, but my workbench knowledge is 20 years old and only extended to 2.0....

So if anyone is brave enough to try it on real hardware I would be very grateful :)

andyhants 08 June 2016 11:13

Great little game mate well done!

Superman 08 June 2016 11:20

HD version works fine on my A1200 with CF drive.

http://img.photobucket.com/albums/v2...psumv0vawx.jpg
http://img.photobucket.com/albums/v2...psish6bjwv.jpg
http://img.photobucket.com/albums/v2...psyyrb5rw2.jpg
http://img.photobucket.com/albums/v2...pskdnhkyab.jpg

alpine9000 08 June 2016 11:49

Quote:

Originally Posted by Superman (Post 1094210)
HD version works fine on my A1200 with CF drive.

Thanks, I appreciate you taking the time to test it :)

Did it quit back out to workbench OK ?

Superman 08 June 2016 11:57

Quote:

Originally Posted by alpine9000 (Post 1094215)
Thanks, I appreciate you taking the time to test it :)

Did it quit back out to workbench OK ?

Yes it did indeed. :great


All times are GMT +2. The time now is 00:58.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04936 seconds with 11 queries