Mountain Group 105

Screenshots of the game

Mountain Group 105 is a rogue-like video game originally created as part of a software design course, with the following premise:

You are a group of four weary travellers. You have been walking for so long that you no longer have any memory of where you came from or who you are. You cannot recall anything but the endless action of putting one foot in front of the other, traversing this empty landscape. Suddenly, you look up, startled out of your reverie. An imposing mountain looms before you. Your party steps forward, drawn to it for some inexplicable reason. You crane your neck to see if you can make out the peak, but the morning mist impedes your view. You all know you cannot go back to wherever you came from. You have to keep going. You have to climb the mountain. Maybe whatever waits for you up there will remind you of who you are… and what you’re searching for.

Running Instructions

IntelliJ IDEA (IDE) Instructions

First download the latest source code from here and extract it.

Next, open the project in IntelliJ by going to to File > Open, and navigating to the folder created in the last step.

Next, if IntelliJ does not immediately recognize the fact this is a Gradle project (you can tell by the lack of a Gradle tab on any of the edges), navigate to the build.gradle file in the IDE. An icon with an elephant should appear, click it. There should now be a Gradle tab on one of the edges.

Finally, open the Gradle tab and navigate to course-project-group-105 > Tasks > application and double-click run.

Command-Line (CLI) Instructions

First, this project requires Java 17, so make sure that is installed.

Next download the source code and change into that directory which can either be done by

fossil clone https://vcs.pta.gg/mg105
cd mg105

or by

wget https://vcs.pta.gg/mg105/zip/trunk/download.zip
unzip download.zip
cd download

if you do not have Fossil installed.

Finally, this is a standard Gradle project, so to start the application simply run

gradlew.bat run

in the Windows CMD, or

./gradlew run

on any Unix-like operating system (or the built-in IntelliJ IDEA terminal).

Features

As a complete game, Mountain Group 105 features

and it has been balanced so that it plays decently well!

Exercise to the reader: match a feature to each of the four screenshots at the top of this README.

Program Architecture

Being part of a specific course, this project strictly adheres to Robert Martin's Clean Architecture.

The code is packaged by layers where

Additionally the code makes use of a plethora of design patterns including

Changes Since Initial Release

As previously mentioned this was originally part of a course project. The original state of the source code as of the submission date can be found here or at its original home on GitHub, here.

Since the original release, the only changes have been a complete UI overhaul (the core functionality and overall architecture is essentially unchanged). The marking scheme allocated no marks for how pretty it looked, and so no time was spent on that. In particular the overhaul aims to improve

  1. lack of consistent game resolution,
  2. unintuitive and inconsistent controls (some buttons, some keyboard), and
  3. lack of any real graphics or use of colour.

A full diff of these changes can be found here.

Note for Apple Silicon Users

Mountain Group 105 has a hard dependency on JavaFX, which has been flaky on Apple Silicon chips. The game may not be playable on your hardware.

Note for Tiling Window Manager Users

Put your window manager into its floating mode before starting the game. The game expects a constant, self-set resolution, which tiling window managers tend to violate.

Copyright

Unless mentioned in the EXT_LICENSE file, code is licensed under the GNU Affero General Public License, Version 3.0. See the LICENSE and EXT_LICENSE files for more details.