[Linux Lobby] AFLobby Beta 3.9.7 - Page 17

[Linux Lobby] AFLobby Beta 3.9.7

Discuss everything related to running Spring on your chosen distribution of Linux.

Moderator: Moderators

User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Ifein, I shouldnt have issues with other VMs with alpha 24, your using 23, but I do think the Sun java runtime is best used. Try checking the file permissions on the files.

I have fixed many of the bugs I and relative have found today and now have a build that generates scripts correctly in large games.

I've also added player joined/left messages for battles, tweaked channel joining colour, and added little icons on channel tabs that have unread messages.

I also fixed a bug with battle table rows.

Beta 1 works, and will be released in the next 3-4 days.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

http://www.sbbi.net/site/upnp/docs/natmappings.html

UPnP support looks a lot nicer than the holepunching, and it only requires that a UDP packet then be sent through the mapped port to the holepunch server for backwards compatability.
User avatar
lale
Posts: 73
Joined: 29 Apr 2007, 08:36

Post by lale »

UPNP is nice, and in theory as well as in reality, it works.

But do not rely on UPNP as the only nat transversal method..

Microsoft as well as a whole lot of router manufactures recommend this protocol to be switch off (in the router and windows), due to security issues.

http://www.securityview.org/how-does-th ... works.html

Basically the current implementation of the authentication in UPNP is flawed.

Give people a choice ^_^
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

I bring great tidings! Aflobby script generation.... works! All the necessary basic lobby features are working now, so its only a matter of time before a working beta build comes out, although I don't speak for AF. There is only one issue remaining, which shouldn't be a problem.
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Post by PauloMorfeo »

