Jump to content

JKChat A.K.A. Jedi Knight mobile application


Recommended Posts

Hello, everyone.

I am excited to show you a mobile application that I am developing right now.
It's Jedi Knight Chat or simply JKChat mobile application. (The name is not final and mays be changed in the future.)
The app lets you connect and chat on Jedi Knight: Jedi Academy and Jedi Knight II: Jedi Outcast servers without a computer.

t302t0l.pngrnPmvSY.png

The idea of the application is to be able to chat with your mates on game servers when you don't have access to your computer at current moment.
It could be useful for people who are coming back from work, and would like to notify their friends they will be able to play soon with those who are on the server right now.
Also it could be useful for people who barely play but like to chat with their old mates from 00s who they played a lot with back then.
Also RP servers would probably like the application.
Well, everyone has their own reason for chatting in this game.

Also the 2nd feature is the application could be useful for server admins. You will be able to manage your server remotely from your mobile device when something serious is happening on your server (partially implemented).

It's only the first stage of the app and it's still in active development, the second stage will be started once I gather some feedback after the alpha test.
I stream the development on https://www.twitch.tv/entdark/videos
Recordings of the development on YouTube: 

 

Enough words. I have come here to invite you to the alpha test of the application.
For iOS users:
Install TestFlight: https://apps.apple.com/app/testflight/id899247664
Then open that link on your iOS device: https://testflight.apple.com/join/5HSqhVHw
For Android users:
Install directly from APK: https://www.dropbox.com/s/ptx301a1pas39n9/com.vlbor.jkchat.apk?dl=1
Install from Google Play: https://play.google.com/store/apps/details?id=com.vlbor.jkchat

The app source code: https://github.com/entdark/JKChat

Latest changelog:

Spoiler
Changed:
- remade UI of informative and players chat messages
- bottom navigation bar now matches app theme on Android

After trying the application, please, leave a feedback of what you'd like to see in the future. Yes, you can request any feature you want.
It's not necessarily to be only limited to chat, I could implement other game features. Probably everything is possible that doesn't require game assets.
Also if you encounter any error, then please report me either in the feedback form in TestFlight or in this JKHub post or in JKHub PM or on discord PM: ent#9404.
Report the error either by copying it or taking a screenshot and showing me or just telling the steps to reproduce.

Thanks.

tumblr_lfhua3UHGR1qzvcyt.gif

 

Edited by ent
Added a link to source code
mrwonko, Bart, Aldro Koon and 3 others like this
Link to comment

Not trying to heckle here, but could you elaborate on what brings you to develop this? On one hand, its kind of neat. On the other, it seems severely outdated with the existence of Discord and more standardized utilities for accessing the server remotely. 

Additional question: By the looks of it, I'm guessing you'd essentially have to send a bot to a server and the bot speaks on behalf of the user, right? Won't that artificially bloat the player count? Also, how would this work on, say, a duel server where players are not able to simply spectate?

Like I said though, looks neat! When admin command stuff comes out, I still expect most clans to take an interest. 

Link to comment

@Wolfeye
Hi, thanks for your questions.

I am from a CTF community where some players really sit a lot in spec and chat and they are not chatting on Discord at that moment. That was the origin of the idea. Also not everyone knows and uses Discord. And something that happens on the server stays on the server, and none will copy-paste chat logs from there to Discord to stay on topic.
As I also said everyone has their own reason to chat.

You got it wrong. You don't send any bot on the server, you connect yourself. I have rewritten JA engine to become a standalone client that doesn't need assets. So you connect as you usually connect from your computer.

Duel server is a special case, yeah. There are a lot of such cases. That's why I made it public alpha test so people will tell me about every issue they will find.
So you will probably stay still on a duel server since you are only able to chat now.

Link to comment

Here are some bugs I've found:

The app disconnects from a server after minimizing/switching to a different app.

I also sometimes get this message after minimizing:

"  at System.Net.Sockets.Socket.SendTo (System.Byte[] buffer, System.Int32 offset, System.Int32 size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) [0x00082] in <6ce0115d2e3845dd8fc0ee4176fac1a6>:0 
  at System.Net.Sockets.Socket.SendTo (System.Byte[] buffer, System.Int32 size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP) [0x00000] in <6ce0115d2e3845dd8fc0ee4176fac1a6>:0 
  at JKClient.NetSystem.SendPacket (System.Int32 length, System.Byte[] data, JKClient.NetAddress address) [0x00018] in <427023c82f9f4ab2b9d7d9fe48c4af6c>:0 
  at JKClient.NetChannel.Transmit (System.Int32 length, System.Byte[] data) [0x000af] in <427023c82f9f4ab2b9d7d9fe48c4af6c>:0 
  at JKClient.JKClient.WritePacket () [0x001e5] in <427023c82f9f4ab2b9d7d9fe48c4af6c>:0 
  at JKClient.JKClient.SendCmd () [0x0003e] in <427023c82f9f4ab2b9d7d9fe48c4af6c>:0 
  at JKClient.JKClient.Run () [0x00025] in <427023c82f9f4ab2b9d7d9fe48c4af6c>:0 "

 

