• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

KailleraNET, new chatting client on hold (current download available)

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
If you are coming back to apex, someone should pay you for this, amazing work so far
I am coming to apex. It would be cool if some people could donate, especially since it won't be profit but will go to recuperate some of my server costs. But it's not a big deal, I'm also doing this for a class and I'm not expecting it.

Some good things done week that I'll post about later - running the client completely in the background with windows closed, more tray events with notification settings, working ignore list, collapsible user categories, and some other stuff.
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
What are your plans for unicode support?
All encoding/decoding is done in UTF-8 (defined in the Kaillera spec). So far most characters look the same as they have been in old clients, .NET I believe has its own text stuff though and the font is not the same as the old clients.
 

C.SDK

Smash Ace
Joined
Oct 19, 2012
Messages
578
So if I typed something in another language someone else would be able to read the language instead of a bunch of gibberish or question marks? I know changing your system locale fixes this, but this makes Kaillera bug out and displays the main chat as one continuous line of text.

<test> hello
<test1> hello, test.

into

<test>hello<test1>hello, test.

:phone:
 

#HBC | ѕoup

The world is not beautiful, therefore it is.
Joined
Sep 15, 2010
Messages
6,865
This is really great and an update Kaillera has needed for a long time. Bless your heart, Firo.
 

dandan

Smash Lord
Joined
Feb 11, 2009
Messages
1,373
just wondering, why new windows and not in tabs, mainly speaking about chatting, i think maybe working in tabs would be easier/less cumbersome :)

good work.

are you writing this in c++ using mfc?
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
just wondering, why new windows and not in tabs, mainly speaking about chatting, i think maybe working in tabs would be easier/less cumbersome :)

good work.

are you writing this in c++ using mfc?

I'm writing this in C# using WPF (.NET 4.0). Didn't feel like dealing with memory management and the security problems this can introduce in an application like this. I chose to do new windows as people seemed to like having multiple windows so you can see the server chat and game chat at the same time, and you can resize and close them separately. That being said, tabs are nice and it definitely would have made coding this easier.

Changing up the GUI though is not too difficult, though, as although there are views and viewmodels for all the different windows, there is only one controller for the windows and everything is event based. So a tabbed interface is doable if I or someone wants to get around to it.
 

dandan

Smash Lord
Joined
Feb 11, 2009
Messages
1,373
i never really got into gui in visual studio (btw, are you using the new 2012 one with windows 8?).

i just code infrastructure on kernel modules at my work, so far away from gui :)
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
i never really got into gui in visual studio (btw, are you using the new 2012 one with windows 8?).

i just code infrastructure on kernel modules at my work, so far away from gui :)
I'm using 2010 right now since I started this project on it, and I don't feel like moving over in the middle of it. I'm targeting Windows XP as well so I can't take advantage of some of the new stuff in 2012.

Making GUIs isn't as bad as I thought it would be once I got over the initial learning curve. Visual Studio makes it pretty easy and kind of fun. During kernel stuff is good too although I'd much rather have my IDEs and debuggers around :bee:

So if I typed something in another language someone else would be able to read the language instead of a bunch of gibberish or question marks? I know changing your system locale fixes this, but this makes Kaillera bug out and displays the main chat as one continuous line of text.
I don't know too much about this so you'll have to try it and let me know. I will say that other characters show up fine when you are first typing them, but once you send them to the server, I'm getting gibberish back (copyright characters and the like) on Galaxy Chicago (running on a Windows 2003 server) and black diamonds with question marks back on Galaxy New York (running on Ubuntu). So I would try on both servers. I don't have language packs and stuff installed.


Just a couple more things I need to do before I'm ready to make an initial release of this.
It will probably need to wait until next week.

-Ability to make games
-Nice way to quit games
-Ability to kick people out of games
 

cmu6eh

Banned via Warnings
Joined
Apr 29, 2012
Messages
356
Location
Parterre
asciiencoding.utf16.getbytes() or utf8 or whatever in order to send the messages as unicode. the textboxes in wpf recognize unicode so you would be able to send/read other alphabits easily. Are you using rich text so we can do formatting like changing font, italic, bold, color, etc?
 

dandan

Smash Lord
Joined
Feb 11, 2009
Messages
1,373
Making GUIs isn't as bad as I thought it would be once I got over the initial learning curve. Visual Studio makes it pretty easy and kind of fun. During kernel stuff is good too although I'd much rather have my IDEs and debuggers around :bee:

KDB is good, and we actually have a way to run the kernel code in user space to debug it using GDB, which is amazing :)

