#### Installing LUI and Panda3d

##### April 19, 2017 - 2 minutes

I will only be providing instructions on how to install it on Fedora. But the instructions should be distro agnostic. I will update the guide to include windows when I port the game to windows.

## Installation instructions

### Setup

First you gotta install Panda3d, LUI depends on the development version of Panda (at the time of this writing version 1.10). You can download the development branch of panda3d here. Make sure you have the python development package installed when you compile panda3d. Otherwise, go through their instructions, use the installer. Make sure you have After that go into the project that you with to incorporate LUI into. You do not want to use pip if you are dealing with panda3d. So just have the .rpm installed when doing this. If you are in a virtualenv with panda3d installed you will get very strange errors. At the least make sure the virtualenv is not activated.

Now that you have Panda3d set up, lets set up LUI. Clone LUI from here, and run the command

python update_module_builder.py

Make sure you have freetype2 installed, on Fedora you ensure this by running

dnf install freetype2-devel

Now open CMakeLists.txt in your favorite editor and comment out this line, it should be near the bottom

set(CMAKE_MODULE_LINKER_FLAGS \${PANDA_CORE_PATH})


### Building LUI

Now run the build.py file it generated.

python build.py

It will fail and this is expected. Once you have done that, make sure you have CMake GUI installed, and set the variable HAVE_LIB_FREETYPE to TRUE. My CMake GUI looks like this

Now run the python build.py command again. It should now finds your freetype2 headers. It should now compile with no issues.

## What is Panda3d

Panda3d is a 3D game engine made by Disney. It is mostly comprised of C++, but has python bindings which give you the performance of C++ with the “batteries included” approach of python. This and a lot of other frameworks have me interested in seeing if I can write DMUX in python with these libraries.

## LUI - Lightweight User Interface

LUI is a recent GUI framework made for panda3d, that frankly is the best looking game GUI library in the free world I have seen. It looks very professional and GUI is a big part of making your game look ready and polished, something I have been struggling with since I started DMUX.

This GUI looks ages better than anything I have used in the C++ world, and is MIT licensed. It integrates with Panda3d specifically.