Open-Volt Project

Post about the progress of your projects.
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Open-Volt Project

Unread post by Steb » Sun Jul 21, 2019 4:51 pm

Hello everyone!
I'm back after years of inactivity to introduce Open-Volt, a project I've been working on for about 2 years.




Image 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
TODO list (not exhaustive):
  • 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 probably make a public release in 1 or 2 weeks, I need to fix some major issues before.
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) :lol:

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

Image
Image
Image
Image
Image
Image
Image

Development screenshots

Image
04/26/2018 - First world file loaded in Unity

Image
04/27/2018 - First textures loaded in Unity

Image
04/28/2018 - The result of a failed attempt to load the collision file...

Image
04/28/2018 - ... vs the result of a successful attempt

Image
11/24/2018 - World file loader bug

Image
11/24/2018 - Museum 2 loaded with instances with the wrong colors

Image
11/24/2018 - Museum 2 loaded with instances with the right colors

Image
11/24/2018 - Museum 2 rendered with the wrong shader

Image
Image
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
Last edited by Steb on Fri Aug 09, 2019 7:47 pm, edited 3 times in total.
User avatar
javildesign
Posts: 11
Joined: Tue Mar 13, 2018 6:15 pm
Contact:

Re: Open-Volt Project

Unread post by javildesign » Sun Jul 21, 2019 8:33 pm

Hi Steb!

Looks great! Did you work on this project all by yourself?

Cheers!
ROUTE-77
in development
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Sun Jul 21, 2019 8:52 pm

Thanks!

Yes, I have been working on it alone since the beginning, mainly during my spare time after work and during weekends :)
User avatar
r6te
Posts: 29
Joined: Mon Dec 11, 2017 3:59 pm

Re: Open-Volt Project

Unread post by r6te » Sun Jul 21, 2019 10:24 pm

This looks super awesome. Despite you being pretty clear what you want to do with it, but (genuinely curious, in a good way) what do you hope to achieve with this framework? I can imagine you thinking people creating new stuff with this, using the engine (maybe even different RC car games?) This might sound weird, but I think your main audience is non-Re-Volt players, as it's a sandbox to create stuff in it. (Just like people that love Minecraft and Garrys Mod). Not like that Re-Volt players don't like to tinker around, though. :bargarama:

I absolutely love this project and I love the artwork as well. It also looks great and I absolutely believe this has great potential. I wish to see more of it, perhaps some more frequent updates.

Keep it up mate.
User avatar
Black-Revolt001
Posts: 83
Joined: Sun Jan 14, 2018 7:20 pm
Location: France

Re: Open-Volt Project

Unread post by Black-Revolt001 » Mon Jul 22, 2019 12:27 pm

Steb wrote:
Sun Jul 21, 2019 4:51 pm
Hello everyone!

Image
I like the headlights that illuminates the ground? Is this a mod?
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Mon Jul 22, 2019 12:57 pm

@r6te

Thanks for your feedback! :)

I partially agree with what you said about the audience though.

To give more details about what I would like to achieve in a first time:
The audience I want to target in priority is Re-Volt players. I think they are more likely to stick with Re-Volt, which I can understand.
That's why in this case I would like Open-Volt to be more like a tool for them to create cars and tracks in the near future.

I admit I haven't really followed what happened during the last 2 years in the community, but as far as I know if I am correct:
  • There is not a car editor that allow you to "live edit" the car parameters and directly see the result in-game
  • There is not a track editor that allow you to load a custom set of models and snap it together, create your AI nodes quickly, etc.
    In other words, a track editor that allows you to have full power on each track creation step with a user-friendly interface and helpful features (not like MAKEITGOOD, I mean, I don't really like placing AI nodes one-by-one by hand).
    Some ideas I have:
    • Drop a car directly in the WIP track to test it, like Trackmania track editor
    • Quickly build your AI graph by driving a car through your track, it could automatically create nodes at a regular user-defined interval
With all that being said, what is the link between the framework and these two tools?
Simple: the car and track editors are both going to be game modes. It will be bundled in the same addon that I will make open-source of course.
The framework is able to read Re-Volt files and will be able to export back to it, why not taking advantage of that? ;)

Now, generally speaking, what is the point of making game modes in Open-Volt?
Currently, with the state of the project:
  • None if you want to play online because no net code at the moment (I hope I can write it this year). I think this represents a great majority of Re-Volt players who mainly play online from what I have seen so far.
  • Pretty interesting if you want to make single player modes or "tools". I don't have a good visibility about if Re-Volt players like to play alone, so I can't really tell if this case targets many players.
