1. Hello!

    First of all, welcome to MapleLegends! You are currently viewing the forums as a guest, so you can only view the first post of every topic. We highly recommend registering so you can be part of our community.

    By registering to our forums you can introduce yourself and make your first friends, talk in the shoutbox, contribute, and much more!

    This process only takes a few minutes and you can always decide to lurk even after!

    - MapleLegends Administration-
  2. Experiencing disconnecting after inserting your login info? Make sure you are on the latest MapleLegends version. The current latest version is found by clicking here.
    Dismiss Notice

Information Tales of MapleLegends 2

Discussion in 'MapleLegends Announcements' started by Pasta, Nov 8, 2023.

  1. Pasta
    Offline

    Pasta Game Developer Staff Member Game Developer

    264
    255
    251
    Jul 18, 2017
    Male
    Pastaland
    8:28 AM
    Moderator Post
    Why not making this a series.

    A second chapter of our little tales, to celebrate the release (finally) of the Challenge system! And to give a bit more insight on our behind-the-scenes, which is always fun to do.


    The state of MapleLegends updates: part two

    Almost half a year ago we discussed slow updates, reasons for that, and upcoming patch-related plans.
    We then proceeded to release a Summer event merged with what was supposed to be the non-event content patch after it. Does this mean that we failed our initial plan? Actually, no: we successfully avoided merging events like we used to do when we ran out of time. Sure, we still merged two patches (and summer happened in September, but let's ignore that, shall we...), but we were not forced to combine two seasons into one, like in the past.
    And in fact, Halloween event landed almost in time, for a change. Will Christmas follow suit? Stay tuned to find out!


    The Challenge system: act two

    No, that title doesn't mean that the challenges are gonna change once more. The current live release is the format that they will be following from now on.

    What I wanna talk about is the reason why Summer patch was delayed for so long.
    In the previous Tales post, I mentioned that "the code-related mechanisms proved to be working well as intended"; while technically true, little did I know that we would soon have decided to switch from a simple set of challenge tasks (remember the good times of "defeat 10.000 monsters in Deep Ludibrium"?), to a storyline.

    Why this change, you may ask? Because we wanted this system to be the thing that would accompany players throughout their game adventure. We wanted to give it a bigger meaning than just "do these things and you're rewarded with HP". And, it was a good way to finally introduce something truly custom and new. And hopefully entertaining.
    Did we hit the mark? Well, it's still too early to tell. We only released two of the tiers, so far.

    Now, moving from a system that expects to keep track of a static set of "current / goal" objects, to one that includes quest (or questline) tracking, required quite some rework. Add to that the fact that we changed the way optional challenges work - from forcing the player to progress through all previous tiers of a single optional, before being able to accept the latest one, to allowing the player to pick any optionals they prefer, and just requiring three of the current tier to advance - and you end up needing to recode the whole thing from scratch.

    But, how does a "challenge" work? How do we keep track of progress and updates?
    Whenever you perform any action that could potentially be involved in a challenge, the server has to verify whether an update is needed. Did you hit a monster? Maybe we need to update the counter for the Class challenge of tier 1! Did you change map? Who knows, maybe you found a rare location for the Travel challenge!

    There is a lot of possibilities, and the code must always make sure that they are all checked. Because of this, it's important that the checks are as optimized as possible.
    The checks run from the fastest and most simple ("is the currently-checked challenge already completed?"), to more specific ("is the skill/map/whatnot that triggered this check actually one of the challenge requirements?"), to checks unique for each type ("was this map already discovered?"), before deciding whether values need to be updated.
    And if this update completed the current challenge, a flag is set to signal that for the next update check, the main tier quest is updated if needed (aka, if this is one of the first three optionals being completed - class quest and main questline update the tier quest in a different way, through their scripts. Although the class quest is a bit of a hybrid, in the sense that it is both a quest, but also a challenge with data tracked via this system), and the cute little mushroom on a book pops up over your head.

    Optimization doesn't only refer to the operations that happen at runtime. All of this data needs to also be stored in our database; it's important to keep it as compact and simple as possible.
    I love playing with bit manipulation. Whatever I can turn into a set of bits, especially if just 0/1 flags, I will; this helps a lot in condensing data. Good practice? Bad practice? I don't know, but for me, it sure comes in handy.
    For example, this system is used to track the optional challenges that have been completed, available, or neither.

    [​IMG]

    Say you're on challenges tier 2: Rosa just gave you a new set of optional challenges. She also just taught you that you can switch between your available optional challenges of each type, by selecting the relative option in her dialog.
    What is the best way to handle this? Do we store every ID of every completed challenge? Sure, this wouldn't be that much overboard for two tiers, but, how much space will we need once we have 9 tiers out? Doesn't sound practical.
    Instead, the database holds one single integer number per challenge type, to track that. An integer holds 32 bits that can be 0/1: way more than enough space, to know the state of every challenge. If the bit at position [tier] of the [challenge type] number is 0, then this challenge is not completed; if it's 1, then it's completed. This way, by checking the first 9 bits, and, with the same logic, the first 9 bits after the 16th, for availability (yes, we could calculate that based on your current tier; but since we're already checking that same number anyways...), we already know the state of every tier, and can present the list of challenges you can switch between.

    The same concept is applied to maps exploration! A number keeps track of the explored maps, starting from value 1023 (0x1111111111, meaning that all maps are still available. This to keep it similar to how all other challenges count down, instead of up). Each map is assigned one of those bits; when you find, let's say, the fourth map, the number becomes 1015 (0x1111110111). This ensures that not only the challenge completes once the number reaches zero, but also that each map counts only once, towards completion. When you visit a map that was already discovered (marked as 0 in that number), it won't count again.

    We didn't want to delay the Challenges release more than necessary, at this point. But releasing this reimagined system did not "only" need us to recode it all; we also needed to come up with a storyline.
    That included planning the story, writing the dialogs, drawing the new assets, and writing the code behind them.
    I already talked about potentially releasing Summer event without the system yet, so I won't get into that again, but I'll say one thing; Summer event (and now Halloween event) started way more smoothly than we anticipated. Had we delayed the Challenge system revamp until after Summer, and had the summer patch caused problems big enough to need me to focus again on that code, it would have put the challenge releases more at risk. I preferred taking the safe route.


    Moving forward!

    I waited to write this thread until after someone discovered our work-in-progress addition. Ephenia is the reason why the latest client update included a first version of the Teleport monster skill; it still needs work, but the basis is there. A custom basis, it won't work exactly as it does in the regular game, but it should still appear in the same way. Ephenia has more skills that need to be worked on, so she and Chao will not come out in the next patch (which, by the way, may be sooner than you think), but our aim for them is to be additions to late third job gameplay. Obviously not the only content we're going to add for those levels, but if anything, a good start.

    I won't reveal much about what's to come next; but, a few things that I can say:
    • We're staying true to our goal of mixing PQ reworks with Challenge releases. I'm saying this based on what we're currently finishing working on internally.
    • We're also still aiming at two Challenge tiers released at a time. And on this, I'd like to add a note - our plan for new tier releases is to push them out in a fully-working, but reward-less, state. This way, if they will present bugs, or will fall short of our expectations in difficulty, we can wipe the progress and re-release them during the patch after; but, if they'll be properly working, we can simply activate the rewards during the next patch, without forcing people to redo the questlines.
      This should greatly speed the release, as we won't need a patch solely for testing beta versions.
    This next patch will also bring a few interesting changes, that some people may say were long overdue. No more spoilers sorry, I'll leave that for our cryptic discord teasers channel.


    Funny things behind the scenes

    By nobody's request, I'm bringing up a brand new set of little things that players normally don't see; beta tests, curiosities, and some fun anecdotes!
    • Designing the Challenge questlines has been quite the long task. I have horrifiedelighted the eyes of my fellow Staff members with a multitude of beta designs for the new content, before updating it towards the end of our testing phase.
      Here's some examples (left = beta design, right = release design):

      [​IMG] [​IMG]
      The coins in the swamp used to look like chocolate money. Half-melted.

      [​IMG] [​IMG]
      The mushrooms near Ellinia looked poisonous to the eyes. I promise you don't want to see how they looked in the map.

      [​IMG] [​IMG]
      The potion transformation was much more purple! But then, it would have been tough to sell the idea that Dances with Balrog couldn't see you.

      [​IMG] [​IMG]
      Arel looked totally indifferent to your shenanigans. So much for "tripping on some rocks" and being "full of sorrow".
      Extra fact - Arel's first design is now used when you start the chase! Although only the eyes can be seen, thankfully.


      [​IMG] [​IMG]
      Frost Pearls were so cold that even the shiny reflections froze up.
    • [​IMG]

      While I didn't make a full drawing like I did for Rosa, Arel too had a design sketch, before the pixel sprite was made! This one was much simpler, since the outfit is a plain cloth (at least in the masked version), and I came up with the colors directly while preparing the sprite.
    • [​IMG]

      Originally, Carta's soul-catching quest was timed, with a little custom Carta timer sprite to go with. This was later replaced with Albatross' stress system, as a way to put the adorable bird more in the spotlight.
    • [​IMG]

      The new portal for the Fairy Forest went through a few questionable iterations, before finally landing on an ok design.

      [​IMG]
      The minimap representation of it is our addition as well, it wasn't part of the original version.
    • [​IMG]

      The 8-bit Cake boss had a second fully-sprited attack animation that didn't make it in the final release.
      One could say that's not a bad thing.
    • [​IMG]

      This is much older of a thing, but I noticed I forgot to add it, last time.
      Not everyone might be aware that, if you search for something like "Mysterious Coin" with an Owl of Minerva, you're given the option to search for all coins/pouches that are currently in the Free Market. (Back when that option was added, Prestigious Coins were still tradeable)

      As you can see, implementing such a custom feature did not necessarily go smoothly on the first try...
    • [​IMG]

      ...Same for the implementation of everyone's beloved Legendary Spirit custom window.
    • [​IMG]

      Someone recently pointed out the weird shadow behind the Prestigious Coin shop; it's true that it looks odd.
      But in reality, there is a work-in-progress custom sprite since last year, that I've been meaning to finish, to replace the strange box.
    It's already quite late in the year; but the list of changes that we've been planning for this last couple of months is anything but short.
    While players always see the end result of our work, the whole time spent planning and preparing features is our little journey as staff too! We talk opinions, we discuss implementations, we laugh at whatever messes we find, some of which you're reading about in these threads.

    And we hope you appreciate our ongoing efforts. Thank you!
    The MapleLegends Staff
     
    • Great Work Great Work x 40
    • Friendly Friendly x 3
    • Informative Informative x 1
  2. TKDumont
    Offline

    TKDumont Orange Mushroom

    30
    5
    48
    Mar 19, 2022
    Male
    Canada
    2:28 AM
    TKDumont
    Hermit
    Chroma
    Love the work and Love the Team <3
     
  3. PreistestSky
    Offline

    PreistestSky Orange Mushroom

    33
    23
    38
    Jun 10, 2020
    11:28 PM
    Preistest
    Bishop
    123
    Birb.PNG
    dont worry i have already had my guild turn this into a discord emote the first moment i saw him. safe to say he is getting all the love and attention he needs.
     
    • Friendly Friendly x 9
  4. iPippy
    Online

    iPippy Nightshadow

    663
    344
    345
    May 19, 2019
    Male
    2:28 AM
    iPippy
    Finally, a purpose for Subani Ankh.
     
    • Great Work Great Work x 3
    • Agree Agree x 1
    • Friendly Friendly x 1
    • Creative Creative x 1
  5. Miney
    Offline

    Miney Slime

    19
    7
    35
    Jun 2, 2021
    4:28 PM
    Miney
    Corsair
    Excited for what's to come, good read!

    Honestly would have never guessed that a lot of these are custom made (Ephinia map, Arel design). They blend in well.
     
  6. Mirrors
    Offline

    Mirrors Zakum Retired Staff

    1,926
    536
    465
    Jul 15, 2019
    Female
    11:28 PM
    Mirrors
    WeenieHutJrs
    For funsies here is the custom ML map and the original GMS version of the map:

    MapleLegends Version (with little tree portal)
    [​IMG]

    Original GMS map

    [​IMG]
     
    Last edited: Nov 8, 2023
    • Like Like x 2
    • Great Work Great Work x 1
    • Informative Informative x 1
  7. Ryae
    Offline

    Ryae Wolfspider

    571
    1,098
    356
    Apr 17, 2015
    Female
    USA (West Coast)
    11:28 PM
    Ryae
    Night Lord
    143
    Nimbus
    Aaaaa you know I love reading these, but I'll never stop saying it haha OnionBlush
    I'm not really sure what to say except thank you MapleF14 And an extra thank you for adding a spoiler with some more technical details for the nerds lol

    I'm really looking forward to more late 3rd job options!! That was easily the roughest/slowest time I've had so far, which kinda ended up being compounded by the fact that I didn't have any peers in that range since many people leech through it to get it out of way aaa... And anything that brings me back to Ellin Forest is a huge bonus haha
     
    • Friendly Friendly x 2
  8. Hanamiru
    Offline

    Hanamiru Red Snail

    5
    6
    21
    May 11, 2020
    Female
    2:28 PM
    Hanamiru
    Hunter, Bowmaster
    Ocean
    Loving the technical details and also "behind the scenes", thanks for sharing!

    This section has also caught my interest:
    If it is truly reward-less, what motivation is there for players to attempt on it upon the tiers' first release, given there's a chance of the progress being wiped out?
    Wouldn't it make more sense for us to wait for it to be finalised?

    (Basically a few of us attempted all the HP challenge trials because we were attracted to the rewards. Given how time-consuming it is, I most likely won't attempt on it if it wasn't for the attractive/exclusive cosmetics.)
     
    Last edited: Nov 11, 2023
  9. OP
    OP
    Pasta
    Offline

    Pasta Game Developer Staff Member Game Developer

    264
    255
    251
    Jul 18, 2017
    Male
    Pastaland
    8:28 AM
    Moderator Post
    Hmm. We could also still include the unique cosmetic reward for tier "beta" completion, meaning that whoever completes a tier during its first release+testing phase would get to keep it, regardless of whether the progress is then wiped for release or not.
    Which is basically how the previous beta tests went, anyways; the sole important difference would be that there is a chance for the progress not to be erased, if the questline doesn't cause problems.
     
    • Like Like x 1

Share This Page