Closed gregcman closed 5 years ago
Common Lisp executable is the thing that contains all your application code. Unfortunately, Common Lisp executables are quite big (~16mb for CCL
and up to ~80mb for SBCL
) and we cannot do a whole lot about that, because those executables contain the whole CL
runtime (tree shaking isn't available on free implementations yet).
As for libraries, it's just easier to ship them with an application (most games do that regardless of the programming language). cl-bodge
doesn't have required number of shared libraries - number of libraries included into distribution depends on the subsystems used (2d, UI, physics, etc). With preinstalled runtime one needs to be really careful about versioning and stuff, so user would still need to install several runtimes if games use different ones.
Native installers for Windows (NSIS-based), Linux (AppImage-based) and MacOS (.app/.dmg-based) are planned.
I'm glad you chose cl-bodge
for your applications, but beware - it's not production-ready atm. It's something of a beta quality right now. Documentation is severely lacking and out-of-date. Honestly, I can't recommend using it directly in this state. On the other hand, trivial-gamekit
is a stable 2D-oriented framework on top of cl-bodge
with fine documentation - I highly recommend starting with it and slowly move from it onto cl-bodge
later, once I stabilize it enough (1.0.0 planned for Q1 next year).
Okay, so libraries are more convenient to distribute with the download.
But what if the common lisp was installed once? And then cl-bodge and application was loaded from a fasl file? Also, does trivial-gamekit support 3d? I can't wait until Q1. Do you have any tips on how to contribute?
There are several problems with that approach:
cl-bodge
has much more important problems to solve first, before optimizing for distribution size :)You can use any 3d thing from cl-bodge
in trivial-gamekit
and render it in gamekit:draw
method just fine.
As for contributions, I think best way around that is to start using those projects, and once you stumble upon something you need - make an issue, we will discuss the details and then you can make a PR out of that :)
Just installed ball-z-2d and bamboozy. However, I was a bit put off by the size of the unzipped directories, as ballz-2d is 70 MiB and bamboozy is 80 MiB! Perhaps
C:\Program Files
on windows,~/Library/Application Support/~
on mac, and somewhere on Linux could be used to house the/lib/
cl-bodge binaries and a Common Lisp executable, instead of having to distribute it each time. Maybe an installer could run the first time that downloads the cl-bodge binaries to the correct location? I'm interested in using cl-bodge for all my Common Lisp apps.