RVGL has been updated to
21.0905a!
Update:
Download
Win32 [
setup |
7z ]
Download
Win64 [
setup |
7z ]
Download
Linux [
setup |
7z ]
Download
macOS [
TBA ]
Download
Android [
apk ]
Visit the topics for the
Android version and the
Shader edition for more information.
Goodies:
Download the
Dreamcast Pack:
rvgl_dcpack.zip
Download the
Community Soundtrack:
soundtrack.zip
Download the
Controller Map Android app:
rvgl_controllermap.apk
More about the update and RVGL:
changelog |
docs
Full game downloads are available at
Re-Volt I/O.
The network version has been updated!
NOTE:
The macOS release is expected to be delayed by one week. It will be announced separately.
Custom Animations:
It is now possible to have a custom animation triggered multiple times. To do this, set the
TriggerOnce property of an animation to
false. Read the
updated docs for more info. Below is a potential use-case for multi-triggering animations (sample contributed by javildesign):
Custom animations can now have a
Light, 3D Sound and
Spark Generator attached to each bone. To learn how to add these to your animations, read the
updated docs. You can insert a LIGHT, SFX or SPARK section at any keyframe, and then change their properties in further keyframes. Properties once added are inherited by further keyframes, so only the properties that must change again need to be specified. Below is an example:
► Custom Animated Light Sample
Code: Select all
KEYFRAME {
FrameNr 0 ; Number of the keyframe (0 to 255)
Time 1.000 ; Time (in seconds) since previous keyframe
Type 0 ; Interpolation type. 0 - linear, 1 - smooth start, 2 - smooth end, 3 - both smooth, 4 - overshoot
BONE {
BoneID 0 ; Body part ID
... ; Other properties to animate this bone
; Add a spot light for this bone
LIGHT {
Type 3 ; Light type (0 - omni, 1 - omni normal, 2 - spot, 3 - spot normal, or -1 to disable)
Color 0 200 200 ; Light color (RGB values, -1024 to 1024 for each component)
Reach 1024 ; Light reach distance
ConeSize 90 ; Cone size for spot lights (1 to 180)
FlickerSpeed 0 ; Flicker speed (1 to 255, 0 to disable)
}
}
}
KEYFRAME {
FrameNr 1 ; Number of the keyframe (0 to 255)
Time 1.000 ; Time (in seconds) since previous keyframe
Type 0 ; Interpolation type. 0 - linear, 1 - smooth start, 2 - smooth end, 3 - both smooth, 4 - overshoot
BONE {
BoneID 0 ; Body part ID
... ; Other properties to animate this bone
; Change the light color
LIGHT {
Color 0 0 200 ; Light color (RGB values, -1024 to 1024 for each component)
}
}
}
KEYFRAME {
FrameNr 2 ; Number of the keyframe (0 to 255)
Time 1.000 ; Time (in seconds) since previous keyframe
Type 0 ; Interpolation type. 0 - linear, 1 - smooth start, 2 - smooth end, 3 - both smooth, 4 - overshoot
BONE {
BoneID 0 ; Body part ID
... ; Other properties to animate this bone
; Remove the light
LIGHT {
Type -1 ; Light type (0 - omni, 1 - omni normal, 2 - spot, 3 - spot normal, or -1 to disable)
}
}
}
Adding a
sound effect to a bone works similar to adding a model. This means you need to declare your sound files, typically at the top of the file, and set the SfxID for your bone. To stop playing a looping sound effect, set the SfxID to -1. Sounds can be played once or loop continuously.
Code: Select all
SFX 0 "gator" ; This loads "custom/gator.wav"
SFX 1 "tw_plane"
SFX 2 "tw_plane_propellor"
Custom Cars:
There are new parameters to better customize weapon firing offsets. The
Weapon parameter is renamed to
WeaponOffset1 (the old name keeps working for existing cars). Use
WeaponOffset1 to tweak the shockwave and firework generation offset. Use
WeaponOffset2 to tweak the water balloon generation offset. The default values for both offsets are provided in the
docs.
The support for
low-CoM and
flippable cars has improved.
- Transfer of electropulse between low-CoM and high-CoM cars now works.
- Weapons no longer spawn underground or explode onto the firing car itself.
- Low-CoM cars are now detected when passing through trigger boxes.
- When flippable cars are upside down, weapons and cameras re-orient themselves.
Online:
The host has new options to block players based on their IP address. The first option is a "Disconnect and Block" command. Select a player in the Waiting Room and press
Ctrl + Shift + D. Unlike the plain Disconnect command, this disconnects the player and prevents them from joining the session again.
The next option is a global blocklist file that can be loaded at startup. As a host, you can use this feature to block repeat offenders if you know their IP address, but keep in mind that most people around the world have dynamic IPs (they keep changing), so you should keep your blocklist small and clean up old entries every now and then. Follow these steps to set up your blocklist:
- Create a blocklist.txt file in your profiles folder (profiles\blocklist.txt).
- Add IP addresses to this file, one on each line.
- Add -blocklist to your list of launch parameters.
The game must be run with the
-blocklist launch parameter for the blocklist file to be loaded. This way, you can enable the blocklist for high priority sessions and keep it disabled otherwise, without having to remove the file itself.
Editor:
AI Nodes editor received fixes and additions for two lesser known features: (1) Generating a racing line from ghost path, and (2) Generating smooth curves at turns. The modern editor now supports them and there are new commands added. The old commands continue to work in the legacy editor. The
docs have sections covering these features.
To generate racing lines from ghost path, you must be in Time Trial mode, and you must have completed a record. To verify you have a record, look for the ghost car or enable it from Game Settings. Then, press
G to generate the ghost path (you should see a red line that traces your record lap). Then press
Shift + G to update the racing lines, and
Ctrl + Shift + G to update the overtaking lines. Overtaking line generation is experimental and might require further manual tweaking.
To generate curves, hold down the
N key and select 3 consecutive nodes, one before the turn, one at the turn itself and one after the turn. These are control points from which the curve is generated. Adjust the curve by moving the middle node's racing / overtaking lines. When you're satisfied, press
Shift + N to update the racing lines, and
Ctrl + Shift + N to update the overtaking lines.
NOTE:
In the legacy editor, the commands for ghost path generation are 6 and Shift + 6. For curve generation, 1, 2 and 3 keys select the control nodes, and 4 and 5 keys update the racing / overtaking lines. Numpad keys can be used to adjust the curve.
Other Changes:
- Libraries are upgraded on Windows and Android (SDL -> 2.0.14, ENet -> 1.3.17), and on Windows (OpenAL Soft -> 1.21.1).
- FluidSynth 2 is supported for MIDI playback, so it should be working once again on newer Linux distros.
- The audio device is initialized with a 48 kHz sample rate if supported.
- Slovenian language is added (thanks to Mirko Ficko for the translation).
Bug Fixes:
- Collision clipping bug: A long time issue that caused cars to randomly spin out when riding along walls is now fixed.
- Fixed game window getting minimized when a message box is shown. The fix should also prevent a fullscreen display on a multi-monitor setup from minimizing, although this is not tested.
- Fixed an inconsistency in music playback in a custom frontend when the In-Game Music option is turned off.
- Fixed ball bearing texture cut off at the top in the weapon holder.
- Fixed a bug that caused the Battle Tag timer to run slow.
► Show changelog of this version
21.0905a-1:
| Pumped network version.
Add:
[General]
- Object Animation: Added support for lights, sound effects and sparks. Each
bone can have a 3d sound, light and spark generator attached to it. These
can be created and destroyed at any keyframe. Sounds can be one-shot or
looping. See the docs for more details.
- Object Animation: Non-looping animations (Mode 1) can now be triggered
multiple times. Set 'TriggerOnce' to 'false' to enable this behavior.
- For cars, the 'Weapon' key in parameters.txt is now deprecated. Instead, 2
new keys have been added: 'WeaponOffset1' (for shockwaves and fireworks)
and 'WeaponOffset2' (for water bombs).
- Added support for Slovenian language (thanks to Mirko Ficko).
[Graphics]
- Added support for High DPI rendering (eg., on macOS with a retina display).
This can be disabled by setting 'HighDPI = 0' in rvgl.ini.
- Linux: Added option to keep the Desktop compositor enabled when the game is
running. This allows smoother transition between RVGL and other windows, at
the cost of slightly reduced performance. Set 'Compositor = 1' in rvgl.ini.
[Multi]
- Added support for blocking a player by IP address. The host can select a
player in Waiting Room and use 'Ctrl + Shift + D' to disconnect and block
the player from connecting again during the session.
- Global Blocklist: In addition to dynamic blocking, a file containing IPs to
block can be loaded at session start. Create 'profiles\blocklist.txt' with
one entry per line. Then, launch RVGL with the '-blocklist' command line.
Mod:
[General]
- The following libraries are upgraded: SDL -> 2.0.14, ENet -> 1.3.17,
OpenAL Soft -> 1.21.1 (Windows).
- On macOS, assets are loaded from the 'Application Support' folder so the
content is not lost when the RVGL.app is updated or replaced. Assets are
copied from the bundle on first run.
- Improved assets handling on Android and macOS. Installing the full game
bundle (APK or DMG) over a previously installed partial bundle correctly
copies the full game assets again.
- Editor: Improved support for AI line creation from ghost path and curve
generation. These features are now supported by the modern editor. See the
docs for the updated list of commands.
- Editor: Several message boxes are replaced with in-game messages.
[Graphics]
- Game window should no longer minimize when a message box is displayed.
- Log the window size and render resolution at startup.
[Audio]
- Initialize audio device with a 48 kHz sample rate when available.
- FluidSynth 2 is supported for MIDI playback.
[Input]
- Android: Updated the Controller Map configuration app.
- Updated the SDL GameController mapping database.
- Log information about Force Feedback support.
Fix:
[General]
- Several fixes for low CoM vehicles: (1) Transfer of electropulse between
low-CoM and high-CoM cars not working; (2) Weapons spawning underground or
exploding onto the car itself; (3) Trigger boxes failing hit tests.
- Better support for flippable cars: When these cars are upside-down, weapons
and cameras (hood and rear-view) are now oriented properly.
- Fixed weapons like battery and electropulse crashing the game if the car
has an empty body mesh.
- Fixed an exploit that let the player skip through a championship race by
repeatedly pressing Enter at the Quit menu option.
- Fixed a collision issue when wall-riding. When merging close collisions,
take into account alignment along all 3 axes. This fixes situations where
the wheels clip collision polygon edges, causing the car to spin out.
- Object Animation: Fixed a collision glitch when the car is on an animated
platform that is moving away from the world NCP bounds.
- Android: Fixed crash at start on Android 4.x devices.
- Editor: Fixed empty meshes unselectable in Objects and Instances modes.
- Editor: Fixed invalid flags causing crash in Lights edit mode.
- Editor: Fixed selection of overlapping Fields and Triggers.
[Graphics]
- Fixed ball bearing texture cut off in the weapon holder.
[Audio]
- Fixed inconsistency in playing frontend music when music is turned off.
[Multi]
- Fixed a precision loss in the Battle Tag timer.