The orange text color (^9) shows as black.
 
I will continue to test it during the week.
 
I look forward to the filter feature to sort servers by map, player count, gametype, favorites, etc. I also would like an option to view playerlist before and after connecting to a server. I'd also suggest an  option to view scoreboard with player icons or player icons next to a player's name.
 
The app is amazing. You are a genius, sir. Thank you.
Edited by Circa
formatting fixes
ent likes this
Link to comment

Would love to see sorting options for servers, like amount of players and gametype. Peeking player names would be cool too, to see who is on the server before you join it. 

Then of course rcon abilities will be a nice and helpful addition.

ent likes this
Link to comment
4 hours ago, ent said:

No, there isn't, unfortunately.

Could be doable with some serverside modications. Tricking the servers to not see players who connect via the app as not actual players.  I'd imagine you'd run into so many issues with that though. For example not sure if there would be any networking hardlimits to having loads of people connecting. 

 

Another option is to have people connect via Rcon with only the ability to see chat messages and send messages.  But  more issues there as well.

Another option. Have one 'master' client connect to the server. Who can read all the messages relay it back to the app.  Then people on the app can send chat through the single APP bot.  With a simple script to attach a unique indentifer to each message.

e.g.

Appbot: Rogers says    I dont like toads

Appbot: Leeroy says     I like toads

 

I dunno just spit balling.  To be honest most servers are not even active enough for this to be a issue .

 

It looks good though, I'll check it out in a bit.

 

 

 

 

Link to comment
2 hours ago, Bubbles said:

Could be doable with some serverside modications.

With that logic, everything is doable.

I thought about many options too. And many of them require either modifications but that requires to put an extra effort and who will even use that change in their mods/engines? They won't bother. Or to run an extra server that controls the master client. And what if that server is down?

There are some more options but believe me it's better to leave everything as is and put the effort into completing the app rather than fixing the logic behind clients taking slots.
Clients that take slots issue could be considered after everything is done.

2 hours ago, Bubbles said:

To be honest most servers are not even active enough for this to be a issue .

Nailed it.

Link to comment
13 hours ago, Bubbles said:

I dunno just spit balling.  To be honest most servers are not even active enough for this to be a issue .

 

11 hours ago, ent said:

Nailed it.

Problem is that ours is and we probably have to ban this client if it (in theory) is widespread lol.

Link to comment
18 minutes ago, Aldro Koon said:

Problem is that ours is and we probably have to ban this client if it (in theory) is widespread lol.

I understand and cannot help with it. Sorry.
Currently putting any effort into making special protocol for mobile clients is not considered.

Link to comment
5 hours ago, Aldro Koon said:

Problem is that ours is and we probably have to ban this client if it (in theory) is widespread lol.

I thought your server had a feature that removes clients if they are inactive after a certain amount of time? Might of been another server, cant remember.

Also will I get banned for killing the app bots 😛

 

@ent

You considered making a standalone windows version? I bet quite a few would use it considering Jedi Academy is basically a chat app in itself right now for many people. 😛 

Link to comment
  • 3 weeks later...

New features are upcoming:

jk2 servers support - done
server commands - done
refreshing server list - done
background execution - implemeting

Fixed some bugs (especially for often crashing iOS) and made some improvements - thanks for reports.

Expect a new version very soon.

fokai and Circa like this
Link to comment

Updated the app.

For iOS users:
Install TestFlight: https://apps.apple.com/app/testflight/id899247664
Then open that link on your iOS device: https://testflight.apple.com/join/5HSqhVHw
For Android users:
Install directly from APK: https://www.dropbox.com/s/ptx301a1pas39n9/com.vlbor.jkchat.apk?dl=1
Install from Google Play: https://play.google.com/store/apps/details?id=com.vlbor.jkchat

Added:
- Jedi Knight: Jedi Outcast servers support (v1.02, v1.03, v1.04)
- pull-to-refresh feature to refresh server list
- informative dialog windows (if you got kicked, if server is full etc)
- server commands support (a message that starts with "/")
- server printing messages (temorary UI, it will be remade in the future)
- a possibility to connect to multiple servers
- background support: endless on Android, ~30 seconds on iOS
- interactive keyboard on iOS
- restoring connection

Fixed:
- crashes when leaving chat on iOS
- always displaying errors when maximizing the app on iOS
- inability to show server list on Android 11
- reloading the app after screen rotation on Android

I also streamed the development of some features above recently (3 new recordings): https://www.twitch.tv/entdark/videos