on the IDE front, there are a lot, you can still use things like eclipse (well, sort of half breed eclipse the company made to suit our kernel programming), but most of the company is using source insight, which is not that amazing as an IDE, but it is amazing with huge projects, and I usually work on a project with 3000+ files and about 10-15 mil lines of code, so it suits it very well.
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
I am sending and decoding using UTF8. Encoding.UTF8.GetBytes() is used.
The problem is not with the client, I think, but more with the server. I haven't really taken a look at what encoding the emulinker servers are using. I assume it is UTF8, but it's Java and is system dependent. Next time the NY servers go down I'll start it up with UTF8 and see what happens.

It is using a rich text box. Kaillera protocol is text only, but text formatting can (and is) done on the client side.

What protocol is the server/client using?
The kaillera protocol is available here:
http://sourceforge.net/projects/okai/files/protocols/base protocol 0.83/

KDB is good, and we actually have a way to run the kernel code in user space to debug it using GDB, which is amazing :)

on the IDE front, there are a lot, you can still use things like eclipse (well, sort of half breed eclipse the company made to suit our kernel programming), but most of the company is using source insight, which is not that amazing as an IDE, but it is amazing with huge projects, and I usually work on a project with 3000+ files and about 10-15 mil lines of code, so it suits it very well.
Nice! Sounds like some interesting stuff. I haven't heard of source insight but it seems like it's a good tool.

A question - I'm in the process of creating keyboard shortcuts for some of the common commands (send PM, find user, quit game, etc.). Any suggestions for what keys (conrtol + something) some of these should be?
 

dandan

Smash Lord
Joined
Feb 11, 2009
Messages
1,373
A question - I'm in the process of creating keyboard shortcuts for some of the common commands (send PM, find user, quit game, etc.). Any suggestions for what keys (conrtol + something) some of these should be?
i would suggest sticking with microsoft shortcuts. sort of taking it from outlook.
use alt+s for sending a pm, ctrl+f for searching, ctrl+w for quitting a game and so on.
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
i would suggest sticking with microsoft shortcuts. sort of taking it from outlook.
use alt+s for sending a pm, ctrl+f for searching, ctrl+w for quitting a game and so on.
Hm, I wasn't familiar with alt+s before. I'll put that one in.

With the help of some nice code available online I was able to make global hotkeys. That is, keyboard shortcuts that can bring up the different windows regardless of what application you are working in. Here they are as of now:

Show user list: Control+Shift+U
Show game list: Contol+Shift+G
Show server chat: Control+Shift+S
Disconnect: Control+Shift+D
Collapse to tray: Control+Shift+M

and a couple others. I'll publish the full list with the release. Let me know if there are existing conflicts with some applications, and I can change them. These shortcuts make interacting with the client very nice and convenient.

I have game leaving and creating functioning, I just need to get boot/kick working and then a basic options menu and then we are good to go for the first release. If there's any other quick feature people want before I get this out, let me know. It might be a couple of weeks before I can work on this heavily again.
 

C.SDK

Smash Ace
Joined
Oct 19, 2012
Messages
578
Will the value in the ping spoof box stay there even when you close Kaillera? It currently doesn't. What have you done about the long hang up time when you try to join a server that isn't online? I think that donkey.KONG guy mentioned that so I think it's possible to fix that.

What about the command buttons? Currently in the latest ownasaurus client, the buttons are way too close to each other and sometimes you click the wrong one.

EDIT: also, can you PM me the latest Emulinker software?

:phone:
 

dandan

Smash Lord
Joined
Feb 11, 2009
Messages
1,373
be sure to give an option to deactivate the global hotkeys, as they might clash with other applications. i would personally put them off by default.
 

KnitePhox

Smash Lord
Joined
Oct 17, 2005
Messages
1,838
Location
Chicago, IL
Can u somehow integrate the taskkill .bat from the smash64 stickied guide thread JaimeHR made and possibly a editable shortcut path so we can open pj from the chat window?

Holy.....epiphany, make a bunch of editable shortcuts available for different emulators on kaillera and one slightly longer .bat to task kill them all....Fuuuuuuq it would be awesome opening/closing all kaillera available emulators from a kaillera chat program instead of different shortcut or program locations...

Is this too complex to integerate in the future?
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
Can u somehow integrate the taskkill .bat from the smash64 stickied guide thread JaimeHR made and possibly a editable shortcut path so we can open pj from the chat window?

Holy.....epiphany, make a bunch of editable shortcuts available for different emulators on kaillera and one slightly longer .bat to task kill them all....Fuuuuuuq it would be awesome opening/closing all kaillera available emulators from a kaillera chat program instead of different shortcut or program locations...

Is this too complex to integerate in the future?
That's a good idea. I'm pretty sure this is doable, it's something that would be useful and I'll look into it.

As far as I know, I could launch/kill pj64 pretty easily (via keyboard shortcut if you wanted :D) but I don't think I could do anything after that. There's no shortcut options for project64 (I think) so as much as I would want to be able to log you on and join a game, it doesn't seem doable automatically right now, unless I can call methods in pj64k.exe and the kaillera DLL from my program. Not sure if all that is possible. I'll see what I can do.

dandan - Yes, there is an option to turn off the shortcuts

Morino - Note that this is a chat application and so ping, connection type and the like doesn't really matter. I don't even have them showing up in the userlist right now. However saving the pingspoof in the old client is just a couple of lines if someone wanted to get around to it. My application tries to connect to a server for about two seconds then aborts. And sure, I'll pm you emulinker stuff when I get around to it.
 

dandan

Smash Lord
Joined
Feb 11, 2009
Messages
1,373
i would think that has to do more with the protocol + server side, kaillera is just way outdated and was not a real good protocol to begin with.

but no one is going to do any work to come up with a new protocol or adjust some from recent games.
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
I'm currently putting this on hold as I am (slowly) working on something kaillera-related that takes precedence. If you would like to try this out in its current state you can download it from the link here. There are bugs so just be aware.

PLEASE check the readme in the folder if you intend to try this.
https://www.dropbox.com/s/1se6j62n654lt9l/KailleraNET.zip

Also I'd appreciate if this wasn't reuploaded somewhere else - just direct people to that link. I want to be able to take it down in case there are any security issues with it.

I probably won't be actively helping people or answering questions or taking suggestions for this right now. I'll probably update the source code to it's current state at some point. That being said, if you find it useful (I do, but I suspect most people won't since it is quite different from what people are used to), you can let me know.
 

firo

Smash Ace
Joined
Jul 27, 2008
Messages
600
Location
Champaign, Illinois
I have stopped working on this - it is pretty functional and has its uses, especially if you enjoy leaving kaillera open and using it to chat. Unfortunately the way kaillera is designed and the bugs it has makes some of the things I planned for this client to be a bot wonky. I would have liked to be easily able to edit the server along with the client to add new features but updating emulinker is a huge pain (the 18.5 minute lagout bug for example has been fixed for a while now, but I haven't been able to make that fix on Galaxy successfully due to other problems).

Some things about this client:

-Having presence-awareness (knowing when friends are logging in and out) doesn't work too great when people are playing games, since desynch and lagouts make them log out and in quite often. Getting notifications for this can get pretty annoying.

-Kaillera does not broadcast what people are doing, so there is no way to tell if someone is playing or not unless you use the /finduser command, and I don't want to spam it constantly to update the status of users

-Some people didn't like the windowed interface, which is understandable, since it is quite different from what people are used to

-Since this is C#, getting gameplay working would be very tedious as all the emulators are written in C++.

What this does provide, however, is a stable implementation of kaillera in C# and a way for someone to continue working with it, like Han Solo is. I learned a ton from working on this client though and it has certainly helped me become better at developing.
 

Komotonoto

Smash Journeyman
Joined
May 13, 2012
Messages
422
Location
5h17c490
I have stopped working on this - it is pretty functional and has its uses, especially if you enjoy leaving kaillera open and using it to chat. Unfortunately the way kaillera is designed and the bugs it has makes some of the things I planned for this client to be a bot wonky. I would have liked to be easily able to edit the server along with the client to add new features but updating emulinker is a huge pain (the 18.5 minute lagout bug for example has been fixed for a while now, but I haven't been able to make that fix on Galaxy successfully due to other problems).

Some things about this client:

-Having presence-awareness (knowing when friends are logging in and out) doesn't work too great when people are playing games, since desynch and lagouts make them log out and in quite often. Getting notifications for this can get pretty annoying.

-Kaillera does not broadcast what people are doing, so there is no way to tell if someone is playing or not unless you use the /finduser command, and I don't want to spam it constantly to update the status of users

-Some people didn't like the windowed interface, which is understandable, since it is quite different from what people are used to

-Since this is C#, getting gameplay working would be very tedious as all the emulators are written in C++.

What this does provide, however, is a stable implementation of kaillera in C# and a way for someone to continue working with it, like Han Solo is. I learned a ton from working on this client though and it has certainly helped me become better at developing.
I would help out if the coding was as simple as html or something like that... =\
 
Top Bottom