mheyer32 / alienbreed3d2

Alien Breed 3D II The Killing Grounds
33 stars 4 forks source link

Alien Breed 3D II The Killing Grounds

This repo contains a compileable version of the Alien Breed 3D II source. It produces executables that can run the original game data or mods created with the original/compatible tooling.

Changes

A summary of the changes are listed below:

Bugfixes

Some annoying bugs have been fixed:

Default Input Configuration

When starting the game for the first time, the input defaults to keyboard and mouse. The controls have been modernised since the original Team17 release:

These keys, and more are remain user definable.

Fixed Keys

Note that these keys may change in subsequent releases as various options are consolidated. The following keys are fixed and not user definable:

When the Automap is displayed:

When the Automap is not displayed:

All options are persisted on clean exist.

Custom Options

The Custom Options menu provides the following additional options:

Settings Persistence

Settings are saved on clean exit and reloaded.

Modding Improvements

Improvements have been made to allow modders to make more expansive changes to visuals and behaviours:

New Features

Bugfixes

Background

This repo is based on and still contains the original source release of TKG. The original code is very messy, apparently containing multiple versions of the source (the was code base handled by one man without source control). It looks like as if TKG was grown out of the AB3D source. In fact, the original AB3D source is contained here, albeit I couldn't get it to compile as there are some media files missing that the executable needs. A big difference between the AB3D and TKG code is that AB3D includes many data files directly in the executable, while TKG is more data driven by "outsourcing" much of its game data control into test.lnk

The way the code is "structured" is to have one main assembly source file which includes everything else (recursivly). No makefiles or project setup is needed - just point the assembler at the main file. There are actually many 'main' files in the original source, pointing at different milestones, demos or renderer experiments.

I have been able to get the code in source_4000/hires.s and cheesesauce/cheesey.s to compile, but only the hires executable really works. The 'distilled' version of this source is under ab3d2_source. Some of the older render experiments also compile, albeit rarely produce a working executable.

In order to be able to cross-compile the code via vasm I had to:

Building

The currently maintained and buildable source code is located within the ab3d2_source/ directory. The original game sources are retained in the ab3d2_old_source/ directory.

A standard GNU make compatible Makefile is included. This can be used with Bebbo's cross compiler suite for Linux. See: https://github.com/bebbo/amiga-gcc for details on installation.

There are multiple targets that can be built.

Build Description CPU Target Recipe
Release Release, no debug, stripped 68020+ make rel
68040 make rel040
68060 make rel060
Test Release mode, full debug, unstripped 68020+ make test
68040 make test040
68060 make test060
Developer Developer mode, full debug, unstripped 68020+ make dev
68040 make dev040
68060 make dev060

Each recipe produces two binaries:

The pure assembler build is under review and may be dropped in future versions. There is generally no performance benefit over the mixed assembler/C builds.

Tuning

Theere are three main CPU tuning options:

Release

This is the intended build for end users:

Test

This is the same as the release build but full retains debugging support and is unstripped.

Developer

The developer build, in addition to full debugging support, includes various extras to assist debugging and feature development. This build should be considered unstable and is generally slower. Additional features of the development build include:

Considerations

Note: This section is generally always out of date as several of these improvements have been made and/or are in progress.

There are MANY ways this game can be improved: