The Open Source ARPG Engine.

Overview

AbyssEngine Engine

License: GPL v3 Patreon Discord Twitch Status

Join us on IRC: irc.libera.chat #opendiablo2

AbyssEngine Engine


AbyssEngine is a game engine designed to run games similar to 2000's style ARPGs such as Diablo II.

This repository provides the core engine AbyssEngine Engine, as well as the AbyssEngine Toolset (abt). It also includes the library libAbyss, which is used by this project, and can be used by 3rd party applications as well.

NOTE: This is just the engine core. It will not run by itself. Please see a list of game projects below for a list of what can be ran with this engine.


Game Projects

The following are a list of game projects based on the AbyssEngine Engine:

Game Description
OpenDiablo2 An open-source re-implementation of Diablo II

Screenshots

Screenshot 1

Issues
  • Fix compilation on Fedora 35

    Fix compilation on Fedora 35

    When compiling on Fedora 35, there's an error during linking:

    [[email protected] AbyssEngine-1]$ make [ 27%] Built target libabyss [ 33%] Linking C executable "Abyss Engine" /usr/bin/ld: CMakeFiles/abyssengine.dir/src/abyssengine.c.o: relocation R_X86_64_32 against.rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: CMakeFiles/abyssengine.dir/src/engine/engine.c.o: relocation R_X86_64_32 against .rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: CMakeFiles/abyssengine.dir/src/scripting/scripting.c.o: relocation R_X86_64_32 against.rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: CMakeFiles/abyssengine.dir/src/misc/util.c.o: relocation R_X86_64_32 against .rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: CMakeFiles/abyssengine.dir/src/misc/ini.c.o: relocation R_X86_64_32 against.rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: CMakeFiles/abyssengine.dir/src/loader/filesystemloader.c.o: relocation R_X86_64_32S against symbol filesystem_loader_load' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: CMakeFiles/abyssengine.dir/src/loader/loader.c.o: relocation R_X86_64_32 against.rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../libabyss/liblibabyss.a(log.c.o): relocation R_X86_64_32 against .rodata' can not be used when making a PIE object; recompile with -fPIE collect2: error: ld returned 1 exit status make[2]: *** [abyssengine/CMakeFiles/abyssengine.dir/build.make:217: abyssengine/Abyss Engine] Error 1 make[1]: *** [CMakeFiles/Makefile2:160: abyssengine/CMakeFiles/abyssengine.dir/all] Error 2 make: *** [Makefile:136: all] Error 2

    This requires adding a line to CMakeLists.txt

    set(CMAKE_C_FLAGS "-fPIE")

    $ gcc --version gcc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    opened by madwizard 1
  • Fix parsing of certain dc6 found in casc

    Fix parsing of certain dc6 found in casc

    Normally, the frame data starts at the beginning, and has Length bytes, and after that there are several (3 or 4) bytes filled with Termination e.g. EE EE EE, before the next frame header starts

    But in the new buysellbtn.dc6 there's no termination, and instead the data is aligned to the right: first several bytes are 00 00 00, which are noop, but if to just take the first Length bytes, the last bytes (which were previously just before the termination area) are now outside the Length range

    Old file (from MPQ):

    1F 04 00 00 20 AE AD AD AD AE AE AE ... 16 C6 C7 19 BC 80 80 EE EE EE 00 00 00 00
    ~~~~~       ~~~~                                        ~~~~ ~~~~~~~~ ~~~~
    length      data starts                          data ends    termi-    next frame header
                                       (according to "length")    nation
    

    New file:

    1F 04 00 00 00 00 00 20 AE AD AD AD AE AE AE ... 16 C6 C7 19 BC 80 80 00 00 00 00
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
                                          same data as before              next frame header
    
    opened by DarthGandalf 0
  • Remove libavresample header

    Remove libavresample header

    Hello, libavresample is completely removed from ffmpeg 5.0

    • https://github.com/FFmpeg/FFmpeg/commit/f3f9041302203e458d720028e6f82fb4fb51d8e1
    • https://ffmpeg.org/
    • https://archlinux.org/todo/libavresample-drop/

    It is not checked by AbyssEngine at build time while libswresample is

    -- /usr/lib64/cmake/sol2
    -- Checking for module 'libavcodec'
    --   Found libavcodec, version 59.18.100
    -- Checking for module 'libavformat'
    --   Found libavformat, version 59.16.100
    -- Checking for module 'libavdevice'
    --   Found libavdevice, version 59.4.100
    -- Checking for module 'libavutil'
    --   Found libavutil, version 57.17.100
    -- Checking for module 'libavfilter'
    --   Found libavfilter, version 8.24.100
    -- Checking for module 'libswscale'
    --   Found libswscale, version 6.4.100
    -- Checking for module 'libswresample'
    --   Found libswresample, version 4.3.100
    -- Found FFMPEG: /usr/lib/libavcodec.so;/usr/lib/libavformat.so;/usr/lib/libavutil.so;/usr/lib/libswscale.so;/usr/lib/libswresample.so  
    -- Found Lua: /usr/lib/liblua5.4.so;/usr/lib/libm.so (found suitable exact version "5.4.4")
    

    Seems safe to be removed

    opened by FabioLolix 0
  • Missing MSVCP140D.dll

    Missing MSVCP140D.dll

    Describe the bug

    AbyssEngine.exe - System Error

    The code execution cannot proceed because MSVCP140D.dll was not found. Reinstalling the program may fix this problem.

    OK

    Other similar errors about missing dlls follow this one.

    To Reproduce Steps to reproduce the behavior: Run AbyssEngine.exe

    Expected behavior The game starts

    Desktop (please complete the following information):

    • OS: Windows 10
    • Browser Chrome
    • Version 98.0.4758.102

    Additional context

    • I couldn't find the runtime for the D variant
    • I also couldn't install VS2015 with the web installer, at which point I gave up.
    opened by Jerther 4
  • Switch to Lua 5.1 / LuaJIT

    Switch to Lua 5.1 / LuaJIT

    LuaJIT implementation is faster than Lua, but it's compatible with Lua 5.1 with some extensions from 5.2 instead of Lua 5.4

    C++ API should be mostly the same, but some lua code in OD2 may need to be updated

    opened by DarthGandalf 9
  • Missing features for Sprites

    Missing features for Sprites

    • [ ] Animation speed: e.g. the two balls (health/mana) have 24 and 20 frames per second, to avoid being in sync.
    • [ ] Partially render the sprite: the ball's image is just a ball, but when the health or mana is not full, only part of it should be drawn
    • [ ] Change color: mana is blue, poison is green, but the image is the same, and it's red. HD images do color changes in HSV space.
    opened by DarthGandalf 0
