Thread: [637] Rewrite from Scratch - Solo.

Page 2 of 23 FirstFirst 123412 ... LastLast
Results 11 to 20 of 225
  1. #11  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by Prince Pearl View Post
    Do you plan on ever releasing this project, or is it strictly just for rewriting it from scratch. Like will content be added, or?
    Well, I don't really know yet. I'm really enjoying writing some of this code - Much of it is new to me, I've never got to do a lot of hands on with networking, and building actual structures that require planning and refinement to a level that isn't trivial.

    I can only imagine writing actual content will be the death of me, but I don't know. If I write a flexible, clear enough API maybe it won't be as difficult as writing content in Dementhium? Who knows.

    As for releasing - Sure I think I will release it. I've just put up the link a few hours ago to my progress thus far

    EDIT: Just broke into something pretty great. Dementhium as the Mob class, and Player extends Mob, NPC extends Mob. I just made Persona extend Mob and Player extend Persona, where Player is a client and Persona is a dummy player that has an update mask, a name, a profile/account, but doesn't do anything. Now I wrote a quick test class which gives the Persona an AI - Okay, it's only one that follows you around mindlessly, but, it's a step in the right direction of bots!
    Reply With Quote  
     

  2. #12  
    Registered Member
    Join Date
    Oct 2012
    Posts
    1,281
    Thanks given
    331
    Thanks received
    258
    Rep Power
    64
    Quote Originally Posted by netherfoam View Post
    Well, I don't really know yet. I'm really enjoying writing some of this code - Much of it is new to me, I've never got to do a lot of hands on with networking, and building actual structures that require planning and refinement to a level that isn't trivial.

    I can only imagine writing actual content will be the death of me, but I don't know. If I write a flexible, clear enough API maybe it won't be as difficult as writing content in Dementhium? Who knows.

    As for releasing - Sure I think I will release it. I've just put up the link a few hours ago to my progress thus far

    EDIT: Just broke into something pretty great. Dementhium as the Mob class, and Player extends Mob, NPC extends Mob. I just made Persona extend Mob and Player extend Persona, where Player is a client and Persona is a dummy player that has an update mask, a name, a profile/account, but doesn't do anything. Now I wrote a quick test class which gives the Persona an AI - Okay, it's only one that follows you around mindlessly, but, it's a step in the right direction of bots!
    Nice work. Kinda opposite of me, never did networking but always rewrote and created content or did clientwork
    I'm working on: [Only registered and activated users can see links. ]
    Reply With Quote  
     

  3. #13  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by arham 4 View Post
    Open-source pls
    Well I've actually uploaded the source on the main post already so go check it out
    Reply With Quote  
     

  4. #14  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Eugh, having real trouble with the OpenRS cache library, anyone used it for streaming the cache to the client before, or know an open source project that uses the library to do so?
    Reply With Quote  
     

  5. #15  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Update:
    - Server now makes client play (CORRECT) music in nearly all areas
    - Added Module system for loading not "core" features
    - Added OpenRS cache system instead of Dementhium's
    - Moved a bunch of code into libraries
    - Rudimentry skill API
    - Action Queue API
    - Added extra XTEA keys (2280)
    - Revamped MapXTEA handling
    - Cheat logging for players
    - Configurable view distance
    - A dozen packet handlers
    - Player saving/serialization

    On a side note, since not all XTEA keys are known, is it possible that I could rip maps from other revisions?

    Eg I cannot decrypt all 639 maps, I don't have all 639 XTEA keys.

    But what if I were to decrypt a missing map from (say) revision 504, encrypt it with my own custom XTEA key, save that key to my list of keys, and then pack it into my 639 cache? If the format (post-decryption) remains the same, then I would effectively be able to get (nearly) every map in existance!
    Reply With Quote  
     

  6. #16  
    Registered Member
    Join Date
    Mar 2012
    Posts
    4
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by netherfoam View Post
    On a side note, since not all XTEA keys are known, is it possible that I could rip maps from other revisions?

    Eg I cannot decrypt all 639 maps, I don't have all 639 XTEA keys.

    But what if I were to decrypt a missing map from (say) revision 504, encrypt it with my own custom XTEA key, save that key to my list of keys, and then pack it into my 639 cache? If the format (post-decryption) remains the same, then I would effectively be able to get (nearly) every map in existance!
    About 2 years ago what I did was change the cache's map file with the 640 one and loaded ziotics xteas with some more released by some guy. I made a tutorial but I no longer have the files.

    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  7. #17  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by orell View Post
    About 2 years ago what I did was change the cache's map file with the 640 one and loaded ziotics xteas with some more released by some guy. I made a tutorial but I no longer have the files.

    [Only registered and activated users can see links. ]
    Awesome! Great to hear it. I can't seem to find a program that'll let me pull the maps out or pack them into another cache. I guess I'll have to do it programatically. Thank god I invested in OpenRS haha.
    Reply With Quote  
     

  8. #18  
    Registered Member
    Join Date
    Oct 2012
    Posts
    1,281
    Thanks given
    331
    Thanks received
    258
    Rep Power
    64
    If not the best, this is one of the highest quality projects in this section. I can see that you are a great programmer.
    I'm working on: [Only registered and activated users can see links. ]
    Reply With Quote  
     

  9. #19  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by Alva View Post
    If not the best, this is one of the highest quality projects in this section. I can see that you are a great programmer.
    Cheers, there are a lot of other project I've seen that are better though! A lot of Graham and Method's libraries are pretty intense.
    Reply With Quote  
     

  10. #20  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Forethought: Is it still a necro thread if I'm the one resurrecting it?

    Finished Uni for the semester, glad to have third year over. Made some pretty neat changes so far. I've decided to take it in a direction of foolproof and understanding what (clearly) nobody else bothered to understand. Not necessarily 'nanny', but to save the heartache of sending packets when you only vaguely know what they do.

    ClientScripts:
    The cache has client scripts, java-interpreted bytecode that controls things like interface animations. I've decoded them on the server (About 3% of them don't decode correctly for some reason. Does 637 have CS1 formatted scripts, or are they all CS2?) and now when the server asks the client to invoke a client script, the number of arguments & types is validated on the server. This means you can't crash the client with a number/type for client script arguments.

    Access Masks "AMasks":
    There's now an interface API allowing me to eg extend PrimaryInterface to implement a BankInterface. Now BankInterface can call super.setAccessMask() without needing to specify parent and child. Instead, it just needs to specify the mask and components. On the same note, I stole an InterfaceSettingsBuilder class. After fixing it (Conceptually it was there, logic was flawed though) I can now use an API to toggle right/left click options on interfaces. Eg, I can disable 'Activate' on the prayer interface.

    Actions:
    There's a new ActionQueue system (v2 for me) which allows queuing of tasks. Say you want to enter combat (also implemented) with someone. First, you must reach them. Add a follow action like Follow f = new Follow(me, target, preferredDistance, breakDistance); me.getActions().queue(f);. Some actions may allow yielding to the next action if they're not necessarily DONE, but they must wait a turn without doing anything. This is great for combat, where a follow will call yield(), allowing combat to be performed. If the target moves away, Follow does not yield, and combat never gets run.

    This also allows for things like queueing fletching 28 bows. I haven't tested it yet, but theoretically you could add a 'Follow Player' and 'Fletch 28 bows', so that when you catch up to the player, you begin fletching, and start following them again if they move. Not in the real version of RS, I know, but it's a cool concept.

    PlayerOptions:
    A simple runnable way of sending players the right click option for other players- Eg "Attack, "Challenge", "Inspect", "Ban". A runnable is stored, and when the option is clicked the runnable is run. None of this bullshit dementhium had where you have to write the send request in one position, while you write the receive handler in another position, and assume the indexes line up still.

    Cache:
    I've got my own cache parsing now. OpenRS was flawed when reading archives (Misordered files). Mine doesn't write yet, but does read.

    Combat:
    Basic combat is now implemented. Just one attack is implemented (Just Melee) but the concept of 'health', 'hits', 'death', 'respawning', 'combat stats' are all implemented ready for magic, range, prayer and special attacks to come in. It's actually pretty close to the real version. Also implemented are inventory and equipment, as well as items and their stats.

    Some media:



    Update#1: Spent the day implementing NPC's, ironed out a few kinks with the update system. Happened a lot quicker than I anticipated, since I've made everything really simple and generic! Only problem I'm having now is I'm not sure how to handle NPC options, there could be 100's of unique options players could click. What's a nice way of storing that? Using a scripting style? Writing it all in a single java class is awful.

    Update#2: Created a massive botwar in Lumbridge. Around 100-200 players caused the Client to drop the connection (Overflowing a buffer maybe?). Server handled 2000 players, though not well. Server ticks were fine after it dropped to around 1500 players. Bear in mind that all of these players were being simulated in a 10x10 area around Lumbridge spawn, searching the server for a target player and attempting to kill them. (Lots of pathfinding to start with, consistently large amount of combat hits). Personally, I'd call having 1500 active entities without lag a success. (Protocol updates is being done on a separate thread). I would like to reach 2000 though.
    Reply With Quote  
     

  11. Thankful users:


Page 2 of 23 FirstFirst 123412 ... LastLast

Thread Information
Users Browsing this Thread

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

Similar Threads

  1. QuarterX Base (Made From Scratch)
    By Mrquarter in forum Downloads
    Replies: 74
    Last Post: 07-30-2008, 03:23 PM
  2. Replies: 87
    Last Post: 02-29-2008, 05:31 PM
  3. Server source made from scratch, no pics
    By saviour in forum Downloads
    Replies: 14
    Last Post: 01-04-2008, 01:21 AM
  4. Nice Custom Base Made From Scratch!
    By Yorick in forum Downloads
    Replies: 8
    Last Post: 08-08-2007, 07:48 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •