Monday, February 16, 2009

The Brazen Guard

The Brazen Guard (BZG) is this awesome online community I have been a member of since May 25, 2008. Currently, we operate two Team Fortress 2 servers and one Gmod server. We play strictly noncompetitive, although we do have a small group dedicated to clanwars and scrimmages.

Around January 24, 2009, I was given RCON administrative access and a place in the leadership of the clan. Since then, BZG has undergone some great changes thanks to a revitalization of the community. Something we do regularly is hold these things we call Event Nights. Every Friday and Saturday, we lock one of our TF2 servers and only allow BZG members in. Then, we play the game using our own little minigame ideas. Its absolutely insanely fun. Everyone has a great time and the brotherly bond we all share becomes stronger.

The whole purpose to this post is to inform everyone about BZGs own Youtube channel, The BZG Authority, where I will be posting video highlights of our scrimmages, Event Nights, and other madness. You can find more information about the servers and the clan at http://www.clantoolz.com/brazenguard. We are by no means an exclusive community, but if you would like to join, you have to play with us on our servers a couple times so we can be sure youre serious about becoming part of the family.

Anyone who has TF2 or Gmod, come on and play with us! Otherwise, enjoy the videos and be sure to rate/comment!

Wednesday, January 07, 2009

We're Back!

BlakeNet is back online. This year marks the chance for a lot of new stuff on BlakeNet. The largest news is that I plan to start seeking sponsorship and analyzing development costs to upgrade the server, get some video equipment, and turn BlakeNet into the comedy video site it was invisioned to be. Dont expect to see these changes happen over night, but if all goes well, we might have an awesome new project on our hands! :)

Tuesday, December 23, 2008

BlakeNet Down

BlakeNet will be down for a while. Our new computer just came in, which caused me to have to move equipment around and use the wireless device used to connect my server to make our second computer able to communicate wirelessly. Once I get back from Christmas vacation, I will start looking for a new wireless card so that I can get my equipment back online.

Merry Christmas. :]

Monday, December 22, 2008

Switching To Linux

So, I got fed up with Vista recently. Well, if you know me, you know I have always hated Windows. Unfortunately, it often appears to be a necessity for certain situations. Gaming, MSN, school, hobbies, etc. However, as any seasoned Linux user would tell you, these lines of difference are becoming thinner and thinner all the time.

I have been using Ubuntu for BlakeNet ever since its conception, and I am no stranger to the environment. But, personally, Id just hate to convert my Vista laptop to Ubuntu and then not be able to do everything, and I mean EVERYTHING, that I used to be able to do. My plan of action? Well, I got annoyed at Vistas auto-backup mechanism, so I turned it off a while back and set up backups to my server. The 10 gig backup partition on my laptop has since been lonely without any data to store. I have decided to finally put it to good use. While I wont be uninstalling Vista due to the eminent possibility of headache, I will be installing Ubuntu on the backup partition, putting some apps on it, and using it as often as I can.

My setup will consist of Ubuntu Intrepid Ibex with Compiz (I looooove the shiny 3D cube desktop thingy!) and some apps to take the place of my Vista ones. Im not going to list off Vista programs and their Linux counter-parts. There are enough of those sorts of lists on the Internet, including the official one. My biggest questions were "will my games run?" and "will all of my favorite MSN features be available in the replacement messenger?" The first answer is, of course, yes with the help of the Windows emulation layer called Wine. But, I was worried about performance hits. From what Ive heard, the experience can differ, but most people say the performance is surprisingly similar (if not better!). I will have to update when the transfer is complete. The second question is due to my previous experience with Pidgin, the Linux Swiss-Army messenger that allows you to communicate on multiple protocols including MSN, ICQ, Yahoo, AIM, and more. Once, I had logged into MSN using it and found that it was an incredibly dry messenger with most of the features that made me fall in love with MSN gone. After doing some Googling, though, I found out that there are plugins that add those features back, including Messenger Plus! features! Needless to say, I was sold. I will be setting up for the next couple days, and will post my experience after its all done.

