Skip to content

Commit

Permalink
update readme and finalize build scripts
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Pollind <[email protected]>
  • Loading branch information
pollend committed Apr 2, 2023
1 parent c8ea6c1 commit 599776a
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 36 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
automatic_release_tag: "${{ github.event.inputs.tag }}"
prerelease: true
title: "Release: ${{ github.event.inputs.tag }}"
files: |
Expand Down
60 changes: 27 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,36 @@
# Amnesia: The Dark Descent
[![CI](https://github.com/shamazmazum/AmnesiaTheDarkDescent/actions/workflows/build.yml/badge.svg)](https://github.com/shamazmazum/AmnesiaTheDarkDescent/actions/workflows/build.yml)
[![CI](https://github.com/pollend/AmnesiaTheDarkDescent/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/pollend/AmnesiaTheDarkDescent/actions/workflows/build.yml)

This is a port of Amnesia: The Dark Descent to Linux/BSD systems. It's 100%
binary blob free (thanks to buzer2020's port). Only few dependencies are bundled
with this fork:
This is heavy rework of the core engine. Mostly an experiment in absurdity to see what can be restructured and improved on. Note this is still a work in progress,
so a lot of stuff will be broken. It's far enough along that its possible to play through the entire game.
Currently, there is a lot of Rendering artifacts, broken functionality and various other problems that shouldn't be too hard to run into.
A lot of bug fixing is needed before this gets to a usable state.

* OALWrapper. It's easier to bundle it because it's specific to Frictional
Games.
* Newton Dynamics Engine. Finding the sources for this particular version was a
pain (again, thanks to buzer2020 here on GitHub).
* AngelScript. There is `lang/angelscript` port in FreeBSD ports collection, but
that version is too new for this game.
## Current Features

- Graphics backend rework in BGFX
- got rid of the bookkeeping for the viewport size, so it's possible to resize the window and have all the window frame buffers update.
- Dropped usage of the OpenGL fixed function pipeline.
- Possible to use DirectX 11, but there are a lot of rendering artifacts that need to be fixed before it's a viable option
- Haven't been able to use Vulkan
- hpl::Event is an interface that makes building Observables a lot easier.

## Random Ideas

- Replace newton physics with Jolt [ticet](https://github.com/pollend/AmnesiaTheDarkDescent/issues/20)
- Remove OALWrapper and use miniaudio [ticket](https://github.com/pollend/AmnesiaTheDarkDescent/issues/13)
- Remove iXMLDocument indirection and use FastXML [ticket](https://github.com/pollend/AmnesiaTheDarkDescent/issues/25)
- Would like to mess around with raytracing support from Vulkan and DirectX, would probably have to use another solution.

# Branches
- origin/master - contains a graphics backend rework using [BGFX](https://github.com/bkaradzic/bgfx)
- origin/original - orignal running code should be as bug free as when the game was released
- origin/original - original running code should be as bug free as when the game was released

## Building

Just run

~~~~
mkdir build && cd build
cmake ../amnesia/src
cmake .. -DAMNESIA_GAME_DIRECTORY:STRING='' -G "Ninja/Visual Studio 17 2022"
make
~~~~

Expand All @@ -34,26 +42,12 @@ cmake -DSYSTEMWIDE_RESOURCES=ON -DSYSTEMWIDE_RESOURCES_LOCATION="/path/to/game/a
make
~~~~

This will produce a single executable, `Amnesia` which you need to run to play
the game.
Check the Github actions for additional guidance if you're unable to build. there is also the [Frictional Discord](https://discord.com/invite/frictionalgames), I should be available for support under #hpl-open-source.

## Dependencies

In addition to those ancient bundled dependencies, the game needs a few newer
ones:

* OpenGL
* SDL2
* libtheora
* libvorbis
* libvorbisfile
* DevIL
* GLEW

All this libraries can be found in FreeBSD ports.

## Additional notes
This repository comes prepackaged with pretty much all the dependencies that are needed to compile the engine. Unless instructed
otherwise from vcpkg.

The original repository has a bunch of additional tools like level and model
editors. Because these tools are not suitable for my Wayland environment and
require X libraries, I do not build them. The sources are still here, however.
The main things that need to be installed and are not included are `python3` and `perl. For Windows just makes sure these dependencies are included
on the system path.
3 changes: 1 addition & 2 deletions amnesia/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@ if(WIN32)
RUNTIME DESTINATION ${AMNESIA_EXECUTABLE_OUTPUT_PATH}
LIBRARY DESTINATION ${AMNESIA_EXECUTABLE_OUTPUT_PATH})
else()
install (TARGETS Amnesia
RUNTIME_DEPENDENCIES
install (TARGETS Amnesia
RUNTIME DESTINATION ${AMNESIA_EXECUTABLE_OUTPUT_PATH}
LIBRARY DESTINATION ${AMNESIA_EXECUTABLE_OUTPUT_PATH})
endif()
Expand Down

0 comments on commit 599776a

Please sign in to comment.