345eca5e10
This fixes a regression from 2.3. Consider the following diagram: CC X CC <<<< "C" indicates one tile of a checkpoint entity, "X" indicates a spike tile, and "<" indicates one tile of a conveyor entity that has the default speed (4 pixels per frame) going leftwards. Now consider if the player were to touch the checkpoint and die. In 2.2, they would be able to escape from the spike by holding right. But in 2.3, they would not be able to, and would die from the spike continuously with no escape. This happens because in 2.2, the player would spawn a couple pixels off the surface, and this gained them an extra frame of movement to move away from the conveyor. 2.3 places the player directly on the ground, moving them one frame earlier and thus forcing them to their doom. Now consider the following diagram: CC X CC <<<< The difference with the previous diagram is that this time, the spike is one tile closer. This time, there is no escape in 2.2 and you will always die no matter what. By the way, both diagrams have the same behavior if the conveyor is rightwards and if everything is flipped upside-down. Thankfully, it doesn't seem to be direction-dependent. The reason 2.3 lowered the player onto the surface was for consistency (see PR #502), and I don't want to undo that. So I think the best solution here is to re-add the extra frame of control by conveyors only moving the player after lifeseq has advanced enough. |
||
---|---|---|
.. | ||
fonts | ||
lang | ||
src | ||
VVVVVV-android | ||
.dockerignore | ||
.gitignore | ||
CMakeLists.txt | ||
CONTRIBUTORS.txt | ||
Dockerfile | ||
fixupMac.sh | ||
icon.ico | ||
icon.rc | ||
README.md | ||
TRANSLATORS.txt | ||
version.cmake |
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
The engine depends solely on SDL2 2.24.0+. All other dependencies are statically linked into the engine. The development libraries for Windows can 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. (If you're on Ubuntu and your Ubuntu is too old to have this SDL version, then see here for workarounds.)
Since VVVVVV 2.4, git submodules are used for the
third party libraries.
After cloning, run git submodule update --init
to set all of these up.
You can also use this command whenever the submodules need to be updated.
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 build the Make and Play edition of the game, uncomment #define MAKEANDPLAY
in MakeAndPlay.h
.
To generate the projects on Windows:
# Put your SDL2 folders somewhere nice!
mkdir build
cd build
cmake -A Win32 -G "Visual Studio 10 2010" .. -DSDL2_INCLUDE_DIRS="C:\SDL2-2.24.0\include" -DSDL2_LIBRARIES="C:\SDL2-2.24.0\lib\x86\SDL2;C:\SDL2-2.24.0\lib\x86\SDL2main"
Then to compile the game, open the solution and click Build.
For more detailed information and troubleshooting, see the Compiling VVVVVV Guide on the Viki.
To generate everywhere else:
mkdir build
cd build
cmake ..
Then to compile the game, type make
.
Including data.zip
You'll need the data.zip file from VVVVVV to actually run the game! You can grab it from your copy of the game, or you can just download it for free from the Make and Play page. 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 for more details.