Today is a day I'm glad I'm in IT as it makes what I'm doing tonight that much easier. Sooner or later I'm going to need to be able to put together the network back end for my game even if it's just a proof of concept. That requires equipment which doesn't come super cheap. I need to plan months ahead to make sure that I save enough $$$ set aside for equipment. However, if you know what you're looking for and how to put together computers and networks you can make yourself some pretty cool machines that will let you do what you need to do at a pretty affordable price.
The first piece that you need is a gateway device. Some people just call these firewalls but many devices these days do so much more than that (content filtering, spam filtering, antivirus, QoS, etc) and that is something that we should be really interested in. SHOULD this become more than a hobby one has to consider that you will have either paying customers who play your game or you may offer a free to play solution but make your income through in game advertising. I personally would always go for the first even as a customer. When I have time that I can set aside to play a video game the last thing that I want to do is look at advertisements even it costs me a few bucks. That being said you're likely going to need to have some means of keeping track of customer financial records which you want VERY well protected (this device is just the beginning of our overall security scheme – more to come). You may be able to use a third party service but I'm an in-house kind of guy because I want to be in complete control of my network environment and I want to understand how every little piece works. Regardless of the route taken we have to guard what we have to protect our paying customers. And we should also pick the same kind of product we plan to use in our production environment if possible so that we don't need to be ramping up new skills when we're trying to push out a game to production.
The product I will be using is a Linux based gateway distribution called Untangle (www.untangle.com). I originally heard about this through the Spiceworks online community (community.spiceworks.com). They offer a free network helpdesk/management/inventory/etc tool that is quite impressive and they have become the single largest producer of network monitoring software in the world with over a million users. You can find me posting around there at times under the username Ethan1979. There are some brilliant people that frequent the forums (Scott Alan Miller and Justin Davidson are freakin IT ninjas of the ultimate degree) from many different industries. I could go on and on about this software but that will not happen until I start building the network back end (there will be several posts for just the network monitoring system itself). The point of this rant is that this software comes highly recommended from the community and it's free for the basic version. It's also modular in nature so we don't have to deal with running more features than we need (important for saving $$$ on hardware). If we were putting together a production environment I would always go for the paid version as you get support. This is invaluable when you are running a network that is making you $$$. When your network is down you're losing $$$ and no matter how much you pride yourself in your technical abilities shit happens....
To make this software work we obviously need hardware and more importantly the right hardware. Since we are on a shoestring budget we need need to find hardware that will give us the best value for our $$$. In addition, the hardware needs to be compatible with Untangle and be powerful enough to run all of the features we want to use. I won't be using all of them but I will be running the following modules (http://www.untangle.com/untangle/features/ ):
- Attack Blocker
- Intrusion Prevention
- Virus Blocker Lite
- Spam Blocker Lite
- Application Control Lite
- Phish Blocker
I picked these features as these are the core ones that will help protect our network. This device will scan each and every packet that goes through our Internet connection and help to prevent would be troublemakers (mostly script kiddies [wannabe hackers]) from messing with your network. Nothing is perfect but just because there is no perfect solution doesn't mean you can just ignore it. The Internet can be a dangerous place so just take the time to protect yourself as much as you reasonably can.
Now we need to look at the system requirements for this software and the number of users we plan on having in our game. Since this will be proof of concept I probably will never have more than a dozen players (various friends/family) in the game at any given time but if interest takes off (if only for exposure sake) I may find myself with 50-100 players or more. The Internet is a big place so the number of players you could potentially have in a production game could be in the hundreds of thousands or more. For now, I'm going to plan for 100 users if its economically feasible to give myself as much headroom as I can for testing and make sure that this device doesn't become the main bottleneck in my network.
So if we look at the system requirements for this software (http://wiki.untangle.com/index.php/Hardware_Requirements), and the throughput we plan on having, I'm going to need the following:
- Dual core CPU – This should not be a VIA or Atom dual core. As per the comments below the main system requirements these simply don't have the horsepower we need to effectively run this software for 51-150 users.
- 2GB RAM or more – RAM is cheap so 4 GB will be easy to come by
- 80 GB HDD – The cheapest of hard drives is 160GB so no problem there.
- 2 x wired NIC
In today's market this hardware should come pretty darn cheap. I will be doing all of my parts shopping at www.newegg.com. They have very reasonable prices and most importantly to me thousands and thousands of customer reviews for many of their products. This can really help you narrow down what hardware you want to use.
In the end I decided on the hardware shown in the screen shot below (Sorry for the small pic...too tired to make it better...zzz). I like Gigabyte boards because they have been very reliable for me and they come with solid capacitors (longer life). I also prefer SeaSonic power supplies for their clean power and reliability. And finally, I picked Intel NIC's as they are VERY well supported on Linux whereas a number of the integrated NIC's are not. The rest is just filling in the blanks really.
So shipping and all we're looking at about $430 for new hardware. To be honest I would prefer to find something cheaper but if this is the route I need to go I will. And like my previous post I may rebuild this thing virtually just for the fun of it to see if I can find a better combination of parts. Or, I may even go to one of the many PC recycling centers in the area and see if they have any decent dual core hardware sitting around. This can be a good route for proof of concept especially if it's a brand name PC. There is a lot of info on the Internet about Linux hardware compatibility so go do some searching!
I'd like to write more tonight but alas I have to earn a living and 5:00 AM comes pretty quickly. The next pieces of hardware I need to plan are beefed up computers (lots of CPU cores, RAM and HDD's) to run my game lab on (these boxes will be at least a year out). These boxes are going to be running a virtualization hypervisor so that I can get the most out of that hardware. I'll explain how that works more in my next blog post.