GUI for BZAdmin

Make suggestions for improving one of the best games on the net!
Post Reply
User avatar
clarahobbs
Private First Class
Private First Class
Posts: 272
Joined: Thu Jan 10, 2008 1:45 am
Location: The Fourth Dimension

GUI for BZAdmin

Post by clarahobbs » Sat Mar 01, 2008 6:59 pm

In 2005, RPG said that they should make a GUI for BZAdmin. I agree with him, and once I learn enough Python, I will try to make this improved GUI. I know it will take a lot of work, and I probably won't even know enough Python for about a year or so to even try to start. However, when I know enough, I will begin this huge project.
FKA Ratfink

User avatar
Winny
Grouchy
Grouchy
Posts: 2381
Joined: Wed Aug 24, 2005 12:27 am
Location: Ottawa eh?
Contact:

Post by Winny » Sat Mar 01, 2008 11:45 pm

Ratfink

BZAdmin is currently written in C++, so I imagine if you want to re-use anything from the current client, you'll get to program this in C++.
Last edited by Winny on Sun Mar 02, 2008 12:44 am, edited 1 time in total.

User avatar
macsforme
General
General
Posts: 2024
Joined: Wed Mar 01, 2006 5:43 am

Post by macsforme » Sun Mar 02, 2008 12:27 am

C++ would likely be a better choice for such a client anyway, since compiled languages are generally faster than interpreted languages (of which Python is one).

I believe that a GUI bzadmin (for Linux, iirc) was already begun. Rather than starting from scratch and isolated, you may want to track down the author of that project and see if he would be willing to share the code with you.

User avatar
clarahobbs
Private First Class
Private First Class
Posts: 272
Joined: Thu Jan 10, 2008 1:45 am
Location: The Fourth Dimension

Post by clarahobbs » Sun Mar 02, 2008 12:38 am

The problem is that I already know some Python and don't really want to learn C++. Plus, if they could make a BZFlag client with Python that allows you to play the game, then it shouldn't be too hard to make one that just allows you to change server variables and chat. I might even try using C++, but I can't find the source code of BZAdmin anywhere. If somebody could show me where it is, I would appreciate it.
FKA Ratfink

User avatar
blast
General
General
Posts: 4746
Joined: Fri Mar 21, 2003 3:49 pm
Location: playing.cxx
Contact:

Post by blast » Sun Mar 02, 2008 1:01 am

BZAdmin is part of the BZFlag project, so the source for it in in the source archives and in SVN.
"In addition to knowing the secrets of the Universe, I can assure you that I am also quite potty trained." -Koenma (Yu Yu Hakusho)

Image

F687/s
Private First Class
Private First Class
Posts: 369
Joined: Sun Dec 31, 2006 8:30 pm

Post by F687/s » Sun Mar 02, 2008 3:18 pm

> The problem is that I already know some Python and don't really want to learn C++.

I didn't want to learn C++ either. However, if you know some C-ish languages (PHP, Java, even Perl), C++ is pretty easy to pick up. But if you feel comfortable starting from scratch (all the network code), then go for it.

User avatar
clarahobbs
Private First Class
Private First Class
Posts: 272
Joined: Thu Jan 10, 2008 1:45 am
Location: The Fourth Dimension

Post by clarahobbs » Sun Mar 02, 2008 4:38 pm

I don't know any of those languages you listed. Also, I have some nice books on Python already. I will probably just start from scratch and make a program that can do all the functions of the current BZAdmin, but make it have a nice GUI. As I said before, it will be a long time until I can start, so I'd better get studying!
FKA Ratfink

User avatar
L4m3r
Hater of Everything
Hater of Everything
Posts: 724
Joined: Tue Feb 08, 2005 5:15 am
Location: Los Angeles

Post by L4m3r » Sun Mar 02, 2008 6:27 pm

At the very least you will need to be able to read C++, because the game protocol is not really documented. You'll need to read the code to figure out how it works.
Optimism is just a milder alternative to denial.

F687/s
Private First Class
Private First Class
Posts: 369
Joined: Sun Dec 31, 2006 8:30 pm

Post by F687/s » Sun Mar 02, 2008 8:15 pm

> At the very least you will need to be able to read C++, because the game protocol is not really documented.
> You'll need to read the code to figure out how it works.


Or get out a packet sniffer ;-)

Longhair
Private First Class
Private First Class
Posts: 330
Joined: Tue Feb 08, 2005 6:06 pm
Location: Lancaster, PA
Contact:

Post by Longhair » Sun Mar 02, 2008 11:46 pm

Disclaimer: I'm not an expert on this topic, especially as it relates to bzflag.

My brother is both a Python and C++ programmer. He says that where he works, they often end up writing the frontend for whatever they're working on in Python, but use compiled libraries written in C++ to do some of the heavy lifting in the backend. You get the advantages of easier writing for the part the users interact with, but you get the advantages of speed with compiled code.

I don't know what kind of hooks the BZAdmin code has in place right now. Might be a bit of reading C++ code and figuring out how to tie into it, or it might be an absolute nightmare. Hard to say. Anyway, just because one part is written in one language doesn't mean that all parts would need to be.

User avatar
clarahobbs
Private First Class
Private First Class
Posts: 272
Joined: Thu Jan 10, 2008 1:45 am
Location: The Fourth Dimension

Post by clarahobbs » Sun Mar 02, 2008 11:56 pm

> At the very least you will need to be able to read C++, because the game protocol is not really documented.
> You'll need to read the code to figure out how it works.

Or get out a packet sniffer ;-)
What is a packet sniffer?
FKA Ratfink

User avatar
Winny
Grouchy
Grouchy
Posts: 2381
Joined: Wed Aug 24, 2005 12:27 am
Location: Ottawa eh?
Contact:

Post by Winny » Mon Mar 03, 2008 12:05 am

Ratfink wrote:What is a packet sniffer?
Google is your friend.

http://en.wikipedia.org/wiki/Packet_sniffer

F687/s
Private First Class
Private First Class
Posts: 369
Joined: Sun Dec 31, 2006 8:30 pm

Post by F687/s » Mon Mar 03, 2008 10:31 pm

> My brother is both a Python and C++ programmer. He says that where he works, they often end up writing the frontend
> for whatever they're working on in Python, but use compiled libraries written in C++ to do some of the heavy lifting in the
> backend. You get the advantages of easier writing for the part the users interact with, but you get the advantages of speed
> with compiled code.


From what you're talking about (using C++ from Python), this doesn't serve much of a purpose for what he's talking about. BZAdmin is (at this point) just a tool. You cannot hook into it like bzfs, and the most you can do is use pipes to manipulate I/O. Kudos for abstraction and optimization, though.

There IS a way to get a GUI for bzadmin currently, and it's quite functional. It's called "Joining as Observer." If you need I/O filtering, use the CLI. If you just want to use it to talk to people, use the client. It can do quite a bit, if you learn how to work it.

Post Reply