Monday, April 23, 2012

Got an idea!

I've wanted to post more lately but I've been putting a lot of pressure on myself at work to get some projects done and that has left me not exactly wanting to do more tech stuff when I get home. Add in a new diet I'm trying to start with my girlfriend, marginal sleep and other misc health issues and the inspiration and motivation needed to push forward on this just hasn't been there lately. I will get back on track but I need recover from everything else first. Otherwise I'm just going to burn out and I really don't want that to happen.

So in the interim I've been playing Skyrim as that's a game I've really been wanting to spend some time on and I can always use the excuse that it's research...kind of. Lol. I can say for certain that it was a muse for the background setting of the game I want to create. I was busy exploring (and dying...a lot..damned Falmer bastards...not even as a werewolf could I keep up with them) some Dwemer ruins and I couldn't help but be fascinated with the detail and beauty of the steam powered machinery. I've always liked the steampunk theme. I like seeing all of the parts exposed and moving so you see how they all work together. That's when I decided that I want my game to be totally steampunk in its art, characters, enemies, etc but instead of steam I want to use gasoline, diesel and the such. Damn near everything would have an engine to make it work. I'm thinking that the world of the game will be based on a world where everything is mechanical in nature. I'm not so focused on how the world came about as I am developing some human types of interaction among the characters in the game even though they are machines. I haven't really worked on the storyline yet so I can't say exactly how that will play out...we'll just have to wait and see as I give this more thought.

In terms of game play though I have some solid ideas of what I want. Below is the mental list I have so far:

1.) Custom weaponry. I'm not sure what the currency will be for that just yet ($$$?, experience?, points?).
2.) Highly targeted destruction of enemies. I want to play off the purely mechanical nature of the game by allowing you to disassemble your enemies piece by piece. I also want the enemies to change the nature of their attacks as they take damage as well. Take away a limb and the enemy will still attack you but it will change its strategy of attack to keep you guessing as you break it into pieces.
3.) Vehicles - I really want to get creative on this one. I want both ground and air vehicles with custom weaponry that can really do some damage.
4.) Chain of Destruction - This literally just came to mind as I was writing this. Since the enemies are purely mechanical in nature I want the shrapnel from explosive damage to be able to damage other enemies around the one you're attacking.  The more enemies you damage with single explosive attacks resulting from shrapnel the more points/$$$/experience you get.

And after writing that all down I think I have a name for my game. Shrapnel! Yay!

Well, that's it for my lunch break at work so I'd better get back to keeping the infrastructure here up and running. Peace!

Thursday, April 12, 2012

Virtual rebuild of Untangle server


I don't know how long I'm going to write today as work ,while being A LOT better as of late, still takes it out of me. Managing the front and back end of a network that has pretty high demands for its size (Only 40 users but there's...GIS, SCADA, plotter prints (big files), with a multi-site network coming with multi-site video surveillance, and automatic meter reads coming into our network in the future) while also being the help desk guy, cell phone guy, and physical security systems guy is a great challenge but being the jack of all trades means you're the master of none. If you've read my second blog post you can imagine that doing that which is contrary to my nature can take it out of me some days. However I have plenty of bills to pay so I just need to man up and quit bitching about it. As always the most rewarding endeavors never come to fruition easily so I will push forward a little today if only to feel like I've made some progress.

It kind of urks me that the price of that Untangle server came out at over $400. Ideally I would like it to be $350 dollars or less. I just don't want to make myself go broke purely for a proof of concept project at this point. I suppose I shouldn't really worry as who knows what my financial situation will be in the coming years. This hardware purchase is likely a year out at least and I imagine my tax returns are going to be funding this hardware unless I can drill up some side work at $50-$100 an hour. It can't be that hard if Geek Squad can charge $300 just to setup a backup of your hard drive at your home (not including the hard drive). I'll do it for $350 AND throw in a USB HDD. It's child's play that won't take more than 30-40 minutes even on a slow machine to accomplish and include training for the user so that they can know when their backups are not working. Throw in some basic user education (15 minutes at most), a cheat sheet for the backup software and basic troubleshooting (assume they know nothing) and let them breathe easier knowing their data is safe. Is that really $350 worth of time and materials? I would charge the going rate for mileage that the IRS allows and only work local (within 30 miles) which should keep the drive around 30-45 minutes at most for a local client. My car gets 29 MPG on average (2006 Nissan Sentra) so at worst I'm only burning through a few bucks of fuel. The service charge would break down as shown below:

  1. $125 tax and all for a 1 TB HDD.
  2. With $225 left I need to figure in taxes. I'll ballpark that at 30% since I wouldn't be doing all that much business. I just want it to fund my real passion. :)
  3. So $225 less 30% leaves me $157.50 with at worst this taking 1.75 hours of my time. That nets me $90 an hour for a $350 solution that another company would charge $50 more or even higher for.
    And I'm sorry but look up some You Tube videos about Geek Squad. They're wannabe geeks IMPO and sometimes they flat out lie about the solution so that they can charge for a more expensive job than actually needs to be done. YOU NEVER, EVER LIE TO YOUR CUSTOMERS!! They're who pay your bills. Threat them like they're that important and your professionalism will net you return business and maybe even more business via word of mouth.
    Now that I'm done venting/ranting about wannabe techies let's move on to something more fun like figuring out how cheap we can build this Untangle server while still using reliable hardware that will stand up to some heavy use. As a quick reminder our basic system requirements are the following:

  1. Dual core CPU
  2. 2GB of RAM
  3. 80GB HDD
  4. 2 x NIC

I spent a good hour on NewEgg this evening and I came up with a second build that is under $400 but only barely. This setup uses an Intel MiniITX server motherboard that has dual NICs built in that people are using to build ESXi hypervisor servers for their home labs. Given that ESXi uses some pretty old Linux drivers the latest build of Untangle should run quite nicely on this hardware. This setup will also use far less electricity and when you're talking about building a small network at home your power bill is probably going to go up a little so build using as efficient of hardware as you can while still fulfilling all of your needs. A pic of my NewEgg card is shown below:


A machine like this should do quite nicely for my needs given that even though its an Intel Celeron (budget CPU) its based on the Sandy Bridge platform which has been smoking fast. I don't expect it to be smoking fast but it should work and should I outgrow it I'll just throw a Core i3 CPU in there which should be more than enough. I've included pics of both the MB and case below to give you an idea of just how compact this setup really is.




I know this isn't the most interesting of topics but the point is that you need to find the best value for your $$$ for whatever solution you're trying to create. We all have budgets and when you can make the most of your $$$ you can do more with your home network given the same amount of $$$.

Well, I've been up for 15 hours without much of a reprieve so I'm going to crash for the day and get some rest for another day at work. Good night all!


  


Monday, April 9, 2012


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/ ):

  1. Firewall
  2. Attack Blocker
  3. Intrusion Prevention
  4. Virus Blocker Lite
  5. Spam Blocker Lite
  6. Application Control Lite
  7. 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:

  1. 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.
  2. 2GB RAM or more – RAM is cheap so 4 GB will be easy to come by
  3. 80 GB HDD – The cheapest of hard drives is 160GB so no problem there.
  4. 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.

Sunday, April 8, 2012

I really enjoy days like these

Today has been quite interesting and certainly didn't go how how I planned but I don't think it could have been any better. Confused? So was I at first (and I'm still digesting it all). How does this relate to my wanting to make a video game do you ask? I suppose its time to explain that.

I doubted myself today in my ability to accomplish my goal of making a video game. I'm certainly not proud of that but it led me down a rather interesting research path. I've been trying over the course of the last few days to really find some good beginner documentation for learning how to use Unity 3D. What I have found for the most part has been either beyond the grasp of someone lacking any programming knowledge or was for an older version of Unity 3D on the Mac platform. Every time I would start watching the videos I would just get more and more confused and frustrated. It got to the point today that I felt I needed to put my mind on something else a little simpler so decided to do something else I like to do which is virtually build things. I will usually start with a spreadsheet and layout what items I need for a given project which in this case was building a boat. I've never built a boat in my life but I like to learn how things work so I've gotten to the point that I can damn near tell you exactly what you need to build a boat from the tools needed, to materials and everything in between. I've done this with engines as well. The odd part is that after a couple of hours I was finished (I decided to see how much it would cost to build a Jon boat hull...its about $800 if you can find cheap plywood) and bored. I even took the time to watch a few videos on how rebuild an outboard and I feel like if you gave me a few hand tools I could probably get it done in a few days even though I've never done it before. I'm not trying to blow my own horn or anything...it just makes sense to me. If its too simple I will feign interest and move on to something more interesting.

That's when I found this web page:

http://www.walkerboystudio.com/html/unity_course_start_here__free_.html

I really like the idea of open learning. I feel that knowledge shouldn't come with a monetary cost. Your willingness to learn and your drive to accomplish that should be the cost in my opinion. Those with $$$ should not have sole authority on the obtaining/dispensing of knowledge. EVERYONE should be given the opportunity to learn and that's why I'm really drawn to these guys. They've put a lot of effort into their tutorial videos of which there are 149 on a video hosting website called Vimeo. You can find their videos here:

http://vimeo.com/channels/151501

At first I didn't like that their videos are so short but now I get it. Making video games is highly technical and very time consuming. They just don't want you to get grandiose dreams and unrealistic expectations only to be disappointed and/or jaded. Know that you will get there but give yourself enough time and patience to not only accomplish it but enjoy the process as well. Why would you want to do something as a hobby if it just makes you mad?! That's just idiotic.

So now you're going to find out why my day didn't go exactly as planned. I came up to my computer this evening with the intention of watching more of their videos. Instead I thought that I should really read through the preface to the web training on their website. One part that seemed out of place was taking a Myers Briggs personality test. I've taken one before but the last 3 years have really started to let me be my true self. I decided that I should take the test again as while they are not perfect they can really help you understand yourself a lot better. And not just your strengths...your weaknesses as well.

After taking the time and taking the test based on how I feel and not how I think I should feel I came out as a "Mastermind (I hate titles..) INTJ (Introverted (89%) Intuitive (38%) Thinking Judging)" of which we only make up 1-2% of the population. I often wondered why I feel so lonely as times. :( But the other side of that personality is the ability to observe the world around you and make sense of it. I can take big ideas and break them down. Then I can see how all of the little pieces work together as a whole. There are different types of career paths for an INTJ and I certainly picked an appropriate one in the computer field. Below are some links to descriptions of this personality type:

http://keirsey.com/4temps/mastermind.aspx

http://keirsey.com/4temps/rational_overview.asp

http://typelogic.com/intj.html

http://www.personalitypage.com/INTJ.html

But the most interesting parts I found explain some of the parts of my personality that I never understood or at least didn't really notice. Below are some of the personality traits I relate to most:

1.) I can't stand inefficiency. I have absolutely no patience for it. If it doesn't work why don't you just fix it?! To keep doing something that doesn't work is just idiotic.
2.) I'm very skeptical. If you can't prove something to me with solid evidence no matter how much you believe in it I won't give it merit. I will respect your opinion but I certainly won't agree with it and if you try to cram it down my throat the results will not be pretty....
3.) Authority is quite relative to me. I'm not impressed with titles. If you're right you're right. If you're wrong you're wrong whether you're the mail guy or the CEO. And if you don't pull your weight in a position of authority I will have little to no respect for you.
4.) Political correctness is stupid. Just say things like they are please...I don't want to have to interpret things or constantly have to filter my words.
5.) In times of stress I tend to be more self destructive. I'm certainly not proud of that but I'm getting a lot better at this one.

