New Lobby WIP - Lobby++

New Lobby WIP - Lobby++

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

Moderator: Moderators

Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

New Lobby WIP - Lobby++

Post by Kloot »

This is something I've wanted to do for a while, but until recently didn't have time for (and still don't really, but damn the torpedoes and all that). I'm working on a multiplayer client tentatively named Lobby++ (in keeping with the dreadfully boring naming scheme for my earlier tools, which were all written in C++), positioned as a lightweight, no-frills, Linux-only (unless somebody ports it) program with the following design goals:
  • 1) avoid external dependencies: if you can run Spring, you should be able to run Lobby++ without hassle (hence my choice for C++, so I can just create a single statically linked binary that'll execute anywhere)

    2) implement the bare minimum of the lobby protocol to let you join and host battles, but don't try to match the functionality of UL or AFL (since they're both lightyears ahead and I have no hope of rivalling them anyway)

    3) finish before CE is released and everybody switches over / I get hit by a bus / my exam period rolls around (or slightly after that)
The first goal does however mean I'm shooting myself in the foot development-wise, the C++/wxGTK road is a fair bit longer to take than the C# or Java or Python one (which is also one of my reasons for setting goal two) so AFL and UL are still by far the best candidates for a solid Linux lobby arriving within your lifetime.

Anyway, here is a very very early screenshot demonstrating the UI (or lack of one), which I'll be designing over the next few days/weeks. In the meantime, any suggestions for a better name would be most welcome. ;)
Last edited by Kloot on 22 Apr 2007, 04:06, edited 1 time in total.
User avatar
Slamoid
Posts: 237
Joined: 25 Jan 2005, 19:23

Post by Slamoid »

Oh please, dear god, give Linux a lobby..
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

oh dear god, please I'm begging you, dont follow the tasclient GUI design, redesign from scratch try to show some innovation through your layout and design, you dont need to give up anything todo so.

But for now, good luck, and I hope this is flexible enough for multiple lobby protocol support, or re-engineering towards a bot sdk.
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

I've also been thinking of developing a linux c or c++ lobby. wxGTK would also have been my choice of toolkit :-)

A very nice initiative, i look forward to not using wine to be able to connect to a lobby :-) If you need any help i'll gladly help you out.
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

AF:

I actually rather like the TASClient layout (all of the important info is directly accessible from the same window and there's almost no clutter), but I've got a few other designs lined up to try out as well. My primary aim though is just getting a skeleton lobby out the door at all, so for now I'm copying what works (for me at least). It very probably won't be the final layout.

I've also given multiple-protocol support some thought and it wouldn't be too difficult to provide so long as each protocol's semantics were rigorously defined in something not too much of a pain to parse, and I've made some provisions to that end but full abstract interpretation isn't in yet.


tc:

thanks for the offer, it'll be sooner rather than later I think :-)
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Have you got any diagrams of layouts you can show us?
Caradhras
Posts: 381
Joined: 31 Jul 2006, 21:49

Post by Caradhras »

hmmm, now we have three different lobby projects with different design and so on, each beginning more or less from scratch and more or less advanced.

hmmm, perhaps i could help one of you?

I have no idea of programming, but i could do testing on my feisty installation (but only on weekends)
imbaczek
Posts: 3629
Joined: 22 Aug 2006, 16:19

Post by imbaczek »

may I suggest Qt4? it's one of the most fun GUI toolkits I've ever programmed in in any language.
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

Didn't have much to do today so I made a layout proposal for a lobby client.

It can be found hare:
tc.serveftp.net/layout.jpg
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

http://tc.serveftp.net/layout.jpg

Ok, but considring the role this lobby is intended to fill, that of the lightweight role, I think a skeleton design which can be expanded is more suitable, so maybe take away the friends list, the images in tab buttons, and the divider in the chat, and the topic bar, and just have the entire topic usernames and chat in a single text window and use spaces and tabs for formatting.
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

The "Kickass Linux Lobby" owns. It should be the official name for great justice.
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

It's not a friends list, it's a list of people in that are in that channel filterd only to show people marked as friends. I think its very overkill to show 300 people in a list when all you are interested in are to see if a sertain person is online.
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

AF: I guess you are right about my layout beeing a bit to advanced. Most of it are easy to implement stuff though. The topic thing might be overkill and the chat message area should probably be text-only. Icons can just be built in by using .xpm and they really make a big difference on the look of an app.
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

screenshot of the current build with slightly more stuff on it

For whoever wants to help with finding bugs and such I'll put up a binary soonish, although you can't do much besides talk yet so of course there shouldn't be any. ;)
Caradhras
Posts: 381
Joined: 31 Jul 2006, 21:49

Post by Caradhras »

link?
User avatar
kujeger
Posts: 91
Joined: 07 Oct 2004, 14:46

Post by kujeger »

Looking pretty good!
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

What licence are you going to release it under? GPL?
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

That's the plan, yes.

I've uploaded a testable release here by the way, extract the tarball to some arbitrary directory and run the .sh script to give it a spin. Some usage pointers (in so far as there's anything to point out):
  • "/join channel [password]" to join a channel, "/leave" to leave it (or double-rightclick on the corresponding tab)

    left-click on a column header to sort by that column in ascending order, right-click to sort in descending order
