I'm back after years of inactivity to introduce Open-Volt, a project I've been working on for about 2 years.
GitLab page
For short: Open-Volt is to Re-Volt what Garry’s Mod is to Half-Life.
Open-Volt is a framework and a sandbox. Its development aims to make modding as easy as possible and aims to allow as much user customization as possible. No content is provided by default. You have the base so you can build anything you want from it.
Based on the current state of the development, Open-Volt strength points are (not exhaustive):
- Legacy content support (just a few files are not supported currently such as force fields)
- UI customization with WPF-like technology (XML templates + bindings)
- Normal map support
- Game engine independent (may be hooked to Godot or UE4 instead of Unity in the future)
- SDK that allows:
- Custom game mode creation
- Custom object creation
- New file formats (one file per track, one file per car, model animation file format)
- Force fields support
- Trigger support
- Track editor
- Car editor
- Sound
- Net code to allow any game mode (even custom) to be played online
- Height map support
- Documentation (wiki + SDK code comments)
- UI animation support in XML template
- In-game content download
- Legacy compatibility with content produced with Open-Volt
I will soon give a link to the Re-Volt addon source code which includes the singleplayer mode and some objects, so you will be able to take a look of what an addon using the SDK looks like.
I plan to use Redmine as project management application to gather user feedback, create a wiki and create a website for the project. However it will take time to setup so don't expect it to be operational tomorrow (and not during the next month neither)
In the meantime, I will post updates as often as possible in this topic.
Some history about the project
Open-Volt is a project I started to think about in 2017 with the main idea to get rid of the Re-Volt old, restrictive and hard to maintain sources written in old C++ style. I chose C# for its maintainability and because I have many years of experience with it. After months of studying feasibility and many attempts to redesign the core of the game, in April 2018, the Open-Volt development finally started.
Actually, Open-Volt wasn’t born directly in April 2018, but from several project revisions.
(sorry, the following is somehow more technical in some parts)
The initial project was a proof of concept and aimed to simply port Re-Volt in the Unity engine using all its features including its physics engine. At this point, it was a full Unity game. The first goal reached was to read any level world file (.w) and build the mesh in Unity. Results gave a great impulse to the development and a lot of hopes. Car physics were handled using raycast methods because it was the only way to have the maximum information about collisions from the Unity framework. But it quickly led to some problems: huge performance drop, collision information was poor and couldn’t be used to handle car collisions like Re-Volt. From my opinion, the main identity of Re-Volt is its physics. This led to first revisions.
The second project was to separate Re-Volt code from Unity code. In other words, making a separate DLL and include it in the Unity project. This allowed to rewrite the Re-Volt physics engine and use that instead of the one from Unity. At this point, it was still a Unity game, but with separate dependencies. More legacy file formats were supported, including instances and lights. Unity started to show some little performance issues, although nothing really significant. It still led to another project reorganization: making Re-Volt code independent in the perspective of using Unreal Engine or Godot without having to rewrite all the code.
The third and last project, renamed Open-Volt, is now a complete separate program that don’t care about the engine used to make it run. If you hook it to a game engine that supports input, custom scripts, audio, 3D models, sprites and has a node organization system, it will work. It also includes a functional SDK that allows user custom code to be loaded at runtime (basically an addon system).
Please keep in mind that Open-Volt is not and won’t be Re-Volt, like Garry’s Mod is not Half-Life (I really like this comparison ).
Gallery
Screenshots from the July 21st 2019 build
Development screenshots
04/26/2018 - First world file loaded in Unity
04/27/2018 - First textures loaded in Unity
04/28/2018 - The result of a failed attempt to load the collision file...
04/28/2018 - ... vs the result of a successful attempt
11/24/2018 - World file loader bug
11/24/2018 - Museum 2 loaded with instances with the wrong colors
11/24/2018 - Museum 2 loaded with instances with the right colors
11/24/2018 - Museum 2 rendered with the wrong shader
03/23/2019 - First tests with objects
Physics fails
https://i.imgur.com/zMKd2iV.mp4
https://i.imgur.com/cEWhYs4.mp4
Videos
https://www.youtube.com/watch?v=Cb7CtPTdZkI&feature=youtu.be