Coder Social home page Coder Social logo

hirato / lamiae Goto Github PK

View Code? Open in Web Editor NEW
81.0 18.0 16.0 517.17 MB

Lamiae - A Most Prestigious RPG Engine/Simulator derived from Cube 2 (Sauerbraten) and friends

License: Other

Shell 0.12% Makefile 0.51% C 45.01% C++ 53.57% Batchfile 0.01% Objective-C 0.19% TeX 0.19% CMake 0.40%
rpg sauerbraten tesseract game-engine game engine

lamiae's Introduction

What is Lamiae

Lamiae is a fork of Platinum Arts Sandbox meant to showcase my work on the RPG module since 2009. Sandbox is in turn a fork of cube 2, which is a fantastic octree-based first person engine, naturally this isn't ideal for RPG-style gameplay, so getting to where we are now has been a significant challenge. Cube 2 fork, Tesseract is also bundled, providing a state of the art lighting model and other advanced rendering features, including SSAO, HDR w/ tonemapping, Radiance Hints (Global Illumination) and more!

Lamiae builds upon cube 2 technologies, providing a highly flexible framework for RPGs more than capable of simulating many games from ages long past. Check the "Inspiration" and the "Features" sections for a general idea.

List of Features

If you want a list of Sauerbraten's or Tesseract's respective features, visit their webpages. Suffice to say cube 2 features a very easy to use WYSIWYG-style map-editor.

  • Dedicated PC interface.
  • Highly Performant - cube 2 and derived projects pride themselves on their fast and stable codebases.
  • Stable enough for hardcore-roguelikes.
  • Expansive RPG library built atop of cubescript with significant emphasis on flexibility, and getting all the bells and whistles down pat.
  • Signal based scripting system, allows both hard-coded and arbitrary named signals, very extensible.
  • A simple yet flexible AI system which can be directed via directives and by tagging world objects (in progress).
  • A wide variety of status effect primitives, including script types.
  • A highly flexible template system for items, critters, triggers, objects, containers and more.
  • Open Source and with Plain-Text, easy to modify formats - Makes modding a cinch.

Community

Lamiae's community is in its infancy, but you're most welcome to come and interact with the regulars.

Discord: https://discord.gg/bMwxX77

License

Further detail can be inspected in the Licence.txt file. The short of it is that Lamiae's code is licensed under a zlib/libpng license, and aims to only include content under licenses similar to the Creative Commons family. The primary aim is to have no restrictions on field of endeavour, so both free software game projects and proprietary game projects can immediately make use of lamiae and all its content without having to worry about any legal headaches first.

Build Instructions

