Jump to content
We promise no intrusive ads, Please help keep the community alive
Consider supporting us by disabling your ad blocker / add to whitelist / purchasing VIP.

Recommended Posts

Hey Speeder, this is all sounding good and I wish you the best of luck with it. As you said, it's a big challenge to take on yourself or as part of a small team but if there is one you have proven, it is that you can make good on whatever you put your mind to.

Share this post

Link to post
Share on other sites
What is the creation of the game world like? If it is fairly simple and intuitive, I can help you with huge desire.

I hope something as simple as a sandbox editor (like TDU challenge editor or Halo's Forge), in which you'd simply drag and drop entities and voila! :D


Nice to see another attempt of a car game! I think you are far more skilled than I am, so I guess there will be some actual progress to show compared to me ( :lol: )


Good luck with the project :) I would love to help, but I can't code C++.

Yeah that's the problem with C++. I'd love to add node-based scripting to make contribution easier, but I don't have enough free time to do so. :p


I should setup a repo quite soon (on github or bitbucket) so that people can have a look at the code and (eventually) contribute to the project.


Anyway some recent (visible) progress: volumetric clouds (with unfinished lighting) and anti aliasing (which still need some work)! I've also started reworking physics (which still need loots of work).


Share this post

Link to post
Share on other sites

How performance-heavy are those clouds? I'm still a bit afraid of creating such over masked 2D ones, eventhough they look better, as I don't want to have unneccessary framedrops over and over.


Also, which kind of physics model do you use? Constraint-based or raycasting? I had serious trouble to setup the constrainted physics, and realized raycast works just as fine, with a few minimal cons, though.

Share this post

Link to post
Share on other sites
@TDUZoqqer: right now it roughly takes 3.5ms per frame (with temporal reprojection enabled) at 1080p, which is expensive I have to admit. It should be possible to go below 1.5ms ([URL='http://advances.realtimerendering.com/s2017/Nubis%20-%20Authoring%20Realtime%20Volumetric%20Cloudscapes%20with%20the%20Decima%20Engine%20-%20Final%20.pdf']as suggested by Guerrilla Games presentation[/URL]) with some optimization. I guess UE4 volumetric clouds implementation is based on this paper as well, so it should be viable to use these for high quality settings. :) Raycasting; as you already mentioned it's really hard to get stable constraint-based physics (well unless you write your own physics engine as the guys behind BeamNG did :D). My implementation is really basic right now (e.g. I only apply a single force on the hull, I don't support gearbox yet, ...) but is stable even at low framerate.

Share this post

Link to post
Share on other sites

Ahh, that's what I thought. Had the volumetric clouds in mind ever since I've seen how """"""easy"""""" they are to setup (good look / implementation ratio-wise; 2D sky masks take just as long, they just doesn't look so nice), but I was told by various people that it actually is only suitable for Archviz/Rendering projects and not real time-calculations, like a game. It's probably possible to make it a GPU based particles emitter, but I don't have my head right now for improving my (barely existant :lol: ) environment. Probably gonna care about that a bit later. Gonna hit you up later when I am at this point myself :p


Oh cool, as so, I can recomend you a tutorial series I found on Youtube. Although it's in Russian and he is using UE4, (and the videos are 1h+ each and there are like 15 of it; needed to watch them all, rip), it might come handy for other engines too.

Иван Новожилов


His tutorials work like a charm, and eventhough I barely passed my physics exam at school, the cars are really fun to play around with. (with a few tweaks for my needs)



Also, found this really useful paper for physics builds:

Car Physics


Maybe it's useful, eventhough I think you already know what you're doing.


Eitherway, looking forward for your progress!! :)

Share this post

Link to post
Share on other sites
@Diablo: roger that :D I have setup a git repo with the current codebase: [URL='https://github.com/ProjectHorsepower/horsepower']GitHub - ProjectHorsepower/horsepower: Horsepower - MMO Racing Game[/URL] The code should be compilable (as long as you follow the Readme). There is not code guideline/contribution guide whatsoever yet, if people are willing to contribute I'll make one. :) I've also made a [URL='https://trello.com/b/XgBYgiT3/']Trello[/URL] to manage the project's roadmap

Share this post

Link to post
Share on other sites

Since I'm currently working on a virtual file system (GitHub - ProjectHorsepower/horsepower at modern_io), I thought it would be nice to write a small post about mods (well at least how I plan to implement these). :)


Mods are split in two categories:

  • Local Mods: mods applied locally; meaning others won't see the mod. This is typically anything that doesn't interact with gameplay (3D models, sounds, textures, graphics effects, ...).
  • Global Mods: mods applied globally. This kind of mod would be stored on the server, and shared to the connected clients (either direct download via HTTP or simply ask the user to download the mods from an external link). This kind of mods cover everything the local mods don't (3d levels, physics settings, gamemode, time of day, etc.).

What does it have to do with the virtual file system thingy? :D


Thanks to a virtual file system (vfs), you can virtually build a directory from different locations (zip archives, disk folders, network content, ...). And that's where it gets interesting.

With that setup, you can easilly extend the game content without touching your base data. It basically means mods can be shared as zip archives, drag 'n dropped to the mods folder and that's all. If the mod doesn't match your expectations, and you want to uninstall it, you simply remove the archive from the mods folder.

Another interesting feature (not implemented yet, but shouldn't take too long) is stackable mods, which let you override other mods content without needing to disable/remove these.



-Mod A introduces new car model CarModelA, with its own set of texture, 3d model, sound, ...

-Mod B replaces CarModelA texture set, and introduces new textures for environment

-Mod C replaces CarModelA sound

-Mod D replaces CarModelA texture set, overriding Mod B (but doesn't disable the new textures introduced by mod B)


This would work either automatically (based on the archive date) or manually (introducing a priority index or something like that).

The folder hiearchy would look something like this:

| Game.zip (base game data that should not be modified)

| Game/ (folder containing permanent changes, if you want to override base game data)

| Mods/ (folder containing mod archives, which can be added/removed on the fly)

| Game.exe


Last week progress (warning: contains geeky mumbo jumbo :p):

  • Implemented GameObject binary serialization/deserialization
  • Better GameObject API (e.g. component can be added in a template fashion, 'gameObject->AddComponent<Mesh>( "Tree.mesh" )')
  • Better unicode support (which should allow to port the code easilly to *nix or MacOS later)

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...