Monday, March 25, 2013

What's In A Name

So I started this game sometime in 2008 with no clue what I was doing. It's gone through at least 3 complete rewrites, as I got better at coding. The whole time I intended to call the game SPACE AGE. Well I was too late to the party, I found another game out there, already using the title. So I took some time to remove my splash screen and my loading screen and make new graphics, a new title, a new logo, new loading screens. -grumble-

I keep meaning to update this blog more often but I never know what to write about. So I apologize if this seems like a random list of things I worked on :)

I've started adding some more complex particle effects to my game. It's really complex but I've got some background in it from when I learned Lightwave's particle system. Game maker has it all as functions full of variables instead of nice little menus like lightwave has.

I put a lot of work into my navigation screen, which is like an overworld map, it lets you get to all the levels of the game. Now the sun has particle effects so it looks like it's glowing and the stars in the background are moving towards the screen like your flying through space. It's got a nice vibe. I just need to improve the feel of the user interface. Right now the info panels feel fat and sluggish. I built the menus in 3D in lightwave and rendered them as JPG's so that I could then import them and make animated sprites to make my custom menus expand and shrink. The next step will be rebuilding the icon system for what ships are at a location. Right now I have static icons but I need to rewrite it so that the location can have different states, one where it's clear, one where there are some aliens, one where there are pirates or whatever and any combination of those, then it's gotta show those icons in the menu when you highlight a location that can be clicked. So if the planet has pirates, you get a pirate icon. I want it to be a sort of open world game where you support and defend the solar system and the human colonies.

I've nerfed the radar so that it can be upgraded later for a price. Late in the game after a couple expensive upgrades the radar will detect targets further out from the player.

I've made a lot of changes to how objects interact with each other. The asteroids now damage each other when they collide as well as harming enemy ships who collide with them. I plan to take this one step further and add weight to objects so that when the little asteroid collides with the big asteroid, it reacts more realistically. Right now they are treated as equals and it looks strange when the big rock is knocked away by a little rock.

I added a bunch of new items that can be collected, power-ups which boost booster rocket fuel or energy levels. I also started coding a nice graphical inventory/shop system to replace my old clunky menu based shops. When the player hits pause it freezes and blurs everything and then creates the shop over top of that background. Each item is displayed with a title, a short description, item quantity, item cost(if you can buy it), A picture of the item. And to buy or sell the player just has to click it. This is a big improvement so far but it needs a lot of work.

For a day I toyed with the idea of giving the machine gun a clip size and so it would reload after firing a certain number of bullets. This seemed like a good idea in theory until I did it. I decided to scrap all that and go back to it being a regular minigun. Nice and responsive. Waiting for reloads in the middle of combat was just irritating. I think instead of improving the gun by giving you a bigger clip before a reload, I will just upgrade the rate of fire.

I've been coding and recoding my Stealth aliens. I have them working pretty well. It's basically invisible and it flies at you, shooting plasma balls. When it gets close, it creates a visible clone and teleports away. Repeat this process and before long your surrounded by swarms of clones, which actually do shoot real shots. Fortunately they are very weak but they act as a distraction to hide the only real one in the pack, invisibly stalking the player. Damage to the stealth ship makes it more visible so if you hit it with a few lucky shots then it won't be completely invisible anymore.

I added a new weapon that serves two functions at the same time. The guns in the game fall into two categories, projectile weapons and energy weapons. If you shot an energy weapon you burn up your reserve power. The shields use that same power to refill which means in combat if your shields are low, there wont be any power for energy weapons. The player can fall back on his missiles, mines or trusty minigun. All of those things rely on ammo, and ammo can run out. So then my problem is that the player needs a default weapon which can shoot even in a situation where all ammunition has been spent and all energy reserves depleted, and maybe even the shields are down. This is where the new weapon comes in. It is a charge weapon. So the longer you hold the button the more power its got. It doesn't cost any energy or ammo, all it costs is time. This is a perfect default weapon because it can do a few quick low power shots or after a pause it can do decent damage like a rocket but then to make it even better I added the overcharge where if you fully charge it and you DO have energy reserves then it fires a continuous flash beam which does all sorts of damage and knockback. It still needs some tweaking. I may adjust how long it can be charged and the cut off for the flash beam. Balancing is important and this may be overpowered.

Speaking of overpowered, I added a cheat code which gives the player a ridiculous amount of armor, shields, energy, recharge rate, boost speed, boost fuel, ammo and includes an even more overpowered version of the flash beam which requires no charging and is twice as strong. It basically vaporizes everything it touches.

I started developing the mission structure of my game. You can develop in several ways. Exploration, Trade, Combat, colonization. I made the colony mission where you must act as a wingman for the colony, protecting it from alien ambushes and rogue asteroids or comets that might cross its path. There's a time limit with a progress bar in the corner, with the colony ships health above it. The colony sends you messages over the comms about the job, damage to the colony and victory conditions. At the end the ship arrives at the planet and the player is paid. I made it so that you get paid a lot less if the colony is mostly destroyed but you get a nice bonus if the colony hasn't been damaged. Then I made a combat mission which is very similar to the colony mission except your escorting a heavy gunship on patrol. I spent a day building the gunship in 3D, texturing it, rendering it out in two parts, ship and turret. Animating the turret. Coding the gunship, the turret, and a flashy death in case you fail. whew. The gunship has less health than the colony and I increased the number of alien encounters. It makes for some exciting dogfights. The player can hang out close to the gunship and enemy shots will hit the gunship instead of the player, so you can use it as a shield if you don't mind losing money. If the player wants that bonus money though, they can draw enemy fire away from the gunship and let it play a support role with it's double minigun turret and rocket pods.

I have an enemy type that's like a little death star with a ton of health and bristling with a million turrets. It seemed kind of invincible so I made it more visibly take damage. Occasionally when you do about 20% more damage to its overall health it has an explosion and some parts break off from it. It's a tough armored enemy with a lot of firepower. Right now I have 3 in one level, I think I will go in and remove 2 heheh.

I also squashed 3 notebook pages worth of bugs. I am my own game tester so I just play it and when I see something I don't like I jot down a note about it so that when I exit the game I can work down through the list and get them all sorted before making another test run in the game. The best fail was when alien ships are supposed to spawn 3 little orbs to harass the player. Instead they were spawning hundreds. It was madness.

The hardest part right now seems to be keeping my frame rate at a smooth 30fps. It would be nice to get 60fps but I think that might be impossible in HD. My PC is getting old though so maybe other people will have smoother gameplay. I'm doing my best to keep the code simple so it won't get bogged down. These games are all about reflexes. Maybe I'll just say its a feature and not a bug, "Oh that? That's bullet time, the game slows down when the combat gets heavy, on purpose" heheh, nah.

No comments:

Post a Comment