Skip to content

Reliquarium is a unique set of 3D slider puzzles with a Crystal Skull theme. It runs on Windows, OSX & most Linux distros.

License

Notifications You must be signed in to change notification settings

fastrgv/Reliquarium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

screenshot

screenshot

Reliquarium

Reliquarium is a very unique set of four 3D slider puzzles, all with a Crystal Skull theme.

Click on the large 7z file under releases for all source & binaries, or try this link:

https://github.com/fastrgv/Reliquarium/releases/download/v2.0.3/re24feb24.7z

Type "7z x filename" to extract the archive.

  • On OSX, Keka works well for 7Z files. The command-line for Keka is:
    • /Applications/Keka.app/Contents/MacOS/Keka --cli 7z x (filename.7z)

Note to github downloaders: Please ignore the "Source code" zip & tar.gz files. (They are auto-generated by GitHub). Click on the large 7z file under releases to download all source & binaries (Windows, OSX, & Linux). Type "7z x filename" to extract the archive. Then you can compile your own binaries, or use the pre-built ones provided.

Reliquarium with OpenAL sound

Recent Changes

ver 2.0.3 -- 24feb2024

  • A restored winning game is now reset automatically (t4,t5,t6).
  • Updated with improved OpenAL sound code.
  • Selection window now minimizes itself when puzzling.
  • Made corrections to tomb4-solver code that had been causing aborts.
  • Corrections now allow running from either the root or EXE directory.

ver 2.0.2 -- 6oct2023

  • Restored OSX build for the command line (without a bundle) .

ver 2.0.1 -- 15sep2023

  • Fixed a logic error in tomb4 that might have prevented valid moves, or caused an abort.
  • Added autosolver to tomb4, the hardest puzzle.

ver 2.0.0 -- 25jun2023

  • Discontiued OSX development. This makes the package much smaller to deliver.
  • Added an autosave function to t4, t5, t6 to restore the previous configuration at startup. It also gives developer a better chance to debug after an abort is reported.
  • All puzzles now begin by showing the goal configuration, until the user presses the z-key.

See older revision history at end of file

Reliquarium Game Description

Reliquarium is a very unique set of 3-Dimensional slider puzzles with a Crystal Skull theme. These belong to a new category of puzzle that would be impossible to build or manipulate in physical form. They can help improve 3D visualization and problem solving skills. Suitable for children preparing for math or geometry, as well as adults. Works on laptops or PCs running Windows, OSX, or Linux.


Featuring

  • no installation
  • no dependencies
  • simply unzip in your Downloads directory, and run;
  • or unzip onto a USB flash drive [w/same file format] and run.

=========================================================

Introduction

A reckless raider from Indiana has been plundering tombs and displacing ancient relics. The objective here is to return each relic to its proper place at the center of its cubical box by rearranging the framework back into its original configuration. Colors and numerals help determine the proper order.

Note that the X, Y, & Z axes are shown by default.

In "standard" position...

  • +X is rightward
  • +Y is upward
  • +Z points forward, toward the viewer

Dragging the cursor with the LEFT mouse button rotates the puzzle for a better view angle. The keys n/a (Nearer/Away) or the mouse wheel zooms.

The pieces are numbered so that typing a number selects a piece to move.
Alternatively, you can select a piece by RIGHT-clicking the cursor on it, prior to the move.

Then use the keys {u,d,l,r,f,b} to move the selected piece (Up,Down,Left,Right,Forward,Backward).

To make the puzzles much more challenging, you can toggle the numerals off with the n-key. Of course that means you will need to use the right mouse button to select the piece you want to move.

As indicated on screen, (h) will toggle a help screen.

These puzzles are easy enough for children but will likely help anyone improve their 3D visualization, geometry, problem solving and computer skills.

There are 4 variations numbered 2, 4, 5, and 6. Puzzles # 4, 5, & 6 are my own creations, where the number represents the vertical size; while #2 is a well-known Grabarchuk puzzle. Puzzle #4 is the most compact & difficult; it appears on the upper right of the initial selection screen.

As of September 2023 tomb4, the most difficult puzzle, is now equipped with a live autosolver. At any time you can press the (=)-key to initiate the solver and single step toward the solution. If at any time you think you can solve without help, you may resume moving the pieces yourself.

General Strategy

Temporarily combine complementary pieces to maximize contiguous empty swap space.

Game Features

  • Works on PCs or laptops running Windows, OSX, or GNU/Linux. And if Ada is installed you can build it yourself! But first try the delivered, prebuilt binaries.

  • Windows, OSX, & Linux binaries provided, as well as full source.

  • Laptop friendly controls; supports High DPI displays.

Mouse/touchpad/keyboard controls

Look direction is controlled by a touch pad swipe or mouse drag;

Movement is controlled by the keys:
u d l r f b (Up Down Left Right Forward Backward)

In other words...

  • forward/backward : moves selected block in Z direction
  • right/left : moves selected block in X-direction
  • up/down : moves selected block in Y-direction

This terminology for key-assignments assumes

  • X+ is rightward,
  • Y+ is upward, and
  • Z+ is outward...