You also asked many other features, but they require new UI and a person who is responsible for UI is busy now so it's delayed a bit.

After trying the application, please, leave a feedback of what you'd like see in the future. Yes, you can request any feature you want.
It's not necessarily to be only limited to chat, I could implement other game features. Probably everything is possible that doesn't require game assets.
Also if you encounter any error, then please report me either in the feedback form in TestFlight or in this JKHub post or in JKHub PM or on discord PM: ent#9404.
Report the error either by copying it or taking a screenshot and showing me or just telling the steps to reproduce.

Smoo likes this
Link to comment

Made one more hotfix, but for Android only.
Links are the same.

Fixed:
- annoying frequent sounds from notification
- blank server print messages
- crashes on old devices
Added:
- disconnect from all the servers on app minimizing with Back button (foreground notification disappears)
- disconnect from all the servers on app closing/swiping from the Recents screen (foreground notification disappears)

For both Android and iOS: if you want to manually disconnect from certain server, just type "/disconnect" (without quotes) there.

Smoo likes this
Link to comment

I absolutely goddamn love this thing, it's definitely top 3 best JK-things to come out since at least 2018 😍

It's insanely useful for my RP group - it allows to easily play as a character that's unavailable personally, but reachable via comlink. Allows you to jump in for some basic activity from anywhere if you want to. Hell, if electricity dies or something like that - you have an option to finish the game via some simple message instead of just randomly disconnecting in the middle of the scene.

The fact that most admin commands in most mods I know are defined in Jampgame allows you to use admin features remotely if people on the server need some admin stuff done, yet nobody is on their PCs.

Totally brilliant, insanely useful thing!

As far as any suggestions go (but all the important stuff and ability to do all those things is already here), I would probably go for:

  • ability to change your nickname with some button
  • an option to put some servers on top, some Favorites-list, something like that; after you disconnect and restart the app, you need to search for your server manually again
  • maybe an ability to connect via manually-inserted IPs; not sure here, since I use one server only, but maybe some people would find it useful for unlisted servers or stuff like that?
  • maybe some thingy that's put somewhere in userinfo, honestly anywhere, maybe even in a random place, like the saber name, to identify the users? Mod-creators could include some specific stuff in their code so that some mod-specific stuff (like special chats or something) is sent in a default, normal way to the user of the app so it uses the proper channels etc.

 

10/10 thing!

And thanks again for including OJP's modded playerStates 😁

Smoo and Circa like this
Link to comment

IMPORTANT: I hear all your suggestions, guys, but as I told earlier, some features require new UI and it's still in development. Be patient, please.

Updated the app.

For iOS users:
Install TestFlight: https://apps.apple.com/app/testflight/id899247664
Then open that link on your iOS device: https://testflight.apple.com/join/5HSqhVHw
For Android users:
Install directly from APK: https://www.dropbox.com/s/ptx301a1pas39n9/com.vlbor.jkchat.apk?dl=1
Install from Google Play: https://play.google.com/store/apps/details?id=com.vlbor.jkchat

Added:
- added recent servers that appear on top of the server list
- added always displaying a dialog window for choosing nickname on app start
- added "/rcon" command support
- added a possibility to disconnect from server by clicking "Back" arrow on navigation bar
(clicking system "Back" button on Android or swiping left-to-right on iOS will just navigate you back to server list without disconnection)

Fixed:
- fixed displaying blank window on iOS 12 and lower
- fixed never displaying server print messages on iOS 12 and lower

I also streamed the development of some features above recently (2 new recordings): https://www.twitch.tv/entdark/videos

After trying the application, please, leave a feedback of what you'd like see in the future. Yes, you can request any feature you want.
It's not necessarily to be only limited to chat, I could implement other game features. Probably everything is possible that doesn't require game assets.
Also if you encounter any error, then please report me either in the feedback form in TestFlight or in this JKHub post or in JKHub PM or on discord PM: ent#9404.
Report the error either by copying it or taking a screenshot and showing me or just telling the steps to reproduce.

Circa, Smoo and Bart like this
Link to comment

IMPORTANT note for those who download from Google Play Store: if you have never downloaded the app or uninstalled it previously, then after installing, it will offer you to update the app. So make sure to not leave the Google Play Store app page and update the app after initial installation.

Link to comment

One more hotfix for both Android and iOS.
Fixed getting an error on JO servers when sending a message with non-ASCII characters.

And new experimental feature for iOS: endless background execution.
That is achieved by using GPS tracking. You have to grant a permission to the app to use location updates "Always". If you denied the permission or only granted "When in use" but want to let the app always stay in background anyways, then enable "Always" in Settings -> JKChat.iOS -> Geolocation.
Location is not actually tracked, if you care about privacy. It's only requested to be updated on background so it keeps the app alive all the time.
Of course, if you do not want the app to execute on background then deny that permission and use the app same as before.

Links are the same.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...