《Drifting》is a third-person shooter action game. The combat system revolves around air-to-ground, air-to-air shooting and traversing. Each encounter in the game challenges the player to develop a situational awareness in 3D space, which includes constantly prioritizing your target whilst observing the surroundings to find out the key to advance to the next stage.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

The Making of Whale

News 4 comments

The Making of Whale

Itch.IO - The Making of Whale
IndieDB - The Making of Whale

Hi everyone!

One of the things I enjoyed the most while playing 《Drifting》 is to watch the protagonist running and dashing between walls and ceilings with graceful movement and fluid animation - whilst savoring that wonderful moment, I often asked myself: wouldn't it be an even more memorable experience if the protagonist could run and dash on moveable, animated characters? I wrote down this idea on google doc and continue with my development. Several months later, as I was building the ocean courtyard level, I realized the layout of the level could be a perfect place to put that thought into action - making a giant whale that allows players to hook onto it and perform all kinds of neat tricks on it.

whale jump
(this beautiful ocean creature is a humpback whale. According to wikipedia,
males are able to sing a complex song lasting 10~20 minutes
)


The idea of wall-running on an animated character is easier said than done. As I undergo several changes to my code to allow the protagonist to run smoothly on an animated and moveable actor, all kinds of weird bugs and technical obstacles arise. Among the many issues, two of them gave me a particularly hard time dealing with: to create a good enough collision approximation for an animated character; and solve the problem of relative motion between the protagonist and the whale.

Generate Collision Approximation

Upon importing the whale skeletalmesh into UE4, the first issue that rises up is the need to generate a good enough approximation for the skeletalmesh, which in turn, allows my wall-run system to perform line trace on it. The UE4 default support for character collision is a simple capsule-shaped geometry - way too simple to handle this delicate task. I then proceed to use UE4 physic editor to generate physic body for the skeletalmesh, where each body inherits the transform of the parented bone - the result isn't bad for most of the time, however, since the physic bodies are essentially small meshes attach together, there are unavoidable gaps between them, causing the wall-run system to produce a slight hiccup while players moving from one body to another. The issue is even worse if the parent bone is animated dramatically, which could lead to the protagonist exit wall-running unexpectedly.

generate collison body
(noticed, at the "collision geometry" section, I chose "single convex hull" instead of "sphere" or "cylinder" - which produce a terrible approximation for the whale mesh)


After several trials and errors, I noticed there is an option for generating physic body which could either be "dominant weight" or "any weight". The default is "dominant", where bodies are limited to their highest bone weight; by choosing "any" the generated bodies extend further beyond the highest skin weight area and cover a large proportion of the mesh - essentially eliminates the necessary body count from 13 to 7. I then hand-picked the 7 bones that are animated more dramatically and generate their respected bodies, resulting in these bodies covered a large area including areas where bones do not have much movement in its animation data, which in turn, reduces the impact of the gap between each body.