One of the goal of Open-Volt is to keep a game that feels pretty the same as Re-Volt in terms of physics, without having the modding limits of Re-Volt.

TL;DR:
  • If you are a Re-Volt player and want to stick with Re-Volt, I suggest just using Open-Volt as a tool to make content more easily and export it back to Re-volt
  • If you are a Re-Volt player and you feel restricted by Re-Volt for track making (because you want to add objects for example) or have an idea of a game mode and like coding, you might like Open-Volt
  • If you like RC cars in general and want to make your own RC car game (like you would create a custom mod in the Source Engine), you might like Open-Volt too
@Black-Revolt001

It's part of any loaded car, I added that to test normal maps :D
User avatar
Skarma
Posts: 21
Joined: Thu Dec 07, 2017 11:00 pm

Re: Open-Volt Project

Unread post by Skarma » Mon Jul 22, 2019 2:10 pm

Steb wrote:
Mon Jul 22, 2019 12:57 pm
  • There is not a car editor that allow you to "live edit" the car parameters and directly see the result in-game
Technically, there is. Running RVGL with dev mode enabled, pressing CTRL + R at any time instantly refreshes the currently selected car with it's latest changes. Seeing as users can edit the parameters and have both Blender and an image editor open at all times to make changes to .prms, hulls and texture files, save then refresh, we've been able to do on-the-fly editing for a few years now.

But it is as you say (theoretically), this is still a manual process that has to be executed by the user, it's as close to automation as we've been able to get thus far.
User avatar
ZipperZbieracz
Posts: 199
Joined: Thu Dec 21, 2017 12:38 pm
Discord: ZipperZbieracz#9343

Re: Open-Volt Project

Unread post by ZipperZbieracz » Tue Jul 23, 2019 5:48 am

Everything's cool and nice, son't get me wrong, you do what you want, but I have one fundamental question: why create a new, separate mod of Re-Volt for such a small community instead of working with Huki & Marv on the game (RVGL) itself to try to make it more fitting for custom content creation, modding (with mods fully compatible with the base game so that a modded and nonmodded players could normalpy play each other on equal terms) and adding optional in-game (or in-.txt file) switchable features like better optional lighting?
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Tue Jul 23, 2019 8:11 am

@Skarma

Didn't know about this feature in RVGL (probably because I haven't created any car so far :lol: )

@ZipperZbieracz

Two reasons:
  • Because of the source code of Re-Volt. I have already tried to work on it, but I came to the conclusion that you will spend way more time trying to get rid of all hardcoded things and making the whole game very moddable than writting all from scratch, and by this I mean rethinking the whole code conception.
  • Because I'm not really crazy about working with old style C++. As a developer, do you really want to stick with structs? We now have OOP languages to make code maintainability easier. Even if I worked with the Re-Volt source code and had written code with C++ last standard, it would result with a mix of "old style" and "new style" code. Not very pleasant when you read the code.
Now, I completly don't have any visibility on how RVGL is written (nor Re-Volt 1.2) as I don't have access to its source code. That's why I always refer to Re-Volt and not RVGL because no visibility. I was quite active the time RVL and ORP forums were up, and from what I understood at that time, is that the project is based on the xbox leaked source code. So I always took it as a reference. If RVGL code is pretty close to it (cars, physics, objects or other parts), I think it will take a huge amount of time to rewrite these parts, make it moddable and hook it to the rest of the code base. But I don't know, that's just a theory...