paulo@portatil:~/Desktop/nova pasta$ sh aflobby.sh make sure AFLobby and libunitsync.so is in your current working folder
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
at java.awt.EventQueue.invokeLater(libgcj.so.7)
at javax.swing.SwingUtilities.invokeLater(libgcj.so.7)
at aflobby.Main.main(Main.java:87)
Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit
at java.lang.Class.forName(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
...3 more
Any idea? NetBeans starts up properly and it is, as far as i know, a java aplication...

Just in case, i even tried:
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.00/
But i gave same result.
By the way, i tried the one on the first link
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

PauloMorfeo wrote:
There have been a number of changes since then, your problem may already be fixed, although I haven't seen that before.
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Post by PauloMorfeo »

Forgot to mention, i don't have Spring installed. I just wanted to test the loby and check out who was hanging around in the lobby and stuff.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Code: Select all

gnu.java.awt.peer.gtk.GtkToolkit
This is unfamiliar, I dont know if this is something todo with your setup, or some part of swings implementation specific to GTK environments.

If Sun java 6 is installed correctly it should work, however I dont have a clue whats causing your issue, and no aflobby classes are in that stacktrace.

Not having spring installed will just mean you cant join battles and youll get a few warning dialogs such as the JNI error unitsync not found etc.
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Post by PauloMorfeo »

I am using Ubuntu 6.04 (or similar) and i installed java through the oficial package manager, Synaptic. Also, it is the java virtual machine 1.6.

However, truth be told, when i installed netbeans the installer searched and said it could not find any JDK. I had to "export JAVA_HOME=/bla/bla".
However however, if he wasn't finding java, it wouldn't be running the lobby client to the point of reaching the error at all...

I think i may try deinstalling the whole java and reinstalling it again. Or something.

hmmmm:
paulo@portatil:~/Desktop/nova pasta$ /usr/bin/java aflobby.jar
Exception in thread "main" java.lang.NoClassDefFoundError: aflobby.jar
at gnu.java.lang.MainThread.run(libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: aflobby.jar not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

Script generation is perfect now, and it is now possible for me to play games.


Yay!

However, there are currently two issues with the build you gave me last night. Firstly, spring does not launch if you are a spectator, only if you are a player. Secondly, when the host closes the battle lobby spring crashes with this in the terminal:

Code: Select all

infoid:50961 BATTLECLOSED 50961
Perhaps instead of exiting the window you could mimic TASclient by a message in the chat box saying "Host Closed Server" or "Host Disconnected". Thus allowing the user to close it manually.

Once those two minor issues are fixed issues we will then have a fully functioning multi-platform (and more importantly Linux) lobby.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Your stacktrace is missing a stacktrace relative, provide at least 10 lines before and after any 1 liner message.

Paulomorfeo

JRE != JDK
Java runtime environment != Java development kit

And yes the build I have here pops up the window in the corner with a message saying the host exited.

I'll investigate the spectator error.
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

There was no stacktrace, that was all that there is. Here is an example:

Code: Select all

/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg
/home/rutter/.aflobby/Small Supreme Battlefield.smf.jpg

infoid:51574 BATTLECLOSED 51574

User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Its not an error mesage its a debug message to make it clear that the battles been closed.

run with the -verbose parameter.
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

Code: Select all

[Loaded javax.swing.SystemEventQueueUtilities$RunnableCanvas from shared objects file]
[Loaded javax.swing.SystemEventQueueUtilities$RunnableCanvasGraphics from shared objects file]
[Loaded java.awt.Component$FlipBufferStrategy from shared objects file]
[Loaded sun.awt.X11.XDestroyWindowEvent from shared objects file]
[Loaded java.awt.KeyboardFocusManager$1 from /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar]
[Loaded sun.reflect.GeneratedMethodAccessor11 from __JVM_DefineClass__]
n# of sides: 2
side 0 : ARM
side 1 : CORE
[Loaded javax.imageio.IIOException from /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar]
javax.imageio.IIOException: Can't read input file!
/home/rutter/.aflobby/.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg
/home/rutter/.aflobby/Altored_Divide.smf.jpg

infoid:51974 BATTLECLOSED 51974

[Loaded java.awt.EventQueue$1AWTInvocationLock from shared objects file]
[Loaded sun.awt.X11.XContentWindow$SavedExposeEvent from /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar]
Same thing
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

How exactly did it crash? lockup? Java hasnt put up a stacktrace so the program itself hasnt thrown an exception.
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

Well the battle window itself closes fine. Then aflobby just locks up and I have to end it by killing the process/closing terminal/aborting command. Can't be anymore descriptive than that I'm afraid. :(

Image
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Then I'm just as clueless as you are, I just hope that whatever it is I change something by accident and everybody forgets ^_^
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Post by PauloMorfeo »

AF wrote:...
Paulomorfeo

JRE != JDK
Java runtime environment != Java development kit
...
Yes, i know that. To have JDK, we need mandatorily the JRE. Also, even if i had JDK but no JRE, i wouldn't be able to run NetBeans (which is, in itself, a Java aplication).

Anyway, i managed to run your lobby. I downloaded a new JRE from the Internet and installed it. Using that JRE, i can run the lobby. Seems like the instalation must be broken, although it is quite odd if it is but still gets to call the java executable and start it... Could it possibly be something wrong with your program? I just played a java game, seconds ago.

Now for some feedback on it:
- When logging, it would be nice that pressing «enter» when cursor is in the password field, executed a loggin try.
- The whole program needs a border. The blue just apears out of no where, looks like more a tipical loading screen for something else.
- Channels: "Click to join #main", aplication blocks (consistently).
- Users: Couldn't you use the same icons to represent the ranks as the "regular" lobby?
- Users: Couldn't you list them, instead, in a single row with info in the horizontal, so we don't have to circle the eyes around?
- Battles: I am only seeing 4 battles open and it took long to see more than 3. Somehow, i think that it can't be. Server told me 26 open battles. Something must be wrong with it? Hmmm, 6 battles now. Seems it is just taking a huge time to receive the list of battles.
- PMs: When i receive a PM, it pops me up a window. What will hapen if i am already with a open pop-up of receiving a PM? The chating sistem seems to need some kind of a diferent sistem that works more like the other lobby... Although i didn't managed to really test it.

One more thing. What are you coding in (IDE)? I am interested in giving java a try. I seem to remember (times ago) you having tried java and then .net and then evangelising a little that java wasn't that good and that .net was quite better. Now i see you back in force at java and i read you talking quite well of java in the forums of osrts(?). What made you change your mind?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

C# looked good. But in the end it was a UI ngihtmare.

For example if I have a checkbox in C# and Java and I want to bind that checkbox to a variable. In C# and Java I'd have an event for when the checkbox changes, to set the variable, and a function to set the checbox when the variable changes. This implements nicely in C# with delegates. Or so I thought.

In Java if I set the checkbox from the variable the variable == the checkbox. All as expected. In C# I ste the variable to say 'false', so the checkbox is unchecked, so an event is fired, so the variable is set to the checkbox is set so an event is fired so the variable is checked etc etc... Very veyr annoying. I really dont have th time to spend dilly dallying with this specific component of the C# window toolkit.

Also with C# panels, its not the same as Java panels. In Java I can define a panel class and design that panel, put in all the functionality, insert more panels inside, I can plonk a panel down and fill it up with more panels at runtime and they're ordered inside that panel and arranged how I want them automatically, I can swap them out etc. In AFLobby the main view is a panel, and it gets swapped out for another panel. In C# panels are just collections of components letting you drag several at a time. You can swap them out or re-arrange etc. I cant use the AFLobby model in C# I'd have to implement all my views as seperate windows which opens up another can of worms.

If you open a PM window to someone and they send you a pm it appears in that pm window. There can only ever be 1 pm window instance for each player, so there'll never be two pm windows for the same player.

I use Netbeans 5.5, and yah your java setup was probably borked.

As for the comment on channels blocking, what do you mean?

Are you runnign alpha 24 or 23? I havent released an alpha 24 binary yet but if you get the source code I uploaded and look in either the dist folder or the release folder, you'll find more recent versions. They wont be the beta 1 builds I have on my drive atm though so script hasnt been fixed and there may be one or two unfixed bugs.

Javas strange sometimes. Performance wise if you do everything properly it'll run fine but most ppl dont. A 1 liner increased chanservs speed on my machine 100 fold, and it was just a check in a while loop checking if a socket was ready to be read that I added. Adding timers to replace the neverending while loop gave me a huge performance boost (Zenkas machine showed 90% cpu usage, but after the timer change it was less than 1%). Javas great if you know how to use it properly.

As for the starting page, perhaps if there are any suggestions it can be changed?
User avatar
iamacup
Posts: 987
Joined: 26 Jun 2006, 20:43

Post by iamacup »

AF wrote:In Java if I set the checkbox from the variable the variable == the checkbox. All as expected. In C# I ste the variable to say 'false', so the checkbox is unchecked, so an event is fired, so the variable is set to the checkbox is set so an event is fired so the variable is checked etc etc... Very veyr annoying. I really dont have th time to spend dilly dallying with this specific component of the C# window toolkit.

Code: Select all

this.checkBox1.CheckedChanged += new System.Windows.Forms.KeyPressEventHandler(MyMethod);
custom exent handler ftw!, its the same for any component if you want an event to fire :)
Post Reply

Return to “Linux”