| Devlog #1 | Devlog #2 | Devlog #3 | Devlog #4 | Devlog #5 |
I’ve been working once again almost exclusively on the base vehicle since the last update. Along with making the camera system more dynamic, adding some new ways to grind, and improving the tracking of air tricks, I’ve added a character to the vehicle with a full set of brand new tricks! In this devlog I’ll go deeper into some of the implementation details and design decisions plus talk about what’s next on the development roadmap!
Watch the video version of this devlog on my YouTube channel!
I kept my promise, this one's here exactly a month after the last devlog!
Grab an early pre-alpha preview build of #UntitledDrivingGame here on itch.io! I plan on updating this build sometime soon to include latest vehicle changes (traction, character, etc.).
Follow me on Twitter for more regular updates on #UntitledDrivingGame and all my other projects!
Subscribe to my YouTube channel for video versions of these devlogs and more related content!
One of my early discoveries on the project was that a good camera system was going to be crucial to making #UntitledDrivingGame feel right. Making a fluid camera system for most games is hard enough, but then there’s added complexity from a fast paced third person game where the player’s position and view target is rapidly changing. I’ve never worked on tuning a camera system deeply besides tweaking a few lag values here and there. Despite playing games and watching videos on the subject I haven’t been able to fully articulate what I want out of the game’s camera, so I’ve just been experimenting a lot with different settings to see what feels best.
Before this set of tweaks, the camera system was just a basic spring arm with some lag added. Previously to do any kind of air movement you had to hold down the ‘Air Flip’ button to enable it. This allowed me to turn down the spring arm rotational lag to an extremely low value when the button was held down which essentially froze the camera when in the air and flipping around. Fortunately this worked out well (during my playtesting at least) but I knew it wasn’t sustainable long term.
Early testing of more camera tweaks
Testing better trick registration and camera tweaks
The current camera behavior is that directional lag will slowly increase with speed and rotational lag decreases to a much lower number when the vehicle isn’t grounded. When the rotational lag changes it gets set via a variable that then smoothly interpolates to the correct angle instead of giving a quick jarring switch back to the default position. While the rotational lag is using the default checkbox on the UE4 spring arm, I encountered some weird jittering issues with the default directional camera lag, so I ended up turning that off and finding/writing my own function to handle that beside the function that interps the rotational speed changes. The last small change is that the camera now flips around when reversing.
As a result of these changes the camera system does feel a lot smoother but there are still some issues to work out. For example, with the addition of character tricks it’s hard to keep a good steady view of the current trick being performed while the vehicle is moving about in air. I’ve thought about ways to remedy this such as a character specific camera, switching to different camera(s) during tricks, or even adding some kind of additional viewing system (like PiP mode) but I haven’t made any decisions. The addition of spinning (more on that later) allows the player to see tricks more clearly which will work for the time being. Still, the camera will eventually need final another workover and final polishing to get it to truly feel right.
Character tricks were inevitable in #UntitledDrivingGame; there’s only so many tricks you can do with just a vehicle by itself. I flirted with the idea back in devlog #3 but with smaller vehicles in a more comedic style. While I liked the idea, the style just didn’t feel right so I pocketed the concept until now. Meet the first character, Stigxamo: the Mixamo racer character that looks like The Stig according to @WoodleaGames!
I don’t have much experience when it comes to UE4 skeletal meshes or animation in general which is why I knew adding characters was going to be a tall task. The vehicle itself is currently setup using all static meshes: the wheels & body parts (doors/hood/trunk and body roll/lean etc.) are all separate and animated with interp functions in the vehicle blueprint. This wasn’t done for any particular reason other than it’s how I started and I didn’t want to learn proper vehicle rigging when I started animating part movement. It works right now but this might change in the future (if nothing else I’d assume it’s better to have one skeletal mesh with animations for optimization). The character is a skeletal mesh child of the vehicle.
I assume the “proper” way, if I was working directly with a single artist or knew what I was doing, would be to have every vehicle as a skeletal mesh and the character (skeleton) animated directly with the vehicle (or maybe this cements how little I know about traditional animation workflows). My first run workflow consists of importing the base vehicle (I’m only modeling the sedan tricks currently) into a fresh Blender file and then importing the Mixamo skeletal mesh on top of that. From there I made a base driving animation (read: looping pose) to build off of and then started making separate animations for each of the tricks. I then export only the Mixamo character from Blender and import the FBX into UE4, add the vars and code in the vehicle blueprint to trigger the trick, and then plug the animations into the animation blueprint.
I’m awful at Blender so the animations are currently terrible, but they’ll work until I can get some original characters and/or hire an animator. Use your imagination and envision the characters moving around and/or yelling things during the various tricks until then! My goal is to have a set of vehicles & characters with the same set of base tricks but different special or vehicle specific tricks available. I want any character to be able to be paired with any vehicle but allow slightly different experiences and visuals with each so there’s a reason to explore them all beyond any stat differences. Characters should share the same skeleton but may have different special moves or emotes for instance. Vehicles will have the same basic set of parts (wheels, left & right door(s), hood, trunk/tailgate/back door(s), etc.) but will have tweaked animations where necessary. A truck will open the tailgate instead of the trunk and eventually there could even be vehicles with suicide or scissor door variations for example.
From the start of #UntitledDrivingGame I’ve had a basic set of tricks but never written down a full comprehensive list. I started a document that includes a full list of the initial tricks I plan on implementing and have been working down that list. This has also allowed me to try and figure out the best default control schemes for both controller & keyboard; there’s a lot of different buttons in use and I’m not even sure the game is fully playable right now with a keyboard and all the new tricks. I’ve separated the list into character and vehicle specific tricks with sections for ground, air, and special/variation tricks.
One of the things I’m considering when working on tricks is the ability to have the same/nearly identical trick lists between vehicles regardless of the type. It would have been easiest to make all the cars convertibles or ensure they all have at least sunroofs/t-tops, but that wasn’t my vision for the game. Trucks, cars, vans, sedans, coupes, convertibles, and anything else should all have the same base functionality even though they may act/look different. This means generally ignoring things like the backseat or sometimes even standing on the roof and instead focusing on tricks that revolve around the driver being in/around the front doors & hood area for the most part. All vehicles should have some sort of body parts to open on the sides and front/rear of the vehicle. Special tricks per vehicle could utilize their specific styles (IE for a truck you could jump into the bed).
On top of the current vehicle ground and air tricks, there are now 8 character tricks & 8 vehicle body part tricks to pull off. There are also a few new ways to grind including sideways and backwards. The character tricks include less outrageous tricks like “The Passenger”, a trick where the driver moves to the passenger seat and hangs out the window screaming, to more outrageous tricks like “Hanging On”, a Superman trick hanging out of the driver’s door, and “Yee Haw”, my favorite trick so far where the driver sits on the roof/windshield and rides the vehicle like a bull. I really like the character tricks and will keep them in, but some of them I’ve created are pushing the envelope on what feels realistic even for this crazy game. “Hang Glider” and “Hood Ornament” are fun tricks but they look absolutely ridiculous: I haven’t decided if that’s a good or a bad thing yet.
Combo text juice & door tricks
Body roll and horn trick
If you imagine the character tricks are akin to grab tricks in THPS then I imagine the body part tricks to be more like flip tricks. They’re less “impressive” but a solid foundation for combos and useful in tighter situations. There’s 8 body part tricks, the four diagonal triggers being variations of the normal trunk/doors/hood opening. Currently both body part & character trick buttons are held, but that might change in the future. I’ve also been considering what other tricks I could realistically add in: the vehicle has a horn that can trigger a trick but other than that I haven’t implemented any other vehicle specific tricks. I think flicking on & off lights could be a possibility, but there’s currently too many buttons as is. Right now I think there’s a big enough trick list to keep things interesting but of course I’ll be building upon it down the road.
Let’s update the roadmap for #UntitledDrivingGame I introduced in the last devlog:
It’s rough around the edges and needs more fine tuning, but the base vehicle, sans multiplayer and better audio, is nearly complete. I’ve worked a little bit on updating the audio but I’m going to postpone that until I start taking on the overall sound design for the project. I still have not started to test multiplayer but I’m planning on starting that implementation very soon. The base vehicle has better animations and I have a model with doors and a character, but I will eventually need to commission 2 original vehicle models and at least 1 more original character (I’d prefer to not use Mixamo characters exclusively) before I can say the initial vehicle work is ‘done’.
I’ve started implementing some basic hittables and testing destructibles in the environment. The problem I’m running into is that the vehicle just runs right over smaller physics objects, including destruction debris, so it throws off the driving flow. I’ve tried adding fake bumpers and creating blueprint actors that give a custom impulse up and out when overlapped to prevent anything going under the vehicle, but so far nothing has really worked. I’ll continue to figure out the best way to implement those while I’m starting to focus a little bit more on level design. Level design is going to be another crucial element to making the game work and I’m going to start focusing on filling in all the level blocks for LATC. I want to build a strong network of lines for the player to follow and ensure they are constantly kept moving in a flow state. By the time next devlog rolls around I plan to have tested basic multiplayer functionality and have a much more comprehensive blockout for LATC.
Thanks for reading and following the development of #UntitledDrivingGame!
Since you’ve made it this far, here’s an insider tip: I’ve finally decided on a name for the game!
Tristan Cole's Pro Driver
I think it’s pretty obvious where the name draws inspiration from. I agonized over the game’s name for a long time and have a few documents/scratch pads with various candidates, but nothing ever stuck. If it tells you anything, the couple I liked were “Tricky Tires/Sticky Tires” & “PSI 720°/720° PSI” (ref to 720°), neither of which were good. The TCPD name also follows the “Put Your Name on Your Game” mantra by Bennet Foddy and Zach Gage, as well as pretty clearly gives an idea of what the game is about (IMO).
What do you think about the name? Are the character tricks too crazy or not crazy enough? Let me know!
Follow me on Twitter & subscribe on YouTube for the latest news on Tristan Cole’s Pro Driver!