Announcement

Collapse
No announcement yet.

《Drifting: Weight of Feathers》Third-Person / Action / Shooter (Update: Localization)

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

  • replied
    Last updated: 2020/11/21


    《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - Localization
    IndieDB - Localization

    Localization

    I haven't had a proper (relaxing) weekend for almost a month! I've attended 2 events and met the person in charge of a localization studio, lots of online discussion and demo building (for QA purpose) occupied nearly half of my regular schedule. I'm starting to feel more than just a game developer - someone who is in charge of a tiny business - and I never thought it has this much preparation work to do for just one product! XD

    multi-language support

    Though I've begun developing the game with multi-language support in mind, I didn't expect the length difference of each language could break my UI layout. Here is a sample excerpt from my text table, each expressing the same meaning in a different language:

    English - to hook onto walls
    Chinese - 勾住牆面
    Russian - для зацепа крюком за вертикальные препятствия
    Japan - で壁に引っ掛ける
    French - pour s'accrocher aux murs
    German - um dich an Wänden einzuhaken

    Depending on the language used, the length difference could amount to 1.5 ~ 2 times longer than the default (English) length.

    Granted, I've saved extra space for each text box in case the length of the text becomes a problem under a multi-language environment - the reserved space is simply not enough for this amount of difference. I discussed this issue with the localization studio and they are kind enough to propose a revision of the translated language. After a brief moment of contemplation, I decided to refactor my tutorial system instead, the reasoning is that I expected the game to support more than 6 languages upon release, it is probably difficult, yet, the correct way to make the UI adapt to the language and not the other way around.

    I spent another 2 days refactoring the UI component of the tutorial system, testing out each language by playing through the demo 5 times, build the localized version of my game, and sent out to the studio for more QA testing.

    It is truly a busy month for me, yet, there's still a long way ahead before the game is qualified to get a public release. I wish we, as game developers, all have the strength and will power to endure the challenge in front of us and go through that bittersweet path.

    Hope you enjoy this week's update, feel free to share your localization experience, it will be interesting to know how other devs deal with the language difference!

    Have a relaxing weekend peko! (;´▽`)y-~~

    Leave a comment:


  • replied
    Scenery in 《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - Building A Dam
    IndieDB - Building A Dam

    Building A Dam

    Towards the end of the game, I deliberately make the level higher and higher giving players the feeling that they are steadily ascending from the bottom and something big is waiting for them at the top.

    While the altitude change delivers that notion, it also comes with its own problem: It becomes difficult to separate each section of the level without placing floors between them. Floors serve as a comfort zone for players in the game, it is perfectly fine to have them in the first few levels, however, placing them in the final level goes against the high stake situation I was aiming for.

    Building A Dam
    (click the image for higher resolution)

    To solve the issue, I decided to build an enormous dam which is 30,000 ~ 40,000uu high. The dam is filled with water that instantly kills players if they fall into it, by doing so, each section is hidden (separated) from each other, and without the safety net of floors, players will always be extra cautious regarding their every move.

    I hope you enjoy this week's update, feel free to share your thoughts!

    Wish we all have a relaxing weekend peko~(・∀・)゚

    Leave a comment:


  • replied
    《Drifting : Weight of Feathers》- DCD School Games Brawl Event



    Steam - Steam Page
    Itch.IO - DCD School Games Brawl Event
    IndieDB - DCD School Games Brawl Event


    (I recorded footage of one of the playtesters trying out my game for the first time! The video was shot with my crappy phone and scale up the resolution to hide the background. I apologize for hurting your eyes with this low-quality video)


    Konpeko!

    I wrote an article about the interesting findings and observation I've gathered during the DCD School Games Brawl Event, I hope you enjoy reading it!!

    Have a relaxing weekend peko! :3
    Last edited by rit; 11-09-2020, 04:44 AM.

    Leave a comment:


  • replied
    Monthly Test-Play Session 2020-10-31

    《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - Monthly Test-Play Session 2020-10-31
    IndieDB - Monthly Test-Play Session 2020-10-31


    Konpeko!

    In this week's update, I'd like to share some of the results I've gathered throughout the play-test session held yesterday (2020/10/30), please take a back seat (and a cup of coffee?) and enjoy my latest findings!

    There are 3 major additions in the latest build of the tutorial level - a hollowed platform, a long corridor with a visual directional hint, a new feature that forces the player to perform the required action before progressing to the next section. Each of these new additions has been thoroughly tested yesterday and reveal some interesting observation on human behavior.


    latest addition to the tutorial level




    I've added a hollowed platform right after teaching players how to wall dash, the idea is to encourage players to utilize their newly learned skill and experience how it could make traversing on walls a lot more enjoyable and convenient. I deliberately made the gap between platforms deep enough and hope that players will intentionally want to avoid it - the resulting outcome is 50 - 50: some people make the effort to dash between platforms in order to proceed faster; some simply took the longer route and go through the bottom of the platform and up again, they seem to acknowledge the fact that they are doing it "wrong" but it did not bother them (maybe the penalty is not large enough? or the distance between gaps is too short for them to respond with the proper move?) so much to the point that they want to actively avoid it.

    The directional hint I've added last week is probably the greatest achievement I made so far - people actually (finally!) learn how to throw sideward instead of throwing forward all the time! I've made a long corridor with a sphere spawned in the middle, two statues placed on either side of the wall - I was aiming for a visual setup where players will want to subconsciously throw the sphere without aiming their target. By carefully predicting the player's viewpoint, I place the two statues so that players could barely see their target, this in turns, causing the angle between forward throw and sphere traveling direction become so wide (near orthogonal) that throwing sideward (with a near parallel angle) seems to be the logical way of throwing it. To my surprise, this simple setup achieves a 100% success rate yesterday, all of the playtesters successfully perform one left throw and one right throw without my verbal assistance!

    There is one issue that kept bothering me since day 1 of the test-play session - no one ever bothered to read the short (no more than 7 words) hint shown in the middle of the screen. An apparent side effect of this issue is that people tend to use the moves they've already learned before trying new moves, no matter what the hint told them to do. I've attempted to turn the text hint into a gameplay hint by only allowing the player to proceed if they perform the requested move - no other moves could pass the lesson except the one they are asked to perform. To my surprise, for some incomprehensible reason, despite the game paused and explicitly told them to do a specific move, despite they've tried their old move and failed, again and again, they kept trying until I told them to look at the hint and try to do what the hint told them to do. This new feature I've added is an utter failure, it has absolutely no effect on altering players' behavior, I guess it's time for me to look for another alternative to solve this bothersome issue. =(

    Just like developing a game, there are always ups and downs in playtesting, sometimes the new feature works; sometimes it doesn't. In retrospect, if I regard the whole process of me building the tutorial level for the first time in a meta sense, I am also "playing" a tutorial level - the goal of that tutorial level is to build a tutorial level that works for people who play my game for the first time - and clearly, I've been continually failing and failing for more than 6 months. Thinking back, I really shouldn't complain too much about people who are generous enough to help playtest my game. XD

    That's all for this week!

    Thank you for reading my weekly article, wish we all have a great and relaxing weekend! ヽ(゚∀゚)ノ
    Last edited by rit; 10-31-2020, 12:46 AM.

    Leave a comment:


  • replied
    A glimpse of combat in 《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - Floating Statue
    IndieDB - Floating Statue

    Floating Statue

    KonPeko!

    In today's update content, I like to talk about the floating statue mechanic - a concept I've been planning and thought experimenting on for quite some time.

    The ultimate goal in each level in 《Drifting : Weight of Feathers》 is to throw spheres onto each statue to unlock the passageway to the next level - a simple concept, yet, depending on the layout of each level, it could get a little tricky. Up until now, only the sphere is moveable in the level, the process of solving each puzzle usually ends when the player finds a way to make the sphere spawns at the "right spot", since, the statue is unmoveable, throwing the sphere onto the statue pose no real challenge to players.

    Floating Statue


    The situation becomes a lot more interesting when both sides of the equation are volatile. The floating statue serves the purpose of providing an additional challenge after players solve the "sphere spawning quest" in that throwing the sphere onto the statue is not as simple as throwing toward a static object, the angle and timing and sometimes even obstacles - all of this need to be considered before players make the throw.

    Initially, I was worried my throw system will be too clumsy to handle this delicate game design (ex: the throw might miss the moving statue even though players aim correctly), however, after some calibration and additional type check, this concept seems to play out just as interesting as I thought! I'm currently designing a series of floating statue challenges, and I hope people could feel a sense of accomplishment after overcoming these interesting and fun challenges!

    I hope you enjoy this week's update, have a wonderful weekend peko~(゚▽゚*)♪

    Leave a comment:


  • replied
    Scenery in 《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - See The Sun Again
    IndieDB - See The Sun Again

    See The Sun Again

    Hello everyone!

    After a whole month of concept testing and building, I finally completed the beta version of the cave level! I know I've already said it one too many times, however, this whole cave section REALLY took a lot more time than I've expected!

    Compare to previous levels, the reservoir mechanic introduced in this section created a particularly challenging task for me; since the entrance of each sub-section is controlled by the water surface level and each (volume of) water surface could either go up or down, the logical connection between each sub-section become increasingly difficult to figure out as more and more water volumes were introduced in the section. Toward the mid of my development, I needed to tone down the logical complexity by lumping several water volumes into the same movement group, sacrifice the diversity of the level for a more robust design.

    See The Sun Again



    After completing the (beta version) of the cave section, I figured players who completed the section should get a proper reward for their effort, hence, I made a "grand exit" scene whereas players trigger the last sphere, a whale will be summoned to break the blocked passageway, allowing players to bath under the sunlight and witness the beautiful ocean vista - after a dark and difficult 20 minutes journey.

    I hope you enjoy this week's update content, have a nice weekend~peko! ヽ(≧∀≦)ノ

    Leave a comment:


  • replied
    Last updated: 2020/10/03

    《Drifting : Weight of Feathers》 - TpGS 2021 Game Trailer

    Steam - Steam Page
    Itch.IO - Game Trailer Ver.2
    IndieDB - Game Trailer Ver.2

    Game Trailer Ver.2

    This is the re-edited version of the original game trailer I posted 3 months ago.


    (Music - Alone by Antracto)


    I cut out the first gameplay scene and replaced it with a scene where I demonstrated how the player obtains energy sphere from killing enemies and throw the sphere onto statues to complete the level; the transition from the last gameplay scene to the game's logo was also edited to make the fade-in effect more prominent (and perhaps visually more appealing?) to the audience; the logo image was also re-edited to show the name of the game, since, (from my experience in monthly play-test sessions) the last beat before the music ends really got people's attention, showcasing the name of the game while people's attention was caught by the beat seems to be a great idea!

    Part of the reasons that urged me to re-edit my game trailer is a youtube video I've stumbled upon a few weeks ago; Watching game trailers from other developers and listening to comments from a professional video editor really opened my eyes and gave me some great ideas on how I could improve my work and make it meaningful - communicate with the target audience in a more efficient way.

    I hope you enjoy this week's update, have a relaxing weekend! ε-(´∀`; )
    Last edited by rit; 10-16-2020, 08:52 AM.

    Leave a comment:


  • replied
    《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - Packaged Build Calibration
    IndieDB - Packaged Build Calibration

    Packaged Build Calibration

    Hello everyone!

    TpGS 2021 is coming soon and I was busy building and testing my game lately. While I was testing out my packaged build I found out several gameplay and visual discrepancies between shipping and PIE. As a UE developer, I noticed this issue usually arises due to framerate difference - PIE capped at 120fps and packaged build 60fps - this issue could usually be solved by incorporating delta time into the calculation. However, there are instances where the solution is not as simple as incorporating delta time.

    Main Menu




    While physic simulations in UE4 already incorporate delta time into the calculation (ex: AddForceAtLocation()), physics that is not officially supported by UE4 does not have that feature (ex: Nvidia Hairworks). While I was calibrating hair mass, the same weight value always seems to be "heavier" in PIE and "lighter" in packaged build, without an update function to incorporate delta time in blueprint (the update function for hair simulation is not exposed to blueprint, granted, I could track down the simulation update function in C++ and incorporate delta time there, however, that will be too much work for me), the easiest way for me to solve this problem, is to have two sets of parameters, one for PIE and one for packaged build.

    Besides the aforementioned delta time discrepancies, I found out other minor bugs that I've overlooked over the past few months, hopefully, I could produce a less buggy shipping version of my game next week and catch up on the deadline of TpGS 2021!

    Wish we all have a great weekend! ⊂(・∀・と
    Last edited by rit; 10-03-2020, 05:24 AM.

    Leave a comment:


  • replied
    《Drifting : Weight of Feathers》

    Steam - Steam Page
    Itch.IO - Monthly Play-Test Session 2020-09-25
    IndieDB - Monthly Play-Test Session 2020-09-25

    Monthly Play-Test Session 2020-09-25

    Hello Everyone!

    Since yesterday is the last Friday of September, I attended the monthly play-test session as usual and would like to share the latest feedback I received from other indie-developers.

    I've written a post not long ago about how I change the tutorial UI to make it stand out from the screen; make the game pause before every tutorial section; the idea is to ensure players will at least take a quick glance of the moves they need to learn before proceeding further. From the first-hand experience I gathered that night, this idea didn't work out as effectively as I thought due to my own mistake.

    Among the 6 play-testers, only 1 or 2 players have a habit of clicking off the tutorial menu immediately after it pops up, granted, I've made a 1.25 second delay before players can click it off, I doubt they took that short period to read the text since they exemplify a tendency to blaze through the tutorial level in their own way without external help. This behavior actually isn't an issue for my tutorial level, watching these 2 players play through the later sections seems to suggest that, players who wanted to play the game in their own way exhibit a certain resilience in their play style - they don't stick to one familiar move set and abuse it; more often then not, I watch them mix and match the moves they found out by themselves and "accidentally" get a right combination to solve the puzzle (albeit, not the intended way) and proceed further.

    The real issue here is the ones who really took their time to read the description and trying to do what they were told to do. For these people, the gaming experience was mixed. The overly menacing tutorial UI presentation (full-screen width UI with the game pausing) seems to give them the impression that it is the "only way" to pass the level; if they successfully perform the required move, they get pass each section of the level fairly quickly (even smoothly in some occasions, which is a rare sight for me); on the other hand, if they died once in the tutorial level, since the tutorial trigger will not spawn again (the reason is I don't want the game to pause the second time players trigger it) there are no longer hints on the screen, suddenly, they just don't know what to do and kept running around helplessly - not even trying to mix and match what they've learned previously.

    Main Menu





    Developing tutorial level is like taking care of a child, it is easy to push my approach to either side of the extreme: gave them the necessary supplies and let them figure out all by themselves or be overly protective and holding their hands 24 hours. In the latter case, I could argue that if I made the tutorial hints spawn every time players trigger it, then it "solve" the issue of players lost their guidance and don't know what to do, however, I couldn't help but think further: what will happen if these players get to play the real level? are they capable of solving the puzzle by themselves? are they capable of utilizing the moves they've learned appropriately?

    Frankly, I was a bit disappointed (of my tutorial level) after attending the session, it seems after 6 months of iteration, I was running around in a circle and now I'm back to the start - maybe it is not a bad idea to push the tutorial hints to the side of the screen and let players experiment the moves on their own?

    Feel free to share your thoughts on this matter and wish we all have a relaxing weekend. (>﹏<)

    Leave a comment:


  • replied
    《Drifting : Weight of Feathers》


    Steam - Steam Store Page
    Itch.IO - Non-Axis-Aligned Box
    IndieDB - Non-Axis-Aligned Box

    Non-Axis-Aligned Box

    I encountered a seemingly simple mathematic problem yesterday, and trying to figure out an appropriate solution for an entire morning:

    Check whether a point is inside a non-axis-aligned box



    Calling UPrimitiveComponent::IsOverlappingActor() was my first attempt, however, after some thought experiments I abandon the idea for 2 reasons: first, the point is not represented as an actor (creating a collidable dummy actor will increase calculation overhead and further complicate my colliding channel); second, it will be much better performance-wise to avoid using per tick collision event if I could figure out a way to use mathematic to solve the problem.

    Calling UKismetMathLibrary::IsPointInBox() was also a failed attempt since the box is non-axis-aligned, the function assumed the box is perfectly aligned with the world coordination (simply comparing the max/min x,y,z values will return incorrect results if the box is rotated). Another version of the function - UKismetMathLibrary::IsPointInBoxWithTransform() seems to do what I wanted - calling the IsPointInBox() after transforming the point from world coordinate system to component coordinate system - however, for some unknown reason (perhaps incorrect value for the input component transform?), the function still gave me the incorrect result after calling it.

    Non-Axis-Aligned Box
    (if you go through the four sides of the box clockwise, check the point is at the right of each side; Instead, if you go through the four sides counter-clockwise, check the point is at the left of each side)




    I googled and found various ways to solve the problem on StackOverflow - alas, due to my poor math grade in high school, I cannot comprehend the logic behind all these clean and clever solutions! I was hesitant to add these methods to my project before gaining an understanding of how it works. After some more failed attempts to try and understand the online solutions, one of the solution gave me an idea of how to (partially) solve the problem:

    Check the point is at the right of each side of the box in 2D, then compare the max/min z value


    The obvious downside of this method is it only works if the box is rotated in the z-axis, a rotation in x, y axis will give incorrect results - not a general solution to the problem but good enough for the particular problem I encountered in my project. I proceed to implement the method into my code and it works like a charm, then I happily close my project and went out and grab something to eat for lunch. XD

    I hope you enjoy this week's update, feel free to provide an even easier solution for people that are not good at math (such as me) to give them a better time to develop their games!

    Have a relaxing weekend! d(゚∀゚*)

    Leave a comment:


  • replied
    Originally posted by krisgoku2_Dev View Post
    If this is in C++ I'd like to help you.

    Thank you for your interest and willingness to offer your skills to support the project! =)

    I'm afraid the project is nearing the end of its development cycle, most of the critical mechanism has already been implemented, there really isn't much programmer work left.

    《Drifting : Weight of Feathers》 was developed using a hybrid of blueprint and C++, all the mechanisms were first implemented with blueprint then gradually ported

    (by re-writing the functions that are called every tick) to C++.

    Please feel free to visit this thread anytime and share your thoughts on the weekly update content, I enjoy getting to know other UE4 developers and make friendly chat! (゚∀゚人) 

    Have a productive weekday!

    Leave a comment:


  • replied
    If this is in C++ I'd like to help you.

    Leave a comment:


  • replied
    Originally posted by rit View Post
    Years ago while I was attending a game programming class, I remember a tutor told us repeatedly and bluntly not to compromise our own vision: if we encounter a bug in our game try to fix it instead of getting around with it (if a piece of code isn't working, try to understand why that piece of code isn't working instead of switching to another method). The tutor is a prominent figure in the game industry, hence, his words have a big impact in my early years of game development - that's probably one of the reasons why I cannot help but feel ashamed of myself when I adopt this kind of "illegal" practice. XD

    Have I not met the tutor in the early years of my career, I'll probably adopt a different view on this subject, however, after becoming an indie developer for quite some time, I think compromising on aspects that are not essential to the core gameplay could really make development (and my life) a lot easier without sacrificing too much of my original vision of the game.

    Thank you again for sharing your thoughts, I wish you all the best with your project and have a nice weekend! ヾ(^▽^ヾ)
    I would agree with not compromising your vision. However, you did not compromise your vision, you enhance it with a unforeseen game mechanic. You didn't switch the method, you used the problem, turning a negative into a positive, which was the correct solution to that problem. Instead of feeling shame, feel proud.

    If its really eating you up on the inside, remove it and implement what you had envisioned no matter how much time it takes. No one else knows what that really is, except you. Thus, no-one else will care. At the end of the day, You are not making the game just for you to please yourself, its your Players you aim to please and they'll appreciate the mechanic, because you provided it.

    Leave a comment:


  • replied
    Originally posted by TechLord View Post

    Hi rit

    I personally don't think turning a bug into a mechanic is a bad thing. In fact, it just proves your determination to innovate and solve problems creatively. I'm trying to figure out how to turn network & rendering lag into a fun game mechanic. LOL. Keep up the awesome work.

    Hello TechLord,

    Thank you for sharing your thoughts. =)

    I've watched a lot of GDC talks and some of them reveal some very creative ways to solve problems (ex: instead of creating a wall run mechanics for AI, the developer of Warframe record player movement data to allow their AI to perform wall run), the final results are pretty amazing in that I couldn't tell whether or not it is a feature added intentionally; I agree that innovation and creativity could be utilized not only in game-design but also in solving game development issues - some times there are indeed fast and easier ways to solve a problem.

    Years ago while I was attending a game programming class, I remember a tutor told us repeatedly and bluntly not to compromise our own vision: if we encounter a bug in our game try to fix it instead of getting around with it (if a piece of code isn't working, try to understand why that piece of code isn't working instead of switching to another method). The tutor is a prominent figure in the game industry, hence, his words have a big impact in my early years of game development - that's probably one of the reasons why I cannot help but feel ashamed of myself when I adopt this kind of "illegal" practice. XD

    Have I not met the tutor in the early years of my career, I'll probably adopt a different view on this subject, however, after becoming an indie developer for quite some time, I think compromising on aspects that are not essential to the core gameplay could really make development (and my life) a lot easier without sacrificing too much of my original vision of the game.

    Thank you again for sharing your thoughts, I wish you all the best with your project and have a nice weekend! ヾ(^▽^ヾ)

    Leave a comment:


  • replied
    Originally posted by rit View Post
    A glimpse of combat in 《Drifting : Weight of Feathers》

    Instead of fixing the issue, I added additional condition checks to make sure players are indeed dashing on water, and proceed to add additional effects and audio cue to give players proper feedback while performing this technique.

    Turning a bug into a playable feature is a practice I seldomly use in game development; more often then not, this practice encourages developers to compromise their initial vision (and avoid the effort of bug fixing) then create quality, spontaneous game designs. For this particular feature, I think it actually provides an experience that aligns pretty well with the core gameplay of 《Drifting : Weight of Feathers》, hence, I think I could make an exception for once.

    Feel free to share your thoughts on this issue and please do not hesitate to post your comment if you have a different perspective then mine on this matter. =)

    Have a great weekend! ヾ(・∀・)ノ
    Hi rit

    I personally don't think turning a bug into a mechanic is a bad thing. In fact, it just proves your determination to innovate and solve problems creatively. I'm trying to figure out how to turn network & rendering lag into a fun game mechanic. LOL. Keep up the awesome work.
    Last edited by TechLord; 09-12-2020, 10:58 PM.

    Leave a comment:

Working...
X