The RP Client - A Client For RPIs and Armageddon

Started by deskoft, October 06, 2022, 02:18:56 PM

October 06, 2022, 02:18:56 PM Last Edit: September 11, 2023, 03:36:07 PM by deskoft
This project is the spiritual successor of the Unofficial Armageddon Client. It is a web client which you can find here.

Features

  • Optimized I/O for ArmageddonMUD.
  • XTERM and ANSI colors.
  • Visual bars to show you vital information about your character (such as health, stun, mana, focus).
  • Character side bar that shows you other information about your PC (such as their name, if they are armed, etc).
  • An AI-powered utility to help you translate text, find words through a thesaurus and explain concepts for you (such as the parts of an object for crafting).
  • A robust time-of-day utility for Armageddon which shows the current time of day, month, year, etc, as well as lets you navigate a card-based menu to figure out more things about the current time of day.

What are the odds of this ever being available for android/chrome OS? I am stuck with duckclient as the best client usable on my chromebook and I hate it so much.

I'll be honest and say it's definitely not in my plans right now, but I could see myself doing that project in the future once this one is done.

While Angular (the framework I am using to build this app) does have wrappers for mobile, the tech stack it would use is vastly different on mobile, so it would require different logic sadly.

That's fair, it was worth asking. But for anyone else stuck on android/chrome os, duckclient is infinitely better than blowtorch so I would recommend that instead. blowtorch is an absolute nightmare. I figured it had to be complicated as hell otherwise there would probably be a decent client for the platform by now. Thank you for the time you're putting into making the client in any case.

Just lazy-coded a length warning, still gotta test if this is actually the length that is the limit. It is white if you're ok, orange if you're getting close, red if you're over the top. Not sure if it's actually 248, my last test showed that. Only one way to find out! By playing!


You must install something on your computer for this, right?

For people who do not have administrator rights on their computers, you cannot use this?
New Players Guide: http://gdb.armageddon.org/index.php/topic,33512.0.html


Quote from: Morgenes on April 01, 2011, 10:33:11 PM
You win Armageddon, congratulations!  Type 'credits', then store your character and make a new one

The deployment strategy is bound to change, but so far this is just going to be an executable. An EXE for Windows, an APP for MacOS and an app you execute with ./app for Linux.

Once this is ready for deployment, I'll also put it up on github and if anyone wants to contribute to it, that'd be cool.

October 06, 2022, 05:48:32 PM #8 Last Edit: October 06, 2022, 06:48:08 PM by James de Monet
In talking about sending info from your prompt to a GUI, there probably isn't a need to create this out of whole cloth if you don't want to.  I know I've done some work on a GUI before, and others have also (my brain says Trieste, Nathvaan, and maybe Codemaster, but I could be way off)

Here's the forum page about the GUI panel I created and a link to a YouTube video of it in action.


I do like the idea of building the GUI right into the client.  Makes it neat and easy.
Quote from: Lizzie on February 10, 2016, 09:37:57 PM
You know I think if James simply retitled his thread "Cheese" and apologized for his first post being off-topic, all problems would be solved.

Quote from: James de Monet on October 06, 2022, 05:48:32 PM
In talking about sending info from your prompt to a GUI, there probably isn't a need to create this out of whole cloth if you don't want to.  I know I've done some work on a GUI before, and others have also (my brain says Trieste, Nathvaan, and maybe Codemaster, but I could be way off)

Here's the forum page about the GUI panel I created and a link to a YouTube video of it in action.


I do like the idea of building the GUI right into the client.  Makes it neat and easy.

Yeah, this is probably going to be heavily inspired on that! That said, I think there's a benefit to this using web technologies, so it might lead hopefully to a very neat integration of it all.

There's a lot of things that can be done with a client that is designed for Armageddon in my opinion, and I have many ideas but the list above is what I deem necessary for the first decent version. That said, a lot of the more advanced features should be optional in my opinion, and there's design decisions that will need to be done about where to position the GUI elements.

Above all, this is an attempt to create a client that feels similar to booting a game up, helping you play the game without having to make too many choices. I believe that to be one of the main barriers of entry to a MUD game. You'll get questions such as 'How do I add a server to this MUD client?', 'What are these numbers being shown on my screen next to the text?' etc. The goal is to streamline that a bit.

I've been trying out the input length warning system and it's been really cool so far. To get a warning like 10 characters before you hit a limit saves up a lot of times. It actually feels like it makes me more effective, because I can add the ... myself and keep writing what I want to write in the next input.

Here is a very WIP image of the side bar. There's still a LOT of information to add to it (such as hunger and thirst, most importantly), but any feedback appreciated.

