Pesterchum godot
Pesterchum Godot
Pesterchum IRC client made with the Godot engine 3.5, targeting desktop, android, and the web. Inspired by the QT Pesterchum client.
This project intends to replace Chumdroid (an old android client), as well as provide a universal experience across webbrowsers, phones, & desktops.
What's pesterchum??
From the original Pesterchum client repository:
Pesterchum is an instant messaging client copying the look and feel of clients from Andrew Hussie's webcomic Homestuck.
How is this different?
The biggest difference between Pesterchum Godot & normal Pesterchum are:
- Support for android & web
- Adaptive window scaling
- A lot more powerful (but more complicated) theming options (Theme support is currently WIP)
You can view all pesterchum clients on pesterchum.xyz, they're all (mostly) compatible with eachother!
Open source
Pesterchum is open source & licensed under the GNU General Public License v3.0
You can view the source code on the gitlab here: https://gitlab.com/mocchapi/pesterchum-godot
So what's the state of affairs
Pesterchum Godot is wip right now, but the important stuff works
For a more specific & up-to-date feature list, check the TODO.md file
These things work:
- Moods, Chumhandles, & colored text
- Memos with time controls
- Metadata protocol support!
- Multiple profiles
- Highly customizable automatic text quirks
- Compact mobile view or expanded desktop view
- Web browser, android, & desktop versions
- Different themes (WIP) currently, pesterchum & trollian
- Global user & memo list
- Custom servers
- Emotes (i.e. :brocool: becomes )
- Connecting over Websocket, TCP, & TLS
- Chumrolls
- IRC mode to make it more friendly to normal servers
Things that are currently missing:
- More settings implementations
- Saving pesterlogs to disk
- Animated emotes
- Message sounds
- Many bug fixes
Post-v1/long-term goals (unlikely!!!):
- Background processing for android
- Publishing to android playstore
- Push notifications
Things that will never happen:
- IOS versions.
Apple makes it incredibly difficult (and expensive) to develop software for their platforms, so unless someone has the know-how & the monetary resources to get it working and put on the IOS App store, this will not happen.
You can however use the web build on IOS & add it to your homescreen, which should work.
Attribution
Fonts
- Courier prime is licensed under the SIL open font license
- Also we use Noto emoji and GNU freefont! Check the license files in assets/font/source
- GNU unifont
- TYPOSTUCK, by Speherh is also used, which is licensed under the Creative Commons 3.0 Attribution license.
- W95FA by FontsArena is licensed under the SIL open font license
Textures/images/art
- All emotes and mood images are sourced from the pesterchum desktop client
Misc
This software and its "Pesterchum" and "Trollian" themes are inspired by the Homestuck web comic by Andrew Hussie & other and musicians
proper in-app attribution is coming pls dont sue <3
Status | In development |
Category | Tool |
Platforms | HTML5, Windows, macOS, Linux, Android |
Author | (lis)anne |
Made with | Godot, Aseprite |
Tags | chat, Godot, homestuck, pesterchum |
Code license | GNU General Public License v3.0 (GPL) |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Mouse, Touchscreen, Smartphone |
Multiplayer | Server-based networked multiplayer |
Links | Source code |
Download
Development log
- Alpha 9 releasedSep 14, 2023
Comments
Log in with itch.io to leave a comment.
i dont know if im just a dummy, but i cannot change my user for the LIFE of me on my phone :sobbing: like, im pressing the enter button here!
ok nevermind My phone just decided to glitch for whatever reason...
3rd time, I'm back, my phone has enough storage and all boxes are checked for installation on Android, I'm on android 12, and it keeps saing app not installed
It works now
On android when I send a message there's an error with the send button, basically, when I send a message, the auto correct thinks its still typing the same thing, and I have to tap on the screen, off of the keyboard, then reopen the keyboard.
this is a known issue, but unfortunately i do not think its something i can fix :s
Im not sure if anyone else is having this problem but i am unable to pester anyone, or at least im unable to have them see my messages 😅 i changed my handle as well, just in case that was a problem. But im still having a bit of trouble.
How did you make an IRC client in Godot engine?
i wrote the IRC library! if you want to use it you can find it in the source code on gitlab. contrary to the rest of the project i licensed it under MIT, so you’re free to include it on whatever mit covers as long as you attribute properly :P
do keep in mind that its not fully featured, but it has everything that pesterchum needs to work so all normal messaging functionality is there and such. ymmv etc etc.
Which file would I have to download and put in my godot project? Anything that's a .GD file?
Edit: I just saw that the whole thing is in the addons/IRCClient directory, so I would have to add all the files.
yeah, u should copy the addons/ircclient directory into ur project as-is
I'm assuming I should add it to a 2D node based project?
it doesnt matter what the root/parent nodes are, you just need to add the IRCClient node to ur current scene & configure it as you need. the node itself tracks very little so for almost all things you will need to connect to its signals
What does the green star looking thing mean next to a tag
if you mean this icon in the userlist, it means its a canon handle. its someone RPing as a character from the comics with the same handle as in the comics
i managed to connect and implement my quirk!!!!! this is amaziiiiingg!!!!!!!!!!!
glad u enjoy :)
this is nuuuuuts~!!! i just tried it on the phone! I'm admittedly not very savvy and i think i need someone to host a server that i can join in the first place, but ooooh my god!!!!! the amount of work you must've put into this, it looks absolutely amazing!!!!! I can't wait to see how it'll develop in the future, so excited for this!!!
i have to admit this whole thing looks like pure magic to me! I'll be giving it a try on android if thats okay, thank you so much for putting the time and effort! it looks incredibly interesting!
This is super cool! I was just curious, though, why are push notifications an unlikely feature? If its hard to set up or something I totally understand, it just seems like a foundational thing for a mobile chat client. I remember chumdroid having notifications, but thats like super outdated and nigh unusable now, so its just sort of a shame theres no way to get mobile notifs anymore. Great work either way though, dont want to sound too negative!
hi! thanks for using pchum godot
the push notifications thing is mostly due to what framework im using to build the app. I use the godot (game) engine, which is (as you may have guessed) mostly for making games. It just happens to be really chill and nice to work with for apps/software aswell. This + the fact that it works on a bunch of platforms (and so isnt optimized for phones specifically) means its not really intended for something like this. Through godot i dont have a way to easily access the direct platform integrations (like the android system libraries) which is required to make background notifs work. It is possible but quite challenging though.
Android is very picky about how your app behaves if you want it to do things in the background, which is why there is no ready-made fix for this kinda thing inside godot. there is a way i can make this work, and ive been working on it on & off for a little while now. It has some caveats like how i need to move some of the technical innards to the Java language and such, but i think i have a way to make it possible. Its just a very specific solution, and i have very very little experience with Java & the android libraries so i havent been able to make it work quite yet. i do intend to have the next update have background processing at the very least (so you don’t get disconnected when you leave the app) and i think if that works, notifications should also be possible.
thanks for the comment, and i hope this was a decent explanation :P
Thank you so much for the explanation! I was more curious than anything, this explained it pretty well :D
Great work, hope to see this supported a while. Love that this exists, I remember when the OG app was around. I'm also really, really glad this is open source. If you could get the log saving to work, this would actually be really, really handy for roleplaying communities in general outside Homestuck. MU* engines are really old, with only two Telnet clients for such that are really worth mentioning. Thus: I am really excited to see this develop.
swag! if you have a desperate need for log saving theres the current up-to-date desktop client u can use on PC (https://github.com/Dpeta/pesterchum-alt-servers) otherwise yeah itll take a little while more until i can return to this project more actively :P (also, what is a MU* engine ‘w’)
MU* refers to things like the earliest multiplayer games, "Multi-User Dungeons." The original MUDs were often based on Rogue, which is the origin of the term and genre, Roguelike. Over time, they evolved to include many more features and people came up with versions that centered around roleplay, sometimes called MUSH (multi-user shared hallucination), MUX, MOO, etc. The easiest way to refer to them became MU*. (The star symbol was used as a wildcard character, to indicate you didn't want an exact search on early computers.)
MU* usually relies on the same kind of telenet clients that power IRC, but usually have additional feature to support things like dicerolls and a room. PennMUSH, DikuMUD and Evennia are examples of clients for creating MU* servers. Evennia is the most recent one, powered by Python so you can actually understand its code if you are using GDScript!
Graphical MUDs were the precursor to MMOs and a few are even still in operation decades later!
In fact, Everquest, the first game to be called an MMO used DikuMUD under the hood and actually got sued by the college that maintained it for not giving proper credit and therefore breaking terms of service!
it zooms in on text boxes on ios and i cant zoom out
:o[
bluhh sorry 2 hear :[ im not really sure if i can fix that, i dont have an ios device to test stuff with myself & i dont think godot gives enough control over the html output to really fix something like that, but i can certainly try look into it
i think it has something to do with font size if that helps :o?
doesnt work on browser
hi howdy sorry to hear its not working for you, could you describe what happens/doesnt happen when you press the run button :? which browser & operating system youre on could also be useful if you dont mind