Monday, December 24, 2012

Timeline and tech tree.

concept art and design

STORY TIMELINE

Year description
2012 Gray aliens abduct people for unknown reasons. They have a base on the dark side of the moon which they use to stage their invasion. The 10 year moon war begins. you play a 20 year old ace fighter pilot in a prototype space plane. The ship only has a 2 day air supply and limited ammo so you will need to travel back to earth frequently to resupply.
2020's Humans colonize the moon to mine precious helium 3. The age of space age megacorporations begins
2029 A 25-million-ton, 820-ft.-wide asteroid called 99942 Apophis flies toward Earth at more than 28,000 mph.
2030's The Mars colonization project begins. Large underground bases are constructed for colonists and huge terraformers are built to transform the martian atmosphere. Icy comets dragged into orbit to add water to the martian surface. you are the captain of a starship
2040's Tensions rise between the megacorporations and the martian people. Earth profits from martian exploitation leading to a martian workers revolution. Space piracy becomes a major problem during the war between Earth and Mars.
2050's The technological singularity. With AI and nanotechnologies humans advance quickly towards being a type I civilization. Using reverse engineered alien technology from Mars, human scientists and engineers produce a prototype stargate. You are chosen to captain the new flagship to be sent through.

TECHNOLOGY

Primary Power Supplemental Power Lasers Guns Special Armor Shields
chemical rocket lithium ion batteries 100MW red laser machinegun brilliant pebbles steel none
VASIMR rocket solar collector array 100MW blue laser vulcan cannon missile +advanced plastics mirror plating
100MW nuclear reactor standard magnetic motor 100 MW green laser explosive hyperdarts guided missile +carbon fiber advanced mirror plating
500MW nuclear reactor rare earth magnetic energy spread beam mirror slow railgun +mirrored +metamaterials +magnetic plating
1000MW nuclear reactor Ni/CN batteries phased array fast railgun tactical nuke thick armor force field
notes from development on Aug 12 2011

