1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Horsepower

Discussion in 'Driving & Racing Games' started by Speeder, Jan 22, 2018.

  1. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    Project Horsepower

    Github | Roadmap | Twitter

    The project
    I don't plan building a AAA-scaled game nor a real open-world like Forza Horizon 3 or The Crew (with a 0$ budget and a one-man sized team this isn't realistic at all).
    Instead, the whole idea is to create an open-world racing game with high quality features (physics, graphics, multiplayer, gameplay, ...) and as much content as possible. I might receive help for asset creation (or might even end up setting up a Kickstarter to get a budget to hire freelance artists); I just don't know yet, this isn't my top priority right now. The most important part of the project is modding: everything is moddable. By everything I mean: graphics (models, textures, materials, ...), physics (per vehicle or per 'world'), audio, game modes, ...* The mods will either be applied on the server side or on the client side (with more or less restrictions depending on the kind of mod).

    *: some stuff aren't implemented yet so I can't guarantee everything will be part of the final product

    The game


      • Gameplay
    One word: MULTIPLAYER. To put it short, there won't be any solo/offline activities (except offline free-roam). The project is still at an early stage so I can't really talk about the game modes without being a Peter Molyneux copycat (no offence to him). You should expect free roam, races, cat and mouse, car ball, CTF, user-made mods, ... I'd also like to add some aspect of TDU1 (the whole real estate thingy, car dealers, road discovery, ...). But again, I'll come back to these later.​
    • Physics
    I guess it's a matter of taste, but I think a MMO racing game should aim for semi-realistic/arcade physics. The current state of the physics is closer to arcade than simulation (since a lot of components are missing) but in the end it should be close to semi-realism.​
    • Graphics
    Nothing too out of the ordinary here, this is basically what you may find in any other game. Special attention will be paid to the car paint. As you can see in the screenshots below, there is still a lot of work to do.​
    • Network
    Another huge part of the project. Right now, the game can handle up to 24 players in the same session (with each player having a ping <100ms), using exclusively a client-server infrastructure. This should easily be upgradable considering how basic the implementation is right now (no delta compression, lame physics prediction, ...). Notice that game lobbies won't handle as many people as free-roam.​

    Technical Stuff
    The engine is written in C++ (using C++11standard), scripts in Python and Batch, physics uses Bullet Physics; it supports Direct3D11 as graphics API. The renderer uses Forward Plus Shading, supports point/spot lights and a limited amount of area lights. The render pipeline is PBR (well as much as I can understand what PBR really mean) and uses a dynamic modular architecture (to make it short: it uses less memory and can easily be extended without rewriting a lot of code).

    Screenshots
    hp3.jpg hp4.jpg hp2.jpg

    Right now, if you have any idea or cool stuff to add to game, questions, ... feel free to post here. :D
     

    Attached Files:

    F12Berlinetta, TIMELESS, Djey and 4 others like this.
  2. Diablo

    Diablo Administrator
    tduck team Admin

    Messages:
    20,886
    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.
     
  3. Ryzza5

    Ryzza5 Notable Member
    tduck team

    Messages:
    16,208
    Thanks for sharing, looking forward to seeing what you come up with.
     
  4. Darkboy

    Darkboy Member

    Messages:
    35
    Location:
    Hawaii
    What is the creation of the game world like? If it is fairly simple and intuitive, I can help you with huge desire.
     
  5. TDUZoqqer

    TDUZoqqer whomst'd that

    Messages:
    3,055
    Location:
    Germany
    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++.
     
  6. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    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

    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).
    [​IMG]
     
  7. TDUZoqqer

    TDUZoqqer whomst'd that

    Messages:
    3,055
    Location:
    Germany
    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.
     
  8. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    @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 (as suggested by Guerrilla Games presentation) 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.
     
    TDUZoqqer likes this.
  9. TDUZoqqer

    TDUZoqqer whomst'd that

    Messages:
    3,055
    Location:
    Germany
    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!! :)
     
    Speeder likes this.
  10. Diablo

    Diablo Administrator
    tduck team Admin

    Messages:
    20,886
    @Speeder you can now edit your first post (but not the title atm) for the next 10 years as I have applied an increased 'edit limit' on that post for you. :)

    If you want the title edited please report it with the new title and we'll do it for you. (for now)
     
    #10 Diablo, Feb 27, 2018
    Last edited by Diablo: Feb 27, 2018
  11. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    TDUZoqqer and Djey like this.
  12. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    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.

    Example:
    -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)
     
    #12 Speeder, Mar 12, 2018
    Last edited by Speeder: Mar 12, 2018
    Milli and TDUZoqqer like this.
  13. Ryzza5

    Ryzza5 Notable Member
    tduck team

    Messages:
    16,208
    Is that (VFS) kind-of like what Euro Truck Sim and No Man's Sky have implemented for their PC mods?
     
  14. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    @Ryzza5 Yep that's exactly how it works :D
     
    Milli likes this.
  15. TDUZoqqer

    TDUZoqqer whomst'd that

    Messages:
    3,055
    Location:
    Germany
    Hey Speeder, just wondering, how are you going at the motion blur of the wheels (later on)? Do you also have fake wheels like Forza, or have you figured out how to make non-linear motion blur?
     
  16. Speeder

    Speeder Well-Known Member

    Messages:
    553
    Location:
    France
    @TDUZoqqer I didn't give a thought to it yet. :D
    Using a blur mask should be good enough (the whole procedural wheel blur they use in Forza is probably way overkill).
     

Share This Page

  • About Us

    Started back in 2007, our community has been around for a good while and throughout all this time our core focus has been to provide a fun and laid back place for the discussion of driving and racing games and gaming in general, along with freqent automotive and motorsport related chat too. So, no matter what style of player you are, from arcade thrills to hardcore sim-racer or free roam explorer to circuit hot lapper, if it's about driving or racing in some form then we're up for talking about it. And if you are a keen photo moder, virtual photographer, video creator or streamer, then feel free to share those too. Cheers!
  • Support our community!

    Running and maintaining a community like this is hard work, especially when it's done by a bunch of idiots! And so, if you enjoy visiting here and would like to help us out. We would really appreciate it! Thanks.

    Feed the duck!