2020-01-01 21:29:24 +01:00
|
|
|
How to Build
|
|
|
|
------------
|
|
|
|
VVVVVV's official desktop versions are built with the following environments:
|
|
|
|
|
|
|
|
- Windows: Visual Studio 2010
|
|
|
|
- macOS: Xcode CLT, currently targeting 10.9 SDK
|
|
|
|
- GNU/Linux: CentOS 7
|
|
|
|
|
2020-01-10 18:12:00 +01:00
|
|
|
The engine depends solely on [SDL2](https://libsdl.org/) and
|
|
|
|
[SDL2_mixer](https://www.libsdl.org/projects/SDL_mixer/). All other dependencies
|
2020-01-10 18:14:37 +01:00
|
|
|
are statically linked into the engine. The development libraries for Windows can
|
2020-01-11 17:43:36 +01:00
|
|
|
be downloaded from their respective websites, Linux developers can find the dev
|
|
|
|
libraries from their respective repositories, and macOS developers should
|
2020-01-14 16:16:15 +01:00
|
|
|
compile and install from source (including libogg/libvorbis/libvorbisfile).
|
2020-01-01 21:29:24 +01:00
|
|
|
|
|
|
|
Steamworks support is included and the DLL is loaded dynamically, you do not
|
|
|
|
need the SDK headers and there is no special Steam or non-Steam version. The
|
|
|
|
current implementation has been tested with Steamworks SDK v1.46.
|
|
|
|
|
|
|
|
To generate the projects on Windows:
|
|
|
|
```
|
2020-01-11 01:51:41 +01:00
|
|
|
# Put your SDL2/SDL2_mixer folders somewhere nice!
|
2020-01-01 21:29:24 +01:00
|
|
|
mkdir flibitBuild
|
|
|
|
cd flibitBuild
|
2020-01-11 01:51:41 +01:00
|
|
|
cmake -G "Visual Studio 10 2010" .. -DSDL2_INCLUDE_DIRS="C:\SDL2-2.0.10\include;C:\SDL2_mixer-2.0.4\include" -DSDL2_LIBRARIES="C:\SDL2-2.0.10\lib\x86\SDL2;C:\SDL2-2.0.10\lib\x86\SDL2main;C:\SDL2_mixer-2.0.4\lib\x86\SDL2_mixer"
|
2020-01-01 21:29:24 +01:00
|
|
|
```
|
|
|
|
|
2020-01-13 04:36:57 +01:00
|
|
|
Note that on some systems, the `SDL2_LIBRARIES` list on Windows may need
|
|
|
|
SDL2/SDL2main/SDL2_mixer to have `.lib` at the end of them. The reason for this
|
|
|
|
inconsistency is unknown.
|
|
|
|
|
2020-01-01 21:29:24 +01:00
|
|
|
To generate everywhere else:
|
|
|
|
```
|
|
|
|
mkdir flibitBuild
|
|
|
|
cd flibitBuild
|
|
|
|
cmake ..
|
|
|
|
```
|
|
|
|
|
|
|
|
macOS may be fussy about the SDK version. How to fix this is up to the whims of
|
|
|
|
however Apple wants to make CMAKE_OSX_SYSROOT annoying to configure and retain
|
|
|
|
each time Xcode updates.
|
|
|
|
|
2020-01-10 19:28:27 +01:00
|
|
|
Including data.zip
|
|
|
|
------------
|
2020-01-10 19:39:18 +01:00
|
|
|
You'll need the data.zip file from VVVVVV to actually run the game! It's
|
2020-01-11 02:34:03 +01:00
|
|
|
available to download separately for free in the
|
2020-01-13 19:38:16 +01:00
|
|
|
[Make and Play](https://thelettervsixtim.es/makeandplay/)
|
2020-01-10 19:39:18 +01:00
|
|
|
edition of the game. Put this file next to your executable and the game should
|
|
|
|
run.
|
|
|
|
|
|
|
|
This is intended for personal use only - our license doesn't allow you to
|
|
|
|
actually distribute this data.zip file with your own forks without getting
|
|
|
|
permission from us first. See [LICENSE.md](../LICENSE.md) for more details. (If
|
|
|
|
you've got a project in mind that requires distributing this
|
|
|
|
file, [get in touch](http://distractionware.com/email/)!)
|
2020-01-10 19:28:27 +01:00
|
|
|
|
2020-01-01 21:29:24 +01:00
|
|
|
A Word About Compiler Quirks
|
|
|
|
----------------------------
|
|
|
|
|
2020-06-18 22:26:45 +02:00
|
|
|
_(Note: This section only applies to version 2.2 of the source code, which is
|
|
|
|
the initial commit of this repository. Since then, much hard work has been put
|
|
|
|
in to fix many undefined behaviors. If you're compiling the latest version of
|
|
|
|
the source code, ignore this section.)_
|
|
|
|
|
2020-01-01 21:29:24 +01:00
|
|
|
This engine is _super_ fussy about optimization levels and runtime checks. In
|
|
|
|
particular, the Windows version _absolutely positively must_ be compiled in
|
|
|
|
Debug mode, with /RTC enabled. If you build in Release mode, or have /RTC
|
|
|
|
disabled, the game behaves dramatically different in ways that were never fully
|
|
|
|
documented (bizarre softlocks, out-of-bounds issues that don't show up in tools
|
|
|
|
like Valgrind, stuff like that). There are lots of things about this old code
|
|
|
|
that could be cleaned up, polished, rewritten, and so on, but this is the one
|
|
|
|
that will probably bite you the hardest when setting up your own build,
|
|
|
|
regardless of platform.
|
|
|
|
|
|
|
|
We hope you'll enjoy messing with the source anyway!
|
|
|
|
|
|
|
|
Love, flibit
|