Thread: [637] Rewrite from Scratch - Solo.

Page 1 of 23 12311 ... LastLast
Results 1 to 10 of 225
  1. #1 [637] Rewrite from Scratch - Solo. 
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Titan 637 Framework - From Scratch


    Codename: [Titan]
    Developers: [Netherfoam, Alva, Wildskiller]
    Total Lines: [44,514 = 37,632 + 276 + 2586 + 781 + 95 + 3144 ] @18 Feb 2015
    Total Lines: [54,835 = 49,121 + 1,795 + 834 + 938 + 1,519 + 369 + 123 + 136] @05 Oct 2015
    Framework: [637]
    Base: [Null]
    Source: [Open, [Only registered and activated users can see links. ]
    Backend: [MySQL, SQLite support will return]
    Objectives: [Reliable, Well-Documented, Clean Object Oriented API]
    Wiki: [Only registered and activated users can see links. ]

    If anyone's keen to join the test server and see the bots:
    • Download [Only registered and activated users can see links. ]
    • Run it from a Command Line / Terminal with the command "java -jar Client.jar servaddr titan.maxgamer.org"
    • Log in with any user/password to create an account


    This is a 637 framework which I've been writing for the past ~2-3 years or so on my holidays. I started with a Dementhium server and after a few weeks of progression I surrendered to the idiocy that was strewn across the Dementhium project. I, myself am finishing a degree in Software Engineering this year and decided to go on a programming adventure and write a 637 server using some packet information from other projects on nearby revisions. This thread is the product of my successes and what I've learned. In future I will hope to run the server for my community over at [Only registered and activated users can see links. ] and release the framework, though without a few of the customized modules such as the bots or custom minigames.

    For now, I'm releasing the project available. If you want to try it out, Jenkins is available here: [Only registered and activated users can see links. ]. It requires some setup though, so you'll want the source, 637 cache and a client. All stuff which I plan to get around to!


    Features - Current:
    World:
    • Clipping
    • Custom Instances
    • Object loading
    • Static vs Dynamic Objects
    • Object option handling
    • Pathfinding
    • Deobfuscated Clip masks

    Players:
    • Appearances
    • Bots
    • Saving to YML
    • Easy API for setting/getting and making persistent data
    • Skill API implemented

    Interfaces:
    • Chat, Combat Styles, Emotes, Equipment, Exit, Friends, Graphics, House, Ignores, Inventory, Magic, Notes, Prayer, Quest, Settings, Sound side interfaces all implemented
    • Bank, Trade, Vendor primary interfaces implemented
    • WorldMap implemented

    Cache:
    • Cache reading/manipulation (Not writing)
    • Update server
    • Remove encrypted maps from memory

    LogonServer:
    • Handles login/logout requests
    • Forces ASync calls, speeding up server
    • Manages all profiles

    Mobs
    • Combat
    • Action Queue system for tasks
    • Update masks

    Script System
    • [Only registered and activated users can see links. ] for scripting object/npc/item use options
    • Scripts for Chopping, Mining, Attacking, Climbing, Banking so far

    Network
    • NIO for LogonServer and Client Handling
    • Leaving ability to support multiple revisions open through design


    Nobody likes walls of text, so without further adieu - Some media:

    A cheesy piece of music overlaid against our AI bots:


    Login working along with player masks:


    Basic Combat:


    Bots who also PvP:


    World Map:


    Friends:


    Notes:


    Vendors/Prices:


    Prayer - Protection spells non-functional:


    Range:


    Modern Magic:


    Ancients:


    Call it what you like, I call it in-game scripting. It lets you write and run code via the client:


    Bots may use a variety of combat attacks, like players:


    Partial cache editing and rewriting on-the-fly, encrypted XTEA regions with no key are no longer sent to the client; thus they can't crash the client if the player stands near or in them. Eg, Pest control:


    Dynamic maps, too. Done properly, none of the bullshizzle "find empty space" - Instead each instance has a WorldMap object attributed to managing it. Also works for multiple dimensions, will make player houses nicer to use:


    Spoiler for Old Thread:

    After being contacted by Tortas, I'm going to go into development with him and his team to build a community with the framework I've coded. You can find the thread over [Only registered and activated users can see links. ].

    Hey guys, thought I'd show off a little bit as to what I've accomplished in the last few months of inconsistent work I've put in. I started with a Dementhium server, but after running into trouble after trouble with their design patterns (What design pattern?) I decided to start my own source.

    From scratch. That's right, Right Click -> New Project.

    Of course, I'm still taking a peek at Dementhium for how packets are structured and what they do, but beyond that I'm using Eclipse 639 as a reference. Oh and I've taken Dementhium's cache handling with a grain of salt and a few modifications (Not that dementhium wrote their own cache handling, it's clearly a slightly refactored rip).

    EDIT:
    Changelog:
    - Added Interface handling
    - Added player saving
    - Added SQLite Support
    - Using sockets now instead of NIO (Anyone want to help me out with NIO? I had some issues with the cache)
    - Cache sending works now (NIO was breaking when sending the large files)
    - Refactored everything into org.maxgamer.rs package
    - Removed unused debug
    - Added ActionQueue system for queuing tasks (Eg running, woodcutting, fletching, vial-filling type actions)
    - Added Player commands
    - Added Player chat
    - Tonnes of javadocs
    - Tonnes of bug fixes.

    So now I've got a release up. Primarily for learning, if you use it you have to give credit where credit is due. Here are the links I've got from DropBox, although they're still uploading as of right now so they may be a while.

    Server (Only): [Only registered and activated users can see links. ]
    Cache (Required for Server): [Only registered and activated users can see links. ]

    Client (Eclipse 639): [Only registered and activated users can see links. ]

    Installation Instructions:
    #1 Download the server, unzip it somewhere.
    #2 If you do not have a 637 cache, download it from above, unzip it.
    #3 Place the cache in the root folder of the server (cache/ folder).
    #4 If you do not have a client, download the one above, unzip it
    #5 Open the server's run.bat file
    #6 Open the client's local.bat file
    #7 Login with admin admin for full permissions.

    You can use MySQL if you want but currently it just uses SQLite,see config/database.yml for details.

    Be careful, YML files break if you place tabs in them! Use four spaces instead.


    So what have I actually accomplished in 15,839 (Update: 17379) lines of code, 171 (Update: 207) source files and roughly 100-200 hours of programming and design time? Some might say it's not a lot, but without further adieu:


    Lobby Support, including Email handling, Last Seen and Last IP (Though, the screenshot doesn't show that)


    World List Support (Flags, Members, Location/Activity/Flag/Population) - So far I've run into issues with pinging the world (I'm not sure, possibly it's something that was removed from Eclipse639's client?)


    Multiplayer, with update masks for movement, teleportation, character models. Nothing fancy yet, but the framework is there


    Fully clipped A* pathfinding (Though I'm yet to test how efficient it is). I've had so much trouble with clipping, but it has paid off!


    And lastly, the shiniest (But absolutely not most difficult) jewel in my arsenal, custom maps. I generated this one in four lines of code:


    So, where am I heading to next? I'd like to secure up the network protocol so it's a bit safer to attacks. Possibly investigate using the walking system without ticks (Crazy, but I hear something about Hyperion removing ticks, at least partially?) which would make the server seem way more responsive.

    When I get to the end of the project, I'd like to do something like this guy [Only registered and activated users can see links. ] with bots, hopefully with a nicer API.

    Ultimately though, I'm here to do this for fun and to write an API that is clean, modular and easy to comprehend for anyone who jumps straight into developing with it, compared to the some of the filthy code running around the forums. I'd like to even look into a plugin system (Being a Bukkit Developer, it's a force of habit) though possibly using a system that relies on plugins rather than has them as optional extras.

    Update:
    So bots + combat? Lumbridge is having an uprising:
    Last edited by netherfoam; 02-18-2015 at 04:35 PM. Reason: Updated thread
    Reply With Quote  
     


  2. #2  
    anInt69

    Max _'s Avatar
    Join Date
    Feb 2012
    Age
    19
    Posts
    1,824
    Thanks given
    428
    Thanks received
    709
    Rep Power
    572
    I saw 'Rewrite from sc' and I was thinking if this kid says he has written a source from scratch(Haven't seen your name around much) I was going to come and moan, but honestly really good work on this, keep at it, and keep us updated, I hate higher revisions but I'll subscribe to the thread to see more updates on this.
    [Only registered and activated users can see links. ]
    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  3. Thankful user:


  4. #3  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by Memphis Depay View Post
    [Only registered and activated users can see links. ]

    Goodluck tho
    Forgive me, but why that forum? This is a project for revision 637, and the linked forum is for revision 503. I'm confused as to where I should be putting my thread and why.

    Quote Originally Posted by MaxiiPad View Post
    I saw 'Rewrite from sc' and I was thinking if this kid says he has written a source from scratch(Haven't seen your name around much) I was going to come and moan, but honestly really good work on this, keep at it, and keep us updated, I hate higher revisions but I'll subscribe to the thread to see more updates on this.
    Hahaha, thanks. I'll be continuing work on it though my progress will be slow. I'm not one of those programmers who is happy with something that works, I'm happy with something that's crystal clear and above and beyond what it needs to function.

    Mostly bug fixes and cleanup today - Added Autosave, functional chat and handling for player commands.
    Reply With Quote  
     

  5. #4  
    Registered Member

    Join Date
    Oct 2012
    Posts
    1,459
    Thanks given
    539
    Thanks received
    317
    Rep Power
    107
    Good luck, love the 637 revision, I'm currently making my scratch 637 aswell

    I have not failed. I've just found 10,000 ways that won't work.
    ― Thomas A. Edison



    Reply With Quote  
     

  6. Thankful users:


  7. #5  
    Registered Member
    Join Date
    Jul 2014
    Posts
    158
    Thanks given
    24
    Thanks received
    21
    Rep Power
    39
    Quote Originally Posted by netherfoam View Post
    Forgive me, but why that forum? This is a project for revision 637, and the linked forum is for revision 503. I'm confused as to where I should be putting my thread and why.
    Because the forum is for 503+ revisions.
    Reply With Quote  
     

  8. Thankful user:


  9. #6  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by Magnito View Post
    Good luck, love the 637 revision, I'm currently making my scratch 637 aswell
    How are you finding it? Making any progress? I'm having some trouble dreaming up how to structure interfaces and dementhium's naming of interface variables (windowId, childId, interfaceId are all incorrect in places, they're actually parentId, interfaceId, positionId in that order) making it tedious for me. Ohh and what client are you using?
    Reply With Quote  
     

  10. #7  
    Registered Member

    Join Date
    Oct 2012
    Posts
    1,459
    Thanks given
    539
    Thanks received
    317
    Rep Power
    107
    Quote Originally Posted by netherfoam View Post
    How are you finding it? Making any progress? I'm having some trouble dreaming up how to structure interfaces and dementhium's naming of interface variables (windowId, childId, interfaceId are all incorrect in places, they're actually parentId, interfaceId, positionId in that order) making it tedious for me. Ohh and what client are you using?
    Yh I've got a design and have gone passed login etc. I will probably not make a thread about it but you can pm me your skype and i can show you around.

    I have not failed. I've just found 10,000 ways that won't work.
    ― Thomas A. Edison



    Reply With Quote  
     

  11. #8  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Quote Originally Posted by Magnito View Post
    Yh I've got a design and have gone passed login etc. I will probably not make a thread about it but you can pm me your skype and i can show you around.
    Yeah sure I might post my source so far later tomorrow if I get it cleaned up to a good standard.
    Reply With Quote  
     

  12. #9  
    Registered Member
    Join Date
    May 2013
    Posts
    145
    Thanks given
    61
    Thanks received
    86
    Rep Power
    37
    Just uploaded my progress so far, as well as the client I'm using and 637 cache if anyone's interested in poking around it. Links on the front
    Reply With Quote  
     

  13. #10  
    Banned

    Join Date
    May 2012
    Posts
    1,019
    Thanks given
    52
    Thanks received
    237
    Rep Power
    0
    Do you plan on ever releasing this project, or is it strictly just for rewriting it from scratch. Like will content be added, or?
    Reply With Quote  
     

Page 1 of 23 12311 ... 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
  •