Page 1 of 3
New Lobby WIP - Lobby++
Posted: 21 Apr 2007, 23:48
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.

Posted: 22 Apr 2007, 01:43
by Slamoid
Oh please, dear god, give Linux a lobby..
Posted: 22 Apr 2007, 01:51
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.
Posted: 22 Apr 2007, 02:00
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.
Posted: 22 Apr 2007, 04:23
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

Posted: 22 Apr 2007, 05:16
by AF
Have you got any diagrams of layouts you can show us?
Posted: 22 Apr 2007, 14:42
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)
Posted: 22 Apr 2007, 17:24
by imbaczek
may I suggest Qt4? it's one of the most fun GUI toolkits I've ever programmed in in any language.
Posted: 26 Apr 2007, 19:46
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
Posted: 26 Apr 2007, 20:56
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.
Posted: 26 Apr 2007, 21:24
by Relative
The "Kickass Linux Lobby" owns. It should be the official name for great justice.
Posted: 26 Apr 2007, 22:10
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.
Posted: 27 Apr 2007, 09:32
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.
Posted: 29 Apr 2007, 13:20
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.

Posted: 29 Apr 2007, 13:22
by Caradhras
link?
Posted: 29 Apr 2007, 13:57
by kujeger
Looking pretty good!
Posted: 29 Apr 2007, 17:27
by tc-
What licence are you going to release it under? GPL?
Posted: 30 Apr 2007, 17:40
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!
Posted: 30 Apr 2007, 18:08
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
Posted: 30 Apr 2007, 19:04
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).