| Devlog #1 | Devlog #2 |
Holy crap it’s been another month already; I feel like I finished devlog #2 last week. During this pandemic I’ve been hunkered down inside by myself (been out in public once, to vote) and I’ve been losing track of time while trying to keep myself from going insane. It feels as if I haven’t made any notable progress on #UntitledDrivingGame but let’s talk about the state of things anyways.
Watch the video version of this devlog on my YouTube channel!
I’ve had a daily Twitter thread going since July 13th when I officially started working on the three driving games I'm building:
I am planning to keep this thread going while these games are still in development; connect with me on Twitter & follow my journey!
Think I'm gonna table the character tricks for now & revisit. I really love the idea just unsure if they're right for #UntitledDrivingGame & I can't start another game until I finish one of these three. 😅— Tristan Cole (@elocnat) November 17, 2020
Gave the truck a closer camera angle. #gamedev #indiedev #UE4 #indiegame pic.twitter.com/CPPup7yLbp
There’s a lot of games I’m taking inspiration from while creating #UntitledDrivingGame, but a few in particular are at the core of that: in this case Freekstyle. Plenty of games have allowed players to do tricks on different kinds vehicles but Freekstyle was always a big standout to me. A stupid fun over the top motocross game with a great soundtrack and a wide variety of crazy tricks to pull off while racing. Not only did the characters all have their own tricks & flair but the tracks were all varied with different routes to take depending on your style. This allowed for a decently high skill ceiling combined with the arcade handling & tricks which kept me playing for hours on end even just improving myself against the AI.
When I think about it, there’s only so many “tricks” that a full-sized vehicle can do in-air without a character or something like unusual “modifiers” (for instance: opening a car door while flipping). With that in mind & other influences I’ve previously mentioned I really wanted to try prototyping some form of character tricks. It’s been in the back of my mind but I kept hesitating. Sure you could have them hang out the windows, make gestures, or even do really quick unrealistic animations like jumping across the roof or something, but the only way I thought I could make it work was by making all the cars convertibles (which I don’t really want to do); I still thought it might not look right though. Then when I was watching YouTube a while ago I came across a video of some mini-trucks that I thought would be perfect for doing tricks on (they’re essentially ATVs with to scale bodies). As soon as I saw that I remembered some of the half-size cars I’ve seen and figured that angle might be perfect for having a player doing tricks in a vehicle.
My quickly abandoned mini-vehicle prototype in Blender
Character trick prototyping
Turns out I’m not completely wrong; it does work, and by that I mean that it looks absolutely hilarious. I wouldn’t even call myself a Blender noob but I opened up Blender and attempted to make a vehicle of my own & pose a UE mannequin inside it for animating, but it was a pretty poor attempt. I then just decided to scale down the truck model & put the mannequin in it as is. It’s just a prototype so I did move the steering wheel to the middle but didn’t fix the cab/add a player seat so it looks a little weird. I did add two test tricks: a “superman” and a “surfing” pose.
I’m not tabling the thought permanently: on one hand I’m absolutely in love with the idea and am glad I took the time to do the basic prototyping for it. On the other hand I don’t really think the half size vehicles & by extension the character tricks are right for #UntitledDrivingGame right now. I have had a mission to make the vehicle feel as realistic as possible (read: not look like a toy/RC vehicle while still offering a stylized driving experience & environment) and this felt like it went against that idea. Plus, even if it does add variety, character animation/modeling will cost a lot more in the long run.
One of the things from the last devlog that I mentioned I wanted to do was have a fully playable round. My goal is eventually to create some unique gameplay modes specific to #UntitledDrivingGame’s style, but since I already had package delivery in the game I decided to turn that into the first mode. I wanted to have a reason for the player to be picking up packages, so I found a plane model and created a little “animation” for it so that it flies across LATC dropping packages. I added a sequence that showed the plane and locations of all the packages when dropping into the map & added a countdown timer. The player is supposed to collect all the packages in the time limit while getting the highest style score possible.
New package delivery mode intro
LATC lighting update & prototyping 360 flips
Initially when I had the project in mind I was thinking of an objective based mode (similar to the Tony Hawk games) potentially combined with package/passenger delivery. I have a bunch of random possibilities for objectives written down from basics such as “grind three rooftop gaps” & “collect DRIVE” to more complex/level specific tasks such as “push-start the stalled car” & “interrupt the baseball game”. I really like the idea of objective based gameplay but I want a reason for players to be performing tasks & getting points.
The passenger taxi mode would be fun too; Crazy Taxi is definitely one of my inspirations and I would love to channel that gameplay as well but I’m unsure if I want to go down that route. While I could use the tricks to expand the combo tipping system & introduce some new mechanics, I’m not sure that I could introduce enough to make it feel like a truly different game. To tack onto that there are already a few other great Crazy Taxi like games on my radar so that niche is not unloved.
A big reason I felt like I didn’t make as much progress on #UntitledDrivingGame as I wanted to is that I spent a week building a multiplayer racing prototype in UE4. I’ve never worked on any type of multiplayer game before so this was an interesting learning experience and taught me a lot. I spent a lot of time reading on the best practices for implementing physics based multiplayer. The project (available on GitHub) has the following features:
At first I tried to implement physics entirely server-side which seemed to work but wasn’t ideal on the client side. There was a lot of jittering & while I tried to smooth it out I couldn’t quite wrap my head around it. I then updated the physics to be client side and set the pawn to only replicate the static mesh component. This seems to work fine; collisions work & appear to function the same on both the client and the server (note: local listen-server). I haven’t tested with another person over the internet but I introduced some lag and it still felt smooth, good enough for a casual game. My feeling is it’s too smooth & I’m doing something wrong where this won’t translate over the internet or things will get out of sync eventually. (If you’re reading this and familiar with UE4 multiplayer, I’d love a code review of the project & tips on how to do things better/correctly). I’ve definitely still got more work & testing to do.
I do have a basic understanding of the UE4 multiplayer flow now though & feel comfortable enough starting to re-architect code in the main project. I could see how it would be a pain to implement MP in an existing project but I think I’m still early enough to where it’s not going to matter much. It’s a good thing I haven’t nailed down the full game experience (right?!). Here are some great resources that really helped me grasp the basics:
I’ve think I’ve said it before but I’ll reiterate: I still consider all the art assets in the game to be placeholders. That doesn’t mean some of them (specifically the vehicles) might not make it into the final game, but assuming this project keeps going I am planning to outsource the final art & probably level design. I do still like making things look at least acceptable so in the meantime I picked up another marketplace asset for creating stylized environments. I’ve already started integrating some of the lighting/assets from the pack into LATC and I’m satisfied with the results.
Stylized landscape asset pack demo level test
Test level I created with the asset pack
There’s been an idea in my head to create a rural/forest based level for the game. @SlemboSlem on Twitter commented “Car of the Wild” on the preview of the truck driving through the demo level & that is pretty close to what I’m thinking about: I can’t recall any driving/racing games set in stylized environments quite like that. Art of Rally is probably the game that comes closest but that’s more low poly/aesthetic focused (if that makes sense?) than what I’m thinking of. It’s possible that it hasn’t been done because it just doesn’t fit or is really hard to make it look like the vehicle fits; it definitely doesn’t look amazing just throwing the truck in there. I started to create an example map and I really like how it looks but there’s a lot of work to make it production ready. The map is also currently setup as a racetrack & that’s not the way I want to go with the game right now.
I’m going to keep refining the core gameplay and working out little issues such as the vehicle not auto-flipping when it lands on its roof. I’m planning to really finish LATC: smoothing out the landscape, adding some more windows/doors/etc., & converting all the BSP to static meshes. I’ll begin work on the “Odd Jobs” mode (objectives) to see how that plays vs the package delivery.
Once I have the core singleplayer mode decided I’ll start working on implementing some basic round based multiplayer modes. The idea will be to have different modes take the players through different sections of the map; so one game might take place in a parking garage while the next might have you racing through checkpoints over the whole map. I’ll create a free roam mode first that just allows player to drop in & drive around with other people and then start expanding from there. In terms of the networking specifics (physics/lag compensation/etc.), worst case scenario is that I’ll have the core game mode logic down and just need to deep dive or (more likely) hire somebody to handle the heavier game specific networking code.Thanks for reading! As always would love to hear any comments/feedback/constructive criticism you have. What do you think about the character tricks? Can you think of any more in-air tricks a full-sized vehicle can do? What multiplayer modes would you like to see? Hit me up on Twitter or leave a comment on the YouTube video of this devlog and let me know!
Make sure to follow me on Twitter to stay up to date with my work & watch #UntitledDrivingGame evolve!