I was a bit bored today, so I started playing around with the new “text” object in BZFlag 2.99.x. (For those of you who don’t know, 2.99.x is the development version that will become 3.0.0 when released.) Because of the new font engine in the game (FTGL) we can pull in any TTF font and use it in the game. The text object uses this same font engine. It can pull a font file from a web address, as well. You can then position the text anywhere in the map. I’ve already seen an example from the Planet Mofo crew that was a scoreboard of the top players on the server. My example won’t be that cool.
I wrote a basic plugin called NewestPlayer. When a player joins, a variable named $newestPlayer gets set to their callsign. A text object in the world can then make use of that variable. When a player joins, the variable changes, and the text object will update in real-time.
Here is what it ends up looking like. Hard to see in the thumbnail, so click on it for full size.
Sample of the NewestPlayer plugin in action.
I have the plugin and world file posted as well, so click on over to the full article. more →
I’ve been toying around with the idea of making a map for some time now. I have actually made a couple of them in the past, but none of them were really ever finished or released. The quality just wasn’t there, and I lacked the time to properly finish and test them. I’m trying to get back into it though.
At the moment, I’m working on learning to hand code mesh objects. Once I have a better grasp of that, I intend on using that knowledge to build a script based map generator. I have already done some work on that, as you can see by these screenshots.
A elevated view of the cylinder of boxes.
A zoomed out view of the boxes.
A view of the boxes from a lower position on the map.
A heavily zoomed in view of the boxes.
This map uses a total of 10,135 boxes, each having random materials applied to them. I only had created a limited amount of textures, and my algorithm is pretty basic, so it won’t seem very random. This map was done mainly as a benchmark (parsing and rendering) for the BZWorkBench application that has been worked on again this summer for Google Summer of Code. But it’s just an example of what a simple script can do.
I have lots of ideas for making a nice looking map, but again, I first need to master making mesh objects. I’ll probably need to review a bit of math as it’s been a while since I’ve had to do any trig. Don’t expect a map by me to be done anytime soon. BZFlag version 3 is what has motivated me to try map making again. The new features we will have in this version will open up a lot of new possibilities for map authors. I will try to post some examples of these new features in future postings, so stay tuned.
I’ve been playing around with the C# language for a while. It’s a really fun language, and it makes it easy to do a lot of powerful things (threading, database access, sockets, etc). Today I just got a working example that reads messages from a MySQL database and then processes it and sends it to the proper recipient on the Freenode IRC server. I was using the MySQL connector for .NET to talk to the database, and a lame little IRCClient class that I have started writing.
This is all working towards a daemon to use for my BZFlag hosting service. The goals of the daemon are to:
- Determine what work to process by reading data from MySQL;
- Send email and IRC notifications of different events, such as a server going down, reports from a server, and so on;
- Start/stop/restart server instances via SSH;
- Upload and update server configurations and maps via SSH;
- Process log files coming back from game servers.
I would also have a web interface, likely written in PHP, that would add work to the database, as well as provide an interface to server configuration and log data.
In BZTip #4 – Commands for admins – Part 2, we covered how to ban users. In this third (and last?) section, we will cover some more of the commonly used commands. Some of these are even useful for normal users. Only /sendhelp is typically restricted to admins or cops. more →
Yesterday some of you may have noticed that it was difficult or impossible to get into Missile Wars 2, and received a “Game is full or over” message when you tried. This was because my BZFlag server was being attacked by an individual with the intent of preventing players from joining. I have resolved the issue and put in measures to block this kind of attack in the future.
On Monday the 20th, the accepted students for Google Summer of Code 2009 were announced. BZFlag has four students this year.
Quentin Pradet a.k.a. Cygal
Project: Lots o’ bug fixing
This project will be targeted at fixing some of the bugs in the latest development code. Some of the current bugs are big enough to prevent us from releasing BZFlag 3.0.0. Having someone really digging into these will likely provoke other developers to look into these or other bugs as the summer progresses.
Mathew Eis a.k.a. Bulldozer a.k.a. KingRobot
BZRobots is a project from last year. You can find some information about it on the BZRobots wiki page. This goal this year is to make sure that it is working correctly and to optimize/clean the code. It uses a modified copy of some code from the graphical client. This makes it much more difficult to maintain, as changes must be constantly merged to keep both the graphical and the BZRobot clients working.
Istvan Szakats a.k.a. Wyk3d
This project was started by Wyk3d last year. The goal was and still is to create an authentication daemon that will replace the current authentication system that BZFlag uses. It was brought up to a proof of concept last year.
Currently BZFlag uses a PHP based list server that ties directly into phpBB3’s database tables. We use phpBB’s users and groups. A better system would be to use something like OpenLDAP to store users and groups and then replicate this around to several different servers. This would be more efficient and also provide fault tolerance. That is the goal of this project.
William Hahne a.k.a. Will07c5
From our first year in Google Summer of Code (2007), we had a project called BZWorkBench created. This is intended to be the official map editor for BZFlag. In it’s current state, it is not usable for making an entire map, and suffers from performance issues and a limited frontend. This project will be continued this year and will hopefully get to the point where it can be used by map authors to create maps that utilize the new features of our 2.0.x code base.
In BZTip #3 – Commands for admins – Part 1, we covered the first section of commands that admins or cops typically use on a daily basis. In part 2, we will cover the various ban commands that are available. In BZFlag, there is three different types of bans: IP bans, host bans, and ID bans. Each type has their own set of commands. When a banned user tries to join, they should see the fact that they are banned, the reason they are banned, and who banned them. more →
The various server commands and client commands/options that BZFlag offers can be a huge benefit to server administrators and cops if used to their full potential.
This BZTips session will cover how to use some of the server side commands for typical server administration. I will not be covering all of the server commands, just the ones that are typically used by an admin or a cop. A typically server owner will have additional commands that an admin or cop will not have access to.
Here’s another pre-alpha Windows build of BZFlag’s development code for Windows. This is based off SVN revision 19585. So, download the Windows Installer and give it a shot. Please report any bugs you see (check the bug tracker and our BUGS file from SVN to make sure it hasn’t already been reported). Version 2.99.x is not compatible with 2.0.x, so you won’t typically see any players online, nor will you see 300 servers. So, get a few friends to come and play with you. Or hop onto our IRC channel and ask some people to join.
Note: The protocol of the game does change quite rapidly during development, so if you download this installer and don’t see any servers, it is probably outdated. But I would imagine this should work for at least a couple weeks.
Been a couple of weeks since I last posted. But anyway, BZFlag is officially part of the Google Summer of Code 2009! Yay!
Any college students that want to help out BZFlag should jump onto the #bzflag IRC channel on Freenode and get to know us. There are quite a few ideas already posted, but feel free to suggest your own. This year we want to focus on getting BZFlag ready for a release, so the high priority projects will be along that line.
Congratulations as well to all the other organizations that were accepted to GSoC!
For more information, check out the main GSoC website.