《Drifting》 The Making of Tutorial Level (Part 1)
In this week’s update, I wrote a long article about why and how I made a tutorial level, I hope you enjoy reading it!
Have a nice weekend! :3
《Drifting》 The Making of Tutorial Level (Part 1)
In this week’s update, I wrote a long article about why and how I made a tutorial level, I hope you enjoy reading it!
Have a nice weekend! :3
Scenery in《Drifting》
A Glimpse of Tutorial Level
(Click the image for higher resolution)
Depending on the feedback I received from the playtest sessions, this tutorial level is most certainly subject to change and, hopefully, with each iteration and improvements, players will be able to overcome the high learning curve of this game.
Please stay tuned for the second part of “《Drifting》 The Making of Tutorial Level (Part 2)” =)
This is such a cool game… I can see this doing really well, especially if you upgrade the graphics…
Hey L04D3D~
Thank you for your interest!
Are you talking about the graphics quality of the game or the aesthetics of the game?
For the graphics part, those who have a keen eye probably noticed the game does not render shadows for static objects. It is a shortcoming from using HISM with dynamic light(LPV). Long story short, for some reason, HISM could not benefit from UE4 shadow caching ability, and the rendering cost of HISM dynamic shadow is too high for me to consider turning it on.
The pros and cons of using HISM combine with LPV is actually an interesting topic I like to talk about in a future article.
For the aesthetic part, since the levels still need a lot of playtesting and are subject to change, I’m hesitant to add or modify things for reasons that are not related to actual gameplay. I made this decision as a precaution-if for whatever reason, I ran out of development resource and the game needs to push out to the market early, the game is still playable, albeit not aesthetically pleasing.
Thank you again for your interest and I’m glad your post made me reflect on the design decisions I made in the past.
Have a wonderful weekend!
*This kitten thank you for your post! * *ฅ’ω’ฅ *
《Drifting》 The Making of Tutorial Level (Part 2)
In this week’s update, I wrote the second part of “The Making of Tutorial Level”. In this long article, I talked about the principles I used when designing the tutorial level and the feedback I get from the latest playtest session.
I hope you enjoy reading it!
Have a wonderful weekend! =)
The graphics quality looks fine although you could improve upon it… Its more the aesthetics I’m talking about here… I know you need flat walls for wall running but you can add details via normal and textures… Or you can model details and create collision that is different… Take your pick… I use dynamic lighting myself and can guarantee you my level is much much larger… Are you on a really old computer or aiming this at older specifications? I’d almost love to help out on this project its so cool… Good luck with it…
Hey~ L04D3D,
I just watched your latest updated video and I think I know what you meant by adding detail and collision. The new level you presented in the second post is pretty large yet still retain some finer elements to it, that is exactly the kind of balance I wanted to achieve (hopefully) in the end.
Since the core gameplay of my game relies heavily on a well-designed level, I spent a lot of time building and tweaking the geometry layout and that leaves me little time to adjust or add detail to my level.
I appreciate you for sharing your honest opinion with me and I’ll definitely think of some way to add detail to my level, or perhaps after I’m done tweaking and testing my level, I could outsource the level art design part to someone else? >.0
Have a productive weekday!
Physics in《Drifting》
Kawaii Physics Plug-in Integration
Physic simulation plays a critical part in fast-paced games, the outcome of the physics engine needs to be stable and efficient and more importantly, provide comparable results under different framerates.
In the past, I’ve been struggling with UE4’s physic engine, mainly because the protagonist traverse in such a high speed (up to 4500uu per second), the UE4 physics engine simply could not provide reliable result under this circumstance (mesh stretching and/or twitching occasionally appears); to make matter worse, there are noticeable discrepancies between PIE and shipping build simulation result, which makes it harder for me to adjust physic parameters accordingly.
The only choice for me was to turn on physic-substepping and remedy the stretching issue as best as I can (Max Substep Delta Time = 0.003, Max Substeps = 3 ) and pay the price of CPU overhead. However, even then, the outcome is still not stable enough. Additionally, enable substepping causes the CPU to become the bottleneck on lower-end machines and since APEX destruction is not fully supported with substepping (random crashes occur correlated with smaller substep delta time) I have to pre-destruct all of the destructible meshes in third-party software and abandon APEX destruction altogether.
A few months ago, I accidentally found out this Kawaii Physics plug-in and the video demonstration looks solid enough for me to consider using it for my project. Although the plug-in was built for UE4.20, I was able to integrate it into UE4.16 without too much effort.
The plug-in is just as powerful as the author demonstrated, in terms of ease of use, iteration time, performance gain, the plug-in simply solves all of the issues I struggled with previously, additionally, I found no noticeable discrepancies between PIE and packaged build, which is a big relief for me.
Here is a big THANK YOU to the kawaii physics plug-in author @pafuhana1213, and I hope you enjoy this week’s update! :3
Scenery in《Drifting》
Arsenal
(Click the image for higher resolution)
In the world of 《Drifting》 I designed each level with two purposes in mind: the first and obvious one, is to provide a mechanically fun experience to players; the second one, is to support the underlying theme with a coherent background. Although the plot function of each level does not reveal to the player explicitly, it is hinted at with minor changes to the structure of the level or specific objects placed in the level.
In this scenery, the idea is to provide an explanation for where the enemy’s weapon and armory came from. The player not only will walk through the assembly line and uncover hidden events behind it, but he/she will also be asked to transfer a set of missiles to a designated location, thus, blending the (implicit) storytelling and game mechanics together.
I hope you enjoy this week’s update, have a great weekend! (ノ°∀°)ノ
A glimpse of combat in 《Drifting》
Interact UI
The ability to grab and throw enemy/object plays a crucial part of the game mechanics, from the past feedbacks I received, the game did not make it clear when to grab and when enemies become resistant to grab.
Before the improvement, I used a fresnel effect to hint at grab-prone enemy, the emissive fresnel effect works well in most cases, however, in far distance, the emissive color will be averaged out by temporal anti-aliasing which renders it indiscernible for long-range grab; to make matter worse, after adding particles, decals, destructible meshes…into my game, it’s quite difficult to noticed the fresnel effect when there are so many things going on at once.
After some contemplation, I decided to use post-process outline to replace the fresnel effect, the outline effect is not affected by TAA as much as the emissive fresnel shader does; and since it’s rendered in custom depth pass, I don’t have to worry about other particle or mesh occluding the effect; Additionally, I made a circular counter to indicate the time left before the enemy become resistant to grab (the time before its armor regenerates) - an important piece of information that did not reveal to players previously.
The interact UI still needs a lot of tuning and testing before it can do its job properly, however, I believe these changes will help players to get a grasp of the game’s mechanics more easily.
I hope you enjoy this week’s update, have a nice weekend! :3
《Drifting》 The Making of Sniper
Sniper
In this week’s update, I wrote an article about how I came up with this sly and cunning enemy in the game.
I hope you enjoy reading it!
Merry Christmas and Happy New Year!! :3
A glimpse of combat in 《Drifting》
Shoot Charge FX
To prevent players from spamming the game’s shoot mechanics, there is a cooldown timer before the protagonist can fully charge up the next round. Releasing the shoot trigger prematurely will reset the cooldown timer and put players at a huge disadvantage during intense combat.
To prevent players from accidentally releasing the shoot trigger before it is fully charged up, I’ve added a UI cooldown timer, audio cues, and visual effects to notify players when they are able to fire the next round - a small yet crucial piece of information - that is important to maintain players’ momentum.
I hope you enjoy this week’s update, have a relaxing weekend! >.0
《Drifting》 - Logo
Logo
(click the image for higher resolution)
This is the logo I made for the game 《Drifting》.
A silhouette captured during her iconic grappling stun move - one of the acrobatic moves that I think best portrays her physical attractiveness and the determination of her inner spirit.
There might be a few adjustments before I produce a final version for my game, however, I’m quite satisfied with the look and feel it conveys. Hopefully, by looking at this logo, people can feel the same way as I do and more importantly, relate it to the game 《Drifting》.
Have a nice weekend! :3
《Drifting》 - Speedrun Gameplay
Speedrun Gameplay
A few weeks ago, I decided to make a timer countdown for the upcoming TpGS2020 exhibition - a small contest that encourages players to pass the stage within the time restriction and win a small prize.
During the implementation of the timer system, I found out the game becomes much more fun and meaningful (gameplay-wise) with it, so I added a leaderboard system to rank the player’s performance and document the date he/she reaches a new record; I also added a comment section in case the player wanted to describe the strategy he/she uses during a particular speedrun session.
Seeing how the newly added timer and leaderboard system increases a sense of participation among players, I am planning to expand and explore the potential of speedrunning for my game 《Drifting》.
I hope you enjoy watching this speedrun video and I wish you a wonderful weekend! :3
Edit - 2020/01/22
I upload a new speedrun video which IMO is a much smoother and better run, enjoy!
《Drifting》 - Character Ambient Occlusion
Hello everyone!
In this week’s update, I wrote a short article sharing my experience working with UE4 ambient occlusion features.
I hope you enjoy reading it!
Have a pleasant weekend~ :3
Scenery in《Drifting》
Distance Fade Level
https://media.indiedb.com/cache/images/games/1/70/69632/thumb_620x2000/distance_fade_crop.gif
In addition to the level streaming function provided by UE4, I’ve built a (camera-based) distance fade , so that actors beyond a certain distance from players are hidden. I use level streaming volume for resource management; distanced fade for not spoiling later sections of the level before players are able to get there.
The current distance fade system is not complete, however - since I need to use the masked opacity channel to make every actor in the level fade out beyond a distance - the draw call for the game increases dramatically and eats up a lot of rendering time. I’m currently investigating a way to disable actors when its distance is further beyond the scope of distance fade. Hopefully, this can bring back the draw calls down to a reasonable number.
Have a relaxing weekend. :3
Scenery in《Drifting》
Cloud, Thunder and Alien Construction
(please turn on the audio volume to enjoy the most out of this video)
The game 《Drifting》 has undergone a major graphic overhaul this past week.
The sky sphere color palette was adjusted to make landscape stand out from the scene; lightning and heavy cloud were added to give player a sinister vibe and foreshadow the dark future of the protagonist; the alien construction fallen from the sky indicate an invasion is happening and convey a sense of urgency and drives players to move on to stop a tragedy from happening;
These graphical changes were made not only to provide visual aesthetics but more importantly, to pique players’ interest in to know more about the backstory of the game.
I hope you enjoy the video, have a relaxing weekend and stay healthy! =)
I’m keeping an eye on this… Very cool project!!! Can’t wait to see where you go with it…
A glimpse of combat in 《Drifting》
Wall Evasion
https://media.indiedb.com/images/games/1/70/69632/evasion_scale_down_750x363.gif
Since most of the combat takes place in 3-dimensional space, it is crucial for players to have the ability to dodge incoming attacks during wall-run / wall-slide.
The wall evasion moves have two variations depending on players choose to dodge left / right or backward; side dodge produces a horizontal motion which allows players to quickly close the gap between adjacent walls; backward dodge produces an upward motion which makes reaching higher ground much easier.
During evasion, time slows down and players can still perform other moves: hook, grab, throw, shoot, throw kunai…etc. I’ve spent a lot of time to ensure the game logic can allow other animation to blend in with the evasion moves - a tedious and cumbersome work - however, it is satisfying to see the protagonist dodge between walls whilst perform all kinds of acrobatic tricks as if dancing in mid-air.
I hope you enjoy this week’s update, feel free to leave a comment if you are interested in the wall evasion and want to know more about it. I’m always glad to answer your questions or hear your suggestions!
Have a great weekend! :3
A glimpse of combat in 《Drifting》
Wall Slide System Overhaul
(noticed a slight time dilation after firing during wall-slide - a mechanic I’ve added for players to catch his/her breath and plan out his/her next move)
Due to the game design of 《Drifting》, players may find out they’ve spent a considerable amount of time on walls or mid-air than on the ground, the corresponding animations for these traversing methods are what I referred to as a “critical state animation”. If a player spent more than 5 seconds wall-running every now and then, that means he/she should have the ability to perform all attack / dodge / hook / grab / throw abilities during wall-run - the idea is to maximize the degree of freedom in terms of what the player can do whilst traverse.
In the past play-test sessions, I’ve identified 4 critical state animations in my game: floor movement, wall-run, dash, and wall-slide. The integration of the previous 3 critical state animations with supplement animations - although tedious - is not an overly taxing work, connect game logic is all it takes to get the job done.
[ATTACH=JSON]{“alt”:“Wall Slide”,“data-align”:“none”,“data-size”:“full”,“data-tempid”:“temp_184311_1582345694119_17”,“title”:“Wall Slide”}[/ATTACH]
However, the same cannot be said for wall-sliding. Due to the verticality nature of wall-slide, simply connecting game logic from existing supplement animations is not enough, nearly 50% of the supplement animations need to be re-make or adjusted in third-party software to compensate wall-slide hand IK and resolve half-part animation blending issue. As a programmer, I’ve spent quite some time to learn motion mixer in 3ds Max, and manage to re-make most of the supplement animations to a version that blends well with wall-slide animation.
As of now, all of the (currently identified) critical state animations were integrated with supplement animations, although there are still bugs and blending issues that need to be addressed in the future, I feel a sense of joy knowing I’ve done my best to provide a versatile and flexible animation systems for players to explore and enjoy in 《Drifting》.
I hope you enjoy this week’s update, have a wonderful weekend! =)