buildat/README.md

109 lines
3.2 KiB
Markdown
Raw Normal View History

2014-09-19 19:38:20 +03:00
Buildat - A minecraftlike with vast extendability.
==================================================
Buildat doesn't actually even implement a minecraftlike by default. It just
provides a lot of useful machinery for doing just that, with immense modding
capabilities.
2014-09-22 14:43:48 +03:00
It wraps a safe subset of Urho3D's Lua API in a whitelisting Lua sandbox on
the client side and runs runtime-compiled C++ modules on the server side.
2014-09-19 19:38:20 +03:00
Go ahead and write some modules and extensions, maybe the minecraftlike will
exist in the near future!
2014-09-26 11:08:08 +03:00
Further reading:
2014-09-27 09:28:25 +03:00
* [doc/design.txt](doc/design.txt)
* [doc/conventions.txt](doc/conventions.txt)
* [doc/client_api.txt](doc/client_api.txt)
* [doc/todo.txt](doc/todo.txt)
2014-09-20 19:05:30 +03:00
2014-09-19 19:38:20 +03:00
Buildat Linux How-To
====================
2014-09-22 14:43:48 +03:00
Install dependencies
----------------------
2014-09-19 19:38:20 +03:00
$ # Dependencies for Urho3D
$ sudo apt-get install libx11-dev libxrandr-dev libasound2-dev libgl1-mesa-dev
$ sudo yum install libX11-devel libXrandr-devel alsa-lib-devel
2014-09-19 19:38:20 +03:00
2014-09-22 14:43:48 +03:00
Get and build Urho3D
----------------------
2014-09-19 19:38:20 +03:00
NOTE: Occasionally you have to use celeron55's fork of Urho3D due to special
features needed by Buildat that are missing in upstream Urho3D. Don't
worry, Urho3D isn't a distro-packageable library due to its various
configuration options.
$ git clone https://github.com/celeron55/Urho3D.git
$ cd Urho3D
$ ./cmake_gcc.sh -DURHO3D_LIB_TYPE=SHARED -DURHO3D_LUA=true -DURHO3D_SAFE_LUA=true # Add -DURHO3D_64BIT=true on 64-bit systems
$ cd Build
$ make -j4
* `-DURHO3D_LIB_TYPE=SHARED` is required for the operation of the module interface.
* `-DURHO3D_SAFE_LUA=true` helps debugging issues in Lua.
Take note whether you build a 32 or a 64 bit version and use the same option in
Buildat's CMake configuration.
2014-09-19 19:38:20 +03:00
Build Buildat
---------------
2014-09-22 14:43:48 +03:00
$ export URHO3D_HOME=/path/to/urho3d
$ cd $wherever_buildat_is
2014-09-19 19:38:20 +03:00
$ mkdir Build # Capital B is a good idea so it stays out of the way in tabcomplete
$ cd Build
$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DURHO3D_LIB_TYPE=SHARED # Add -DURHO3D_64BIT=true on 64-bit systems
2014-09-19 19:38:20 +03:00
$ make -j4
You can use -DBUILD_SERVER=false or -DBUILD_CLIENT=false if you don't need the
2014-09-22 14:43:48 +03:00
server or the client, respectively.
2014-09-19 19:38:20 +03:00
Run Buildat
-------------
Terminal 1:
$ $wherever_buildat_is/Build
2014-09-29 23:50:37 +03:00
$ bin/buildat_server -m ../games/minigame
2014-09-19 19:38:20 +03:00
Terminal 2:
$ $wherever_buildat_is/Build
$ bin/buildat_client -s localhost -U $URHO3D_HOME
2014-09-19 19:38:20 +03:00
Modify something and see stuff happen
---------------------------------------
Edit something and then restart the client (CTRL+C in terminal 2):
$ cd $wherever_buildat_is
2014-09-29 23:50:37 +03:00
$ vim games/minigame/main/client_lua/init.lua
$ vim games/minigame/main/main.cpp
2014-09-19 19:38:20 +03:00
$ vim builtin/network/network.cpp
2014-09-20 03:20:53 +03:00
Buildat Windows How-To
======================
Use Mingw-w64 in an MSYS environment.
2014-09-20 03:20:53 +03:00
$ cd /path/to/Urho3D
$ mkdir Build
$ cd Build
$ cmake ../Source -G "MSYS Makefiles" -DURHO3D_LIB_TYPE=SHARED -DURHO3D_LUAJIT=TRUE
$ make -j4
$ cd /path/to/buildat
$ mkdir Build
$ cd Build
$ export URHO3D_HOME="/path/to/Urho3D"
$ cmake .. -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DURHO3D_LIB_TYPE=SHARED -DURHO3D_LUAJIT=TRUE
$ make -j4
Running the server:
$ bin/buildat_server.exe -m ../games/minigame -c "c++ -Lbin -lbuildat_server_core"
2014-09-20 10:04:28 +03:00