Milestone 5 - Release


September 30, 2017

Associated Milestones: # 5 Release

I had time to make some final last minute improvements that have added some polish to the game. I have implemented an advanced scoring system that will aggregate the score from number of enemies killed, overall accuracy, and game length. I added a new room to display the show how the score was calculated for transparency and player mastery. Below is a quick playthrough demonstrating all features.

September 29, 2017

Associated Milestones: # 5 Release

Crunch week consisted of large amounts of fine tuning and looking into bugs. Once major bug I discovered was when I exported the game into a .exe and .dmg file. Running the executable caused a system crash on both Windows and OS X. Due to how the Game Maker Studio runs the VM in testing / debug mode - this was not caught during the development process.

The root caused ended up being because I used an incorrect function for gathering user input. The operating systems would see this pause in the game / hung resources and assume the application had crashed. Basically, it was shitty programming on my part. I replaced the string request with an asynchronous function so the game would continue to run while the dialogue window popped up.

This was an issue because the enemies would continue to spawn and trigger the death sound endlessly. I got around this easily by simple moving to a new room at the time of PC death. This room was a black screen that would then prompt the player for a name. Afterwards, it would calculate and draw the new high score table and spawn a button to return to the main menu. If the player hits cancel instead of entering a name it will perform the above options to prevent the player from getting stuck in a room.

There was a second bug that affected the OS X client only. Unfortunately, I was unable to resolve this bug without removing a feature by my deadline. The goal in this project was to complete the project by the end of the month for Windows. The OS X bug could be reproduced by colliding with an enemy while holding down a movement key ( a very probable occurrence while playing ). The player would have the prompt to enter their name and then upon restarting the game the PC would automatically start moving in the exact direction of the previous collision. So in game 1 if I hit an enemy while moving north west (W and A key) then when I restarted the game the PC would begin moving to the top left corner of the screen.

I spent hours running the game through a debugger and noticed that the movement variables would be incorrectly set to a value of 1 at these times ( on Windows they were not set which is the expected state ). I did a number of tricks like initializing the setting all variables to 0  at the collision event. Created a parent object that actually spawns the PC when the game starts that sets and initializes all the PC variables to 0 then creates the PC object. The list goes on.

Because I was so far ahead of schedule for the majority of my development cycle, I was really excited to be able to go above and port the game to OS X. I decided to cut my losses and realise that I still hit my goal and I learned a valuable lesson about how the Game Maker Studio engine works and that I need to adjust my testing process to avoid these last minute bugs that do not surface during regular play tests.

Files

G3 Sector.zip 14 MB
Jun 06, 2018

Get G3 Sector

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.