Announcement

Collapse
No announcement yet.

《drifting: weight of feathers》Third-Person / Action / Shooter (Update: Opening Soundtrack)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #76
    Scenery in《Drifting》

    Distance Fade Level

    distance fade level

    In addition to the level streaming function provided by UE4, I've built a (camera-based) distance fade feature, 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

    Comment


      #77
      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! =)

      Comment


        #78
        I'm keeping an eye on this... Very cool project!!! Can't wait to see where you go with it...

        Comment


          #79
          A glimpse of combat in 《Drifting》

          Wall Evasion

          Wall Evasion


          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 feature and want to know more about it. I'm always glad to answer your questions or hear your suggestions!

          Have a great weekend! :3

          Comment


            #80
            A glimpse of combat in 《Drifting》

            Wall Slide System Overhaul

            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.

            Wall Slide

            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! =)
            Last edited by rit; 02-22-2020, 12:54 AM.

            Comment


              #81
              Characters in《Drifting》

              Brushing Her Hair


              (noticed the shoulder-long hair do not clip through her upper body; also she briefly brushes her hair at 00:17)

              One of the main features that come with Nvidia Hairworks API is the ability to pre-assign collision meshes for each hairpiece in its exporting pipeline. Since the protagonist has an over the shoulder hairstyle it is crucial to have a proper collision between her hair and her upper torso and limbs.

              Brushing Her Hair

              To make sure each hairpiece does not clip through her body while performing extreme acrobatic moves, I've spent some time adding the necessary collisions to her upper body. Additionally, I've also added several small collision spheres on her fingertips, which makes her hair respond to her hand brushing from her forehead through shoulder while in idle state - a small yet delicate feature I've been planning to add for a long time, now I'm just glad that my yearning is fulfilled.

              I hope you enjoy the small clip of her idle animation, wish you have a wonderful weekend! :3

              Comment


                #82
                A glimpse of combat in 《Drifting》

                Tutorial Ghost

                Tutorial Ghost

                Not until I attended the first play-test session last year did I realize, that a steep learning curve to my game might prevent gamer from fully enjoying it. Since then, I spent a considerable amount of time restructure and improve the tutorial section of 《Drifting》 according to a worklist composed, filtered and prioritized from feedbacks I received from each play-test session (see part 1 and part 2 of my previous articles for more detail).

                The tuning process is long and cumbersome, in the past 6 months, I've added UI component specifically for the tutorial; embed extra tutorial logic into my already-over-complex animation and gameplay system; the level streaming method and respawn system also has to cater to the quirky nature of the tutorial section. Adding these specific, one-time features brought a lot of struggle and self-doubt to myself as a programmer, knowing nearly 90% of the work I've done cannot be re-used in some way past the first 15 or 20 minutes of the game.

                Tutorial Ghost

                Making a tutorial ghost is a suggestion I received from a play-testers a few months ago. I've added the suggestion into my working list, nevertheless, I was tired of doing those one-time tasks and decided I could achieve a similar result by using video clips instead. I cut myself some slack and done just that. A week later, I noticed the size of my packaged game gains an extra 400mb because of the amount of tutorial videos referenced in the map. Not only is the sheer size of video clips is an issue, but as I adjust existing animations, lightings and tutorial sections, all the previously made videos need to be re-recorded - the last straw that made me resort to the tutorial ghost method.

                In the past week, I've spent some time to make a new actor class and animation blueprint to mimic the behavior of the player character. The idea is to enable the ghost to perform all the moves the players are able to do within a pre-determined path. Although the tutorial ghost system is still under development, I am pleased to see this newly added feature makes the tutorial section much more lively and interactive.

                I hope you enjoy this week's update, feel free to share your thought and post a comment on this matter, have a wonderful weekend! \(・∀・)/
                Last edited by rit; 03-07-2020, 03:07 AM.

                Comment


                  #83
                  Drifting looks so beautiful! You have done such a great work. There was some talk of there not being a story yet. Is this still the case? My mid is full of questions like «who is this woman?» «why does she do what she does?» «what has happened?» «will something happen?» etc etc.. you surely get the idea. Regardless of the visuals being stunning, I feel I’d need a reason, a motivation, a goal of somekind, to keep playing more and return again and again.
                  Have a happy day!
                  - Markus Lappalainen, Composer & Music Designer

                  www.markuslappalainen.info

                  Comment


                    #84
                    Originally posted by MarkusLappalaine View Post
                    Drifting looks so beautiful! You have done such a great work. There was some talk of there not being a story yet. Is this still the case? My mid is full of questions like «who is this woman?» «why does she do what she does?» «what has happened?» «will something happen?» etc etc.. you surely get the idea. Regardless of the visuals being stunning, I feel I’d need a reason, a motivation, a goal of somekind, to keep playing more and return again and again.

                    Hi @MarkusLappalaine,

                    Thank you for your interest and good words. =)

                    Currently, the game only has a "theme" but does not have a story yet. Although I've done some basic profile for the protagonist, it may take quite some time to develop a full story for the game, since most of my time is occupied by level building and debugging and producing weekly update content - there really isn't much time left after all these tasks.

                    Besides developing the backstory for the characters in the game, one of the difficult challenges I've been struggling with is how to tell a coherent story in a way that wouldn't interfere with the pacing and momentum of the gameplay. I've done some thought experiments on this issue and came up with some possible approaches, besides audio log or audio narration, I'm considering the possibility to tell a story by level design - it is a much more advanced approach and I'm still testing and researching on the feasibility of this method.

                    Hopefully, by the time I came up with a good storytelling method, I'll have a great story to tell!

                    Thank you again for your interest and an extra thank you for posting a reply, even a short comment lends a lone developer a helping hand to urge him to go forward and stay strong.

                    I wish you have a productive weekday! :3

                    Comment


                      #85
                      Originally posted by rit View Post


                      Hi @MarkusLappalaine,

                      Thank you for your interest and good words. =)

                      Currently, the game only has a "theme" but does not have a story yet. Although I've done some basic profile for the protagonist, it may take quite some time to develop a full story for the game, since most of my time is occupied by level building and debugging and producing weekly update content - there really isn't much time left after all these tasks.

                      Besides developing the backstory for the characters in the game, one of the difficult challenges I've been struggling with is how to tell a coherent story in a way that wouldn't interfere with the pacing and momentum of the gameplay. I've done some thought experiments on this issue and came up with some possible approaches, besides audio log or audio narration, I'm considering the possibility to tell a story by level design - it is a much more advanced approach and I'm still testing and researching on the feasibility of this method.

                      Hopefully, by the time I came up with a good storytelling method, I'll have a great story to tell!

                      Thank you again for your interest and an extra thank you for posting a reply, even a short comment lends a lone developer a helping hand to urge him to go forward and stay strong.

                      I wish you have a productive weekday! :3
                      Must be tough doing everything on your own. I know some writers, none native English though, but writers none the less. If you’d like some help there, I could ask around if someone has time and interest in a sci-fi/fantasy story if nothing else, maybe they could help you with asking the right questions. Make noise if that is of interest!
                      Have a happy day!
                      - Markus Lappalainen, Composer & Music Designer

                      www.markuslappalainen.info

                      Comment


                        #86
                        Originally posted by MarkusLappalaine View Post

                        Must be tough doing everything on your own. I know some writers, none native English though, but writers none the less. If you’d like some help there, I could ask around if someone has time and interest in a sci-fi/fantasy story if nothing else, maybe they could help you with asking the right questions. Make noise if that is of interest!
                        Hey @MarkusLappalaine~

                        Thank you for providing the info and advice!

                        I'll see what I can do about the story - if things didn't work out for me, I'll make sure to contact you and call for help! XD

                        Have a great day!

                        Comment


                          #87
                          Scenery in《Drifting》

                          HISM Distance Culling

                          HISM Distance Culling
                          (As the camera moves away from HISM actors, spherical opacity mask kicks in and draw call rises, however, HISM actors that are further away from the camera will be disabled by distance culling and decrease the draw call. The combination of distance fade shader and distance culling allows the game to have a large number of opacity actors in a scene while maintaining a reasonable draw call)

                          In a previous post, I talked about how the distance fade shader causes the draw call for my scene increases dramatically and I need to find a way to disable actors - or more specifically HISM actors - when it's far away from the player camera. (see this video: to learn more about HISM in UE4)

                          HISM Cull Distance
                          (Although both StartCullDistance and EndCullDistance are exposed to the default property of HISM component, setting the value directly in its default tab window will cause the HISM to disappear in editor viewport - disregard of the viewport camera position in the world. That is why I move the distance cull logic to event begin play instead)

                          I've tried cull distance volume, however, after some research and testing I found out it's not applicable to moveable actors (including HISM). I dived into the UE4 source code and discovered there are already variables for HISM distance culling - StartCullDistance and EndCullDistance. The variables did what its name suggested and after some modification for my HISM actor class, I am able to reduce an average of 2 ms to the draw call for my scene which is a pretty huge performance improvement.

                          As I keep developing the project, optimization issue will always be on the top of my worklist. It is a process that requires the developer's constant attention and awareness of the potential performance cost of new features that are about to add to the game.

                          I hope you enjoy this week's update, have a relaxing weekend. (●′∀‵)ノ♡

                          Comment


                            #88
                            A glimpse of combat in 《Drifting》

                            Throw Physic

                            Throw Physic
                            (most of the enemies possess armor/shield to block incoming attacks, once the armor/shield break down, players are able to grab and throw them around)

                            Grab, throw and shoot are the three moves players need to learn early on in order to advance through each level of 《Drifting》. Among the three, throwing is the hardest move to master due to its physical nature - unlike shooting and grabbing which only requires players' aiming accuracy - the throw mechanics take physical collision and velocity into account. The difference between the two is essentially line trace and projectile simulation in UE4's term.

                            Assassin Bone Hierarchy
                            (noticed the root bone is located near the hip of the character. If the root bone is set to (0,0,0) instead, the travel path of the mesh component during projectile simulation will appear to be lower than the desired travel path which makes the throwing appear to be "less accurate" - a lesson I learned the hard way)

                            Projectile simulation for a skeletal mesh instead of a static mesh (ex: bullet or arrow) poses several interesting challenges. One of the obvious challenges is AI behavior, after the projectile travel to its destination, unlike bullet or arrow which could be destroyed or despawn for later use, the skeletal mesh need to stop the physic simulation and resume back to its behavior tree and act accordingly - this transition phase is particularly important in order to maintain a realistic gameplay experience for players; another unexpected challenge is the skeletal mesh bone structure, I use SetWorldLocation to move the mesh component during projectile simulation and found out the component location is bind to the root bone of the mesh, which means the root bone cannot be placed at (0,0,0) but need to place near the hip bone of the character for visual consistency.

                            I hope you enjoy this week's update, have a happy and healthy weekend! :3

                            IndieDB
                            Itch.IO

                            Comment


                              #89
                              Scenery in《Drifting》

                              Nearing the End of the Arsenal Level


                              A few months ago, I made a post to introduce the design and backstory of the "arsenal" level of my game. The process of building the arsenal level has a bit of twist and turns - as I kept working on the level, newly added tasks with higher priority (ex: bug fixes, performance optimization) kept appearing and stacking on top of each other slowing down the level building process considerably. After several weeks of work, I'm gradually approaching the end of building the arsenal level.

                              Tall Building
                              (the hight of this building is around 13,700 unreal units, making it one of the tallest buildings in the world of 《Drifting》 so far)

                              One major gameplay element of the arsenal level is to challenge players to perform several precise throws consecutively. In order to raise the stake of a failed throw higher, almost 80% of the arsenal areas are sunk below the ocean plane, meaning a failed throw (thrown object fall under ocean plane) results in players starting over again; a miss-step from players (due to overreaching the hook distance and fall under the ocean) also results in instant death. As players progress through the level, the challenge becomes harder and harder, yet, after players completing the level, I hope they would found out the throw mechanics in the game has far more potential than meets the eye.

                              Thank you for reading this short post, feel free to comment and share your thought on this subject. Be vigilant and stay healthy! =)

                              IndieDB
                              Itch.IO
                              Last edited by rit; 04-03-2020, 10:48 PM.

                              Comment


                                #90
                                Scenery in《Drifting》

                                Itch.IO - Moving Tripwire
                                IndieDB - Moving Tripwire

                                Moving Tripwire

                                moving tripwire
                                (depending on the actor's property setting, tripwire can be moved either by players actively triggering it or automatically moving by itself)


                                Besides narrative purpose, part of the reasons I've decided to make the game world covered with a large ocean plane is to rationalize the usage of grappling hook and wall running. Although the game is designed around these two mechanics from the very beginning, I wanted players to feel these mechanics are there not just for convenience but essential tools for their traversing ability - an instant death ocean plane greatly facilitate that purpose.

                                Unfortunately, the same trick cannot apply to levels that are too high for the ocean plane to pose an immediate threat to players. To solve this problem, I've created a moving tripwire actor to fulfill the same role as the ocean plane at high altitude levels. Compare to the instant death ocean plane, the moving tripwire is not as lethal - only deals damage if players or NPCs touched its wire, however, the moving direction of the tripwire could be either horizontal or vertical or something in between, which created a more challenging task for players to get around with it.

                                I wish you enjoy this week's update, have a great weekend and stay healthy! =)
                                Last edited by rit; 04-25-2020, 12:09 AM.

                                Comment

                                Working...
                                X