Windows

  1. Install Codeblocks ( http://www.codeblocks.org/ )
  2. Install mingw64 with SJLJ bindings - while old, we recommend ( http://tdm-gcc.tdragon.net/download ) for convenience - grab the tdm64-gcc bundle available at the top
  3. Open up the codeblocks project file in src/windows/lamiae.cbp
  4. Click build
  • You may need to manually specify the paths for mingw. If necessary, direct codeblocks to find the compiler executables in C:\MingW64 (or where applicable) the replace the compiler executables with their generic selves i.e if the executable is mingw32-i386-unknown-gcc.exe replace it with just gcc.exe - likewise mingw32-i386-unknown-g++.exe to g++.exe

Official support is not provided for Visual Studio, but in theory the code should compile with 2005 and later.

Linux/FreeBSD

  1. Install GCC
  2. Install SDL2, sdl2_mixer and sdl2_image, as well as their *-dev counterparts
  3. make -C src install
  • if you want a debug binary instead, use "make -C src -f Makefile.debug install"
  • If you're using BSD, you may need to specify the GNU version of the make utility, commonly known as gmake

Macintosh (OS X) UNSUPPORTED

  1. Install Xcode
  2. Manually install SDL2, SDL2_image, and SDL2_mixer Frameworks.
  3. Create, setup, and otherwise configure an xcode project for Lamiae.
  4. ???
  5. Profit.

Run Instructions

If you need to build a binary first, see the section below.

Once up and running, if you want to dive straight into making something, go to data/rpg/games and copy the "base" directory, this is the basis for your game.

You'll find additional readmes and instructions inside, as well as a Tutorial on the wiki

Good Luck!

Windows

There is a lamiae.bat in the main directory, this is your sole means of launching lamiae.

If you're having issues running the game, make sure that your drivers are properly installed and that your GPU can at least match Intel's Sandy Bridge in all aspects.

Linux/FreeBSD

There is a script named lamiae.sh in the main directory, running this will launch the proper binary for your platform.

A multitude of command line options are available, you can run it with --help, -h or -? to get a description of everything.

To run and build it, you're required to have SDL2, SDL2_mixer, and SDL2_image (including -dev packages if applicable).

Performance should be fine whether you're using mesa or the proprietary driver, however nvidia users should consider nvidia over nouveau.

Mac (OS X) UNSUPPORTED

Hopw Roewur Ne.

Inspirations

Note that these are taken at a cursory look at the games in question, with no knowledge of their actual inner workings.

Arcanum

  • Dialogue Tree format - partially true, our dialogue nodes are named and use named destinations, not numbers.
  • Status effects centred around polymorphing targets.
  • Global flags and variables.

Fallout

  • Trade/barter menu - layout
  • Dual Wielding - Allowed you to have 2 items equipped and swap between then, basically where I got the idea for more or less the same system used in Skyrim.
  • "Use" system - A "knife" could be used to both slash and thrust, Lamiae allows equal flexibility.

DnD

  • Experience thresholds for levelling up.

Nethack

  • Shopping - nethack allowed you to accrue store credit.

Diablo

  • Item System - items from the same base can have wildly differing properties; They are always stacked where possible.

Oblivion

  • A large number of status effect primitives, including ones which use arbitrary scripts
  • Served as the inspiration for weapons with an effect for an area for an extended period of time.
  • AI's Directives system; giving an NPC instructions and having them execute to the best of their ability, simultaneously if possible, and with prioritisation.

Origin of the name, "Lamiae"

The name "Lamiae" serves both as a joke and as a descriptor of what an RPG can do. "Lamiae" itself is the plural form of "Lamia" - a creature with its origins in Greek Mythology.

  1. The name literally means "Gullet," referring to one story in which Lamia was forced to eat her children by the goddess, Hera. This refers to the tendency well made RPGs have for gobbling up huge chunks of your life.

  2. Another story speaks of Lamia being traumatised at the death of her children, and experiencing the horrors again whenever she closed her eyes. This refers to the large overall decline in RPG quality since 2003. Unfortunately, RPG-fans have generally taken the decline rather well, preferring instead to point and laugh at the likes of Dragon Age 2, than roll for sanity whenever they reflect on the past.

  3. Leading on from 2, another story tells that Zeus allowed her to remove her eyes to alleviate the trauma, this granted Lamia prophetic powers. In a sense, Lamiae is my effort to try and promote certain RPG features I wish to see again in future games. Lamiae is designed to encourage game designers to use skill checks, hefty dialogue trees, and choices with actual ramifications.

  4. Another story tells that Lamia is a cross between a Succubus and a Vampire. This has a double intended meaning. On one hand, you can look at it from the designer's perspective; He is entranced by his RPG project and will pour many years of his blood (, sweat, tears, and frustration) into it, so that it may be realised into its final form. On the other, it also refers to how easily can devote thousands of hours to particularly addictive ones.

lamiae's People

Contributors

hirato avatar windastella avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lamiae's Issues

Implement sneaking

Crouching has been merged for tess, we will likely use this mode as a sneak mode.

Notably the AI needs the ability to notice the player by noise and to consider light factors.

water.jpg not found

None of the water materials work on my Lubuntu 14.04 64bit machine. Lamiae raises an error saying that water.jpg is not found. When I convert water.png in the media/textures folder to a jpeg, it still doesn't work. Please fix this, Lamiae is amazing otherwise.

Implement STATUS_DISPEL

Needs to both be able to instantly dispel effects, as well as be able to weaken and remove them over time.

A positive strength should restrict itself to bad effects and a negative strength should dispel all, prioritising the good effects.
Up for discussion, perhaps the effect could have its remaining time sapped by undoing other effects.

Handle status effect variance properly for use_weapon

At the moment the skill based scaling does not work in a sane easily predictable manner.
Notably in regards to the variance parameter of the status effects as most effects are initialised without any knowledge of magnitude of the variance or what the actual variance is.

Additionally all current weapons use the chargeflags to apply the variance in a completely flat manner to all relevant aspects. These should also accept some variance factor for each charge affectable component.

implement STATUS_STUN

Stun status should make it difficult for the afflicted to move for a time, and inhibit their ability to use their abilities as normal (maybe increase the cooldown rate?)

Crash when using /spawnname and no entity selected

We're not using the most up to date version for Kelgar, but this problem may still exist in this way.

If you have no entity selected and use the command /spawnname, the game crashes.
If you've fixed it by now, please ignore.

Implement STATUS_REFLECT

When a target has this active, and colliding projectile with a lower strength has its velocity inverted

Gak's ragdoll is broken

The ragdoll now computes NANs into the rotations and coordinates.
They appear to get introduced in calcrotfriction, during the transposemul, for reasons I don't understand.
and from there it it affects several other verts and breaks the ragdoll completely.

This has been a bug since 6a2513e
The commit contains various changes with how the models are loaded that may be related.

implement STATUS_SILENCE

The effect should make it impossible to use any abilities that require a vocal component.

There are currently no means of distinguishing whether abilities need vocals, movement, neither, or both.

GLX Error

New computer, but Lamiae still doesn't work -.-
I don't even get into the main menu.

OS: Linux Mint 15 - MATE 64 bit
CPU: AMD Piledriver FX-4300, 4x 3.8GHz
mainboard: MSI 970A-G43, AMD 970
graphics card: NVIDIA GeForce GTX 650 1GB
RAM: 8GB Kingston DDR3-1333 (2x 4GB)

Here is the error log:

(gdb) run
Starting program: /home/rick/lamiae/bin_unix/lamiae64.dbg -q/home/rick/.lamiae
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Using home directory: /home/rick/.lamiae/
init: sdl
[New Thread 0x7fffef816700 (LWP 10736)]
init: net
init: game
init: video
X Error of failed request: GLXBadFBConfig
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 34 ()
Serial number of failed request: 135
Current serial number in output stream: 134
[Thread 0x7ffff7fbe780 (LWP 10732) exited]
[Inferior 1 (process 10732) exited with code 01]

EDIT: checked the old thread - it's the same error:

I extracted the deb of both and copied it's contents manually. I finally succeeded in compiling a new binary.
That were the good news.. I still cannot run Lamiae, but I got a new error:
./lamiae.sh
Using home directory: /home/rick/.lamiae/
init: sdl
init: net
init: game
init: video
X Error of failed request: GLXBadFBConfig
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 34 ()
Serial number of failed request: 135

..maybe.. it's because of the way I installed libsdl2-image-dev and libsdl2-mixer-dev.
Installing libsdl2, libsdl-dev, libsdl-image and libsdl-mixer worked fine using the packages: https://launchpad.net/~josebagar/+archive/sdl2/+packages but when trying to install libsdl2-image-dev and libsdl2-mixer-dev the error occurs, that the deb installation program can't find libsdl2-dev.
I copied & pasted therefore manually the contents of libsdl2-image-dev and libsdl2-mixer-de to their respective folders.

How would you suggest to install the libraries? Do you think that's the reason for the issue, or do you have another idea?

Linux Mint 15 Crash

I just installed Mint 15. Using my old binary, the game crashes when trying to load the shader 'deferredlightFpa'. I'm currently pulling a recent version which I'll compile then. Hope it works :S

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.