Well, I think I made it over the figurative hump with developing games: getting started. In my last entry, I talked about the vision of what I wanted to create. This time, I’m happy to be able to celebrate what I have completed, and talk about future challenges in a little bit more detail.
So far I have basically ripped off Castlevania and Contra. Which I have to admit, feels pretty good. I would say I have the basics down enough where I am only constrained by my imagination, and not the tools I am working with, which is a really cool feeling in programming. It occurred to me the other day that I would consider myself to have learned this language. I wouldn’t pass an AP test, but I could ask where the bathroom is in it. And that’s kind of the funny thing, especially with programming languages: once you know how to syntax works, you just change around the words. In this case, I am still not used to having to type everything in a case sensitive manner. See, I work with VB for my job, and if you declare a variable as obj_Skeleton and then type in obj_skeleton, not only does it see it as the same object, it will capitalize the S after you type it in, which provides confirmation that it is the variable you want. So my eight years of VB (wow….8 years….time for more scotch) has taught me a bad habit in this language. It’s rough, but not the worst to overcome.
Thats actual source code, baby. What you all came here for, right?
Anyway, rambling on the technical end. I created a list of goals to do (partially just so if I lost my progress for whatever reason, I could figure out the last working state), and I am happy to say that I have made it to creating the ‘hook’ of the game. I haven’t gotten around to it, but I did try a little bit while drunk and then again when hungover, and didn’t quite master it, but I feel like I have a much more elegant solution in mind now that I had time to think at my job. Basically, I am feeling good.
I have a character that can shoot with up to 4 bullets on screen at once. You can shoot a limited supply missile, with only 1 on screen at once. You can aim in 5 directions (straight, 45 degrees, and up), and I have platforms that you can jump up to and drop down from. There are 5 ‘finished’ enemy types, each with different behavior, and 1 boss! Also, just today I made it so that the control scheme works on an Xbox One controller - something that I was a bit worried would take a lot of re work, but turned out to be really easy in their engine.
I want to say that with all of the mechanics, and glitches, I have found an incredible amount of joy. I put in a ‘bump’ animation when you get injured, like in the classic games, and found enemies that matched the movement speed would carry you back to the start/end of the level. Since I gave invincibility frames during the bump, you only took one damage, so I found myself trying to crowd surf enemies. Sometimes an enemy would freak out in some way that was funny, or do something that seemed otherwise goofy, which I had to laugh at and then correct. I think the most fun that I have had so far has been with the boss I created. I had to come up with different moves, making sure each one worked technically, but then I had to balance the whole fight into something manageable. Half the time it felt a hair too easy, and the other half it felt impossible. It is also strange to know going into this that I am just beginning to play. It isn’t terribly complicated, but what strategies could emerge that I haven’t seen that would trivialize a portion of the fight? But on the other hand, I start with such a deep mechanical knowledge of the game, that I have dozens of virtual fights under my belt just by knowing exactly how his behaviour is programmed. So I found myself fighting the boss for about 3 hours, and seeing what felt good and what felt bad about it. In the video below, you will see fireballs which I had as randomly falling from the sky. Random doesn’t work with that, turns out. So I had them alternate positions to ‘odd’ and ‘even’ vertical columns, which made it hectic, but manageable. Every aspect from the delay between attacks, how bullets behave with projectiles from the enemies, and if enemies would spawn if another one existed (spoilers - that gets really wacky, really fast if you leave it in), even the gravity that the skeletons fell from the ceiling...all of that was something that I had the power to tweak, and then try to get a feel for how hard it is. At the end of the day, I feel like I have hit a good sweet spot for ‘hard, but not unfair’ that I can still ramp up as per my game’s tenets.
I am not worthy...I am not worthy...yet
So where does that put me now? I think my goal in the next month or so is to get a working proof of concept online. And I don’t mean the metaphorical up and running online, I mean that I want it to be in anyone’s hands who wants to play it, especially Destructiod readers! This means that I will have to figure out my hook, then design two fully functional levels, create a title screen, and maybe look into sound effects. The sound effects will be my voice going ‘pew pew pew’, so I may make a menu option to disable sound. This is all going to be in a very rough state - no animations on the sprites unless it helps the conveyance, all sprites are from existing games unless they are geometric shapes, that kind of thing. It’s kind of scary to think about, because to an extent, I will run out of things to code, and have to actually work on game design. I’m great at coding, I like to think, but let’s say that my Mario Maker levels need work. Speaking of which, I wonder if you could make Mario Maker in Game Maker...hmm….
No, really, how did this get made?
Finally, I started to put some thought towards the story. This is going to be my weakest area, I think, which seems fine because it’s an NES style Contra game at the end of the day, but I would like the gameplay to drive some kind of narrative. I am thinking of going with something like The Last Witch Hunter, which, spoilers are incoming if you didn’t see that piece of garbage. Basically, you are cursed to some kind of immortality bound to another being. I’m thinking some kind of Lich, phylactery situation. Each level will give you the option to get tools to fight the Lich, to save the Town, or to do neither. Then, if you took one path the whole way, you get an optional last boss for some kind of super closure. I’m thinking I could even pull a Ghosts N’ Goblins and make it so you take a ‘true’ path where you remove the curse, but then have to 1CC the game again on the other path to get the true, final ending.
So with that, I have two videos to show for it First, is a video showing the level gameplay:
Second, a video that shows the boss fight:
At this point, I can make the boss fight into an executable file, if anyone would want to give it a go and provide feedback! Otherwise, I will keep working towards getting a proof of concept up and ready!