Jiggy
09-18-2011, 04:01 AM
Turn your volume way down before running this game, because for some reason I can't adjust the music volume on my end of things--so rather than turning the music down, I had to turn the sound effects up to match.
Anyway, I think (and hope) there are two ways to get this Octokitty game:
1) Download this version (http://www.gf-park.com/misc/octokitty.exe). It has an ugly watermark stamped on it because I made this thing for free, but at least it's just a simple download-and-play.
or
2) A prettier version takes a little more effort. Download GameMaker Lite here (http://store.yoyogames.com/games/277-gamemaker-for-windows-lite) and install it, then download this zip file (http://www.gf-park.com/misc/octokitty.zip) and unzip it to your desktop (or whatever). Merge the folders from my zip in with wherever you put the GameMaker folder, then open GameMaker and File - Open octokitty.gm81. (I put it in the Examples folder with the demo games.) From there, just press F5 or go to the Run menu and click Run Normally to start the game.
***I said "hope" earlier because I'm assuming that the .gm81 file doesn't generate a unique key that only my computer can run--the kind of thing that I wouldn't know since I can't test it myself. If I'm wrong about that, then I guess you'd be stuck with option 1, unfortunately.
Screenshots with the ugly watermark version compared to what it's supposed to be:
http://www.gf-park.com/misc/Octokitty1.gif
http://www.gf-park.com/misc/Octokitty2.gif
Author's notes coming tomorrow--and there'll be a lot of them, believe me.
I probably don't have to explain the controls after showing that screenshot, but hey, just in case, the arrow keys move and the space button fires. This may or may not work with USB pads; I haven't tried, but I did put in what looks like code to make them work, so hopefully they will work. If nothing else, there's always JoyToKey.
Regardless, enjoy this score attack-ish game. Or don't. It's up to you! Believe me, you won't hurt my feelings. Spend enough time working on these things yourself and you wind up losing the ability to understand them as a gamer in lieu of gaining the ability to understand them as a creator. So I don't know whether it's fun; I can't really "see" that. I can only see whether it does what it's designed to do from a technical standpoint.
:octokittyrun :octokittyrun :octokittyrun :octokittyrun :octokittyrun
Jiggy
09-19-2011, 12:23 AM
Let's do this in Q&A format because I have so many points to hit.
How long did this take?
Eh... 40 or 50 hours? Something like that. But this is the first time I've ever used GameMaker at all, so it wasn't the game that took all that time so much as me pretty much learning the thing from scratch. If I tried to recreate the entire game now I'm guessing it would be more like 20.
Why don't the enemies blow up in Mega Man explosions?
Because I can't find the graphics for them--can't find the "small enemy" explosion or the boss-or-Mega-Man-explodes. It would be easy to implement the former and fairly easy to implement the latter if I had the sprites, though.
Why doesn't hitting the small birds play a sound effect?
I tried it, but when you can have fifteen of those things dying in three seconds, the full explosion sound gets extremely annoying. Even the modified sound I used for hitting the wind enemies gets old real quick if it's used with the small birds.
Shouldn't Octokitty actually have to work within the terrain instead of flying over it?
In an ideal world, maybe. I originally had it set up that way, but it created one situation I didn't like and another situation that went horribly wrong.
The thing I didn't like was that if I implemented collision detection with the floors then either 1) I'd wind up creating a level that Mega Man could never beat because the platforms were spaced too far apart (I'm pretty sure everything I've put in would be playable by, say, MM9 Mega Man going left to right) or 2) Mega Man could have gotten around, but Octokitty would have serious issues with cramped space. Octokitty's sprite is much larger than Mega Man's, so moving around required 2x2 empty spaces.
But what really caused me to toss the idea out the window was that I couldn't make it work well with the wind enemies. The wind enemies blow Octokitty backward, but hitting a floor makes Octokitty stop and basically "turns off" the wind. That's already extremely ripe for abuse, but here's what made it worse. If a wind enemy makes you move to the right at speed 5, it has to set you to speed -5 when it's killed, which would bring you back to 0. But since touching the floor brings you back to 0 already, killing the wind enemy then sets you to -5 speed and makes you move to the left. I didn't find a way around it, so in the end I just axed the idea.
I had also kind of thought to make only those giant head platforms solid since none of them are close enough to wind enemies to ruin things, but then I found that the homing enemies were almost literally impossible to avoid. Another no-go.
Hey, there are none of those blue worms or lightning-throwing enemies in here.
I couldn't think of a use for the worms in a scrolling shooter setting against a flying character. The lightning-throwing enemies are too slow to seem interesting.
Why does this game have so much health?
Because Octokitty is a celestial being. Or something. And because I wanted a very long fight with Air Man where he tosses at you way more than he ever had before.
Originally I was even thinking of making Octokitty invincible and having it play out that every time you "die," your health resets to full and a message goes up that you've decided to use 0.1% more of your power. So basically you would only get more and more powerful as you take damage, resulting in an epic final battle with Super Saiyan Style Air Man.
In the end, though, this was still only a project of me messing around to get a feel for what the possibilities and the limitations of GameMaker are, so I just decided to get it working reasonably. Even making Air Man do as much as he did was a lot more complicated than I anticipated, so having him jump around or do anything special would be a real burden. I could make him put out more homing tornadoes or increase the speed of his tornadoes as he grows weaker, but ultimately I didn't feel like that would improve things much.
Why Octokitty?
Why not?
Gonna make any more shooters?
If I did, they'd be more simple than this one. That's not to say they'd be "worse"--some of the best shooters have extremely simple enemies. Creating a shooter with enemies that move in certain formations and along certain paths every time is a breeze compared to all the things going on here.
Before trying my hand at this, I didn't realize how complex the Air Man enemies are relative to real shooter enemies--we have wind enemies who change the movement mechanics, enemy generators that regularly produce enemies with better homing capabilities, and birds who drop eggs after hitting a certain distance so that the eggs can touch the ground and break one time to produce enemies with limited homing capabilities.
Compare this to, say, the first level of Super Star Soldier. That features ships who fly in formation and move along a fixed path, mechas who detach at fixed time intervals (not based on distance from the player) and fly along a fixed path, and missiles that fly at random angles and stick to that angle. Recreating those enemy behaviors would be almost no work compared to what's going on here, yet the differences in quality are impossible to detect from the player end. That's why I'd stick to something more simple.
With all that said, I'm not sure if I'm too interested in making more. I only wanted to get a general feel for the limitations of GameMaker and I think I kind of understand it. What I'd like to do instead of making another shooter is check out LunarMagic (Super Mario World level creator) or RPGMaker to get a feel for those too. I kind of looked at LunarMagic before, but not in-depth.
Why are we flying to the left when almost every other shooter flies to the right?
My original concept was that Octokitty would be flying "backwards" through several stages from retro games like Mega Man 2, Ninja Gaiden, and Metal Slug--basically the game would be presented like a look back on the past, with all the stage layouts preserved just as they were originally (which obviously didn't happen in the end). The enemies would be trumped up to several times their number for no explained reason, and Octokitty would still be running rampant on them because, hey, cosmic power is fun.
Why Air Man's stage? Why not Wily 1 or something?
Short answer: Shifting scrolling is troublesome.
Long answer:
The first stage I tried was actually the opening level from Metal Slug 2 because it's entirely horizontal--getting the screen to scroll is handled sort of funkily in this software and I didn't feel confident that I could make a level that would scroll left and then up and left, or anything like that. I abandoned that first thought because so many Metal Slug enemies are ground-bound that I couldn't think of any way to make it fun. (It turns out there was an even worse issue and the stage would have been unusable no matter what, though, so no real loss.)
So I looked for other level layouts. Gemini Man's stage has the right "look" but also has too many ceilings. (Taking its tiles to create an original level layout would be an excellent idea, though. I know that now.) The Fantasy Zone layout I found showed the enemies in it, so I couldn't use that. Gradius seemed workable, but the first stage is so basic and devoid of anything interesting that I decided against it. I actually have a great layout for the first stage of Legend of the Mystical Ninja on SNES, but it's not as iconic a game as Mega Man 2. If I made a second shooter level, though, that would probably be my first choice since I wouldn't have to change the layout. (I don't know how hard it would be to find the enemy sprites, though.)
But Air Man's level stuck our--it's extraordinarily horizontal, so I thought maybe I could cut out the vertical drop section and the boss room and redraw some clouds, then be done with it. Again, that's not what ended up happening since I took the tileset and changed the layout entirely, but by the time I just wanted to get started for real and see things get done and it seemed like an easy pick.
So, uh, why does this Octokitty sprite "run" so fast?
This is the speed Octokitty's legs need to move to achieve flight.
Real answer: beats me; I just dragged the GIF in and it ran that fast. At first I thought I'd simply fix it later after making sure I could actually get enemies working, but I wound up growing attached to it, so Hyper Octokitty it is!
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.