Coder Social home page Coder Social logo

ltheory's Introduction

Limit Theory

Limit Theory is a now-cancelled open world space simulation game.

This repository is the game (not engine) code for the second generation of LT's development, when all work was migrated to C and Lua. For the older, C++/LTSL Limit Theory, see https://github.com/JoshParnell/ltheory-old.

LT Screenshot

Prerequisites

To build Limit Theory, you'll need a few standard developer tools. All of them are available to download for free.

Building

With the above prerequisites installed, open a Git Bash terminal.

Checking out the Repository

First, use cd to change directories to the place where you want to download LT.

  • cd ~/Desktop/<path where you want to put the LT source>

Before doing any other git commands, make sure LFS is installed:

  • git lfs install

You should see Git LFS initialized or a similar message. Important: if you forget to install and initialize Git LFS, most of the resources will probably be broken, and the whole process will likely fail in strange and mysterious ways. This is a common gotcha with projects that use LFS. Make sure you do the above step!

Now, you can download the repository:

  • git clone --recursive https://github.com/JoshParnell/ltheory.git ltheory

Compiling

Once you have the repository, the build process proceeds in two steps (as with other CMake builds): generating the build files, and then building. There is a Python script configure.py at the top level of the repository to help you do this easily.

From a terminal in the directory of the checked-out repository, run

  • python configure.py

This runs CMake to generate the build files. Then, to compile,

  • python configure.py build

Running a Lua App

If the compilation is successful, you now have bin/lt64.exe, which is the main executable. This program launches a Lua script. The intention was for Limit Theory (and all mods) to be broken into many Lua scripts, which would then implement the gameplay, using script functions exposed by the underlying engine.

To launch a Lua script, you can again use the python helper:

  • python configure.py run

To run the default script ('LTheory'), or

  • python configure.py run <script_name_without_extension>

to run a specific script. All top-level scripts are in the script/App directory.

Example of the Entire Process

An example of the entire sequence of commands to run LT, starting from nothing (but having the prerequisites installed):

Open Git Bash. Each line below is one command, some of which will take a while to complete:

cd ~/Desktop
git lfs install
git clone --recursive https://github.com/JoshParnell/ltheory.git ltheory
cd ltheory
python configure.py
python configure.py build
python configure.py run

ltheory's People

Contributors

joshparnell 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  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

ltheory's Issues

Even if no more may come out of this..

I need to say the screenshot is gorgeous !

I'll be cloning the repository and seeing if I can compile and run this now :) .

(Totally stumbled over this by chance, btw).

attempting to run successful build gives : ./script/env/ext/IOEx.lua:14: attempt to index global 'lfs

First of all a quick recap of how to build on linux. I'm a linux user, I use ubuntu the commands below are a step by step to get a correct build on ubuntu but you can adapt for your distro (as for windows I'm pretty sure the build works as advertised on the readme page for you. if not you should make a windows-specific build issue.

#install dependencies (these might be named different on your linux there's a good chance if your linux is arch-based that you can simply remove all the "lib" in front of the package names and do "sudo pacman -Syu" instead of "sudo apt install" and it'll work)
sudo apt install git git-lfs build-essential cmake libfreetype-dev libluajit-5.1-dev libglew-dev libsdl2-dev libsdl2-dev liblz4-dev liblua5.1-dev -y
cd Documents/
git clone [email protected]:JoshParnell/libphx.git
git clone --recurse-submodules -j8 [email protected]:Limit-Theory-Redux/ltheory.git
mkdir -p ltheory/bin
cp libphx/ext/lib/linux64/libfmod.so libfmodstudio.so
cd ltheory/
mv bin/libfmod.so bin/libfmod.so.10
mv bin/libfmodstudio.so bin/libfmodstudio.so.10       #make fmod libs available
cp /usr/include/SDL2/* libphx/include/                #copy over all your locally installed SDL into your ltheory/libphx/include/ folder
sed -i '274d' libphx/src/Physics.cpp                  #this line crashes the linux compiler so I remove it
sed -i 's/lt64.exe/lf64r/g' configure.py              #I'm making sure the generated binary is lt64r instead of lt64.exe
export LD_LIBRARY_PATH=$(pwd)/bin python3
python3 configure.py                                  #on non-ubuntu this command will simply be "python configure.py"
python3 configure.py build                            #same it's only "python3" on ubuntu
python3 configure.py run                              #this should normally run Limit Theory but it crashes on an unintelligible Lua error.

the error I get is

Lua_PCall: Lua returned error message: ./script/env/ext/IOEx.lua:14: attempt to index global 'lfs' (a nil value)
Signal_Handler: Caught Abort
Lua Backtrace:

yes, the lua backtrace fails to show up.
I don't know how to fix this.
are there any LuaJit / Lua experts about?

python configure.py build fails

following the example process when running python configure.py build this is the following output

❯ python configure.py build
Consolidate compiler generated dependencies of target phx
[  1%] Linking CXX shared library ../../bin/libphx64r.so
/usr/bin/ld: /home/noah/Desktop/Github/ltheory/libphx/ext/lib/linux64/libfmod.so: .dynsym local symbol at index 2 (>= sh_info of 2)
/usr/bin/ld: /home/noah/Desktop/Github/ltheory/libphx/ext/lib/linux64/libfmod.so: .dynsym local symbol at index 3 (>= sh_info of 2)
/usr/bin/ld: /home/noah/Desktop/Github/ltheory/libphx/ext/lib/linux64/libfmod.so: .dynsym local symbol at index 4 (>= sh_info of 2)
/usr/bin/ld: /home/noah/Desktop/Github/ltheory/libphx/ext/lib/linux64/libfmodstudio.so: .dynsym local symbol at index 2 (>= sh_info of 2)
/usr/bin/ld: /home/noah/Desktop/Github/ltheory/libphx/ext/lib/linux64/libfmodstudio.so: .dynsym local symbol at index 3 (>= sh_info of 2)
/usr/bin/ld: /home/noah/Desktop/Github/ltheory/libphx/ext/lib/linux64/libfmodstudio.so: .dynsym local symbol at index 4 (>= sh_info of 2)
/usr/bin/ld: cannot find -lBulletCollision: No such file or directory
/usr/bin/ld: cannot find -lBulletDynamics: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [libphx/CMakeFiles/phx.dir/build.make:1857: ../bin/libphx64r.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:126: libphx/CMakeFiles/phx.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
░▒▓  │   ~/De/G/ltheory │    master ?4 ▓▒░                                                                         ░▒▓ ✔ │ 11:45:40   ▓▒░

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.