But what started this whole post is..

6.) If things are too easy or mundane I will get bored and feign interest.

This has played out several times in my life in my job choices. The simpler the job the worse I did at it and the less I cared about my job performance. It may sound calloused or unprofessional but I just don't want to waste my time on a simple job or a job where I can't effect any change. I just can't stand the idea of  compromising on something when I KNOW I can do better. It's like an itch that you just have to scratch. I love working with intricate complicated things. I like to reverse engineer things to figure out how they work or even use them in situations they were never meant for. In short I NEED difficult to understand hobbies/jobs to hold my interest and keep me learning. I will always be motivated to learn more and more.

So in the end while I doubted myself earlier today I understand now that I need a challenge like this. And now I'm REALLY hungry for more. But like any human being I need to sleep too. :p Good night.
.

Tuesday, April 3, 2012

My very first blog post!

I thought that it would be a good idea to basically lay out what I want to do with this blog for my first post. I've wanted to make my own video game for years. It seemed like every time I would research it I would either find game engines that were too complex for me to master at the time or the licensing costs were sky high. I'm not sure what motivated to take a second look at this but I'm sure glad that I did because there is waaaaaay more info on making your own video game today than there was just 5 years ago. In addition some game engines have free online tutorials and training. The one that I plan to learn looks to be very well documented and best of all its free (for the most part...lol)!

The game engine I plan to use is called Unity 3D. I've spent a little time looking at the documentation and screenshots and its the best I've found that has a free license so far. They do sell a professional version for $1500 which all in all isn't that bad considering larger companies will pay $4000 or more just for a single license of 3D modeling software like Maya much less a whole game engine. The clincher though was that a company called Much Different sells an MMO back end called UnityPark Suite that allows to scale your MMO to as big as you want (the game world is distributed dynamically among a cluster of game servers) and an Indie license (limited to just under $160,000 in year business revenue) can be purchased for right around $880. Yeah its expensive but go look at the larger commercial versions and you'll start paying in the tens of thousands of dollars. Add in that they have a free eval and I'm sold on what game engine I want to learn. Below you will find links to both products.

http://unity3d.com/unity/

http://www.muchdifferent.com/?page=game-unitypark

I plan on starting with the Unity 3D video tutorials and going from there. During my previous research on this I found that I will need to be teaching myself other skills besides just mastering a game engine. I will need to learn image editing, 3D modeling, digital sound editing/music, deeper networking skills in both the Windows and Linux worlds and who knows what else along the way. I won't lie, this will be a long journey but I feel like I have  much better overall feel for computer technology that should give me a good enough foundational knowledge to build on.

I hope to be able to post at least once a week regarding what I've learned, issues I've ran into and any other relevant information.

More to come and thanks for reading!