- Notifications
You must be signed in to change notification settings - Fork10
Colorful - Ludum Dare 25 (December 2012) entry
License
Unknown, GPL-3.0 licenses found
Licenses found
suve/LD25
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Colorful is a simple 2D side-shooter game, originally created in 48 hoursfor theLudum Dare event, 25th edition (December 2012).
This is the "post-compo" version of the game - it has received numerousenhancements and bug fixes.
You can download the game fromItch.io,Flathub,F-Droid,or from theReleases tab here on GitHub.
The game is available for Linux, Windows, and Android.
To build Colorful, you'll need the following dependencies:
- Free Pascal Compiler
- Make
- optipng - for optimizing images
- oggenc - for encoding
.wav
sound effects to.ogg
- SDL libraries: SDL2, SDL2_image, SDL2_mixer
- Pascal units for SDL2
Before you can build, you need to get a copy of Pascal SDL2 units.The recommended version to use can be found in thePGD SDL2-For-Pascalrepository, although you're free to try compiling the game using any others.
The repo links to aforementioned headers by the means of a git submodule,so if you don't want to experiment, run the following commands:
$ git submodule init$ git submodule update
This should fetch the SDL2 headers for you.
The build process includes a custom configuration script,which can be used to tailor the build process to your needs.The script takes the following options:
--android
Controls whether Android-specific build settings are enabled.The default value isfalse
.--assets <bundle, standalone, systemwide>
Specifies where the game should expect asset files to be located.bundle
: Assets are expected to be found two directory levelsabove the executable, like in the following structure:- bin/linux64
- bin/win64
- gfx/
standalone
: Assets are expected to be found in the same directory,right next to the executable.systemwide
: Assets are expected to be foundin${PREFIX}/share/suve/colorful
.
The default value is
standalone
.--compat <auto, v1, v2>
Controls whether the game should be built with compatibility for old configfiles and savegames. This means that users upgrading from an old versionof the game will have their settings and savegames preserved.v1
: Include compat code for v1 files.v2
: Support only v2 files.
The default value is
auto
, which resolves tov2
for Android buildsand "v1" otherwise.--debug
Controls whether debugging features are enabled.The default value isfalse
.--donate
Controls whether the "Donate" option appears in the main menu.The default value istrue
.--fpc PATH
Use the Free Pascal Compiler located atPATH
.The default is to usefpc
.--flags FLAGS
PassFLAGS
to fpc. Can be specified multiple times.--ogg-quality QUALITY
Encode sound effects to.ogg
with this quality setting.The default value is10
.--platform <auto, desktop, mobile>
Controls whether the game should be built in desktop mode (keyboard focus,no touch controls) or mobile mode (touch, extra menus for accessibility).The default value isauto
, which resolves tomobile
when buildingfor Android, anddesktop
otherwise.--prefix PREFIX
Controls the path prefix used when installing the app and - if built withassets
set tosystemwide
- when loading assets.The default value is/usr/local
.--strip
Controls whether the built executable should be stripped of debug symbols.The default value isfalse
.
The option syntax is--option=value
.Passing--option value
will result in an error.For boolean options, the value can be omitted; it will be treated astrue
.
The script generates a Makefile, so once you've configured everythingto your liking (or just decided to go with the defaults), you can buildthe game through the usual method:
$ make all
If you setassets
tostandalone
(the default value) during theconfiguration phase, the game is ready to go. You can launch the executablefound atbuild/colorful
and enjoy yourself. Since the game storesits configuration file and savestates inside the user's home directory,it should continue to work even if moved to a non-writeable location.
If you're trying to package the game for Linux, go back and ensure you'veconfiguredassets
tosystemwide
, and specified theprefix
.If everything checks out, you can go ahead and use theinstall
targetdefined in the Makefile.
$ make install [DESTDIR=]
Android is a bit of a tough cookie.You can find all the extra code (Java/JNI glue, manifests, etc.)and build scripts inside theandroid/
directory.
Colorful is subject to two different licences.
Game code (found in the
src/
directory) is available under the terms of theGNU General Public License, version 3, as published by the Free Software Foundation.The full text of this licence is available in the LICENCE-CODE.txt file.Anything not covered by the point above is made available under the termsof the "zlib with acknowledgement" licence. The full text of this licenceis available in the LICENCE-ASSETS.txt file.
The code, as you can expect from a game made for a 48h compo, is quite crappy.Since this is a post-compo version, some cleanup has been made,functions have been moved, comments have been added.But it's still far from being state-of-the-art, so don'texpect me to cover the damage if you hurt your eyes looking at it.
While getting the game to compile for Android was fairly easy, making it runin a sensible matter was a whole other issue. As such, the code is riddledwith Android-specific quirks and workarounds. Some of these should be fairlyobvious in what they do, but some are quite literally workarounds forbehaviour I didn't bother to properly diagnose.
So anyway, feel free to read, observe, and despair. I mean, learn.Like, you know, I made a game and you didn't, so you can learn from me.Yeah.
About
Colorful - Ludum Dare 25 (December 2012) entry