I don't really know the philosophy of RVGL neither about how far the concept of modding should be pushed. Do RVGL should allow:
  • Custom game mode creations?
  • UI customization? (I don't mean changing the textures..., but creating)
  • Custom physics?
  • Custom objects?
  • Custom triggers?
Or RVGL should stay close to Re-Volt?

I don't know. If you all could help me understand. :)
User avatar
Marv
Site Admin
Posts: 230
Joined: Mon Dec 04, 2017 6:45 pm
Location: /home/marv
Contact:

Re: Open-Volt Project

Unread post by Marv » Tue Jul 23, 2019 11:02 am

Because I'm not really crazy about working with old style C++
It's C actually :D
If RVGL code is pretty close to it (cars, physics, objects or other parts), I think it will take a huge amount of time to rewrite these parts, make it moddable and hook it to the rest of the code base. But I don't know, that's just a theory...
Structurally it's not that different so it'd be quite some work indeed. You can check the roadmap to see what we have in mind with RVGL: viewtopic.php?f=8&t=169

Keep up the good work! What you've done is amazing and I don't think it conflicts with RVGL or anything. Re-Volt is more than just RVGL and I think that more tools and other games should exist around it. It's also exciting to have a completely independent codebase that handles RV content.
User avatar
607
Posts: 241
Joined: Thu Dec 07, 2017 5:49 pm

Re: Open-Volt Project

Unread post by 607 » Wed Jul 24, 2019 5:25 pm

Huh, I don't think I ever knew Half Life and Garry's Mod were related. :P In any case, a very interesting project! I wonder how far you'll get with it.
User avatar
r6te
Posts: 29
Joined: Mon Dec 11, 2017 3:59 pm

Re: Open-Volt Project

Unread post by r6te » Wed Jul 24, 2019 9:30 pm

Steb wrote:
Mon Jul 22, 2019 12:57 pm
@r6te
...
Now that you state that Open-Volt should be viewed as a tool rather than a game, this makes much more sense. I am especially interested in the track editor, which was an idea that me and many others (probably) had before and there was even an old prototype made by Kay, which attempted something like that. I think he did not have enough time to finish it, although the idea is super challenging. But I can imagine using Unity to build Re-Volt tracks could make it much better, or even a custom-written track editor. If that track editor is going to be written in C# I'm super interested to join and collaborate on an open-source project.

It seemed really cool to me to use assets to build a proper track, which should be easier than modeling everything in Blender which is keeping many users off creating custom content.

By doing this and racing a lap in order to generate an AI line automatically which does all the MAKEITGOOD for you would be amazing. As I have been doing MAKEITGOOD for years I can do a track's AI in one or two days, but I can understand it can be a bit overwhelming for new users. Now Re-Volt supports creating AI from a ghost line though, since WolfR4 (even rvgl can do it). But beforehand the nodes have to be laid down and that's the crappy part to be honest :P

It's very cool to leverage the fun factor that Re-volt delivers and create something different about it, it's one of my wishes as well as Re-Volt is completely unique. Currently I am super busy with rvstore (a C# project, basically a revoltzone replacement) but if Open-Volt starts to mature a little bit I am ready to jump in and help you with writing code for the track editor ;).

Also props for you knowing what you want (to do) and you respond to every question in very deep detail, which I absolutely admire. All I can say is keep up the good work and I love the direction this is heading to.

PS: Very important, make this thing your own vision. Only then you can dedicate your efforts onto it and get progress :mightycucumber:
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Tue Jul 30, 2019 8:46 am

Hello everyone!

A quick update to illustrate Open-Volt as a tool.
Here is a demo of the WIP car editor which exclusively use the SDK.
The car editor is easier to create than the track editor, that's why I started to work on it :)

https://www.youtube.com/watch?v=QnsIaWBL_iw
Steb wrote:
Sun Jul 21, 2019 4:51 pm
I will probably make a public release in 1 or 2 weeks, I need to fix some major issues before.
So it will be at the end of this week :D
I will make available the source code of the car editor at the same time.
User avatar
Marv
Site Admin
Posts: 230
Joined: Mon Dec 04, 2017 6:45 pm
Location: /home/marv
Contact:

Re: Open-Volt Project

Unread post by Marv » Tue Jul 30, 2019 8:49 am

That's super neat! I feel like the game is running at twice the speed, though. Do the physics run at 60fps?
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Tue Jul 30, 2019 8:58 am

Thanks :)
No, the physics run at 120fps, like Re-Volt (the constant is 1/120 ~= 0.0083 if I'm right?).
Maybe you refer to when I increased the car speed and mass which made it look like it was running at twice the speed?
User avatar
Marv
Site Admin
Posts: 230
Joined: Mon Dec 04, 2017 6:45 pm
Location: /home/marv
Contact:

Re: Open-Volt Project

Unread post by Marv » Tue Jul 30, 2019 9:06 am

That might be it... But I also had the impression with the first gameplay video you shared, I can't exactly tell what it is but it just looks a lot faster. Maybe it's just me :D
User avatar
r6te
Posts: 29
Joined: Mon Dec 11, 2017 3:59 pm

Re: Open-Volt Project

Unread post by r6te » Tue Jul 30, 2019 9:35 am

I had the exact same feeling as well, cars seem to be more twitchy and stuff, this is a cause of faster physics calculation, I think?

This looks extremely awesome, keep up the great work :thumbs_up:
User avatar
607
Posts: 241
Joined: Thu Dec 07, 2017 5:49 pm

Re: Open-Volt Project

Unread post by 607 » Tue Jul 30, 2019 9:41 am

Hm, seems fine to me!
User avatar
qux
Posts: 12
Joined: Fri Jul 19, 2019 8:01 am
Location: Europe

Re: Open-Volt Project

Unread post by qux » Tue Jul 30, 2019 9:44 am

Wow this is looking incredible! Good work Steb. Can't wait to try this out.

So I understand this correct that the Open-Volt generated parameters.txt can then be used in RVGL?
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Tue Jul 30, 2019 11:40 am

Ok, I think I see why it doesn't really behave as expected. I think it's the way I apply gravity. I will fix that :)
Edit: I've directly edited the parameters.txt file and don't have the same result. So, it's the way the values are updated that is wrong when live editing. Some parameters depend on others and are calculated during the car loading. If it is partially updated, it produces a weird behavior.

@qux Yes of course it will :D
User avatar
OdieHarvester
Posts: 3
Joined: Sun Dec 10, 2017 12:14 am
Location: Behind you
Contact:

Re: Open-Volt Project

Unread post by OdieHarvester » Wed Jul 31, 2019 9:08 am

Really cool project! Can't wait to try it out. :)
:re-volt: Harvester FTW! Pinkie Pie is best pony. :re-volt:
User avatar
Steb
Posts: 12
Joined: Sun Jul 21, 2019 10:16 am
Location: France

Re: Open-Volt Project

Unread post by Steb » Sun Aug 04, 2019 9:55 pm

An alpha release and the installation instructions are now available here :)
I have updated the first post too.
Last edited by Steb on Fri Aug 09, 2019 7:48 pm, edited 1 time in total.
User avatar
ZipperZbieracz
Posts: 199
Joined: Thu Dec 21, 2017 12:38 pm
Discord: ZipperZbieracz#9343