Unfortunately, the first censored line is the character name, and there's no way yet I can show that. Maybe I implement a screenshot mode that puts dummy text in it.

I am happy about the health, mana, etc. bars. I am undecided yet on the time of day, position & language ones. There could be more interesting ways to present time of day, including a crazy ass clock? Any ideas appreciated!

As for positions, I am using material icons (can use any of these icon packages). The icons for position & time of day change. In the case of position, you have the chair, a bed, a standing man. In the case of time of day, you have icons for night, dusk/dawn, and day.


I see you with your used mana points and northern accent.  Unless the mana bar is somehow smaller than the other bars because of a lower integer value?

*points to eyes and points to deskoft*

But honestly this is pretty cool already.

The bars do all look like different lengths.

I'd rather normalize them, so they are all the same length when full.
21sters Unite!

Quote from: Ammut on October 07, 2022, 10:09:18 AM
I see you with your used mana points and northern accent.  Unless the mana bar is somehow smaller than the other bars because of a lower integer value?

*points to eyes and points to deskoft*

But honestly this is pretty cool already.

They are all the same width! It is calculated based on the percentage (value/maxValue)x100. Thank you so much for the commentaries! Can't wait to get more into it.

Quote from: creeper386 on October 07, 2022, 12:11:22 PM
The bars do all look like different lengths.

I'd rather normalize them, so they are all the same length when full.


They are all the same length! The ones that are not full length are used.

Also just want to say that I have been testing this extensively and using this as my multi-hour-per-day client, both in combat and long scenes, and it's been so far pretty stable. I am extremely happy with that fact.

Ooh. Maybe have something darker around the bar that goes the full length so it's clear there is a "max bar" and the current visibility is how much it's full?
21sters Unite!

I am proud to comment that after extensive implementation, the client is now fueled by a local backend that creates a local SQLITE file. For those non-tech-savy, this means that we've got a powerful local database with equally powerful query mechanics.

Using this system, which was no easy feat because the way these apps work is never easy, I have a very tidy way to query and change items in the database, that uses a push-notification-like system (which means that it's extremely reactive!) Sorry, that was more techy talk.

I am currently working on a way to take notes. The note-taking system has a goal of being as complex as you want it to be. On the surface, you have a list of topics that you can create, delete, edit or view. For those simple enough, this is where you can write notes about what ever or whomever you want. You can write the name of a character and their sdesc, to quickly search them and also write notes on them. This is working already, although I am still working on the frontend (I share some WIP screenshots on the discord from time to time).

However, if you are like me and you really want to take better notes, you will be able to add on top of these notes, and I am planning to have some systems for this if you want to get complex. The way I envision it right now, and this is bound to change, is that you can label topics as different things (tag them, so to speak). For example, you could tag a topic as a craftable, and create recipes that link to other topics (other items) to define what you need to use to craft that recipe. Ergo, when you visited the item / one of the ingredients, you'd be getting cool notes about the crafting relationship. This vision is bound to change -- but this is how I like to take notes. As I said, if you don't want to trouble yourself too much, you basically have a notepad-file system for note taking. Also, if you don't care, or want to use your own tools, you can totally do that.

What else are topics going to be used for? If we implement an automapper or a solution for mapping your surroundings, rooms would be in essence topics, with an additional tag and additional fields. This would allow you to take notes about the room you're in. If we get complex, which right now we're nowhere near there, in the future maybe you could start seeing notes when you walk into those rooms (the tech isn't there right now).

Short term, expect to see screenshots of the basic file-like system and maybe I venture into the tag-based system for recipes in the next weeks. I mainly develop what I ever I need, and right now I need to take notes in my playthrough of Armageddon. I reject to use external tools; I want my client to give me the solutions.

Quote from: creeper386 on October 07, 2022, 03:36:00 PM
Ooh. Maybe have something darker around the bar that goes the full length so it's clear there is a "max bar" and the current visibility is how much it's full?

This has been implemented. I'll upload screenshots soon! Thanks for the suggestion, it looks much better.

I said I'd upload a screenshot soon. I lied. I'm posting one now.

Here is an EXTREMELY WIP of how this is looking. The buttons for adding and editing will change (get prettified). The rest probably won't.

You got a button you click that leads you to a form, where you can type the name of a topic and text. For example, I wrote the name of a testing character, Testchar, and the sdesc. This allows me to then query the sdesc and see my notes on them (or see what name I got for them, because I forgot). I can edit it too.



THE GUI SUCKS RIGHT NOW. I am going to be prettifying it.

If you click close, it takes you back to the terminal.

While you are using the notes editor, you can't see what is going on in the screen. I don't got any ideas on how to solve that. I imagine some people might not want to use the notes system because of that? It's fine, it's super opt-in. It will fill similar to being in a GTA V MP game and pressing ESC to check up the map -- at least that's how it does for me.

I'm open to ideas too.

October 10, 2022, 03:23:47 PM #19 Last Edit: October 10, 2022, 03:26:11 PM by deskoft
Here's the topic text editor I got going so far.



Going to be testing it with my own notes for now and probably giving it improvements based on my own experience.

I'd recommend maybe the notes can be just docked on the side of the screen. On most modern monitors, even half screen I have a good amount of dead space on a mud client.
21sters Unite!

In MUSHClient, I've enjoyed hitting "Ctrl + Tab" to get to my generic notepad section, so its not always up and in my face.
Quote from: IAmJacksOpinion on May 20, 2013, 11:16:52 PM
Masks are the Armageddon equivalent of Ed Hardy shirts.

Yeah, in the case of this client, so far, the idea is to make this an optional thing. Some players will not even use the notepad, or use basic functionality. So for now it'll be a dialog. I might add an option down the road to have it docked to the right!

Today I tested the client on Linux and I am happy to say it worked pretty well. We're probably pretty close to a release of a testing build.

The release will be on Github, probably, and I might even make it open source. If you got a github account, all I ask is that you give the repo a star :)

If you use Ubuntu or Windows and you want to help me test, message me on discord. I am deskoft.

The version I will send you still lacks:

- Reconnecting.
- Better UI for character notes.

Once that is finished and I've tested with some people, I'll release it to the public for Windows & Linux, and then MacOS.

We have significantly adapted the output of the terminal (main output) with Armageddon's output, which has made certain bugs reported by testers regarding helpfiles to be fixed.

There's still a bug where the PROMPT shows up from time to time (it shouldn't). I know the issue, I'll figure out a solution soon!

