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
|
|
|
|
|
2022-03-09 22:35:29 +01:00
|
|
|
The engine depends solely on [SDL2](https://libsdl.org/) 2.0.20+. All other dependencies
|
2020-01-10 18:14:37 +01:00
|
|
|
are statically linked into the engine. The development libraries for Windows can
|
2022-03-25 00:28:03 +01:00
|
|
|
be downloaded from SDL's website, Linux developers can find the dev libraries from their
|
|
|
|
respective repositories, and macOS developers should compile and install from source.
|
2021-11-14 19:11:33 +01:00
|
|
|
(If you're on Ubuntu and your Ubuntu is too old to have this SDL version, then
|
|
|
|
[see here](https://github.com/TerryCavanagh/VVVVVV/issues/618#issuecomment-968338212)
|
|
|
|
for workarounds.)
|
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:
|
|
|
|
```
|
2022-03-09 22:35:29 +01:00
|
|
|
# Put your SDL2 folders somewhere nice!
|
2020-01-01 21:29:24 +01:00
|
|
|
mkdir flibitBuild
|
|
|
|
cd flibitBuild
|
2022-03-09 22:35:29 +01:00
|
|
|
cmake -A Win32 -G "Visual Studio 10 2010" .. -DSDL2_INCLUDE_DIRS="C:\SDL2-2.0.20\include" -DSDL2_LIBRARIES="C:\SDL2-2.0.20\lib\x86\SDL2;C:\SDL2-2.0.20\lib\x86\SDL2main"
|
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
|
2022-03-09 22:35:29 +01:00
|
|
|
SDL2/SDL2main to have `.lib` at the end of them. The reason for this
|
2020-01-13 04:36:57 +01:00
|
|
|
inconsistency is unknown.
|
|
|
|
|
2021-08-24 18:11:02 +02:00
|
|
|
Also note that if you're using a Visual Studio later than 2010, you will need to
|
|
|
|
change the `-G` string accordingly; otherwise you will get a weird cryptic
|
|
|
|
error. Refer to the list below:
|
|
|
|
|
|
|
|
- VS 2012: `"Visual Studio 11 2012"`
|
|
|
|
- VS 2013: `"Visual Studio 12 2013"`
|
|
|
|
- VS 2015: `"Visual Studio 14 2015"`
|
|
|
|
- VS 2017: `"Visual Studio 15 2017"`
|
|
|
|
- VS 2019: `"Visual Studio 16 2019"`
|
|
|
|
- VS 2022: `"Visual Studio 17 2022"`
|
|
|
|
|
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
|