Any reports of excessive CPU or memory consumption are especially appreciated (so if you can, keep the client running for a few hours and monitor it), thanks!
Last edited by Kloot on 30 Apr 2007, 19:08, edited 1 time in total.
User avatar
BrainDamage
Lobby Developer
Posts: 1164
Joined: 25 Sep 2006, 13:56

Post by BrainDamage »

when i ran it complained that it couldn't find a part of the boost lib, probably because of a naming issue

Code: Select all

./Lobby++: error while loading shared libraries: libboost_regex-gcc-mt-1_33_1.so.1.33.1: cannot open shared object file: No such file or directory
here is the naming scheme i do have:

Code: Select all

[root@workstation Lobby++]# urpmq -l libboost1
/usr/lib/libboost_date_time.so.1
/usr/lib/libboost_date_time.so.1.33.1
/usr/lib/libboost_filesystem.so.1
/usr/lib/libboost_filesystem.so.1.33.1
/usr/lib/libboost_iostreams.so.1
/usr/lib/libboost_iostreams.so.1.33.1
/usr/lib/libboost_prg_exec_monitor.so.1
/usr/lib/libboost_prg_exec_monitor.so.1.33.1
/usr/lib/libboost_program_options.so.1
/usr/lib/libboost_program_options.so.1.33.1
/usr/lib/libboost_python.so.1
/usr/lib/libboost_python.so.1.33.1
/usr/lib/libboost_regex.so.1
/usr/lib/libboost_regex.so.1.33.1
/usr/lib/libboost_serialization.so.1
/usr/lib/libboost_serialization.so.1.33.1
/usr/lib/libboost_signals.so.1
/usr/lib/libboost_signals.so.1.33.1
/usr/lib/libboost_test_exec_monitor.so.1
/usr/lib/libboost_test_exec_monitor.so.1.33.1
/usr/lib/libboost_thread.so.1
/usr/lib/libboost_thread.so.1.33.1
/usr/lib/libboost_unit_test_framework.so.1
/usr/lib/libboost_unit_test_framework.so.1.33.1
/usr/lib/libboost_wserialization.so.1
/usr/lib/libboost_wserialization.so.1.33.1
/usr/share/doc/libboost1-1.33.1
/usr/share/doc/libboost1-1.33.1/LICENSE_1_0.txt
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

You seem to be missing the multi-threaded parts of boost_regex and other boost components, try getting the full lib for your distribution (or compile your own version of unitsync and replace the libunitsync.so provided in the archive with it).
Post Reply

Return to “Linux”