Friday, November 28, 2008

Update: Random Staffer

Hey, peeps! I hope everyone had a good Gobble-Gobble-fest yesterday! Anyways, on to business.

Random Staffer is coming along nicely. However, I ran into something I really didnt like yesterday. In order to handle events on a form element (say, a button or menu item click), you need to use an ActionListener. There are two ways to do this effectively. The first, and seemingly most popular, method is to declare your class as extending the ActionListener class. This means you can point to this class as your listener, then add the ActionPerformed method to your class definition. This presents an issue of redundancy. For example, if you have some buttons and your class set up in the above fashion, you would need to add the action to take when the buttons are clicked separate from the button instantiations and set-up. This creates a readability nightmare, where if you want to know what happens when you click Button1, you would have to track it down in the ActionPerformed method further in the code.

The second method is to take advantage of Java's ability to change non-static method definitions at run-time. This means you can create a new instance of an ActonListener, and set the ActionPerformed method for that specific instance. This is great because you have resolved the redundancy and readability issues by including everything for the respective button in as little as two lines. However, this comes with the price of a new class file being generated for each time you do this, quickly changing a two-file project into a 20-file project. This happens because Java needs to create a completely new definition of the ActionListener class since the original has been changed.

Apparently, the desired effect is to have low-to-no redundancy, while eliminating the need for multiple class files. My proposal was to take advantage of Java's Class and Method classes. These provide your program with the ability to take in references to methods in other classes and call them dynamically. The problem I didnt forsee was that this only works on public and protected methods, which means every method that needs to be called when a button is pressed now has the potential to be called from the dangerous outside world. So, now its back to the drawing board.

Friday, October 17, 2008

BlakeNet Status Update

The BlakeNet status to the right has been updated to fix the loadtime and caching issues. JavaScript is required to see the active status.

Thursday, October 16, 2008

Random Staffer Reopened

The old bane of my existence has been sitting on my todo list for a while now. The other day, I felt the urge to do something productive. Whats more productive than sleeping all day, you ask? Working on Random Staffer. As anyone who is a follower of my work knows, this program was a thorn in my side from day 1. It was originally built in Visual Basic .NET and the printing aspect was handled by Java. I decided this time around, I would rewrite the whole thing from the ground up completely in Java. Expect milestones to be posted as I go, along with maybe some source code and working pre-releases/finals. No ETC as of yet.

Wednesday, October 15, 2008

Battle Poverty One Webpage At A Time

As a part of Blog Action Day 08, Im going to discuss how you can fight poverty. Since this blog more or less targets web designers, I figure Ill list some sites that offer buttons, badges, banners, and the like that when clicked or bought send money to charitable organizations.

MakeHope Button Store - The official button of Blog Action Day 08. Buy one for your site, and youll be aiding the movement.
Make Poverty History - A collection of free banners for your site.
Poverty USA - In case your visitors live under a rock, add these banners to spread the word.
End Child Poverty - In the words of the now defunct BannersAgainstPoverty, "Be the change you wish to see."

These are just four of the most popular sites. There are countless others to choose from.

Web designers, today we are called upon to do our part in the eradication of this world-wide pandemic. With the economies toppling, prices skyrocketing, and unemployment rates at all-time highs, it is up to each and every one of us to do the right thing. We owe it to not only those afflicted by poverty, but also ourselves, as human beings, to do all that we can to improve the quality of life for everyone -- A world for the people, by the people, for everyone's benefit.

Wednesday, September 17, 2008

BlakeNet Overhaul

The classic green look of BlakeNet has started to bore me, and Im sure anyone else who visits the site. I decided that anyone who visits the site, especially potential employers (whom the site was originally intended to be viewed by), would find the bland, stinging default green a bit annoying and nubbish rubbish. So, I sat down and planned out a much more graphic-intensive, "cooler", engaging skin that shows off my talents a lot more effectively while still keeping to the techno theme of the site. And so, "Grunge Gears" was born. Today marks the full load-out of the new skin, along with a new skin selector right below the menu. (Yes, I plan to make more skins, and you can still use the old one if you need a low-bandwidth version)

I hope to hear some feedback about Grunge Gears. I have plans to change the menu from textual to images, create a new logo that follows suit with the skin, create some sort of filler image for the sidebar gap, and tinker with fonts to see which ones offer the best immersion. Besides that, drop me a line in the usual fashion if there is something youd like to see.

On a side note, sorry I havent been posting lately. Ive been really busy with job hunting, college stuff, and a cold/conjunctivitis/major ear infection triple-whammy. Just to reassure those of you who were hoping to see more articles in the Multiplayer series, I DO plan on writing at least one more, titled "Multiplayer Data Consumption". If I can get my life straightened out, Ill push it out ASAP.

Thursday, July 24, 2008

Multiplayer Game Basics

Multiplayer games come in all kinds of formats, genres, and languages. In this article, I will discuss the bare-bone concepts of a multiplayer game and even give step-by-step intructions for making a multiplayer backend (server) with Java. While I will only be discussing Java specifically, all the concepts apply to all programming languages. The general concepts require no real prior programming knowledge, though the Java tutorial accompanying this article requires a basic understanding of how Java works.

Multiplayer games can be put into one of two basic structures: Client-to-Client or Client-to-Server. In Client-to-Client games, the client communicates directly with another client, while in Client-to-Server, clients communicate with a server without ever having to talk directly to the other clients. This article will discuss Client-to-Server communications as this is usually the more preferred type for multiple reasons, which are outlined in the following table.

Advantages of
Client-to-Client vs. Client-to-Server
Client-to-Client

  • Low to no cost of operation to publisher
  • No reliance on publisher
  • Individual modifications
Client-to-Server

  • Security of clients
  • Slower clients dont slow down others
  • Centralized statistics
  • More quickly updated
  • Clients experience the game the way it was meant to be


All of these advantages and their inherited disadvantages can be traced to the simple fact that Client-to-Client games are individually owned and maintained by those who play them, where the Client-to-Server games are based around a "centralized" system of computers that are all maintained by the game publisher or others who are given permission to do so by the publisher. Before we begin the in-depth portion of the article, I want to clarify what a server is. A server in multiplayer games refers to a variant of the game or a related program that allows clients to communicate with it, and subsequently relay those communications to other clients who are connected to the same server. This web of client connections is called a network. Ironically, even in Client-to-Client structures a server exists. The server in this structure is more commonly referred to as the host, since their computer is not dedicated to serving the network.

Connections between computers over networks (i.e. the Internet or LAN) is usually accomplished with a system of sockets. A socket is a pipeline linking the server and client through a computer port. Each client shares a unique socket with the server, so no other clients can read data meant for other clients. Data traveling between computers is referred to as a packet. Most programming languages support the use of sockets and packets. The servers job is to listen to a socket, take in packets, do what needs to be done with it, and possibly reply to the client with another packet, or even broadcast packets to other clients currently connected.

Now that we understand the technology involved, its time to get down and dirty with Java. We will be creating a simple Java application that listens for incoming connections, designates the connection to a socket, and replies to each packet sent by the client after that. Programming in Java requires a text editor (I use good ole Notepad), the Java Runtime Environment (JRE), and Java Development Kit (JDK). Both the JRE and JDK can be downloaded from Sun's website. Java source code is saved with the extension .java. After compiling, the resulting programs are saved with the extension .class.

I have already programmed and tested the Java applications. You can download MplayServer.java and MplayClient.java from SNR, along with a simple client named MyTalker.java. To compile and run the server, navigate to the directory you saved the source files to with command prompt, then use the following commands:

javac MplayServer.java
java MplayServer 8087


To compile and run the simple client, use the same commands as above, except replace MplayServer with MyTalker.

Edit: The full step-by-step tutorial is done. You can find it at http://www.subnetroot.com/source/j/Basic/tutorial.txt.