Challenger Deep 0.5 (Public Release)

LinLin BlackbirdThe Moonglade
edited July 14 in Tech Talk
Edit on Jul 14th, 2022:
Unfortunately the file attached to this post did not survive the forum changeover, and I no longer have a copy of it. If you are still insistent on trying Challenger Deep, you may have to ask around for a copy, at least until I can get one of my own and reinstate it in this post. Please also see Sunder and Rime for far more practical and newbie-friendly systems!





Hi! Today it's time for a new public release of Challenger Deep, the system I've been using since Mudlet became the new standard.

A long time ago, I released the first version of my system, not as some all-in-one PK solution or a generalized system like Sunder, but as a sort of reference project for aspiring system builders. It has been a constant source of pleasure and flattery for me that most of the systems in circulation today typically feature code pulled straight from the original edition of CD. I've insisted on doing things myself, figuring out what works best and what doesn't, and that policy remains to this day.

Given the frequency of discussions centered around crashing clients, heavy lag during fights, and other difficulties, I thought it'd be fun to push out the latest edition of my system, which doesn't suffer from those problems and never has!

I think that I'm ready to wipe the slate clean and rewrite this entire thing from scratch, so it's my pleasure to release Challenger Deep in its final form, at version 0.5. You can find the download at the bottom of this post.

Terms of Use

Challenger Deep is free to use, modify, and distribute. I try to be as permissive as I can about it. The only thing you can't do with my system is claim that you wrote it. Technically I guess you could sell it, but it's right here for free so you'd look like a real idiot.

However, this comes with a catch!

This system is released with minimal support. You get a readme file, a reference image so that you can tell whether or not the system looks right, and that's it. I will answer questions if need be, but I'm afraid I have no interest in providing live tech support. This system is for learning, but it may not necessarily be for newbies.

The best way to reach me is at Earthcrusher#0001 on Discord. Please don't bother me in-game with system questions!

What's the Big Deal About Challenger Deep?

  • CD was built to be as character-agnostic as possible. I can safely say I've reached the limit of what I can do without saving any information about you. The only data the system saves, at all, is Mudlet's internal color table (in case you modify it), and a module I wrote to track my area exploration progress.
  • CD makes use of the "pulse", a 0.1s timer that raises a custom event by the same name. I learned early on that the pulse (or "heartbeat" as some have called it) was a vastly superior method to triggering off the prompt, being much more consistent and therefore predictable. It will burden your computer's resources the same amount at all times, rather than use a sudden spike of CPU as soon as you encounter spam.
  • An optimized method of initializing the system and its table-based structure, one that won't forget things or suddenly break into pieces if you accidentally look at its script file or click on the wrong ones in some arcane order.
  • The system ships with numerous extensions to Lua's libraries, including a fun little hack to give the language Python-style string substitution. More info on that here.
  • No hacky nonsense, no lazy workarounds. No spamming ent orders every balance or making sure you're mounted every single prompt. I have taken incredible pains to make sure the system doesn't do things until it needs to. The use of GMCP has been maximized so we don't have to do silly things like check INFO HERE. In the rare event that it has to resort to a cheap trick, I've hidden it the best I can, and ensured it won't slow things down.
  • It includes a well-designed UI that displays information about your current room in a dynamic and extremely useful way. Once you've gotten used to the room info screen, it's hard to play without it.
  • CD has the sexiest prompt replacer you have ever seen. I'm proud of it.
  • Animated balance bars.
  • Lovely replacements for certain game messages and displays. My custom displays have been ported to the actual game time and time again!
  • Every single conceivable module in the system was given an optimization pass; any piece of code that runs without your say-so (read: triggers, scripts, anything but aliases) was written and rewritten until I could get the lowest possible execution time, all in accordance with Roberto Ierusalimschy's Lua Performance Tips, among other reference documents. And then I said screw it, and optimized most of the aliases too.
  • The input throttling API makes the system virtually spam-proof.

What You Will and Will Not Get

You will get:
  • A competent system that can bash, craft, get around pretty easily, and hold its own in team combat, all without breaking a sweat.
  • Tons of little quality-of-life additions, cosmetic displays and even replacements, and more. A lot of these are outlined in the readme, but you can't go wrong with looking through the code.
  • My own custom-written affliction tracking.
  • Reasonable feature completeness (read: bashing and defup routines) for many classes in the game.
  • The Terminus TTF for Windows font, which incidentally the system needs or it will look like garbage!
  • A working prototype offensive routine for Shapeshifters.
You will not get:
  • A fully-fledged combat system, or the advanced defensive strategies that come with it.
  • Out-of-the-box functional autobashing for many defined classes. I overhauled the way bashing works, and several classes fell by the wayside. See the FAQ section of the readme for what to do about this - it's not that bad.

Why Use Challenger Deep At All?

Truth be told, I don't expect you to. I'm releasing this system under the same premise as the last one - you can use it for learning, tinkering, or even simply ripping its guts out and Frankensteining them into your own work.

I partake or have partaken in nearly every activity in the game except for 1v1 PVP, an activity I see as increasingly niche and a little outmoded. Over ten years, this system has made these things very comfortable for me. It's a little weird getting used to someone else's setup, but if you're a casual player, Challenger Deep might have something you like.