final collision approximation
(before selecting the "any weight" option, the most prominent gaps happened around the whale's dorsal fin where bones are animated most dramatically; after the size adjustment, the problematic part consist only 1 large mesh and thus no gaps are present)


The downside of this approach, is the larger bodies are less accurate approximation compare to smaller bodies and thus, could create a visual discrepancy in certain areas. Nonetheless, I think the final result is a "good enough" approximation with significantly fewer hiccups for my wall-running system. Overall, an acceptable tradeoff in my opinion.

The Issue of Relative Motion

A distinctive difference between wall-running on static walls versus moveable whale is relative motion - a non-existent issue in the former. Real-world physics aside, in terms of gameplay design, the matter is whether the player should attach to the whale (enable relative motion) or not (absolute motion) while wall-running on it. I've done some thought experiments on this matter and decided to adopt absolute instead of relative motion for wall-running on the whale. The preference for absolute instead of relative is due solely from a game design aspect.

In 《Drifting》 part of the challenges while wall-running is to adjust movement height and camera angle (adhere to the underlying geometry) in order to maintain wall-running status, it's a skill that the game requires the player to learn and eventually master it and feel a sense of accomplishment and fun in the process. By attaching the player character to the whale, renders the aforementioned challenge obsolete, since, all movements and camera turns are now relative to the underlying geometry (the whale), there is no point for players to observe the geometry layout and adjust the height and camera angle accordingly. Attaching the player character to the whale changes a dynamic interaction into a static gameplay experience.

absolute vs. relative motion
(the thick arrow indicate the speed of the whale; the thin arrow indicate the speed of player; as long as the speed are constant it is easy to maintain the player's position while wall-running in absolute motion; whereas under relative motion, the player is likely to reach the end of the whale and stop wall-running prematurely)


Another gameplay-related reason in favor of absolute motion is to maintain the players' location even if they are running forward. Since the game uses the whale as a temporary travel mechanic, players are expected to leave the whale upon arrival at their destination. Adopting relative motion often causes players to reach the whale's head (the end of the wall-run geometry) before arrival, in which players either fall into the ocean or hook onto other parts of the whale - both are not a particularly pleasant experience. By using absolute motion, as long as the whale is travel at a constant speed, it is relatively easy to synchronize the speed of the player and the speed of the whale so that players are at (roughly) the same location while wall-running on a moving whale.

Here is a short video clip, demonstrating this beautiful creature in action:


(one small issue I couldn't figure out a solution just yet, is how to inform players to hook onto the "right side" of the whale; since, without prior knowledge, nothing prevents the player to hook onto the "wrong side" of the whale and forced to switch side when the whale reaches its destination)


I hope you enjoy this week's update, feel free to leave a comment or follow this project!

Have a wonderful and relaxing weekend! ヽ(・∀・)ノ

《Drifting》 The Making of Maze

《Drifting》 The Making of Maze

News 2 comments

Designing maze is quite challenging in terms of how to make good use of the "dead-end" inside the maze and preventing players from backtracking if they...

《Drifting》 Character Ambient Occlusion

《Drifting》 Character Ambient Occlusion

News 7 comments

UE4 post-process AO can generate undesired effects on a skeletal mesh, to overcome the problem, I remedy it by tweaking the bias value of the post process...

《Drifting》 The Making of Sniper

《Drifting》 The Making of Sniper

News

The sniper - a sly and cunning enemy that threatens the protagonist with her undodgeable snipe attack and anti-gravity movement. In the following paragraph...

《Drifting》 The Making of Tutorial Level (Part 2)

《Drifting》 The Making of Tutorial Level (Part 2)

News 2 comments

Today, I'm going to share with you not only the principles I applied to my tutorial level design but also the latest feedbacks I got from the playtest...

Comments  (0 - 10 of 25)
Ralidon
Ralidon

Wow! really impressive! Never saw any other game with such traversing movement.
There is a lot of potential here! If you play your cards right, you may have a hit, sir!

No much woman-friendly, though. way too much boob physics and trying to please visually (like anime games). Maybe offer a costume with less skin? Or toggle/adjust the boob physics a little?

Reply Good karma Bad karma+1 vote
rit2040 Creator
rit2040

Hi @Ralidon,

Thank you for your interest and suggestions!

Your idea to add a physics adjustment option is very thoughtful, I'll make sure the breast and hip physic sliders are added in my development schedule. It shouldn't be too hard to implement.

Additional outfit is a request I get a lot from players, sadly, adding additional outfit means extra time spent on rigging the outfit in third-party software, as a programmer, it is not very cost-effective for me to do the task. I'll see what I can do about it, if I decided to add a new outfit in the future, I'll make sure to let you know. :)

Thank you again for your attention and wonderful suggestions, feel free to comment anytime! I'm really happy to see people care about my project :D

I wish you a wonderful weekend!

Reply Good karma+1 vote
VGames
VGames

Make what you want. Don't cater to everybody. If they don't like it it's not for them. This is your art.

Reply Good karma Bad karma+3 votes
rit2040 Creator
rit2040

Hello VGames,

Thank you for offering your thought on this subject. :)

I think as long as the suggestion is not conflicting with the core gameplay experience that I wanted to provide to the audience, I am willing to take my time to consider it and (after evaluating its priority) add it to my working list.

Since the core idea of 《Drifting》 is to allow players to traverse the world using grapple hook, dashing and wall-running, those gymnastic-like movements IMO are best showcased with a skin-tight outfit which portrays her fluid animations and physical beauty better than a thick or less-revealing outfit.

That being said, in order for gamers to experience the core gameplay in their own taste, adding additional sliders to allow players to adjust the physical property of her breast and hip bone to their liking can broaden the potential audiences of the game without sacrificing the core idea of the gameplay - a suggestion I think is worth considering and should be added into the development schedule.

As for additional (less revealing) outfit, aside from the aforementioned reason; my main concern is the time spent on rigging could've been spent on adding new features to the game which IMO is probably a better tradeoff given my limited game development skill.

I'm glad that your comment reminds me why I chose the protagonist overall style in the first place XD, I hope you and other people who are interested in the game can understand my thought process for making this decision. :)

Wish you have a nice day!

Reply Good karma+2 votes
CreativeOven
CreativeOven

wow very interesting : D

Reply Good karma Bad karma+2 votes
rit2040 Creator
rit2040

Hi CreativeOven,

Thank you for your interest! :D

It's always nice to see a new face around here~

If you like to automatically receive updates in the future, you can check the "Game Watch" button on the top right corner of the game's profile.

Have a nice weekend!

Reply Good karma+2 votes
A-Silva
A-Silva

Heeeey ^___^
Your artist is here! :D

Reply Good karma Bad karma+2 votes
rit2040 Creator
rit2040

Hey!

I didn't know you have an IndieDB account!

It's very nice to have you here! ^.^y

I know you're a busy person, so feel free to stop by anytime at your leisure.

Wish you a relaxing weekend!

Reply Good karma+1 vote
A-Silva
A-Silva

Just as i said i've lost the link, but registreid immediately after i found it xD
Gonna watch your project growing ^^

Reply Good karma Bad karma+2 votes
rit2040 Creator
rit2040

Hello,

Thank you for your interest and support, the pleasure is all mine! :D

I usually update every weekend, so stay tuned for more updates in the future. :)

Reply Good karma+2 votes
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Profile
Icon
《Drifting》
Platforms
Windows
Creator
rit2040
Contact
Send Message
Release date
Game watch
Follow
Share
Style
Theme
Abstract
Players
Single Player
Project
Indie
Embed Buttons
Link to 《Drifting》 by selecting a button and using the embed code provided more...
《Drifting》
Statistics
Last Update
Watchers
75 members
Articles
12
You may also like
Ranger & The Zombie Horde
Ranger & The Zombie Horde Third Person Shooter
Reign of Blood
Reign of Blood Third Person Shooter
Star Champion
Star Champion Third Person Shooter
Rampant
Rampant Third Person Shooter
Mafia II
Mafia II Third Person Shooter
State of Decay 2
State of Decay 2 Third Person Shooter