All Projects → csinkers → ualbion

csinkers / ualbion

Licence: MIT license
A remake of the 1995 RPG Albion (requires data from an install of the original game)

Programming Languages

C#
18002 projects
GLSL
2045 projects

Projects that are alternatives of or similar to ualbion

freeserf.net
Settlers 1 clone written in C#
Stars: ✭ 97 (+11.49%)
Mutual labels:  remake
CloudBuildManifest
CloudBuildManifest is library to get build information for Unity Cloud Build.
Stars: ✭ 18 (-79.31%)
Mutual labels:  game-dev
minigame-rust
A simple game made in Rust that runs on desktop and mobile
Stars: ✭ 118 (+35.63%)
Mutual labels:  game-dev
learn-dlang
Learn D programming language by creating games!
Stars: ✭ 42 (-51.72%)
Mutual labels:  game-dev
Reflex
Minimal dependency injection framework for Unity
Stars: ✭ 263 (+202.3%)
Mutual labels:  game-dev
harmony-ecs
A small archetypal ECS focused on compatibility and performance
Stars: ✭ 33 (-62.07%)
Mutual labels:  game-dev
boxgame
A sample project for following along a tutorial found on jap.alekhin.io.
Stars: ✭ 32 (-63.22%)
Mutual labels:  game-dev
SuperMarioBros
A work-in-progress remake of the original Super Mario Bros. for NES, in the browser using canvas and P5JS.
Stars: ✭ 23 (-73.56%)
Mutual labels:  remake
packard-belle-desktop
Building website with packard-belle UI library and react-rnd
Stars: ✭ 44 (-49.43%)
Mutual labels:  remake
tomb mates
t.me/memes4js
Stars: ✭ 40 (-54.02%)
Mutual labels:  game-dev
o2r
Open Rodent's Revenge is a C++ remake of the famous Microsoft game "Rodent's Revenge" (1991).
Stars: ✭ 22 (-74.71%)
Mutual labels:  remake
07-Glitch-Garden-Original
Glitch Garden demo game from the Complete Unity Developer 2D course (http://gdev.tv/cudgithub). For our students to download the end-state of projects.
Stars: ✭ 43 (-50.57%)
Mutual labels:  game-dev
05 TestingGrounds
A Hunger-Games inspired FPS with large outdoor terrains. Advanced AI, basic networking, pickups, skeletal meshes, checkpoints and more. (ref: TG_URC) http://gdev.tv/urcgithub
Stars: ✭ 121 (+39.08%)
Mutual labels:  game-dev
ProtonUp-Qt
Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
Stars: ✭ 578 (+564.37%)
Mutual labels:  linux-gaming
gamedex
👾 The code for my game dev + computer graphics experiments on YouTube.
Stars: ✭ 165 (+89.66%)
Mutual labels:  game-dev
cppcraft
a Minecraft clone written in C++ and OpenGL that includes Minecraft textures, chunks, building, terrain, trees, water, inventories, and more!
Stars: ✭ 75 (-13.79%)
Mutual labels:  game-dev
mmo-arch
Base Architecture for creating scalable games using microservices through Angular, Phaser, NestJS, NATS, and MySQL
Stars: ✭ 25 (-71.26%)
Mutual labels:  game-dev
Gibbed.Borderlands
Tools & code for use with Borderlands.
Stars: ✭ 44 (-49.43%)
Mutual labels:  game-dev
Conty
Easy to use unprivileged Linux container packed into a single portable executable
Stars: ✭ 198 (+127.59%)
Mutual labels:  linux-gaming
cl-liballegro
Common Lisp bindings and interface to the Allegro 5 game programming library
Stars: ✭ 44 (-49.43%)
Mutual labels:  game-dev

UAlbion

A remake of the 1995 RPG Albion

Prerequisites:

Screenshots

Click to expand

Example Screenshot 1 Example Screenshot 2 Example Screenshot 3 Example Screenshot 4 Example Screenshot 5

Current Status

Things that are at least somewhat implemented:

  • Rendering of 2D and 3D environments
  • Player movement and collision detection in 2D environments
  • Interaction with the environment, e.g. examining objects, accessing chests and opening doors
  • GUI system for menus, dialogs, inventory etc
  • Inventory management
  • Conversations
  • Sound effects and music
  • Loading/saving saved games
  • Video playback
  • Exporting assets
  • Day/night cycle
  • NPC movement

Currently unimplemented:

  • Lighting model for 3D levels
  • Event handling and collision detection in 3D environments
  • Automap for 3D environments
  • Combat system
  • Magic system

Planned improvements / changes from the original gameplay:

  • Add hotkeys to streamline the interface, reduce the amount of right clicking required etc
  • Add some pathfinding logic to make mouse-based movement easier
  • Add a take-all button when looting chests / fallen foes (done)
  • Graphical improvements in 3D environments
  • Fix bugs in original game (with option to toggle when there is a gameplay impact)
  • Modding support
  • A built-in editor for modifying and adding assets

Getting started

Game data

You need to have the original Albion game files. These days, Albion can be bought cheaply on GOG.

If you have the GOG version of the game, extract the required game files as follows:

Linux:

  1. Ensure wine and dosbox are installed
  2. Download the Albion installer for Windows from GOG
  3. Run the installer using wine (wine setup_albion_1.38_\(28043\).exe). Note that the installer may show some errors, but if the game can be launched in the end, it's okay.
  4. Run dosbox
  5. Run the following commands in dosbox to extract the data files. Replace ~/ualbion with wherever you cloned the ualbion repository. Replace ~/.wine/drive_c/GOG Games/Albion/ with wherever you installed your GOG version of Albion. Note the double quotes ("), they are necessary if your path contains spaces.
    1. mount C "~/ualbion"
    2. mount D "~/.wine/drive_c/GOG Games/Albion/"
    3. C:\src\Tools\GOG_EXTR.BAT

Windows:

  1. Download the Albion installer from GOG
  2. Run installer
  3. Open the Albion install directory in file explorer (e.g. C:\GOG Games\Albion)
  4. Go into the DOSBOX directory and run DOSBOX.exe
  5. Run the following commands in dosbox to extract the data files. Replace C:\Git\ualbion with wherever you cloned the ualbion repository. Replace C:\GOG Games\Albion with wherever you installed your GOG version of Albion. Note the double quotes ("), they are necessary if your path contains spaces.
    1. mount C "C:\Git\ualbion"
    2. mount D "C:\GOG Games\Albion"
    3. C:\src\Tools\GOG_EXTR.BAT

If you're not using the GOG version or want to select your game files manually, you can either copy the files into an "ALBION" subdirectory manually or configure data/config.json to set the paths for the files. The files can also be manually extracted from the GOG version by mounting the game.gog file using CDemu (it's just a raw binary dump of the CD contents) and then copy the ALBION directory into your UAlbion folder.

Compile and run

To compile and run the project, open ualbion.sln in the C# IDE of your choice or run ./run.sh in Linux (ensure dotnet-host, dotnet-runtime and dotnet-sdk are installed) or run.bat in Windows. Any extra parameters to run will be passed through to UAlbion, --help will show the available options.

  • To show available options: run -h
  • To run with Vulkan: run -vk
  • To run with OpenGL: run -gl
  • To run with Direct3D: run -d3d
  • To extract all game resources into modern formats under the mods/Unpacked dir: run -b Base Unpacked
  • To repack the (possibly modified) assets in mods/Unpacked back into the original binary formats: run -b Unpacked Repacked (outputs to mods/Repacked)

Attributions

Many thanks to Florian Ziesche and the other contributers to the freealbion wiki for their efforts in discovering and documenting the Albion file formats.

Thanks to IllidanS4 for the ILBM loading code in AlbLib (MIT License) which my InterlacedBitmap implementation was based on.

Thanks also to the authors of and contributers to the dependencies of this project:

  • Veldrid graphics API abstraction by Eric Mellino et al
  • ImGui immediate mode graphics library by Omar Cornut et al
  • OpenAL audio abstraction API from Loki Entertainment / Creative Technology
  • OpenAL-CS C# wrapper for OpenAL (using the NuGet package of the OpenRA fork)
  • AdlMidi OPL-3 synthesiser library by Vitaly Novichkov, Joel Yliluoma et al
  • Superpower C# parsing library by Nicholas Blumhardt et al
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].