Skip to content

MOVED TO GITLAB: https://gitlab.com/CraftedCart/smblevelworkshop2 (This GitHub repo will remain a mirror of the GitLab repo for Travis CI builds) | The sequel to the original Super Monkey Ball stage editor!

License

Notifications You must be signed in to change notification settings

CraftedCart/smblevelworkshop2

Repository files navigation

SMB Level Workshop 2 (WS2)

Linux/macOS builds: Travis CI build status
Windows builds: Appveyor build status
Development downloads: Development downloads


Another installment in Super Monkey Ball hacking - SMB Level Workshop 2 is a stage editor for SMB 1 and 2.

SMB Level Workshop 2 Stage Editor screenshot

Discord

Join the Workshop Discord server over here: https://discord.gg/CEYjvDj

Why? Wasn't the original SMB Level Workshop good enough?

The original SMB Level Workshop has been quite the learning experience for me, in what is good to do and especially what not to do; the what not to do part however comes from experience maintaining it. The original one has become quite the pain to maintain with little seperation between the UI and the logic of the editor, fiddly at best and buggy at worst UI code, outdated, slow OpenGL, and issues with LWJGL 2.9. I decided that it would be better to move on and start afresh.

Dependencies

  • Qt 5
    • Qt Core
    • Qt Widgets
  • OpenGL
  • GLEW
  • GLM
  • Assimp
  • Bullet Physics
  • oktal/Result (bundled in the code)

Fetching dependencies

Windows MSYS2

I recommend using MSYS2 on a Windows system - it makes dependency management quick and easy
If it's not installed already, grab the installer from http://www.msys2.org/
Then run the following in a MinGW terminal
Replace x86_64 with i686 if you want to compile for x86 instead of x86_64

First of all, update everything. Doooo it!!!

pacman -Syu

Quit the terminal and run pacman -Syu again if pacman instructs you to.

Then proceed to install the required packages.

pacman -S mingw-w64-x86_64-cmake make mingw-w64-x86_64-gcc mingw-w64-x86_64-qt5 mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-assimp mingw-w64-x86_64-bullet

If you need Git to clone the repo:

pacman -S git

Then proceed to the "Building: With Make, MSYS Makefiles" section

macOS Homebrew

If you don't have Xcode installed, fetch that from the App Store first
I recommend using Homebrew on macOS to manage dependencies. Grab it from https://brew.sh/

brew install cmake qt5 glew glm assimp bullet

Git should come bundled with the Xcode installation.

Then proceed to the "Building: With Make, Unix Makefiles" section

Arch Linux (Or Arch based)

sudo pacman -S cmake qt5 glew glm assimp bullet

If you haven't installed base-devel, fetch that:

sudo pacman -S base-devel

If you need Git to clone the repo:

sudo pacman -S git

Then proceed to the "Building: With Make, Unix Makefiles" section

Many other Linux distributions

Many Linux distributions come with a package manager, such as Apt for Debian based distros (That includes all you Ubuntu folk). Have a look around your package manager for the dependencies listed above.
If your distro does not happen to have a package manager, have fun with fetching and installing the packages yourself. ;)

Building

With Make, Unix Makefiles

Replace the 4 in -j 4 with however many threads you want Make to use

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX="install" ..
make -j 4

(Note that setting the install prefix is only needed if you want to package the project - it's not needed if you're just building it for yourself)

macOS issues

While this works on my machine™, others have reported that on macOS, the build can fail in a few places.

If CMake can't find Qt5 configuration files, run the following command (Assuming you installed Qt5 with brew) then try again.

export CMAKE_PREFIX_PATH="/usr/local/opt/qt/lib/cmake"

If you get linker errors with -lassimp, well I have no idea what's going on. You can edit ws2common/CMakeLists.txt to include a full path to libassimp.dylib.

Replace

if(APPLE) #For whatever reason ASSIMP_LIBRARIES does not use a full path on macOS
    link_directories(${ASSIMP_LINK_DIRS})
endif(APPLE)

with

if(APPLE)
    set(ASSIMP_LIBRARIES /usr/local/lib/libassimp.dylib)
endif(APPLE)

The path there is the default place where Homebrew installs assimp.

With Make, MSYS Makefiles

Replace the 4 in -j 4 with however many threads you want Make to use

mkdir build
cd build
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE="RelWithDebInfo" ..
make -j 4

With Visual Studio

The following should generate a Visual Studio project for Visual Studio 2010. Replace the 10 with your version of Visual Studio.
I generally recommend against using MSVC - have fun with dependencies ;)

mkdir build
cd build
cmake -G "Visual Studio 10" ..

Packaging

Packaging the project is done with two more commands

make install
make installprerequisites
  • install will copy the built files into a packageable directory tree, in CMAKE_INSTALL_PREFIX, and patch up rpath for platforms Linux/macOS
  • installprerequisites will copy third party DLLs/DYLIBs/SOs that Workshop 2 depends on into the install directory
    • Make sure you're not installing system-wide if you're running this! CMAKE_INSTALL_PREFIX should have been set earlier

About

MOVED TO GITLAB: https://gitlab.com/CraftedCart/smblevelworkshop2 (This GitHub repo will remain a mirror of the GitLab repo for Travis CI builds) | The sequel to the original Super Monkey Ball stage editor!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages