Abyss

by Michael C Palmer

Welcome to the Abyss. Whether you're an eager treasure seeker or an unwilling participant, you will find these dank subterranean passages rich with treasures, traps, and devious puzzles.

The goal of Abyss is to navigate a number of puzzling levels in search of the stairs, and to descend them until you reach the bottom. Often blocks must must be moved to reveal the exit, and once found, you must collect every gem before you may enter it.


Download the APK

View the the Documentation

Browse the FTP


History and Development

Abyss was originally written in yBasic for devices running Palm OS 3 and higher. It featured puzzles formed by a 20x16 grid of tiny, 8x8 pixel squares that where 1-bit each (black and white). I spent two weeks developing the game and several more designing about 30 maps of varying difficulty.

Abyss most closely resembles Adventures of Lolo, the NES puzzle classic, and Sokobon, an opensource cross platform puzzler. Sokobon's block moving mechanics are heavily used in Abyss, and in fact twenty levels from the game have been included in this one. Some of the features of Lolo, including one way blocks and dart traps that resemble one of the monsters in that game have also been included, but because of the performance limits of yBasic on Palm devices, no mobile enemies or animations were included.

When I decided to test RFO Basic! for modern Android devices I choose Abyss as an early test for the platform and have been mostly pleased by the process. My plan was to spend a few days performing a direct port but I instead spent two weeks polishing it. I intended to release it into the public domain and then work on Abyss 2.0 with larger maps, scrolling, animation, and mobile enemies, a game that I would convert into a sci-fi motif for use as the map screen for my side-scrolling platform puzzler, Flyboy (originally programmed in ANSI C for real mode DOS back in 1994).

I am quite please with how Abyss turned out and am grateful for the developers of RFO Basic!, which allowed me to develop on and for the Android platform with minimal fuss. The improvements to the Android version of Abyss follow.


Improvements for the New Android Version

Scrolling added to support maps with twice the width and twice the height as the original

Over 20 new objects, bringing the total to 50 objects available for level design

Enter text into scrolls that provide hints, riddles, or story-telling possibilities

Object grouping, allowing for nine door-key and switch-object combinations

Object flags, allowing 9 settings for certain objects, such as blast radius or magic item strength

Seven new tutorial maps that quickly introduce the new objects and features

Background music and a new menu to change sound volume, music volume, and the track

Improved controls and new control options such as swiping and button size (1,162 combinations)

Drastically improved user interface for the level editor

Long press editor icons for object descriptions and to set one touch access for a favored object

Access to an indexed help system for the editor in Web View



Improvements for the Original Android Version

A grid of 48x48 pixel, full color blocks

4 block themes

10 avatars to choose from

15 sound effects

Four input methods(directional keys, gamepads, on-screen directional buttons, and direct touching of grid squares)

An improved level editor integrated into the game, featuring attractive icons and popup toolbars

Four new blocks (collapsing floor, chest, four-way dart trap, and a wooden shield)

New tutorial levels showcasing the new blocks

Updated information screens

Platform

The development was performed on an RCA Viking Pro 10.1" 2-in-1 Android laptop using the following apps.

RFO Basic! - Source code edited and tested in this free basic interpreter for Android

Basic! Compiler - APK compiled by this 3$ app

Ivy Draw - All graphics were designed in this great vector graphics app that costs 6$ to register

Pixly - minor graphical touch-ups performed in this free pixel editor

WavePad - most sounds effects were recorded from my voice and processed with this 10$ app

SFXR - a few retro style sound effects were generated by this opensource app available for most platforms

OmniNotes - this opensource note taking app was used to document agendas and to track bugs

DroidEdit - associated text files edited in this free app

Updates

9-14-17

FIXED last map played not loading because FILE.EXISTS returns 0 for maps in APK asset (using text.open to test now)

FIXED main menu pops up when user taps beneath the onscreen down button

IMPROVED onscreen button controls by increasing space between them

8-28-17

FIXED sometimes not saving position on exit

FIXED wooden shield count misaligned

FIXED broken floor tiles not visible in tile-set 2 & 3

ADDED down stairs on exit sound effect

ADDED exit down stairs animation

IMPROVED pickup and deflect sound effect (still need a better "unlock" sound)

Distribution

Abyss is public domain and may be freely used, distributed, and modified with the following exceptions. One, I reserve the exclusive right to distribute it where software is bought or sold. Two, derivative work may not use the included level data or the name of Abyss. New levels created with the editor may be freely distributed.

Questions and comments welcome in my mailbox, MichaelCPalmer1980@gmail.com

Best regards