Meet Stigxamo! Updating the camera, adding + animating a character, more tricks & development roadmap update: #UntitledDrivingGame Devlog #6


This devlog was originally posted on my website:

https://elocnat.com/blogs/untitleddrivinggame-devlog-6.html



šŸ”³ Picture Perfect - Updating the camera system

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.

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.


šŸ”³ Meet Stigxamo - Character animation workflow & implementation

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.


šŸ”³ Tens of Tricks - Solidifying the initial trick list

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.

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.


šŸ”³ Whatā€™s Next? - Development timeline update

Letā€™s update the roadmap for #UntitledDrivingGame I introduced in the last devlog:

  • Rework the vehicle controller to make it feel more like a real vehicle
    • Add characters to vehicles
    • Add more tricks & trick modifiers (opening doors, flashing lights, hanging out windows, etc.)
    • Rework physics/controls to be tighter & more accurate
    • Better models & animations
    • Realistic vehicle audio
    • Develop updated camera system with better dynamic movement for tricks
  • Refactor the project for multiplayer
    • Have a single multiplayer mode to demonstrate capability
  • Work on the projectā€™s overall sound design
  • Create two original vehicles/characters that offer slightly different stats/trick sets
  • Finish designing & building the first level (LATC)
    • Implement a better performing traffic controller
    • Implement destructibles in the environment
  • Have a set of playable missions for the single player campaign
  • Implement basic AI vehicles

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!

New build out soon with updated traction & new character tricks!

Get Tristan Cole's Pro Driver

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.