Quote from: deskoft on October 21, 2022, 09:58:08 PM
We have significantly adapted the output of the terminal (main output) with Armageddon's output, which has made certain bugs reported by testers regarding helpfiles to be fixed.

There's still a bug where the PROMPT shows up from time to time (it shouldn't). I know the issue, I'll figure out a solution soon!

Further optimized this so that it caches a message if it doesn't recognize an \n tag at the end. It caches it for a few milliseconds before releasing it anyways. However, if another message arrives afterwards that has an \n tag, it will release together with it. This will help with the prompt issue as well as will help with any kind of triggers we might create in the future. A huge issue is that arm's input sometimes cuts off. For example:

The young man
greets you with a nod.\r\n

In theory, it's not an issue. The client will only show a linebreak when you do \r\n. However! For my client it is, since I am using triggers for the healthbars and shit.

So I am happy about this new change.

Can you just set it up to expect a certain prompt, including starting/ending characters for ripping the prompt?
21sters Unite!

October 23, 2022, 11:21:33 AM #28 Last Edit: October 23, 2022, 11:23:16 AM by deskoft
That is what this does in essence, however there are certain inputs like login that don't throw an \n at the end.

Which is why it will wait 500 MS and send it if it doesn't receive anything else in that time. Like a mini cache.

I've tested it a couple of days now, works like a charm.

Exponentially improving the components that rule upon the note-taking system (but also will affect GUIs like SETTINGS in the future). You can now use ESCAPE to quicky close a dialog that allows being closed, rather than having to close the dialog.

October 24, 2022, 02:44:49 PM #30 Last Edit: October 24, 2022, 02:51:21 PM by deskoft
WIP Progress on Topics
You click on a search bar. It will open a search input text where you can search your existing objects, or you can create a new one as shown.



Here is the editor, which looks like this both when creating topics or editing them.



When you save it, it closes the editor. You have to search it again. Since this blocks the view of the terminal, you can also exit it quickly by pressing the key ESC. There are plans down the road to include a way to have the topic you select also show on the side bar.



That is what you see when you click on a topic you created (in this case, the one above). You can edit and delete it there.

This is a notable upgrade from the previous system. I believe the way this is set up, it will allow me to scale the system notably, considering the ambitions I have for it. I want it to be useful for a bunch of shit, including learning the price of things, recipe mapping, song/performance writing, schedule keeping (Byn or what ever), etc. Of course, all of these features are optional. If you are a vanilla guy, use other tools, or just don't like the way it is, you don't have to use it and it should not bother you.

I've spent the last few days making some general optimization and using some of the magic that Angular (RXJS) offers for better and more effective handling of Armageddon input.

