07 July 2011

Vacation Over

I will start this post off with why it has been about two weeks since I last posted. I ended up going to Canada for a few days which means factoring in packing and unpacking takes a week out of that time. Besides this trip, I have also been designing another program. Before I do my tank shooting game, I am looking to make two programs, which I will discuss now:
* A Family History Website Maker. This program takes a GEDCOM and converts it into a series of HTML files. For those of you out there who do not know, GEDCOM is a file format (usually using the extension .ged) which was developed by the Church of Latter Day Saints and which has become a standard for storage of genealogical information from programs. This obviously does not look run or sound like an online tank shooting game. My goal with this program is to review syntax for my chosen language, work with varying amounts of file input and output and eventually build a basic graphical user interface. With the experience from this I will have most of the concepts for the program on the server side, as well as the client side.
* The second program is a small instant messenger. The goal is to have it handle a small group of basic tasks such as the instant messenger process itself and file transfer, as well as problems like disconnections and time outs. Again the hope is this program will have a slightly more complicated graphical user interface. This will familiarize myself with how to get the server program talking with the client program.
Once these two programs are complete, I will begin work on programming the tank shooting program. The hope is that by then, everything is already laid out and the preparations will make the actual programming go much smoother. The language I have chosen for all three programs is python, because of how friendly the language is, especially in the areas of file i/o, GUIs and internet protocols.

Basic Tank Stats
Each tank will be given a rating in each of three categories: armor, modules and speed. All tanks will have a total of thirty points to spread between the stats, described a little later in this post. A score in any stat of a 10 is about average with zero being near useless and thirty being overkill in an particular stat. I am thinking of releasing ten tanks at beta launch and cutting out the three absurd tanks once I feel the game is balanced. The most balanced tank has a ten in each stat. Tanks which slightly favor one stat will have a points spread of about 14/8/8 while those tank which strongly favor one stat will be 20/5/5. The final three which will likely be removed will have a spread of 28/1/1. A score of zero does not mean the tank does not have anything in that stat, for example a tank will always have armor, it is just a scale of how much. For this reason, On top of each stat, there should be six global variables, two for each stat. The first is the scaling factor - how many points of armor do you get for each point the tank has in the stat for example. The second is the base case - if my tank has no points in armor, how much damage can it take? These will be decided during the beta testing once this program is more of a finished product. The following is a brief description of each stat:
* Speed: dictates both top speed and acceleration. Top speed is linear while acceleration increases greater than linear.
* Armor: how much damage can the tank take and how fast does the health recover. The amount of health increases greater than linear while health recover increases less than linear.
* Modules: many many compartments does the tank have for equipment. Modules also dictates how large the tank is, since to have more compartments the tank needs to be larger. The overall size increases less than linear while the number of modules is linear.

In the above, I am not sure how clear it is described, so here is what I meant by linear, greater/less than linear. Linear is basically the same here as in math with the generic formula x = base + (stat * scaler). A stat which has an attribute increasing greater than linear means the attribute grows faster than a linear plot or when plotted the second derivative would be positive in a more mathematical sense. Increasing lesser than linear is the opposite of greater than.

I hope this explanation is not too confusing, next time I will probably go into what modules will be available.
~gunnah

No comments:

Post a Comment