Re: Open-Volt Project

Unread post by ZipperZbieracz » Tue Aug 06, 2019 9:32 am

Steb wrote:
Tue Jul 23, 2019 8:11 am

I don't really know the philosophy of RVGL neither about how far the concept of modding should be pushed. Do RVGL should allow:
  • Custom game mode creations?
  • UI customization? (I don't mean changing the textures..., but creating)
  • Custom physics?
  • Custom objects?
  • Custom triggers?
Or RVGL should stay close to Re-Volt?

I don't know. If you all could help me understand. :)
From what I know and what I see, RVGL is about continuing and supporing the base game without alterations to the stock content (cars, tracks), but at the same time making it easier to use in every day situations, adding support to add additional custom content that doesn't interfere with the stock content (for example skins or potential ideas for custom championships) and better support for more complex and/or unique custom tracks and cars.

So for RVGL things like custom, but optional to add on tracks/cars physics (for example anti-gravity zones that would allow to drive upside-down in some part of tracks with wheels on the ground), objects, triggers etc are totally fine to add, at least for me as a player that could be described as "legacy&stock" player.

Custom UI - things like showing who's on which position all the time instead of just showing a player in front and behind is already a major game changer so things like that is a no, but things like optional displayable keys pressed on the screen that shows which arrow keys and repo/reset/fire/horn buttons are pressed at the time, why not - if it would be optional of course, useful for streamers for example, that also wouldn't change the gameplay and behaviour of players because of it. Or more complex and accurate RPM, speed, accel&brake percentage display - why not? If optional.

Custom game modes - even Kiwi tried doing something like that with what he had, so why not?

Maybe even expand the track editor and make it more complex with more useable blocks like in TrackMania, to allow players to make decent racing lines with a set of predefined "lego" blocks like in trackmania (and such track could be made nicer with objects and surroundings in blender and/or openvolt) why not?

_________
Anyway, I am looking forward to this project because of what could be done with it for trackmaking - as an additional tool for track making after the raw track is modelled in Blender, might be useful and convenient.
Fulon
Posts: 8
Joined: Tue Jul 03, 2018 4:45 am

Re: Open-Volt Project

Unread post by Fulon » Wed Aug 07, 2019 6:26 am

Pretty Cool! I am rooting for you! XD
Konrad
Posts: 8
Joined: Sat Aug 04, 2018 10:14 am

Re: Open-Volt Project

Unread post by Konrad » Wed Aug 07, 2019 12:51 pm

I have one wish. Let players create car screenshots with transparent background for carboxes and I'll die happy :D.
Post Reply