Known Issues

  • First things first: the bashing. It's in a weird place. Several months ago, I rewrote it to finally use Aetolia's server-side queueing, and it hasn't been quite the same since. It stops on a dime as soon as you've cleared the room, but if you need to say, stop hitting the enemy to run, you're going to have a little trouble. If you're fighting things that probably won't kill you, it will run 100% perfectly.
  • I attempted to automate Blackjack, and never got too far. It'll throw errors, but won't interrupt your game.
  • I wrote the affliction tracking months ago, and have not updated it. If they've made any adjustments to afflictions, they are not in the system. It should be trivial to compensate.
  • There is an outstanding bug when playing a new character going through the Academy, in which some rather frequent newbie hint message fires off the map capture window, and causes all further game input to route to that instead. If this happens, the only way to fix it is to restart the client. Recommend disabling the map capture until you're out of the Academy.
  • From the standpoint of Mudlet itself, the system is very messy! The "API" folder isn't actually an API, it just contains a big assortment of utility functions and helper tables that could be folded into more sensible parts of the project. There are tons of unfinished modules and other bits and bobs sitting around. Much like the stereotype of plumbers whose pipes leak at home, I worked as hard as I can to keep things clean on the Lua side - the Mudlet side became a little neglected.
AlmolBulrokNaosValorieMoxieBenedictoHavenAloli

Comments

  • No hacky nonsense, no lazy workarounds. No spamming ent orders every balance or making sure you're mounted every single prompt.

    I'm feeling personally attacked please help.
    Copperhead of the Third Spoke says to you, "Intelligence matrix in moniker Bulrok reveals above average results when compared alongside proximal presence."
    NaosLinHavenTetchtaIllikaal
  • DO YOU HAVE A SCREENSHOT THAT I CAN STARE AT
  • LinLin Blackbird The Moonglade
    edited January 2021
    Elene said:
    DO YOU HAVE A SCREENSHOT THAT I CAN STARE AT
    The download includes a screenshot of what it looks like when set up! I'll add one here when I get home.
  • LinLin Blackbird The Moonglade
    Screenshot time!

    #1: An example of the system while bashing. Take note of how color is used in the character's prompt stats to communicate how high/low they are.


    #2: Special exits can be defined as false directions. In this example, walking down will cause me to instead turn the statue.


    #3: This is what you see when you type AREA INFO. The use of "area" is perhaps a little misleading, as it actually refers to the map area, not the physical area in which the room resides.


    #4: Example of debugging output.


    #5: The prompt with PK mode turned on.


    #6: An example of how to write an emote as a natural sentence.


    #7: The room display in its natural state.


    #8: The room display while bashing. The area ID number turns red to denote that the area has been defined in the mob database. All mobs turn dark grey, with the current target highlighted.


    #9: I ported the Oblivion level up display to Aetolia. This is what I do instead of designing a working Wayfarer combat route.
    Benedicto
  • KerocKeroc A small cupboardAdministrator, Immortal
    Lin said:

    #6: An example of how to write an emote as a natural sentence.

    My dyslexic self liked this so I put it in. If you use ^ for your name, you can write a full EMOTE sentence without any need of ( or ).
    RijettaLinMoxieBraxBenedictoAlelaHavenGalileiSibatti
  • LinLin Blackbird The Moonglade
    Keroc said:
    #6: An example of how to write an emote as a natural sentence.
    My dyslexic self liked this so I put it in. If you use ^ for your name, you can write a full EMOTE sentence without any need of ( or ).
    Holy crap, you're amazing
  • TetchtaTetchta The Innocent
    Lin said:

    Technically I guess you could sell it, but it's right here for free so you'd look like a real idiot.

    like that's ever stopped me

    Lin
  • RazmaelRazmael Administrator, Immortal
    Keroc said:

    Lin said:

    #6: An example of how to write an emote as a natural sentence.

    My dyslexic self liked this so I put it in. If you use ^ for your name, you can write a full EMOTE sentence without any need of ( or ).

    And so continues the tradition of Aetolia implementing neat things from Lin's system.
    BenedictoMoxieLinHavenSibattiTetchta
  • I am interested in using the system but when i go to download the file it's empty. Does anyone have a none corrupted version of this file?
  • LinLin Blackbird The Moonglade
    edited July 14
    priyer said:

    I am interested in using the system but when i go to download the file it's empty. Does anyone have a none corrupted version of this file?

    Yeah, it definitely looks like the file did not survive the forum changeover, unfortunately! Regrettably I don't have a copy of this system at this version any longer (all work from this point has gone into a Brand New System), but if anyone happens to be keeping a copy, they are more than free to distribute it here.

    If you're new to Aetolia, however, may I recommend using Sunder or Rime? They would be far, far more functional for your daily needs.
  • I found Sunder but didn't know about Rime i will give it a look thank you.
  • If anyone has a copy of this, I'd love to get my hands on it!

  • I gave Lin a copy of it on Discord.
  • LinLin Blackbird The Moonglade
    Hey guys, this'll probably be my last post on the forums. Just seconding what I posted previously: anyone with a copy of the system is free to post it here, pass it around, wherever they want.
    Teramasce
  • Here's the last version of it that was hosted on the forums.
    ValorieAxius
Sign In or Register to comment.