Thread: - #188: Everrain, an Oldschool Emulation

Page 11 of 17 FirstFirst ... 910111213 ... LastLast
Results 101 to 110 of 169
  1. #101  
    Community Veteran

    Animato's Avatar
    Join Date
    Apr 2007
    Posts
    2,011
    Thanks given
    18
    Thanks received
    80
    Rep Power
    253
    Quote Originally Posted by Rachmaninov View Post
    how long did it take you to figure out the packet structures and the entity updating for OSRS #188?

    covid-19 lockdown is boring me; I'm thinking of doing a similar project once my finals are over.
    A couple days on and off to have 130 or so packets (and the various entity updating blocks) supported.

    For me it helped that I have a pretty heavily refactored 181 I had been working on for a couple months prior to use as reference.

    If you reverse engineer some prior art (a server from a previous revision, for example) it’s not that difficult to identify packets and create your own reference material to help move forward. Generally speaking revision to revision there aren’t that many code changes, and its relatively easy to recognise and identify common code patterns used in particular areas of the code.

    Point being, it’s fruitful to get familiar with an older more well understood client before diving in to the bleeding edge.
    Reply With Quote  
     

  2. Thankful users:


  3. #102  
    Registered Member Snoe's Avatar
    Join Date
    Jun 2008
    Posts
    356
    Thanks given
    31
    Thanks received
    23
    Rep Power
    7
    Very impressive Is there an ETA?
    Over a decade on this noob site
    Reply With Quote  
     

  4. #103  
    Community Veteran

    Animato's Avatar
    Join Date
    Apr 2007
    Posts
    2,011
    Thanks given
    18
    Thanks received
    80
    Rep Power
    253
    Quote Originally Posted by Snoe View Post
    Very impressive Is there an ETA?
    Morning

    We're running lean on time but our intention is to begin alpha testing at the beginning of May (join our discord to take part). During the alpha phase we will add the remaining skills, populate the rest of the game world and refine the game using feedback collected from our alpha testers. Expect this period to last a couple of months, and at the end of this period we will hold a beta test.

    For us, beta means the game is feature complete and we're seeking final feedback before going gold. Beta will only last for a short period - I think it's realistic to say that we will be feature complete (with lots of updates to come post-launch) during summer 2020 but don't hold me to that.
    Reply With Quote  
     

  5. #104  
    Registered Member
    Lantern Web's Avatar
    Join Date
    Apr 2018
    Posts
    187
    Thanks given
    73
    Thanks received
    101
    Rep Power
    257
    Hey guys; the thread has been more quiet this past week or so due to what we’re currently working on. Soon we’ll be posting some new updates and media for our also soon to be developed skills.

    More information in our discord!
    Attached image


    Attached image
    Reply With Quote  
     

  6. #105  
    Community Veteran

    Animato's Avatar
    Join Date
    Apr 2007
    Posts
    2,011
    Thanks given
    18
    Thanks received
    80
    Rep Power
    253
    I've been working on a handful of core/engine features this week to support some upcoming content, and they're ready for prime time! I'm getting very excited.

    World resource system

    This feature allows us to make any world object stateful and it's very powerful. The system takes responsibility for the state and lifecycle of any "resource" in the world, and provides a really simple API for creating content where a player interacts with a stateful object and receives an item. A resource is defined as a world object which yields some kind of produce, and has a healthy and depleted state. All players simultaneously interacting with a resource will interact with the same instance of that world resource, which is very important for a lot of reasons!

    Resources can have the following properties:
    1. produce (the rewarded item)
    2. yield (the finite amount of produce, held by the resource - can be fixed, a range or unlimited)
    3. healthy object id
    4. depleted object id
    5. cooldown (optional - time until it replenishes, back to healthy state)
    6. expiry (optional - time until it expires, to depleted state)
    7. challenge (lambda, the condition that the player must pass to "win" the produce)


    Some examples of where this will be used:
    • Mining rocks
    • Thieving stalls, chests and wall-safes
    • Fishing spots
    • Woodcutting trees
    • World events (where things spawn in the world for a limited amount of time, and contain some kind of produce)


    Super obvious implementation example
    Attached image
    In this example the system takes responsibility for despawn, respawn, chance roll and provision of the produce (ore) - it's awesome!


    Weighted loot system

    Our loot system (monster drops, and otherwise - barrows, etc) now generates loot rewards with consideration for their relative rarity within a rarity bracket. This level of accuracy in our loot system allows us to implement very authentic drop tables, exactly as they are on Runescape! In practice, we will improve the odds for rare items to make things more interesting but this is exciting overall because it means monsters which are known for providing a lot of a particular item (such as herbs, seeds, coins or other supplies) will also do so on Everrain, with 1:1 accuracy with Runescape.

    Here's a drop table example:

    Abyssal Demon drop table contains these items for "rare" and "very rare"
    Attached image

    However, even though the first 4 fall into the "rare" category - obviously whip is significantly more rare than the rune equipment. We can reflect this in our new loot system. In-fact, we can use the odds straight from the wiki to configure our relative item rarity.


    Nested drop tables

    We can also nest common drop tables inside the drop table of any monster, as it is on Runescape. If a drop table is the result of your loot roll, we will roll again for loot from the nested drop table instead.

    This means we can assign the rare drop table, seed drop table, herb drop table, gem drop table and so on to monsters with varying rarity as it is on Runescape. Your favourite monsters for farming herbs will work exactly as you expect!

    Attached image


    Chance-based skills, scaling success with skill level & chance tweening

    That's a load of technical jargon to say - as you get higher level, you get better at skills!

    This is a huge pet peeve of mine in private servers, and I am very excited to begin showing off how we will be implementing chance-based skills with level scaling - Mining, Fishing, Woodcutting, Firemaking, Thieving, Agility & Hunter.

    As you level, every single level provides you with a benefit - the higher level you are, the better you are at that skill. This is not a "rate based" system, it's all chance based and the chance scales with your level - exactly as it does on Runescape.


    Mining (chance-based)

    Mining now implements our chance scaling and world resource systems, and behaves very closely to how it does on Runescape. While the exact odds are not public, we can make some educated guesses about what they are thanks to the law of averages.

    See some examples below, can't wait to show more!

    Mining iron with 16 mining & steel pickaxe:


    Mining iron with 63 mining & rune pickaxe:
    Attached image

    Pure essence, 35 mining, adamant pickaxe:
    Attached image

    Pure essence, 67 mining, rune pickaxe:
    Attached image

    Coal, 59 mining:


    Coal, 94 mining (and good rng haha):
    Reply With Quote  
     

  7. Thankful users:


  8. #106  
    Vitality

    Raw Envy's Avatar
    Join Date
    Dec 2010
    Posts
    3,034
    Thanks given
    869
    Thanks received
    1,186
    Rep Power
    3054
    Great progress boys!
    Reply With Quote  
     

  9. Thankful user:


  10. #107  
    Registered Wizard

    Jesse's Avatar
    Join Date
    Sep 2009
    Age
    29
    Posts
    5,119
    Thanks given
    1,519
    Thanks received
    1,148
    Rep Power
    5000
    Quote Originally Posted by DaGreenRs View Post
    Broadcast system!

    We can now send broadcasting messages to all players who are logged in. It will be very useful with NPC drops and much more!

    Attached image
    hey man! im the only jesse here

    Looking good



    Reply With Quote  
     

  11. #108  
    Registered Member
    Lantern Web's Avatar
    Join Date
    Apr 2018
    Posts
    187
    Thanks given
    73
    Thanks received
    101
    Rep Power
    257
    Quote Originally Posted by Raw Envy View Post
    Great progress boys!
    Quote Originally Posted by Jesse View Post
    hey man! im the only jesse here

    Looking good
    Thanks guys!
    Attached image


    Attached image
    Reply With Quote  
     

  12. Thankful user:


  13. #109  
    Registered Member
    JeztC's Avatar
    Join Date
    Jul 2016
    Age
    24
    Posts
    136
    Thanks given
    212
    Thanks received
    65
    Rep Power
    303
    Quote Originally Posted by Jesse View Post
    hey man! im the only jesse here

    Looking good
    Thanks, appreciated.

    Nice meme
    Reply With Quote  
     

  14. Thankful user:


  15. #110  
    Blurite

    Corey's Avatar
    Join Date
    Feb 2012
    Age
    26
    Posts
    1,491
    Thanks given
    1,245
    Thanks received
    1,729
    Rep Power
    5000
    Quote Originally Posted by Jake_ View Post
    I've been working on a tool to automatically generate npc dialogue trees and this afternoon it's done!

    Thanks to this tool we've now got ~2300 dialogue trees made up over 14000 lines of dialogue, which apply to ~1200 npcs - and it's not just data: the output of this tool is Kotlin code in RSMod dialogue format, it's awesome!

    This is a huge step forward for us and frees up a lot of potential effort that would have otherwise been spent researching, writing and configuring dialogue.

    Attached image

    Some example output (this is programmatically generated code):
    Code:
    on_npc_option(npc = Npcs.GULLDAMAR, option = "talk-to") {
      player.queue { dialogue() }
    }
    
    suspend fun QueueTask.dialogue() {
      chatNpc("Finest silver in all of Keldagrim, come and see!", animation = 588)
      when (options("Right, what do you have?", "Not interested, thanks.")) {
        1 -> {
          chatPlayer("Right, what do you have?", animation = 588)
          chatNpc("Silver, what else!", animation = 588)
          // TODO: open silver cog silver stall interface
        }
        2 -> {
          chatPlayer("No thanks.", animation = 588)
        }
    }
    Code:
    on_npc_option(npc = Npcs.GHOST_BANKER, option = "talk-to") {
      player.queue { dialogue() }
    }
    
    suspend fun QueueTask.dialogue() {
      // TODO: (condition)  if player has ghostspeak amulet
      chatNpc("Good day, how may I help you?", animation = 588)
      when (options("I'd like to access my bank account, please.", "I'd like to check my PIN settings.", "I'd like to collect items.", "What is this place?")) {
        1 -> {
          // TODO: open bank interface
        }
        2 -> {
          // TODO: open bank pin interface
        }
        3 -> {
          // TODO: open collection box interface
        }
        4 -> {
          chatPlayer("What is this place?", animation = 588)
          chatNpc("This is a branch of the Bank of Gielinor. We have branches in many towns.", animation = 588)
          chatPlayer("And what do you do?", animation = 588)
          chatNpc("We will look after your items and money for you. Leave your valuables with us if you want to keep them safe.", animation = 588)
        }
    
      // TODO: (condition) if player does not have ghostspeak amulet
      chatNpc("Woooo wooo wooooo woooo", animation = 588)
      // TODO: open bank interface
    }
    Code:
    on_npc_option(npc = Npcs.GOSSIP, option = "talk-to") {
      player.queue { dialogue() }
    }
    
    suspend fun QueueTask.dialogue() {
      chatNpc("Well, this has certainly been exciting! The Sinclairs under house arrest, Morgan Le Faye attempting yet again to interfere with King Arthur and Merlin, and even the Black Knights sticking their noses into it.", animation = 588)
      chatPlayer("How do you know all that? It only just happened, and you weren't there!", animation = 588)
      chatNpc("I have my sources. No secret is safe as long as I'm around!", animation = 588)
    }
    where are you getting the dialogues from?
    are you just going on osrs and hammering out every single option and building trees out of that programmatically and deduping it all?
    Attached image
    Reply With Quote  
     

Page 11 of 17 FirstFirst ... 910111213 ... LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Lunar - An Oldschool Emulation
    By kyoto in forum Projects
    Replies: 61
    Last Post: 04-28-2016, 11:57 PM
  2. Starting up an oldschool f2p project
    By Thee Rooney in forum Requests
    Replies: 2
    Last Post: 07-09-2012, 04:48 AM
  3. Replies: 13
    Last Post: 06-09-2012, 09:54 AM
  4. Replies: 24
    Last Post: 02-15-2012, 03:32 AM
  5. I Need an OldSchool 317 eco server to play!
    By Rizzy in forum RS2 Server
    Replies: 3
    Last Post: 01-24-2012, 02:24 AM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •