Thread: Void - 634

Page 1 of 8 123 ... LastLast
Results 1 to 10 of 77
  1. #1 Void - 634 
    Renown Programmer
    Greg's Avatar
    Join Date
    Jun 2010
    Posts
    1,163
    Thanks given
    247
    Thanks received
    942
    Discord
    View profile
    Rep Power
    1838


    High performance single player 634 server with a focus on bot player ai.

    All content built will be playable by thousands of bot players to bring the busyness back to the world.
    The gameplay will emulate the original games feel but not all of it's oddly specific mechanics, I'll be enhancing and changing mechanics as I see fit.
    It'll still be fully networked so you can play on multiple accounts at once, multiplayer just won't be a priority.

    3 month goals
    • Chat
    • Game chat
    • Quick chat
    • Private chat
    • Clan chats
    • Friends list
    • Ignores list
    • Bot communication


    6 month goals
    • Appearance
    • Character creation
    • Skills
    • Firemaking
    • Cooking
    • Prayer (altars)
    • Smithing
    • Crafting
    • Fletching
    • Thieving
    • Herblore
    • Runecrafting
    • Agility


    12 month goals
    • Updating
    • Optimise
    • Simplify
    • Combat
    • Equipment
    • Effects
    • Algorithms
    • Player v Monster
    • Mob Aggression
    • Player v Player
    • Bosses
    • Monster v Monster
    • Wilderness and multi areas
    • Pest control
    • A quest




    All the code is Open Source

    I've worked on it in one form or another for many years, I guess I consider it like a forever-project
    Reply With Quote  
     


  2. #2  
    Registered Member
    GeneralReposti's Avatar
    Join Date
    Apr 2018
    Posts
    227
    Thanks given
    16
    Thanks received
    124
    Rep Power
    773
    Good luck Greg
    Reply With Quote  
     

  3. Thankful user:


  4. #3  
    Renown Programmer
    Greg's Avatar
    Join Date
    Jun 2010
    Posts
    1,163
    Thanks given
    247
    Thanks received
    942
    Discord
    View profile
    Rep Power
    1838
    Catch-up

    Continuing on from my last project I realised that bot decision making itself is relatively straightforward compared to representing the game world in an ai friendly manor. Here's the things I've been experiementing with since then.


    AI Architecture
    Lots of research and experiments, this example here is a bot utilising goal-oriented-action-programming, it's nice to use but has memory scalability issues and it's essentially pathfinding which is expensive enough as-is.



    I've sebtled on a utility scoring system where everything will be aggregated down to 0.0 - 1.0 values, although applying curves can be tricky from a content design perspective, the system itself is fast and really flexible.

    World Representation
    As a player this is easy as you have a giant corpus of information you've stored from past experience or can easily lookup on the wiki.
    For example for a slayer task to kill dragons you know:
    * the wilderness spots are dangerous for pkers
    * if your low level baby dragons are easy to kill than regular, and metal dragons are harder than that.
    * going to brimhaven dungeon requires an axe and 12 agility
    * it's quicker to use an amulet of glory for getting to brimhaven than chartering a ship

    For a bot all this information needs to be stored in memory which entails having the entire world, objects, npcs, collision etc.. loaded at once

    Path finding
    First I looked at the feasability of doing long distance pathfinding, I built 2d a map viewer which loads collision data as well and wrote and tested various pathfinding algorithms to see how long it takes to generate paths between two points marked on the map,
    Using the longest path I could think of without any doors (castle wars to burthorpe) an exact a* path took 347ms which was to be expected (bfs was several times slower than this), I used it as the base and compared against multiple variations of hierarchical a* which searches a pre-generated abstract (almost navmesh looking) graph.
    However even those only solve the path in 6.6ms which is great, but not 2k players in 600ms great. JPS+ possibly could give better results given the sparseness of rs maps but I decided that I'd gone far enough to test the feasibility of full path generation.



    Generation

    I moved on to abstracting the map instead, a bot can use the same walking mechanics given to a player, it _just_ needs to know approximately where it's going. By that point I could already generate abstract maps of all walkable areas but it doesn't take into considerations like agility shortcuts, lever teleports, doors, ladders, and all of the requirements which a bot might not have to do those things.
    So once again I tried tackling generating this data with varying levels of success:

    Doors/gates
    Matching open/closed doors and gate ids was relatively straight forward by matching object definitions, there was less than a thousand doors in total for 667. I did get distracted and did the same for tree stump id's, and well we all know how that went.

    Ladders/stairs
    Using, ironically enough, the utility ai to match the bottom of ladders with the tops it found 2445 teleports (a ladder being two; one up, one down) in total, 231 with a match but confidence less than 50% and 11 it had no idea about.

    The results aren't perfect but 90% coverage is pretty good.

    I was going to do the same for dungeon entrances and exits but I decided that as all the data needed to be checked, and additional information added (theiving levels to pick locks etc..), it'd be better to have an editor and gradually expand the supported area alongside the development of content than tackling the entire game world in one go.

    Map

    The original map viewer I had made was pretty slugish and used a tonne of ram to render on the fly so I split it up into a render script and rewrote it as a tiled png viewer with better performance as well.
    This one doesn't have all the pathfinding weighing it down and I also added support for teleport links, adding/editing data to links, and drawing out area polygons.







    File server
    While messing around with getting 634 up and running I decided to write a high performance file-server, initially experimenting with writing raw NIO I settled on ktor's CIO (coroutine suspending NIO) library, it's very nice and massively simplifies traditionally complex networking logic like handshakes.

    Anyway, it's a library and it seems to perform quite well too.
    Reply With Quote  
     

  5. Thankful users:


  6. #4  
    Banned

    Join Date
    Jun 2010
    Age
    25
    Posts
    4,887
    Thanks given
    1,698
    Thanks received
    1,598
    Discord
    View profile
    Rep Power
    0
    Looking quite remarkable. Like a top goat. Fill the void Greg!!!
    Can we expect pest control any time soon?
    Reply With Quote  
     

  7. #5  
    NONCHALANT

    Lynch's Avatar
    Join Date
    Feb 2016
    Age
    23
    Posts
    219
    Thanks given
    35
    Thanks received
    277
    Discord
    View profile
    Rep Power
    3150
    Sounds interesting cant lie, good luck with this Greg!
    by George
    Spoiler for Grian:
    Reply With Quote  
     

  8. #6  
    kinda inactive

    Owain's Avatar
    Join Date
    Sep 2014
    Age
    24
    Posts
    2,878
    Thanks given
    2,316
    Thanks received
    2,173
    Discord
    View profile
    Rep Power
    5000
    Best of luck, hopefully we get to see those beautiful tree stumps put to use in this too!



    The pioneering custom server network

    Spoiler for wat:








    Reply With Quote  
     

  9. Thankful users:


  10. #7  
    Registered Member
    Optimum's Avatar
    Join Date
    Apr 2012
    Posts
    3,551
    Thanks given
    857
    Thanks received
    1,728
    Discord
    View profile
    Rep Power
    5000
    Looks promising, good luck

    Quote Originally Posted by DownGrade View Post
    Don't let these no life creeps get to you, its always the same on here. They'd rather spend hours upon hours in the rune-server spam section then getting laid! ha ha!Its honestly pathetic i haven't seen so many lowlifes in my life its actually insane i wish that this section would just vanish its probably the only way to get these people out of the community...
    PLEASE BE AWARE OF IMPOSTERS MY DISCORD ID: 362240000760348683
    Reply With Quote  
     

  11. #8  
    Registered MrClassic
    MrClassic's Avatar
    Join Date
    Oct 2008
    Age
    13
    Posts
    2,033
    Thanks given
    22,433
    Thanks received
    523
    Rep Power
    5000
    Good luck Greg!
    Reply With Quote  
     

  12. #9  
    ⚔️ Battle614 - Superiority ⚔️

    Battle614's Avatar
    Join Date
    Aug 2020
    Posts
    244
    Thanks given
    72
    Thanks received
    471
    Discord
    View profile
    Rep Power
    797
    Good luck, looks dope


    Reply With Quote  
     

  13. #10  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,357
    Thanks given
    557
    Thanks received
    1,181
    Discord
    View profile
    Rep Power
    1862
    GL, nice to see more singleplayer projects with bots.
    ...
    Reply With Quote  
     

  14. Thankful user:


Page 1 of 8 123 ... LastLast

Thread Information
Users Browsing this Thread

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

  1. khkramer

User Tag List

Similar Threads

  1. Replies: 33
    Last Post: 04-19-2008, 05:48 AM
  2. Replies: 8
    Last Post: 12-13-2007, 06:47 PM
  3. Rune-Void v2.0 No Hamachi
    By haz425 in forum RS2 Server
    Replies: 0
    Last Post: 11-11-2007, 05:28 PM
  4. adding a void for runecrafting
    By fabjan in forum Tutorials
    Replies: 6
    Last Post: 10-20-2007, 06:08 PM
  5. Message to Mods and Admins Void!
    By Pkitten in forum Tutorials
    Replies: 6
    Last Post: 08-14-2007, 10:31 PM
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
  •