the standard "view" for geometrical discussions in mathematics and physics. Note that the X, Y, & Z Axes are displayed by default.

Obviously this can get confusing if you rotate the figure, but this is part of the challenge!

Keys active:

  • (esc)-key => Exit puzzle
  • (q)-key => Exit selection screen
  • (mouseWheel) => Zoom
  • (i)/(o)-keys => Zoom In/Out
  • (spc)-key => Restart
  • (c)-key => nextSkinColor
  • (n)-key => toggle Numerals
  • (h)-key => Help toggle
  • 0-9 => select numbered block
  • (s)-key => select Skull
  • (m)-key => select Medusa head
  • (v)-key => toggle move-sounds
  • (=)-key => autosolve (tomb4 only)

Main Movement Keys: Arrows, Letters

  • (up)-key, (u)-key => +Y

  • (dn)-key, (d)-key => -Y

  • (lf)-key, (l)-key => -X

  • (rt)-key, (r)-key => +X

  • (f)-key => +Z

  • (b)-key => -Z


Cursor click: selects the piece that the user wishes to move. This selection persists until another is made.

But note that once a move direction is chosen:

  • if no selection is made then an autoselct feature will choose a piece that can move, if possible.
  • if the selected piece cannot move, the autoselect will try to find another that can.

Thusly, if there is only one piece that can move in a given direction, you need not bother to select it before the move.


Required for running:

  • graphics card & updated driver that supports OpenGL version 3.3 or later;
  • Windows, OSX, GNU/Linux;

Setup and Running Reliquarium:

Mac/OSX users should read "osx-setup.txt".

Windows users should read "windows-setup.txt".

Unzip the archive.

  • On Linux & Windows, 7z [www.7-zip.org] works well for this. The proper command to extract the archive and maintain the directory structure is "7z x filename".

  • On OSX, the command-line for Keka works thusly:

    • /Applications/Keka.app/Contents/MacOS/Keka --cli 7z x (filename.7z)

Open a command line terminal, then cd to the install directory.

You can execute the selector app or you can skip it and execute each of the 4 puzzles directly.


Mac/OSX users type:

macreliq.sh

Windows users type:

winreliq.bat

to start the game using the selector app.

Letting X represent one of the numerals 2,4,5,6, the direct-call options in Windows are:

bin\win\tombX

or cd to bin\win and type

tombX

to start the game.

Windows users: DO NOT try running the linux executables under WSL [Windows Subsystem for Linux]; that mode is not supported. Simply use the windows version.


Linux users can type:

gnureliq.sh

or

bin/gnu/tombX

or cd to bin/gnu and then type:

tombX

to start the game.

Linux users with "wine" installed can run the Windows executables under "wine". Here are examples that work on my linux machine:

wine bin/win/reliquarium.exe

wine bin/win/tombX.exe

cd bin/win/
wine tombX

If an older Linux system complains that /dev/dsp/ cannot be opened, prepend the command with "padsp",EG: "padsp (ExeName)".


For users using the selector app:

  • Select which of the four tombs to open by clicking on it.
  • The goal configuration is shown at startup.
  • When ready to begin, hit the (z)-key.
  • Hit the (esc)-key at any time to return to the selector app;
  • Hit (q)-key to quit completely.

Hint: if the move sound goes silent, you probably hit the "v" key by mistake.


Systems needed for rebuilding:

  • systems: Windows, OSX, or GNU/Linux

Open Source compiler needed for rebuilding:

Open Source libraries included in this app:

  • the ./adabindings/ directory contains Ada interfaces for:
    • gl
    • glfw
    • OpenAL
    • Stephen Sanguine's AdaPngLib
    • Dmitriy Anisimkov's Zlib for Ada
    • Felix Krause's FreeTypeAda

Build instructions:

Three [pre-compiled] binary executables are provided.

Build scripts can be used as follows:


osx => obuildAll.sh


msWin64 => setpath64.bat + wbuildAll.bat

Windows users please read gnuAdaOnWindows.txt


GNU/Linux => lbuildAll.sh (GNU Ada)

utilizes the uncommon relocatable libraries (mainly GLFW) that are delivered in this bundle under ./libs/. This is used to build a dynamically linked [gnu/linux] executable, which should run in the presence of ./libs, whether or not your system has those libraries installed.

What is special about this project?

It uses the Ada programming language and modern OpenGL methods, with textures, shaders and uniforms. Compiles and runs on Windows, OSX, & GNU/Linux systems.

Focusing on portability, transparency, and open source freedom, this project relies exclusively on F.O.S.S. tools: a thin GLFW3 binding, a thin OpenGL binding, a PNG reader by Stephen Sanguine & Dimitry Anisimkov, OpenAL-Audio with a homebrew binding, and an Ada compiler.

Written in C++ style, the code neglects many safety features available to Ada, but it does serve as a working example for learning OpenGL. The Ada bindings used are thin, so the relationship to C++ methodology is transparent. Developers should note that these Ada bindings are usable as a standalone library for most any OpenGL project that uses Ada.

Thus, for the C++ programmer the code should be easy to comprehend; and for the experienced Ada programmer there are many potential improvements to be made.

Open source Ada developers are welcome to help improve or extend this app. Developer or not, send comments, suggestions or questions to: * fastrgv@gmail.com and please include the file "t#restore.txt" if you are reporting a freeze or abort, where "#" is 4/5/6.


License:

Reliquarium is covered by the GNU GPL v3 as indicated in the sources:

Copyright (C) 2023 fastrgv@gmail.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You may read the full text of the GNU General Public License at http://www.gnu.org/licenses/.

Media Files for Reliquarium:

It is my intention to use media with copyrights or licenses that are compatible with GPLv3. Please notify me if you believe there is an incompatibility, and it will be removed ASAP, eg a CC-by-NC license is NOT GPL compatible.

SoundFiles [x.wav]

Some sounds are from freesound.org and are covered by the Creative Commons CC0 license documented in the accompanying file ./docs/creativeCommonsCC0.txt. Others [eg. shriek] are from http://www.freesfx.co.uk, which have an attribution requirement, but no legal restrictions otherwise. See ./docs/freeSFXlicense.txt.

ImageFiles

Images for textures were from pixabay.com have a CC0 license. Files for text-textures were created using gimp and are also covered by the GNU GPL v3 license.

Thanks:

... to Serhiy and Peter Grabarchuk for their Hole in One puzzle [tomb2], one of my inspirations for the other 3 puzzles in Reliquarium.


Download Site for all my games:

Revision History:

ver 1.9.5 -- 10nov2022

  • Estimated difficulty of T5 is now Medium.
  • Improved documentation & coding.

ver 1.9.4 -- 26sep2022

  • Now using simpler-to-setup GNU Ada for Win64.
  • Removed w32 build.
  • Added command to raise select-Window after exitting puzzle.

ver 1.9.3 -- 16sep2022

  • Removed Win64 build.
  • Now using GNU Ada rather than defunct AdaCore compiler, even on OSX.
  • Removed use of Xcode compiler on OSX.

ver 1.9.2 -- 16apr2022

  • Reverted linux libraries to exclusively shared format for portability.
  • Alternate script for GNU-Ada also works, now.

ver 1.9.1 -- 19jan2022

  • Updated Windows builds to freetype v2.11.1 DLLs (w32,w64).
  • Updated linux libs to use static libfreetype.a & libpng16.a
  • Updated libglfw.
  • Ensured all media now have licenses compatible with GPLv3.

ver 1.9.0 -- 15nov2021

  • Updated glext64.lib.
  • Cleaned up libs; prepped rpath for GNAT.
  • Improved scripting supports both AdaCore & GNAT EXEs on Linux.
  • Updated all GLFW libs to newer [static] version, & scripts.
  • Elliminated OpenGL-mipmap error on nvidia nouveau drivers.
  • Derestricted the directory of execution.

ver 1.8.9 -- 21oct2021

  • Updated libraries.
  • Increased separation of puzzle pieces.
  • Updated tomb2 display to match others.
  • Besides Win64, I now provide a Win32 build, to support older platforms.

ver 1.8.8 -- 10oct2021

  • Enabled normal window exit.
  • Added option to toggle numerals off, to increase challenge.
  • Added slight offset to separate distinct puzzle pieces.
  • Fixed GL error message in Linux.

ver 1.8.7 -- 20feb21

  • Upgraded to OpenAL sound.

ver 1.8.6 -- 28oct20

  • Updated all glfw libs to v3.3.2.
  • Elliminated SFML-audio entirely.
  • Greatly simplified build process.

ver 1.8.5 -- 18apr20

  • OpenGL v3.3 is now sufficient to run this app...allows older hardware.
  • Improved coding style to read WAV file while "protected";
  • Added a move-sound mute-toggle using v-key (Volume);

ver 1.8.4 -- 3apr20

  • Created new linux sound system with no latency: a WAV-player using an Ada binding to the ALSA sound library.
  • Sliding sounds have been reenabled; other sounds equilibrated.

ver 1.8.3 -- 10mar20

  • Fixed bad sound file. Sliding sounds disabled on Linux due to significant latency.

ver 1.8.2 -- 18jan20

  • Alternate sound system greatly improves linux portability.

ver 1.8.1 -- 5jan20

  • Added FreeTypeAda (w/TTF);
  • Corrected & improved help screens;

ver 1.8.0 -- 28dec19

  • Converted to GLFW;
  • Improved & simplified code structure & layout;

ver 1.7.0 -- 20dec19

  • Fixed path problem that disallowed running from "relic" directory.

ver 1.6.9 -- 26nov19

  • Repaired a library problem with GNU/Linux build that limited portability.
  • No problems with Mac/OSX or M.S. Windows builds.

ver 1.6.8 -- 26jun19

  • Changed axis labels to High Contrast Font;
  • Darkened background;
  • Executables can now be run from either of 2 directories.

...

ver 1.0 -- 21jan16

  • initial release

About

Reliquarium is a unique set of 3D slider puzzles with a Crystal Skull theme. It runs on Windows, OSX & most Linux distros.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages