Friday, September 19, 2014

10 Days of Work and Advances - Part 1

As I previously stated, I started this 10 days late. So for this first post I'll be playing catch up, but I'll try to give a glimpse of the progression and advancement that my game has gone through over the last week and a half.

As I started up GM, I had little or no direction of where I would be going. I knew I wanted to make a platformer, but beyond that I had no idea what I would be doing. I start where most people start, and jumped around on youtube looking through the hordes of GM tutorials. I began to find that this engine is a lot more popular than I had expected, and the respective development community is in fact massive. Finally I stumbled upon a few very high quality tutorials, the one in particular that gave me the most help was Sean Spaulding (his channel is here, he does a great job), and I used his basic tutorials to get the ball rolling.

I started out with the basics of collision and gravity, which turned out to be a lot more complicated than I had expected. GM has a very basic drag and drop interface, but luckily from Sean's tutorials I saw how much more power you can obtain by doing open GML coding. I have taken a few programming classes, and so with that light background I was able to quickly understand the concepts and syntax of Game Maker Language. Luckily the tutorials were open enough to where I was able to tweak things to make them my own. I started out with an extremely simple set up, that looked more or less like this:

Honestly it was nothing but a little board with some 32x32 blocks, and a little smily block that slid around a jumped. He didn't turn left when you went left, he just slid around and ran into things. Interestingly enough, even something this simple was extremely satisfying to complete. The fact that I had written code that told a block to move around was a totally novel idea to me. As I watched more tutorials, I was able to soon after make him rotate as he turned left, I made the "room" he was in bigger, and continued to step by step improve the state of this so called game.

Soon after I had basic controls figured out, the overpowering-graphic-loving part of my brain took over, and I couldn't settle for just a smily blue block. I needed a character, stat. I knew that I couldn't let myself get too bogged down in the details of a high quality figure, so I settled with a simple, low detail, low personality robe. He had no face, no eyes, no hands, just a simple robe.



The only real detail he possessed was a slight 2 color shade system, and of course his several sprites to fit his different maneuvers. Interestingly enough, the real break through for me was when I (all by myself, no tutorial needed) added a look up and down functionality. For some reason seeing him move his little hood along with the camera just added a new sense of aliveness to the character and to the game. I was overjoyed with the development and at this point, I ran a little bit faster than I had the ability to go. 

Once I added the walk animations, something in my code snapped. I wish I had these crashy moments documented better, because those animations sent my previous collision functionality for a whirl. As I jumped around and explored with my little monk robe, he would constantly get shoved into corners, get stuck in them, shake between two sprite frames (the only way to relieve him was to hold up, which would slowly pull him down to the ground) and then sometimes he would return to his normal behavior. More often than not though, this strange collision bug resulted in the monk shooting 10s of feet across the level like a Skyrim whirlwind sprint... Kinda funny the first few times but then really frustrating once the solution couldn't be found. Luckily, enough fiddling is usually one of the remedies for a bug in a code, and soon after I found the boxes that hadn't been checked, and soon the monk could freely run around the blocky world without getting snagged on all the sharp corners. I celebrated this newfound solution with the installation of some lush, but rather seam-ful grass and dirt terrain. Anything was better than the gray blocks though, and thus the game started taking on the feel of being just that, a game rather than just an experiment.


No comments:

Post a Comment