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

Comments
  • 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 10
  • abyss_test linking: undefined symbol

    abyss_test linking: undefined symbol

    Describe the bug Reaching the end of build process this message pop out

    [100%] Linking CXX executable abyss_test
    mold: error: undefined symbol: absl::lts_20220623::container_internal::ConvertDeletedToEmptyAndFullToDeleted(absl::lts_20220623::container_internal::ctrl_t*, unsigned long)
    >>> referenced by inifile.cpp
    

    Would be great to skip the tests with an appropriate flag using cmake, for example launching:

    cmake ../abyss-sources \
        -DBUILD_TESTING=off \
    

    Thanks for your amazing efforts, I follow this project since the early days.

    Additional note: mold (referenced in the log) is a drop-in replacement for gold (the GNU linker). same issue also with gold anyway

    Workaround For now I'm using this workaround

    # temporary workaround to disable tests
      pacman -S gtest
      rm -rf tests/*
      touch tests/CMakeLists.txt
    
    opened by M0Rf30 1
  • 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
  • win: Hack font does not render in console in-game

    win: Hack font does not render in console in-game

    Describe the bug Hack font does not render in console in-game also

    (process:18748): Pango-WARNING **: 19:28:44.748: failed to create cairo scaled font, expect ugly output. the offending font is 'Hack Bold 9'
    
    (process:18748): Pango-WARNING **: 19:28:44.749: font_face status is: out of memory
    
    (process:18748): Pango-WARNING **: 19:28:44.749: scaled_font status is: out of memory
    
    (process:18748): Pango-WARNING **: 19:28:44.752: failed to create cairo scaled font, expect ugly output. the offending font is 'Hack Bold 9'
    
    (process:18748): Pango-WARNING **: 19:28:44.752: font_face status is: out of memory
    
    (process:18748): Pango-WARNING **: 19:28:44.752: scaled_font status is: out of memory
    
    (process:18748): Pango-WARNING **: 19:28:44.753: failed to create cairo scaled font, expect ugly output. the offending font is 'Hack Bold 9'
    
    (process:18748): Pango-WARNING **: 19:28:44.753: font_face status is: out of memory
    
    (process:18748): Pango-WARNING **: 19:28:44.753: scaled_font status is: out of memory
    

    To Reproduce Steps to reproduce the behavior: Run Engine on Windows

    Expected behavior All text to render correctly

    Screenshots image

    opened by cookta2012 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
  • 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
  • osx: font config warning in console

    osx: font config warning in console

    Describe the bug shows warning

    To Reproduce Steps to reproduce the behavior:

    1. use osx
    2. run the engine
    3. See error

    Expected behavior no errors

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. iOS] osx

    Additional context Add any other context about the problem here.

    please assign this bug to me

    opened by DarthGandalf 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 5
  • 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
  • [Suggestions] Additions to the Engine Lua Side

    [Suggestions] Additions to the Engine Lua Side

    • [ ] Scaling of map render node
    • [x] label:setVerticalSpacing(pixels)
    • [x] button.disabled
    • [x] label:textAlign()
    • [ ] add color mod to image type, sec
    • [x] node:getType() so you can also do node:getType().toString()

    If I didn't start this now even with one thing I never would.

    opened by cookta2012 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.5k Jan 2, 2023
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 173 Jan 2, 2023
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 97 Dec 28, 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.9k Jan 8, 2023
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.8k Dec 23, 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.6k Dec 31, 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 Dec 14, 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 72 Dec 7, 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 8 Oct 15, 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 25 Nov 1, 2022
Classic Tomb Raider open-source engine

Classic Tomb Raider open-source engine

Timur Gagiev 4.1k Jan 8, 2023
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 8.3k Dec 29, 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 102 Dec 30, 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 14 Dec 1, 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 56.7k Jan 9, 2023
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 2.2k Jan 1, 2023
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.7k Jan 7, 2023
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 48 Dec 29, 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 61 Dec 14, 2022