Releases(unstable)
Owner
Abyss Engine
Abyss Engine
OpenMW is an open-source open-world RPG game engine that supports playing Morrowind.

OpenMW is an open-source open-world RPG game engine that supports playing Morrowind.

null 4.3k Jun 26, 2022
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 79 Jun 27, 2022
Rogy-Engine- - My 3D game engine source code.

Rogy-Engine Development My 3D game engine. (NOT THE FINAL VERSION- Windows only) Features: PBR shading and reflection probes with parallax correction.

AlaX 92 Jun 18, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

gameplay3d 3.7k Jun 28, 2022
KlayGE is a cross-platform open source game engine with plugin-based architecture.

KlayGE KlayGE is a cross-platform open source game engine with plugin-based architecture. It's started since 2003. The explicit goal of KlayGE is: to

Minmin Gong 1.7k Jun 22, 2022
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

Panda3D Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for a

Panda3D 3.4k Jul 2, 2022
MIT Licensed Open Source version of Torque 2D game engine from GarageGames

We've moved! All torque engines have moved to a new organization, Torque Game Engines. Torque2D can be found at https://github.com/TorqueGameEngines/T

GarageGames 1.7k Jun 18, 2022
Free, open-source, game engine and a 3D sandbox.

Work-in-Progress The official "early alpha" release should be available around April 2021 SGEEngine SGEEngine is an open source (MIT License), C++ cen

ongamex 65 Jun 13, 2022
Project DELTA - An open-source trainer built on the Void Engine for Toby Fox's games and their spin-offs.

Project DELTA v3 Project DELTA - An open-source, modular mod menu for Toby Fox's games and their spin-offs. Important note to Grossley: Yes, it is out

Archie 7 Apr 20, 2022
Vinifera is an open-source community collaboration project extending the Tiberian Sun engine.

Vinifera is an open-source community collaboration project extending the Tiberian Sun engine. Latest Nightly Build: Download Table of Contents Intro C

Vinifera Developers 20 May 27, 2022
Classic Tomb Raider open-source engine

Classic Tomb Raider open-source engine

Timur Gagiev 3.9k Jun 30, 2022
Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Minetest 7.3k Jul 3, 2022
Ducktape is an Open source Light weight 2d Game Engine that gives utmost priority to user convenience.

Ducktape is an Open source Light weight 2d Game Engine that gives utmost priority to user convenience. It is written in c++ and uses SFML and Box2d for graphics and physics respectively.

Ducktape 59 Jun 6, 2022
SnaX Game Engine - Open Source

SnaX Game Engine License SnaX Game Engine - https://github.com/snaxgameengine/snax Licensed under the MIT License http://opensource.org/licenses/MIT.

SnaX Game Engine 7 Jun 8, 2022
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 50.4k Jul 3, 2022
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 2k Jun 29, 2022
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.4k Jul 1, 2022
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Jakub Biliński 27 Jun 12, 2022
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

 PardCode 51 Jun 10, 2022