The current precision is not 100% perfect but very very high. Nothing to even slightly worry about and with the wheel using the helper position it is completely unnoticeable. Even when you zoom in all the way. To answer your question, the FBX export format does not nearly support all this nifty stuff my brother used in 3ds max. Even if it would, you would not gain much or anything.
This is because of the math involved. Whenever you do IK or invert a function in a non analytical (non closed-form) way like i did in the engine or max does for IK, you only have an approximation. This is true in 3ds max as well. Even "look at" is not 100% perfect all the time and more complex inverse stuff only gets worse. This is a fundamental issue. This part of mathematics is called "numerical analysis" and it is used for nearly everything in the engine that is not straight forward. Even relatively simple stuff like the inverse of a 4th order polynomial does not have a closed-form and thereby perfect solution (This is unrelated to numerical calculus precision which is yet another problem).
The current precision is not 100% perfect but very very high. Nothing to even slightly worry about and with the wheel using the helper position it is completely unnoticeable. Even when you zoom in all the way. To answer your question, the FBX export format does not nearly support all this nifty stuff my brother used in 3ds max. Even if it would, you would not gain much or anything.
This is because of the math involved. Whenever you do IK or invert a function in a non analytical (non closed-form) way like i did in the engine or max does for IK, you only have an approximation. This is true in 3ds max as well. Even "look at" is not 100% perfect all the time and more complex inverse stuff only gets worse. This is a fundamental issue. This part of mathematics is called "numerical analysis" and it is used for nearly everything in the engine that is not straight forward. Even relatively simple stuff like the inverse of a 4th order polynomial does not have a closed-form and thereby perfect solution (This is unrelated to numerical calculus precision which is yet another problem).
Allright i see. so rescripting the Solvers and the lookats are not worth the afford. Oke learned something today again:D thanks!
Looks great. I like the water drops on the lens when the vehicle goes through the wet. Are you planning on doing a first person option? With more tracks the mountains offer limitless possibilities.
we are still alive and back with what i hope is a decent progress. On the programmer aswell as the graphics side. I think we should have posted more often.
* We have now two almost complete race tracks
* Turbo roughness In our old shots we started to see unrealistic specular lighting on the terrain hills with our PBR shading. This is why we came up with what we call turbo roughness. It can model super rough surfaces like moss far more realisticly.
* Bumpy track surface Our new track surface is now much more bumpy and interesting for driving aswell as optically. We use two texture sets and vertex color to blend between them to hide texture tiling as much as possible. On top of that we have parallax decals for the tire tracks to give the road a somewhat oriented look.
* Car updates We added a nice drop shadow, a brake light and some player customizations (number and flag). We also have a real physical damage model now. You can loose wheels, panels and more. The lost parts have proper client side physics and rain on subsequent drivers nicely. Stay tuned for a new game play video
* Global illumination As a global illumination solution we use a new kind of sky occlusion together with light probes. This is all new for us and a huge step from the previous simple global cube map approach. The new ambient occlusion is no longer just the normal SSAO but a height map AO similar to the Dust 514 system. It provides a nice sky shadow for our outdoor scenes with good inner tree occlusion.
* Translucency Yes we have translucency now. Our translucency is a bit of a hack that tries to model the fact that shorter wave length colors like blue get less transmitted than longer wave lengthes like red. This gives our leafs a nice warm sub surface scattering if viewed against the sun.
* Atmospherics The fog got a big rework with a nice scattering model that gives us a full warm to cold color range depending on the angle towards the sun. Of course we also added volumetric shadows to sum it up.
* New grass We have came a long way with our grass to have it more unlit and thereby better integrate with the ground.
* Vehicle audio We have our vehicle audio made by http://www.tekkaudio.com/ almost fully integrated. It sounds very good already but we have still some samples left to integrate.
@AlecMoody : Thank you! Yes we will definitely release Q1 2018 on steam early access. We are a bit behind schedule. Originally it was planned to release in 2017, but it will be late January / early February 2018.
We separate the track surface from the terrain. The track uses two materials which are blended by vertex. These materials have high-mid-frequency information in them. Tiling on these mats is very poor (intentionally), why we need two mats to break the tiling.
On the terrain we use 3-4 materials which are optimized for large application (good tiling). They are applied by splat map from world machine and improved by painting in editor.
To hide the poly edge where the terrain meets the track surface, we use a transition decal which overlaps the terrain aprox 1 meter and uses the same materials and UV as the track surface. It is faded out by vertex alpha.
On top of the track we use larger decals to give certain areas more uniqueness.
Your vehicle looks amazing. I want to play it in Rocket League
Thank you both for taking the time to share your development. This is a super interesting project and I love seeing how an Indie Developer has to work through things with only 2 people. Keep at it fellas!
I also implemented a distance structure on the second race track which gives the player better orientation and sense of direction. The level also looks much bigger now. The tower is inspired by the movie Waterworld.
If you've got time to do so, could you describe what your engines renderpass looks like? For instance do you use a deferred renderer or a forward(+ maybe?) renderer. How do you create your reflections, do you use PBR? etc. Would be super interesting
If you've got time to do so, could you describe what your engines renderpass looks like? For instance do you use a deferred renderer or a forward(+ maybe?) renderer. How do you create your reflections, do you use PBR? etc. Would be super interesting
We do not have many dynamic lights in our scenes and as far as i know most racing games tend towards forward+ renderers because of this and the complex car surface materials. In contrast we use a deferred render approach. This is mainly because of the awesome feature of deferred decals which we use in our nature levels a lot to hide poly seams and more. This is probably the single most important feature of deferred systems that you simply can not have in any forward renderer. We make use of what is called clustered deferred shading.
Our render passes are done in a graph with an automatic system for buffer allocation, reuse and render pass order. This allows us to simple change the graph based on graphics settings and more while still maintaining an optimal buffer usage. In total we have around 55 different render passes.
We do use PBR for everything including a modern GGX (Trowbridge-Reitz) NDF with Schlick Fresnel and Smith Geometric Shadowing which is pretty standard nowadays. Just for the diffuse we have something special, which is an approximation of disney's diffuse instead of the usual Lambert. We do have many extensions for what we call turbo roughness for the terrain and translucency or unlit for foliage though. Maybe we can show some in a later post.
For the reflections we use screen space reflections with a HiZ (but i am not entirely convinced by this yet) and ordinary reflections cube map probes as fallback.
I made another tutorial about suspension rigging because apparently the other video was not clear for beginners and didn´t show the basic process well enough.
Mesh provided by @wladimyxp who asked for this tutorial.
We reworked the track surface ....again. But we are happy with the latest results. Let me know what you think. Here is a quick overview what it looks like at the moment and how we did this.
We still use the two base materials which are blended by vertex color like before. On top we use a parallax decal with a tileable tire track texture.
The decals are layed out where the racing line is. I use a spline and path deform for this. The borders are faded out by vertex alpha. Otherwise the outside edges would be visible. We also use vertex alpha to have more or less visible tire tracks in some areas e.g. braking points.
For the water puddles we use the heightmap information that is also used for the parallax effect and the vertex color (red) in case we want a water puddle in this area. Higher values equal higher water levels. Because the water shader is more expensive we also seperate the water areas by applying a different material ID to the polys with vertex color (red). We use the standard parallax shader on dry areas to keep the performance up.
Hope you like the new surface! We have a lot more updates coming soon!
incredible work! hope I get to tear around that mucky track in that cool car someday! Those red plants look huge, are they really that size in real life? Ive never seen any like that, almost seems like something out of avatar when they are that big.
I'm still in shock. I honestly can't comprehend how 2 devs can make something as good as what studios with huge teams make, let alone a whole engine that is on par with any single modern engine I have seen so far. You guys are either time travelers or have cheat-codes for development. Can't wait to see what you have on the game design side. Keep up the great work!
Nice project you got there! Those graphics and details are among the best I have ever seen.
I have three questions concerning this game: - Is multiplayer between a Linux machine and a Windows machine supported (or are there plans to get it working if it doesn't already)? - Will there be a demo to test if a PC has enough power to run this game? - Will steering wheels (maybe even with force feedback) be supported?
Regardless of the outcome of those questions, I'll definitely buy a copy of this game as soon as it is out.
thank you in advance for your support. Yes we do have racing across Linux and Windows. We do not plan to release a demo but a PC matching or exceeding the specs given should work fine. It runs well for us on an Intel Core i5 and a NVIDIA GTX 660 with the graphics settings from the screenshots at 1080p with around 60fps. Under Linux we also tested the Mesa driver for AMD cards and it worked too. I am still a bit shy to call it officially supported, though. Regarding steering wheel support we are not sure yet. I do have a Logitech wheel here and it does work technically but the game was never intended to be played with a wheel. But it drives wonderfully with a gamepad and we do have very nice force feedback support for gamepads too.
This is looking amazing, I had a few questions though. are there or are there plans to have soft body physics on the tires to simulate how the deforms when you drive, turn, land? What is the state for terrain physics, can object be broken (bushes, fences), does the ground wear or have mud physics (kinda like spintires)?
Looks awesome. Have participated in few game developments too. Don't forget that you can run a crowdfunding campaign, so it would be easier to add some cool features to the game then. Good luck!
Looks awesome. Have participated in few game developments too. Don't forget that you can run a crowdfunding campaign, so it would be easier to add some cool features to the game then. Good luck!
are there plans to have soft body physics on the tires to simulate how the deforms when you drive, turn, land?
What is the state for terrain physics, can object be broken (bushes, fences), does the ground wear or have mud physics (kinda like spintires)?
Hi Benjamins,
thanks for your feedback. Yes we actually indeed have soft body physics on the tires with real load simulation and deformation. It was an experiment done to improve closeup screenshots but we have it in the game too. Driving through bushes is still on the todo list and partially done right now. It has an impact on the car and rips the leaves. We do not plan to support ground wear. We deemed it to not be very helpfull in a fast paced racing game meant for competition. We only have optical tire treads on the ground.
@johnperkins899 : Thank you for suggesting crowdfunding and considering us worthy of it. We do not plan to go this route if everything goes as planned.
Wow amazing stuff ! Very interesting workflow for creating road with terrains! Speaking of it do you guys know about GeoGlyph2 for WM? They also have some nice ways to create color for terrains and some other cool stuff. Anyway keep up the good work and can't wait to see more :O
Replies
This is because of the math involved. Whenever you do IK or invert a function in a non analytical (non closed-form) way like i did in the engine or max does for IK, you only have an approximation. This is true in 3ds max as well. Even "look at" is not 100% perfect all the time and more complex inverse stuff only gets worse. This is a fundamental issue. This part of mathematics is called "numerical analysis" and it is used for nearly everything in the engine that is not straight forward. Even relatively simple stuff like the inverse of a 4th order polynomial does not have a closed-form and thereby perfect solution (This is unrelated to numerical calculus precision which is yet another problem).
Long time no see. But we have been very busy. Here is some cool new stuff we have been working on:
we have a freelance opportunity for you!
Looking for a sound effect artist.
Check out the details here:
http://polycount.com/discussion/186258/paid-sound-effect-artist-freelance/p1?new=1
Top work man.
Thanks man!
The steering wheel on the car is already turning and the cockpit is fully modeled so we will be playing around with a first person cam for sure.
I´m still planting tons of trees and grass at this point. Next thing will be some shrubs.
we are still alive and back with what i hope is a decent progress. On the programmer aswell as the graphics side. I think we should have posted more often.
* We have now two almost complete race tracks
* Turbo roughness
In our old shots we started to see unrealistic specular lighting on the terrain hills with our PBR shading. This is why we came up with what we call turbo roughness. It can model super rough surfaces like moss far more realisticly.
* Bumpy track surface
Our new track surface is now much more bumpy and interesting for driving aswell as optically. We use two texture sets and vertex color to blend between them to hide texture tiling as much as possible. On top of that we have parallax decals for the tire tracks to give the road a somewhat oriented look.
* Car updates
We added a nice drop shadow, a brake light and some player customizations (number and flag). We also have a real physical damage model now. You can loose wheels, panels and more. The lost parts have proper client side physics and rain on subsequent drivers nicely. Stay tuned for a new game play video
* Global illumination
As a global illumination solution we use a new kind of sky occlusion together with light probes. This is all new for us and a huge step from the previous simple global cube map approach.
The new ambient occlusion is no longer just the normal SSAO but a height map AO similar to the Dust 514 system. It provides a nice sky shadow for our outdoor scenes with good inner tree occlusion.
* Translucency
Yes we have translucency now. Our translucency is a bit of a hack that tries to model the fact that shorter wave length colors like blue get less transmitted than longer wave lengthes like red. This gives our leafs a nice warm sub surface scattering if viewed against the sun.
* Atmospherics
The fog got a big rework with a nice scattering model that gives us a full warm to cold color range depending on the angle towards the sun. Of course we also added volumetric shadows to sum it up.
* New grass
We have came a long way with our grass to have it more unlit and thereby better integrate with the ground.
* Vehicle audio
We have our vehicle audio made by http://www.tekkaudio.com/ almost fully integrated. It sounds very good already but we have still some samples left to integrate.
Christian & Thorsten
Looking forward to seeing this project progress
can I ask you guys how do you add the high frequency details to the terrain? do you use some rgb mask?
*edit*
ok I read about the vertex color, so on top of the baked big textures from world machine you also use vertex color to blend materials?
We separate the track surface from the terrain. The track uses two materials which are blended by vertex. These materials have high-mid-frequency information in them. Tiling on these mats is very poor (intentionally), why we need two mats to break the tiling.
On the terrain we use 3-4 materials which are optimized for large application (good tiling). They are applied by splat map from world machine and improved by painting in editor.
To hide the poly edge where the terrain meets the track surface, we use a transition decal which overlaps the terrain aprox 1 meter and uses the same materials and UV as the track surface. It is faded out by vertex alpha.
On top of the track we use larger decals to give certain areas more uniqueness.
Thank you!
Thank you both for taking the time to share your development. This is a super interesting project and I love seeing how an Indie Developer has to work through things with only 2 people. Keep at it fellas!
thanks 8)
I also implemented a distance structure on the second race track which gives the player better orientation and sense of direction. The level also looks much bigger now. The tower is inspired by the movie Waterworld.
For instance do you use a deferred renderer or a forward(+ maybe?) renderer. How do you create your reflections, do you use PBR? etc. Would be super interesting
The dead tree and the Chlorophytum are from Megascans.
Apart from that it was a ton of work:
We do not have many dynamic lights in our scenes and as far as i know most racing games tend towards forward+ renderers because of this and the complex car surface materials. In contrast we use a deferred render approach. This is mainly because of the awesome feature of deferred decals which we use in our nature levels a lot to hide poly seams and more. This is probably the single most important feature of deferred systems that you simply can not have in any forward renderer. We make use of what is called clustered deferred shading.
Our render passes are done in a graph with an automatic system for buffer allocation, reuse and render pass order. This allows us to simple change the graph based on graphics settings and more while still maintaining an optimal buffer usage. In total we have around 55 different render passes.
We do use PBR for everything including a modern GGX (Trowbridge-Reitz) NDF with Schlick Fresnel and Smith Geometric Shadowing which is pretty standard nowadays. Just for the diffuse we have something special, which is an approximation of disney's diffuse instead of the usual Lambert. We do have many extensions for what we call turbo roughness for the terrain and translucency or unlit for foliage though. Maybe we can show some in a later post.
For the reflections we use screen space reflections with a HiZ (but i am not entirely convinced by this yet) and ordinary reflections cube map probes as fallback.
Thank you all for the encouraging feedback.
Mesh provided by @wladimyxp who asked for this tutorial.
https://youtu.be/DLUF9ojPthA
We reworked the track surface ....again. But we are happy with the latest results. Let me know what you think. Here is a quick overview what it looks like at the moment and how we did this.
We still use the two base materials which are blended by vertex color like before. On top we use a parallax decal with a tileable tire track texture.
The decals are layed out where the racing line is. I use a spline and path deform for this. The borders are faded out by vertex alpha. Otherwise the outside edges would be visible. We also use vertex alpha to have more or less visible tire tracks in some areas e.g. braking points.
For the water puddles we use the heightmap information that is also used for the parallax effect and the vertex color (red) in case we want a water puddle in this area. Higher values equal higher water levels. Because the water shader is more expensive we also seperate the water areas by applying a different material ID to the polys with vertex color (red). We use the standard parallax shader on dry areas to keep the performance up.
Hope you like the new surface! We have a lot more updates coming soon!
We are honored to be featured on 80 level
Where we finally revelead the name of the game!
Stay tuned for more updates and behind the scenes.
Feel free to ask any questions!
I have three questions concerning this game:
- Is multiplayer between a Linux machine and a Windows machine supported (or are there plans to get it working if it doesn't already)?
- Will there be a demo to test if a PC has enough power to run this game?
- Will steering wheels (maybe even with force feedback) be supported?
Regardless of the outcome of those questions, I'll definitely buy a copy of this game as soon as it is out.
Keep up the good work!
Definitely looking forward to Early Access but concerned DRAG will struggle at ~$30 with limited content (1 car, 3 tracks).
Other than multiplayer which other features will be available initially?
Personally I would love any of the following to help stand-out:
Many thanks in advance.
Thank you for your concerns.
Big game companies tend to announce a lot more features than their game will actually have.
We are not a big game company
True, we have limited content. but I can safely say that (1 car, 3 tracks) is a false assumption.
I hope everything will be clear once the Steam store page goes live.
That's great to hear, looking forward to the announcement(s) nearer release.
Happy to support most games where Linux is a first-class citizen.
thank you in advance for your support.
Yes we do have racing across Linux and Windows.
We do not plan to release a demo but a PC matching or exceeding the specs given should work fine.
It runs well for us on an Intel Core i5 and a NVIDIA GTX 660 with the graphics settings from the screenshots at 1080p with around 60fps.
Under Linux we also tested the Mesa driver for AMD cards and it worked too. I am still a bit shy to call it officially supported, though.
Regarding steering wheel support we are not sure yet. I do have a Logitech wheel here and it does work technically but the game was never intended to be played with a wheel. But it drives wonderfully with a gamepad and we do have very nice force feedback support for gamepads too.
thank you for not following the nonsensical trend of steering dampening.
also thanks for penguin OS support.
i will definitely support your game
are there or are there plans to have soft body physics on the tires to simulate how the deforms when you drive, turn, land?
What is the state for terrain physics, can object be broken (bushes, fences), does the ground wear or have mud physics (kinda like spintires)?
Thank you for noticing!
Hi Benjamins, thanks for your feedback. Yes we actually indeed have soft body physics on the tires with real load simulation and deformation. It was an experiment done to improve closeup screenshots but we have it in the game too. Driving through bushes is still on the todo list and partially done right now. It has an impact on the car and rips the leaves. We do not plan to support ground wear. We deemed it to not be very helpfull in a fast paced racing game meant for competition. We only have optical tire treads on the ground.
@johnperkins899 :
Thank you for suggesting crowdfunding and considering us worthy of it. We do not plan to go this route if everything goes as planned.
Yeah, looks awesome! I like such details.