BIG update tonight on my space shooter. I got all 9 planets and the sun and moon done with working orbits and working navigation. Earth and moon levels can both be entered and exited. enemy ships have damage graphics. Asteroids are in. air supply is in. still the biggest hurdle is implementing all the weapons armor shield special weapons and other power ups with some sort of menu where you can buy new parts and to get those parts to attach properly and stay between levels. Theres plenty of bugs like going to earth refills your air supply but leaving earth resets it to the previous depleted amount. one bug duplicated all your weapons between levels so going to the moon i had 2 turrets and on the moon I had 4 and an extra rocket trail lol.
I just spent the past 8 hours working on my videogame. I even got the AI code implemented. Now the alien ships come in several colors each with different attributes and abilities. easy green ones. stronger silver ones. black ones with a cloaking device. the AI makes the aliens go to earth to abduct humans. they ignore you unless you attack they become aggresive but if they take damage they take evasive action and if badly damaged they try to go home for repairs. its a slick little system. the stealth ship is 95% invisible but becomes easier to see the more damage it takes. It launches 3 small drones which will attack you and act as a distraction while it sneaks around cloaked. I plan to give it some other dirty tricks as well. I built it so that it is quite easy to make new versions of the alien ship so i plan to make many types with a variety of different weapons and abilities. right now they just have a laser.
I learned some new tricks to improve the laser in my game. I've got half a composition book filled with programming notes. Every day I get better and better at coding my game ideas. It's fun when things work and frustrating when they dont.
Tonight working on my videogame I got the heat seeking missiles working and made it so alien ships can go repair themselves at their base. I got asteroids working a bit better and made some progress on one of the bosses, an alien base inside an asteroid.
I'm sort of frustrated with the alien ship repair. I create a list and when a ship needs repairs its added to the list with an entry for how damaged it is and it repairs the first ship on the list then does the next but sometimes it crashes and says the list doesnt exist. wtf.
PROGRESS on Space Age, my Game. I added a radar so now you can track alien ships and asteroids far off screen. I also tweaked and improved the guns and mines and the HUD. I'm having a tough time making the graphics for the boss behave properly.
The boss looks like a typical asteroid but its in 4 quadrants that can be individually destroyed to expose the alien base ship inside. its tricky to make the quadrants show the proper state of destruction depending on which other parts are already destroyed. theres 6 states per quadrant. if you destroy one section its mostly intact. 2 adjecent sections destroyed will do a different image. theres one horizontal and one vertical. then a state if both adjecent quads are blown off thats just a nub and a blank frame. getting it to display the right frame is tricky. its labeled A B C D and uses code like if A is dead & b is dead & c is dead then use image 5 for A. If A is dead & B is dead use image 3 for A. there 5 embedded if statements per quadrant. but for some reason its acting wierd and changing the state of quadrants im not even shooting at or failing to switch to the proper state even though Ive triple checked the code. grr.
so an array looks like global.tech(0,1) 0 might be guns category and 1 is always the name variable. then I have another array called global.equipped() and so calling on a gun looks like global.tech(global.equippe​d(5),1) to get the name of the equipped gun. maybe it doesnt like arrays nested inside other arrays. when I try to display a list of the equipped ships systems in-game it just crashes. so now Im back to the drawing board.
Im also having a really hard time programming my ship upgrade system. so far I have an array of all the stuff each type of component has a name, a description and one or two variables and then theres 3 or 4 upgrades for each type. but switching them is tough.
I think tommorow I will focus on the moon and getting the moon tanks operational. getting the alien ship repair systems bugs out. and most of all figure out why the gun turrets vanish between levels. I probably need to delete them and re create them after the player appears in the new level.
of course new features come with plenty of new bugs. the boss is unkillable and has invisible guns. collisions with anything are olmost instantly fatal. the ships turrets get lost when you enter the earth. the space station refuses to give me ammo even when I'm parked. sigh.
Space Age Version 12 I added a name entry screen. text boxes with a picture to convey story and missions. a space station to replenish weapons and fuel. alien ships can now go into earth to abduct people. Progress on the boss and asteroids too.
lol I was up all night programming my videogame and then when I went to sleep I was dreaming about programming my game. I've got GML code in my subconcious now. maybe I'll figure out how to fix the bugs in my REM sleep heheh.
So I keep talking about my game SPACE AGE, I finally have a video for you to look at. It's still a long way from completion but take a look at what I have so far. Comments are appreciated.
Today I got the space station resupplying the ship with ammo and energy, I got the alien moon base repairing it's ships, I got the moon laser defenses working, I gave the elite stealth aliens dangerous orb drones, I even solved half the bugs with switching between levels.
it includes prices in the menu and asks if you want to buy it yes or no, and subtracts money accordingly if you choose an upgrade. I just need to add all the variables in each item and it should set the player to the chosen equipment if you have the money for it. its only about 10% done now.
I made some progress on the upgrades menu of my game. if you park in the space station you can click it to get the menu offense/defense/other and each of those has a sub menu like offense says guns/lasers/mines/missiles and guns has a sub menu of 4 gun upgrades. its a start.
so far i just did the guns. you click the spacedock to get the menu then click offense then it has a menu for the 4 weapon types and I click guns and it lists the 4 varients for the guns. .50cal MG, 22mm vulcan cannon with more ammo and higher rate of fire, Hyperdart cannon with low rate of fire and explosive bullets and the railgun.
I made significant progress on implementing the way you buy upgrades in my game 'Space Age' If you dock your fighter at the space station you can click it to open menu for offensive defensive and other upgrades. all the menus work and I just need to fill in the variables that get changed in the ship
This weekend I hope to get all the Act I ship uppgrades implemented. 16 weapons. 3 armor variants one prototype shield, hull plating and 10 or so engine/power variants. Then it will require extensive testing and balancing of the items and getting the prices right.
On the bright side if I improve my AI routine it applies to all the alien ships which is a time saver. I hope to add more of a random element since they are too predictable now and better evasive maneuvers when they are being shot at so they don't die so fast. I have a good idea for how to do it. we'll see.
right now all the enemies use a forward laser and their odds of hitting mostly depend on how fast they turn to shoot you. I think I need to do some sort of gun attack that shoots several bullets to mix it up because just lasers seems repetetive. and they need better AI for finding a good range to be at.
‎4 invisible black saucers launch 3 orbs each and before you know it your up against 16 targets which makes for a decent challenge. I plan to add a red saucer with a nasty laser attack and then do shielded enemies for more difficulty.
Beyond that I will need to add more variety to the enemies and up the challenge. So far the green saucer is a pushover. the silver saucer is tougher but needs more AI. The black saucer is the only real challenge with its invisibility and the swarm of deadly orbs it launches.
I should probably add in the save/load system soon now that the player can actually buy upgrades. Then I'll need some beta testers to give me feedback on how everything works when they try an actual play through. My game even has its first cheat code for megamoney so I can buy items from my menu without killing a thousand enemies first heheh.
Tonights progress on 'Space Age' was mostly bug fixing. The shopping menus are now mostly working except the menu shows up in the wrong location and a few items aren't coded yet even though you can buy them they don't do anything. Many other upgrades to add to the list as I go along.
As far as new additions to my game I added the save/load system, but it only works if you do not close the game, if you save and die and then load it works but if you save and quit and restart and load it crashes. I also made a first attempt at a grappling hook for catching comets but it's extremely buggy. I can launch it but it fails to grab and often fails to retract.
so later in the game you will see how many enemies you eliminated with each weapon type and it will factor into a reputation system with prizes at certain milestones. I think im gonna do seperate shops. like a novice shop with limited options for the tutorial before the full upgrades list is available.
I've been planning out my game in my notebook. I intend to build a sort of tutorial into the early mission structure each level introducing a new weapon or upgrade. for example you start with just guns and it says kill 10 aliens with guns like an achievement but it will double as a kill counter through the whole game.
the rally point system will add a lot to enemy tactics. it makes weak individual ships more likely to run and waves of enemies more likely to attack. the ability for a lone ship to tell a rally group your location means one weak ship may run away and simultaneously call backup to you while running to them. smart eh.
the aliens will have a % chance to detect you the closer you get and will have random morale so some will attack and others will flee to a rally point where they wait for a numbers advantage to get brave and attack. under attack fleeing aliens will have countermeasures and evasive moves to avoid damage.
I designed a new AI on paper and it will build off my existing AI routine but It will be much better. I just need more time to code it and not get to distracted with facebook games. The new AI will feature more situational awareness and tactics. right now the enemies still seem fairly stupid.
I'm starting to get some slowdown in the game in situations where I blow up a lot of aliens with the laser all at once. I may need to find ways to streamline my code or cut back on particle effects. I'm sure my code is fairly sloppy because I'm a noob programmer. slow mo explosions are cool and all but unintentional.
I did a huge overhaul of the enemy AI in my game 'Space Age' the enemies notice you more when your closer, single ships sometimes attack but often run away to a rally point and when theres a few ships together at the rally point they attack as a pack. Also they now have 3 types of weapon to use at different ranges.
the other half of the night was spent designing the mission structure. I'm making versions of the shop to use at different times. Now at first the shop only sells rockets, reloads ammo, repairs armor. you get a mission to kill 10 enemies with the gun and a mission for 10 with rockets. then the shop will change to add more options when those missions end.
The new AI is kind of heavy. Maybe the enemies think too much because it causes too much slowdown when there are a lot of them. I will have to study ways to lighten up the amount of processor power each enemy uses to decide how to act.
I spent a couple hours studying how to optomize my code and speed up my game. right now the FPS drops considerably when I have a lot of enemies onscreen. Once I make these changes I should run at a crisp 30 FPS even with 20 enemies on screen.
I can raise the program priority. change the AI so it doesnt calculate all the enemies simultaneously, turn off the vsynch, even changing some code which happens every step/frame to just happen periodically with alarms. Theres a dozen good ways to speed up performance.
I want 'Space Age' to run fast so the action is intense when large swarms of enemies come on screen and your flying around avoiding hundreds of bullets and you launch your nukes and carve a path with your lasers and guns and set traps with mines. Lag is unnacceptable.
The save feature in my game works now. It turns out that If I added the player to a room before loading a game it resolved all the problems of not finding the variables that was causing it to crash when loading before. wierd but it works. I also made the game run faster with optomization.
I made a new level of my game where you are flying through a wormhole. It's got some cool graphics involving multiple layers and transparencies scrolling rapidly in the background to give the impression of cruising at warp speed. Took all night to do.
I think I need to seperate the HUD details from the player object. It seems there are times when the player needs to exist but I do not want to display any of the healthbars and ammo etc. hopefully it doesnt take too much time to recode. maybe it will improve the games speed too if I render it less frequently.






Thursday, December 13, 2012

Inception!

Well hello there, I am Guy O and I'm an indie game designer in my spare time. Welcome to my web space where I will document the behind the scenes process of developing a video game.

This isn't exactly my first rodeo. I learned basic when I was 10.  I was part of a team that made Bloodmage total conversion for Quake in 1998 which got about 8000 downloads.  I attended the DAVE school at universal studios in 2002. I made mods for Unreal Tournament and one level was published in a map pack on an Electronic gaming monthly magazine CD in 2003. I was on a team that made a UT2K4 engine game for DAVE school based on their NASA seals film and the game was playable at comic con in 2004. Since then I have been learning more about programming and developing solid design documents for various game ideas I have come up with. So I feel like now is the time to really make my mark on the industry.

Mobile games sales last year were 5.8 billion dollars. PC game sales totaled 18.6 billion dollars. So lets see what it takes to get a piece of that pie. First off I look at the sales charts and see what is selling. When you look at a game like Angry Birds which is in at number 1, it's not terribly complex. There are simple graphics, very simple controls and game mechanics. The hardest part seems to be that it has lots and lots of levels which would take time to design. It's a very accessible game. I appeals to all ages, all types of people. It has gameplay which is easy to learn but hard to master. The game came out in 2009, by June of 2012 it had been downloaded 1 billion times. I look at a game like that and think why didn't I make that? It would be easy to reproduce that but the key is, they thought of it first and they got rich doing it.

When you want to make a video game, the first thing that needs to be considered is the type of game that it will be. The software I use is called Gamemaker. It can make 3D graphics but generally it is better suited to making 2D games with a retro style. So the game could be a side scrolling platformer like Super Mario or Metroid. It could be a top down shooter like the original Grand Theft Auto or an Asteroids game. It could be an isometric beat-em-up like a Streets Of Rage or Double Dragon, It could be a puzzle game like Tetris or even an RPG like Legend Of Zelda or Final Fantasy.

I've started a half dozen different games already. Just practicing and learning the software. I even have some things that are playable in a basic form. Now that I have some coding skills it's time to pick one and make a finished product from it and then see if I can make this hobby profitable.

So talking about it is nice but I'm sure you want to see something in action. Here is an example of one of my test runs at designing a great game. I hope you like it.