Now, we got a reliable way for the app to know where the player is at (room names). What we do with it is yet to be defined -- but it was part of a more important optimization of the way messages are handled.

This update also makes triggers in general much easier to handle.

I'm also onboarding a potential contributor these days, and I'm hoping we'll get more when we go full open source and release the client.

October 28, 2022, 02:03:09 AM #32 Last Edit: October 28, 2022, 01:28:23 PM by deskoft
We've got a second contributor today, After.

He's done his first pull request on the client today, in which he made the text input autofocus and also he made the text input select the whole text upon input rather than delete it as I had been doing.

Pretty pumped for this project to have two contributors now.

If anyone wants to join in the fun, message me on Discord.

We're going to try to go on a feature lock so that we can release this soon. We're fixing some final things and also I've added a CONTEXT MENU that I am very excited to show to you all soon.

With those features, the idea is to make this public and open source for all to enjoy.

We're very likely releasing the Alpha build for this today.


Super excited for this, it looks/sounds awesome. I happen to be incredibly computer illiterate and don't know how to get it running.
Quote from: Cutthroat on August 22, 2009, 10:57:13 PMSo Eunoli Winrothol, Samos Rennik, and Thrain Ironsword walk into a bar. The Red Fang bartender looks up and says, "Get the fuck out of my bar."

That's a good ask; I'll work on updating the README (as a stopgap solution) later this week, and I have some ideas knocking around for a set-up walkthrough. I'll also try to get a post in here with some basic setup instructions. In the meantime, if anyone's got any questions or needs support getting set up, I'm available on the Discord at this same handle. I can't speak for deskoft@ but I'm assuming he's got a similar stance on it.

As a note, this build is currently only available for Windows. We're working on getting Linux and Mac builds live, but due to [redacted technobabble] it's more difficult. If anyone's on Mac and wants to try it out and knows at least your way around a terminal, I can get you set up with the same dev build I use.

Ooooo! Thanks for thinking of us Linux users! <3
Fredd-
i love being a nobles health points


Tried it out, but ran into a weird bug with the initial setup, the prompt command isn't working.  So none of the bars function.  Still works great as a client, but I'm not getting the full experience due to the bars not working.
"This is a game that has elves and magick, stop trying to make it realistic, you can't have them both in the same place."

"We have over 100 Unique Logins a week!" Checks who at 8pm EST, finds 20 other players but himself.  "Thanks Unique Logins!"


Quote from: Pariah on December 02, 2022, 08:48:43 AM
Tried it out, but ran into a weird bug with the initial setup, the prompt command isn't working.  So none of the bars function.  Still works great as a client, but I'm not getting the full experience due to the bars not working.

Encourage you to try the latest version and typing #prompt!

Quote from: AlohaSnackbar on December 06, 2022, 10:02:13 PM
Does it natively support logging to file?

We've been running some tests on this, this is coming very soon!

September 11, 2023, 03:36:51 PM #42 Last Edit: September 11, 2023, 03:39:25 PM by deskoft
This has been updated to represent the latest developments in the project. Enjoy the changes!

Everything has been optimized in general; you just click a button to set the prompt. It is now capable of running on pretty much any browser. There's new exciting things!

This has been going quite stable for some time. I'm quite happy with the results so far!

This project is much better than the original one and MUCH more UNIVERSAL. Any OS can use this client. You can access it anywhere. Let me know how it works or any pain points that you have. :)

I would appreciate any feedback.

There is a settings button that lets you enable the prompts and even set them.

Quote from: deskoft on September 22, 2023, 01:45:05 AMThis has been going quite stable for some time. I'm quite happy with the results so far!

This project is much better than the original one and MUCH more UNIVERSAL. Any OS can use this client. You can access it anywhere. Let me know how it works or any pain points that you have. :)

I would appreciate any feedback.

There is a settings button that lets you enable the prompts and even set them.

Even chrome? <3

Quote from: dumbstruck on September 22, 2023, 07:23:46 AM
Quote from: deskoft on September 22, 2023, 01:45:05 AMThis has been going quite stable for some time. I'm quite happy with the results so far!

This project is much better than the original one and MUCH more UNIVERSAL. Any OS can use this client. You can access it anywhere. Let me know how it works or any pain points that you have. :)

I would appreciate any feedback.

There is a settings button that lets you enable the prompts and even set them.

Even chrome? <3

Yes, absolutely! Even chrome!

As a coder this gives me "What have I been doing with my life?!" vibes.

-edit: And that's a compliment incase that was unclear.  This is cool.

The website in the original post just seems to be a static page for me. Using firefox. Help?