I am pleased to announce that I finally uploaded a new demo version. This one brings the demo up to date with development. I am happy to finally have an updated build process working.
Automation isn't easy...but it's so nice to have
I spent the majority of the time from the last update till this one working on automating the compilation process for the lua code. I had some trouble reconciling versioning differences between different luajit's. It would not have been a problem if each distribution package was built the same way. All it takes is one of them to be a little bit different and viola we've got problems.
So in case you are unaware the game is made entirely with Love2D. I have separated some of the games boilerplate code like inheritance, state transitioning, collision detection, and ui framework. Those functions are in a common engine, it's only about 1736 lines of lua code. Compared to other languages Java, C/C++ that is a good small number for the functionality provided. The core of the game is 1371 lines at the time of this writing.
How I build stuff...
I prefer to use Makefiles they are good at building assets when those assets depend on source file changes. Make automatically rebuilds only the necessary components when dependencies change. But you need to have the dependencies and relationships set up right in order for it to work correctly. There's also more than a few oddities that can confuse you. But I have my project set up to build my AppImage, macosx, win32, win64, and android apks plus the simple love files just by executing make. I have a versioning script that updates my conf.lua file to increment major.minor.patch versions as well as update the android versions.
Here is a list of tools I use:
- love-release installed with LuaRocks from (here)
- care installed version from my linux distro
- appimagetool installed from (here)
- LuaJIT this is where I needed two versions (here)
- love-android-sdl2 this uses LuaJIT-2.1.0-beta1 (here)
- Love2D (0.10.2 Super Toast) from (here) which runs LuaJIT 2.0.5
- Additional tools like, zip, cp, mkdir, make, curl etc.
So the basic process is as follows:
Check all the source files for updates, if any are newer than the compiled zipped love files or if the compiled zip files do not exist compile the source files to bytecode equivalents, zip them and do this for both luajit versions. Use the 2.1.0-beta1 version as a dependency for building the android project. As dependencies for the win32, win64, macosx, and appimage versions the LuaJIT 2.0.5 bytecode version is used.
AppImage's were a bit tricky to set up. AppImage wants a desktop file and icon files plus all the .so files and an executable script which was not immediately apparent from examples an docs. Luckily it didn't take that long to find but alas I cannot even find it again. But anyway the process goes like run care to capture all necessary shared libraries and set configs. Then move those files into the AppImage build directory, generate the desktop file, copy the icon, build the executable with the game included. After that package it all up and we get a linux binary.
NOTE: I am sure there's probably some issues with the setup so please try out the game and let me know that your having an issue.
I hope that you'll be able to put together some custom ships. Any feedback is more than welcome...
Leave a comment
Log in with itch.io to leave a comment.