Showing posts with label Modules. Show all posts
Showing posts with label Modules. Show all posts

31 August 2011

Modules 4: Other

Like last time, I am going to start off with what progress I have made. I already mentioned I only had one beginner tutorial left to finish, so I started on the Intermediate and was hoping to add MyGUI to this program, substituting that experience for the seventh tutorial on CEGUI. So after finishing the tutorial which should how to do basic animation, I started on the additional work. These started with small things like adding a new node and making the robot walk farther since the tutorial only gives two spots before idling. I did have a minor problem with the changing of idling to the death animation, for some reason instead of playing once, the animation looped, leaving the robot looking like he was a child's blow-up punching bag. Adding a key binding to add a new location was a little more involved since it required adding all of the key and mouse binding to override the defaults set up in the program. This part did error once, for some reason once the walking animation had finished and the robot was idling, it would crash when adding a new spot to walk. This is because it was clumsily coded and a fail-safe for an empty queue was not implemented, nothing real big. This pretty much finished what I was doing with that tutorial, so I moved on to adding MyGUI to this set of code, which should have been easy since most of the work was in adding the key and mouse bindings into the tutorial. I can add the class and even initialize it without a problem, but once I try to do anything with it I get an APPCRASH error about ms-singleton, for which I have not really found a cure. So my hope is to get CEGUI up and running sometime this week and finish that tutorial like it was suppose to be done. The GUI is a requirement for the second intermediate tutorial which is why I did not move on with the tutorials.

Now, on to more in game items. So far I have covered lasers, missiles and mines. Now I am going to cover some of the odder modules which can be added to the tank.

Shields are a default part of every tank, with a given strength in both the front and the rear of the tank. With the addition of a shield amplifier, which takes up a module, an additional layer of shielding may be added to the tank. This shielding has the same defensive value as the default shield, note that this is equivalent for all tanks since it it the armor value and not the shields that is higher and lower in some tanks (trying to worry about balancing before programming is a fun task). The main difference is how the shields can be applied. The shielding can be move in quarters between the front and the rear (meaning the back can range from 0.5, 0.75, ..., 1.5 to the front's values of 1.5, 1.25, ..., .5; note these always sum to two which is the value of two times the default shielding which is naturally 0.5 front to 0.5 back and these cannot be moved, even with the shield amplifier).

The Extra Battery takes two modules. This attachment to the tank doubles the amount of time that can be spent in enemy territory. Note that the second cell is considered off-line, and thus unaffected by any weapons which may have drained the first battery, until the first battery is dead. It is this added protection from battery destroying weaponry that makes the extra battery worthwhile.

Reconnaissance satellite communicator is an interesting use of modules. While unsure of exactly how many modules it will take up, this will probably be somewhere between 4 and 6. This can be just as destructive to the enemy team as any missile. While standing within range of a neutral reconnaissance point, this is a small circle but not requiring the player be directly on top of the point, this communicator can be activated. A satellite is drawn from the base to the neutral point as long as no other player from any team has a satellite already coming to the point. Satellites over the base are only at one quarter health and do not gain any while in transit. Once over the point, the satellite will slowly regain health. Once inside the safe zone (health > 90) the satellite will fire on enemies with bounties being split among the satellite's team if the satellite get the kill or assist. The satellite will stop attacking when its health is in the danger zone (health < 80) until it is back in the safe zone. Satellites over the base will attack regardless of the health level. When a satellite is destroyed there is a cool-down period the team must wait before the satellite is replaced. Please note this cool-down refers to how long until the number of satellites is back to full count, not how often the communicator can be used. Well played, several satellites can be called to a point if necessary. The total number of these satellites is two plus the number of reconnaissance points at maximum.

Communication satellite also requires a significant number of modules, 4 to 6 like the reconnaissance satellite, but for a different reason. The reconnaissance satellite always a new point to recharge batteries and weapons as well as offering a small amount of cover fire power. The communication satellite is an individualized satellite. It can be destroyed like the reconnaissance satellite, but the cool-down for the satellite to respawn is also personal. This means without two of these, one would need to wait until the timer finished (note this can be accelerated but not voided by waiting on a reconnaissance point) to get the satellite back. This satellite has much less health than the reconnaissance satellite but deals quite a bit more damage. This is meant as a weaker alternate to missiles, which can be drawn to full at any reconnaissance point, but with a more continuous rate of damage. The satellite is not targeting, and will attack the first enemy target in range until the enemy is out of range, then it moves closest to furthest. The animation should have the satellite pointing down until an enemy is in range, the the satellite should align to fire. When idle the satellite moves over the calling player randomly, drawn towards directly overhead.

Well this is the first part of those miscellaneous modules, more to come next time if I do not get CEGUI up and working to finish tat last beginner tutorial and the next intermediate tutorial.
~gunnah

27 August 2011

And now back to modules, Modules 3: Mines

Well it is time to describe what I did and did not do with the OGRE Engine since last time. (Keep in mind this is the shorter of the half-weeks and the last post was late.) As it turns out there are two Basic Tutorials remaining after last post, and me being who I am jumped straight to the end and finished Tutorial 8 without much difficulty. This was mostly since this tutorial did not require any additional downloads or adding to the libraries I have already created. Tutorial 8 is about multiple viewports which is not really relevant to what I want to make, except maybe with the guided missile and then that may only be changing the camera not the whole viewport. This would be useful if, for example, I was allowing a co-op or multiplayer option from a single computer. Since this is not going to be an option I did not delve very deep, I did want to see what Tutorial 7 was about, but another example I will give in single player: when the screen split and the user character is on one half and the head guard/boss/target is shown moving around an office or whatever on the other, that would be another two viewport scenario, but again irrelevant to what I am doing.

So after doing Tutorial 8, I went back to 7 which is setting up a GUI. I did not realize this, but OGRE handles only 3-dimensional rendering and is not well equipped for handling 2-dimensional screens. Because of this lacking on the part of OGRE an additional interfacing is needed. Tutorial 7 is how to set up CEGUI, but after working with it for a little while I decided it is not what I want. My goal is to keep the game as light, in terms of what comes packaged with it, as possible and CEGUI has a lot of dependencies. So after a quick search, I came across MyGUI, which took forever to set up because I completely missed something. With the newest versions of both OGRE and MyGUI, while making MyGUI in CMake, it is necessary to add to variables to the list (OGRE_SOURCE and OGRE_BUILD) which I was hesitant to do since I do not really understand what CMake does and how it works. Unfortunately, I need to set up a new tutorial application so that I can run MyGUI in OGRE. Hopefully next time I have a little ore to show of this. Also next time I am hoping to have started the intermediate tutorials.

Okay, now onto what I had been meaning to get back to, the modules on the tank. In previous post I have covered most projectile type modules, so now I will cover the final type of weapons: mines. Unlike missiles and lasers which form moving entities which will either hit something or the edge of the map, mines can remain almost indefinitely. To prevent overloading the map with mines and possibly slowing the game down for all players, mines are weaker than projectile weapons. The in-game reason for this, since most people do not care about the logistical parts of the game, is that missiles and lasers require more skill since they can miss where a mine is a guaranteed hit. Mines do have a timer, and will be rendered inert after a fixed period of time (probably on the order of 5 or 10 minutes) or when the player exists the match (to prevent giving kills to players who are not playing). While missiles are handled by the middle set of letter keys, mines are handles by the lower set.

* Basic Mines: A fairly weak form of the weapon, these go off whenever a hostile goes directly over the mine, only type of mine that comes 2 to the module.
* VBM: A more powerful form of mine, while needing to have been driven over to detonate, produces damage in a blast radius. Comes one to the module.
* Motion Mine: When hostile motion is detected inside a detection radius is detected, the mine detonates producing a fairly large, though not quite as powerful as the VBM, blast radius of damage. Comes one to the module.
* Neutralizing Mine: These mines are triggered by being driven over and deal no real damage. These mines do greatly damage the shields and battery power of the tank which drove over the mine. A small electromagnetic pulse radiates out to hit any very close other targets in the vicinity. Comes one to the module.
* Command mine: This does slightly more damage as the Motion Mine also in a radius around the mine. The big difference is that only one of these can be placed at a time per player. The player can detonate the mine after it is deployed by hitting the deploy but again. Comes one to the module.

Hopefully I will have more progress to report next time, but if not (Hurricane and all the fun it brings) I will continue to expand on the last few types of modules shields and then accessories.
~gunnah

30 July 2011

Modules 2: Missiles

Here is the next set of modules. Actually missiles only have a single item which uses modules: the Missile Chambers. The Missile Chambers requires two modules to install. Once installed, the user can select how to arm each bay. For each bay, a drop down list is given, from which the user may select the desired missile. There is no limit to the number of Missile Chambers available. The following are the different types of missiles.

* Force Missile: This missile fires at whatever the tank's turret is pointed. This missile does massive damage on a successful hit, but is one of the harder missiles to hit with. This missile travels at average speed.
* Guided Missile: This missile has an interesting movement where the player's camera switches from their turret to just behind the launched missile. The player looses the ability to control the tank while the missile is airborne, but gains the ability to control the missile itself. It does slightly less damage and travels at a slower speed than the force missile.
* Homing Missile: This missile will fly as straight as possible from the tank's turret, but may change course slightly to follow an enemy tank. Much like the guided missile, these do slightly less damage and travel slightly slower than the force missile.
* Jamming Missile: This missile travels in a straight path aimed along the tank's turret. Unlike most of the other missiles, this missile damages the opposing tank's shields temporarily, all;owing the attacking tank an opening with either other missiles or lasers. This missile travels slightly faster than the force missile.
* Kore Missile: This missile also follows a straight path aimed along the tank's turret. The goal of this missile is to create a disruption in the enemy lines by launching a massive electromagnetic pulse over the enemy. Once launched, the player's camera switches to a view from behind the ,missile, much like th4e guided missile. During that time, again like the guided missile, the player's tank is left vulnerable and is not controlled by the player. The difference is the player does not control the missile, just when the missile detonates. From the center of the explosion, an EM pulse deals splash damage any opposing tank's battery life inside the radius. This missile does nothing if it hits an object unlike most other missiles. This missile travels faster than the force missile, only slower than the lightning missile.
* Lightning Missile: This missile is in many ways similar to the force missile. It goes in a straight line from wherever the tank's turret is pointed. It does slightly less damage than the force missile, but is harder to avoid since it moves quicker.

All missiles, unlike lasers, are objects, whether or not they are controlled by the player. The force missile is pretty much the average missile and is therefore used as the comparison in the previous list. Guiding and Homing Missiles, since the can change direction, are slightly slower to benefit the person who fired them, whereas the Kore and Lightning Missiles are faster. Any collision, either terrain, a tank, a satellite or another missile, will cause the missile to trigger is firing sequence, except the Kore Missile which needs to be detonated or it becomes inactive. As far as final numbers on speed and damage, these will need extensive play testing before decided.

If I forgot to mention this last post, user input for lasers will most likely be space bar and left mouse click. Missiles are much more difficult. Since multiple types missiles are allowed on any given tank, unlike lasers which is limited to one type even if the tank has two laser mounts, each missile type is given a key binding. To launch each missile in the list above, the first letter of the missile name is the letter of the key. On a qwerty keyboard the missiles would be the second row, except a, s, d, ; and ' keys. Kore missile is detonated with a second press of the 'k' key. Tank and turret binds when on the normal screen will be split between w/a/s/d and up/left/down/right. When the guided missile is launched, both sets of bindings have the same effect: up/down (w/s) raises or lowers missile's tip (ability to invert this should be in early), and left/right (a/d) moves the missile in the desired direction (again, inversion should be an option fairly early on).

The inversion options are in case a player wants to control the back of the guided missile, which is what the player is watching while the missile is airborne. In this case, raising the tail would lower the front or moving the tail right would move the front left. These options will be disabled by default but should be available fairly early in testing.

Next time I hope to have an update on my progress using the Ogre Engine, though most likely it will just be a page describing the different types of mines.
~gunnah

22 July 2011

Modules 1: Projectiles

While progress has been slow learning Ogre, my fault for not having enough to to just fool around, I decided I should get to posting something. Since I already went over the basic user interface and the layout I am using for the different tanks, next on the list would be items to customize the tanks. The goal is to make a large group of modules so that the game is very customizable. Since my plan is to include a truly large amount, I decided to break the modules into several different groups. This post will cover lasers and different items to add onto the laser for improved performance.

Lasers:
All tanks have a laser as a primary weapon. The standard laser is the normal, though some tanks, especially in the matches with the tanks already equipped, come already upgraded. Lasers are infinite as long as the tank has battery power remaining. Lasers do cause heat, usually proportional to damage, and a gauge on the user interface shows a warning when near overheating or when the tank has overheated. Other uses of this gauge specific to individual laser types are discussed with the laser type. One and only one of the following must be equipped at all times on the tank.
* Standard Laser: This is the normal weapon pre-equipped on almost all tanks. It is light damage but very quick and fairly cool. This takes up one module, usually already equipped on the tank.
* Improved laser: This weapon is a little better than the standard laser in terms of damage, but has a slightly slower firing rate and overheats a little faster. This takes up two modules on the tank.
* High-power Laser: This weapon deals much more damage than the standard laser, but fires slower and overheats faster than the improved laser. This takes up two modules on the tank.
* Shield Disrupting Laser: Since shields are created by energy fields, this laser fires a beam with an wave pattern that interferes with the shield-energy's wave function. Because of this high specificity to shields, it temporarily knocks shields off-line until the shield can be recharged, but does less damage to enemy tanks then the standard laser. This laser has a similar firing speed and heat generated as the standard laser. This takes up two modules on the tank.
* Pulse Laser: This weapon emits a beam with such high power that the beam actually scatters, causing damage to nearby enemy tanks as well. Not only does this deal damage, but the power of this beam causes a small electromagnetic pulse to follow the laser splash damage. This pulse causes damage to the electrical functionality of enemy tanks, particular in their ability to store energy in batteries. Because of the volume of energy needed for a pulse this size, this laser charges up, visible to the user by the filling of the display that usually shows the laser's temperature. Once full this laser can be fired, the charging time negates the importance heat build-up, but makes this laser very slow firing. Unlike all other lasers, this laser will not stop until it hits something or comes to the edge of the map. This takes up two modules on the tank.

Laser Add-ons:
In addition to the aforementioned lasers, there are several different additions available to make the laser, a weapon usually of secondary importance, very viable. Please note that distance and power modifiers may stacks. All items may be add only once unless otherwise specified. All or none may be equipped at any one time.
* Thermal Imaging Detector: This devices helps lock onto enemy tanks. It takes up one module.
* Sniper Barrel and Scope: This adds the functionality of a scope to the user, enabling a zoom of up to 16 times. Additionally this doubles the range of most lasers. This takes up one module.
* Second Laser Mount: Decreases time between firing by two since it adds a second laser for most lasers. The Pulse laser adds a divider in the indicator, enabling the firing of two pulses near simultaneous. The Pulse laser, unlike other lasers, has no reduction in firing time. This needs as many modules as the original laser (one for standard, two for any other).
* Increased Power Transformer: This increases the power of the laser as well as the maximum firing distance. Heat build up is increased when this is equipped. This slightly reduces the charging time on the Pulse laser. This takes up one modules.
* Liquid nitrogen Laser Cooling System: To prevent the initial buildup of heat, a generator pumps liquid nitrogen at the same time the laser is being fired. A gauge is shown on the user interface over the laser heat gauge. This item may be doubled to double the cooling capacity. If equipped with a Second Laser Mount, two are installed each time for up to four total. This does nothing if the pulse laser is equipped. This takes one module per system, for up to four if two are installed with a second laser mount.

Hope this gives some insight into laser functionality and module consumption. Next time will probably be missiles, with items like mines and shields in future posts. Also I am hoping to have a test run in ogre with a model I made, though that may be a little further off than missiles.

~gunnah