We slowly rolled out the patch as feedback came in with various bugs and suggestions. This seemed to work well as it ensured the community that they are valued and their input is important.
- We fixed various story (lua) bugs in which cut the mission short.
- Fixed the save system to ensure stability when crashing or other bugs happen.
- Added a changable font system and added monofur as a default shipped font. Thank you to Tobias B. Köhler for allowing us to ship the Monofur typeface.
- Fixed an issue where going into offline mode didn't allow you to play the game.
Thank you everyone for your input and I hope the above shows we are committed to our community.
Now for a Linux Update!
So I wanted to touch this just a bit. We are going to get very technical. We currently use Luabind in order to tie our C++ functions and classes into lua. This is how we can communicate from lua to C++ in a performant way.
Sadly luabind is the issue. It seems to have an issue with modern lua. We execute lua on a separate thread but we open it on the main thread. Opening luabind results in an error that it's being opened not in the main thread. Specifically this line: https://github.com/LuaDist/luabind/blob/master/src/open.cpp#L114
Now this only happens in Linux using CMake and GCC to compile. MSVC on Windows clearly works. Very odd. On top of that running this code:
int main()
{
luaState = luaL_newstate();
bool is_main_thread = lua_pushthread(luaState) == 1;
std::cout << "Is Main Thread? " << is_main_thread << std::endl;
luaopen_base(luaState);
luaopen_math(luaState);
luaopen_string(luaState);
luaopen_table(luaState);
luabind::open(luaState);
}
prints 1 (true) to the screen then gives the error of not being on the main thread. (WUT?!) So accepting that luabind hasn't been updated in 3-4 years we have been looking into other lua C++ binding libraries in order to support Linux and hopefully Mac.
Thanks.