GPN Developer diary for Assignment 2
Honestly, I am writing this developer diary after I finished submitting the final product. The development of the game spanned a total of 4 - 5 weeks, starting from whitespace. I would estimate that 200 hours have been sunk into developing this game personally. I write this diary as a personal reflection of the course of actions I took from the start to the end of development. Week One Week one of development, I started experimenting with the various functions that game-maker offered. Of course, then I started from the very basics such as creating and placing objects, experimenting with basic sprites. I had to refer to the given class practical constantly. For the first few hours I had slight trouble understanding the concept of alarms. After which I got that they acted just like alarms as the name suggested, nothing more nothing less. When I started messing around with game-maker, I had a vague idea of a game to work towards which was inspired by another game called Realm of the Mad God (rotmg). It was a 2D sprite based top down shooter that I had slight experience with and I wanted to try emulating some of the attacks patterns and monster styles of that game. Note that at the time of experimenting with this game, I had no intention of letting this be the assignment project. All I wanted to do was to brush up on my game-maker knowledge so that when I collaborated with my group partner Robin (who I know is a very good programmer), I would be able to hold my own. Delving into the development I had no idea what sprites to use so I copied the Party Parrot sprites from the subreddit r/partyparrot since they had open source sprites on Scratch. For the rest of the week I just experimented with calling various attack patterns with if and for loops, combined with alarms, I managed to create staggered firing patterns that were not just a steady stream of bullets per step. However, with the knowledge I have now looking back, my code was very much not optimised, and, in my opinion, there is a jarring difference between what I wrote vs what I would have written now. It makes me realize that working with old code that I wrote when I had little experience is frustrating. All because the code works, and I have neither the time nor the courage to mess around with it just to make it more efficient or at the very least a little more readable. That’s about it, the game was very bare boned at that point in time with nothing much to show. Week Two Week two was when school reopened and I shared with Robin the bare bone product of what I had created and he said he liked the idea. Just like that we made it our assignment project. The feedback from Dr Oon that week was to try adding some sprites to make the game look more polished. Listening to his advice for the first time back then, I was wondering why he emphasized so much on the addition of sprites. In my mind, I was under the notion that sprites would have to be the easiest part of creating a game and was just pasting of sprites over objects. Boy was I wrong. After listening to the advice of Dr Oon, I went back that week to experiment around with sprites. At first it was relatively easier compared to coding the movements of the objects. However, it felt like something was missing. Looking at the game, it looked like a 2-year-old had come up with the design, 2D drawings on a background that could’ve been better. This made me contemplate what was wrong, what was missing from this game that all the hundreds of games I had played had. The answer I came to was character. Every game has character, the art-style of the game, the atmosphere it gave off, perspectives it showed, in essence the feel of the game. But what gives a game character? What did I need to achieve this effect? While I am sure that there are other more advanced techniques that other games use, I had the simple idea of adding shadows while carefully picking my sprites to only show perspectives from a certain fixed angle. By doing this, it greatly improved the look and feel of the game, the projectiles felt like they were to be dodged, and the boss to be feared. However, achieving this effect was no small feat (at least in my uneducated opinion). As I was taking much inspiration from Realm of the Mad God, I wanted to incorporate a rotation effect as a quality of life feature which would help facilitate the dodging capabilities of the player. Let me just say that this rotation effect would have been the death of me. Looking back now with the understanding I have, it is a rather simple effect to incorporate, it just being tedious to do. As I made the sprites come to life, with the boss tracking the player’s motion and changing sprite rotations accordingly, the rotation effect caused me a lot of problems. As I know, there are two ways moving a character in game-maker. One through moving the x y values while the other being to change the speed and direction. The way our game’s playable character moved was through the x y axis. To make it sync with the rotation, I spent a good 1-2 hours messing around with math, math which I have not used in years. Finally figuring out with a combination of cos and sin functions to change the x y coordinates according to the direction of the object. Alas my excitement was short lived as my self-proclaimed achievement was shot down almost immediately after I found out about the in built lengthdir() function in game-maker which achieved the exact same effect except easier. Moving on from controlling my character and its sprite rotations, I now had to make the objects (namely the boss) around me track my location and change its sprite accordingly. The code I used to achieve this was so messed up and probably unnecessarily convoluted that I indulge your forgiveness as a green horn in game-maker, or game making in general. I used a combination of tracking two separate direction variables, one of the room? And the other of the object. I know it is as weird to understand as it is of me to explain it when even I myself would have trouble understanding what I did back then. Something about tracking the directions and using the same trig lengthdir() functions. With that week’s work, the game was looking a step up from the week before. It now had a semblance of character, garnering wows from anyone who laid eyes on it as if enchanted by a spell. On a side note, I realize that after looking at a game you have been working on frivolously for a couple hours you start losing sight of its appeal. As a film develops over your eyes, you start to question if the game really is as wonderful as people let you to believe. It is a weird feeling. Week 3 and 4 These two weeks had not many notable developments. Due to the deadlines of other assignments and some small tests, efforts were prioritized there instead. However, some small developments of the game were ongoing, such as adding of some UI elements, or quality of life changes (tinkering game balance etc). For the final boss room, I think this was where the third phase was developed, however it would be seen to be underwhelming if you play the game. At this point in time I personally was facing a drought of idea and interest. It was yet another thing I learnt about the developing of a game. After weeks of intense work being put into the game, I got burnt out. I had little regard for the future of the game, at that point in time I brought up with Dr Oon that I was losing interest in the game. I needed something new, something to work towards, something that excited me to try develop. Week 5 This week was when I found the thing I wanted to achieve. After all this time our game was only two main rooms which were the two different bosses we planned to incorporate into the game. The game was lacking any form of player instruction/tutorial, it did not have a start screen nor an end screen. My mission for that week was to come up with an interactive start screen and tutorial segment. I am very proud of my start screen LOL. If you have or are going to play it, it is awesome. Self-feeding of my ego aside, the creating of the start screen and the tutorial segment brought out a more creative aspect of game development which I very much enjoyed. Knowing that you as a developer get to interact with the people who are playing the game through gameplay was just that extra kick I needed to break free of that plaguing listlessness. We also rushed the music and sound effects of the game on the last day of submission, and touched up the UI for most of the rooms, but sadly forgot to give the last boss the same treatment. Individual Contribution The game consists of so any assets and functionalities that stating them all would be neigh impossible let alone splitting the credit among two people. I'll just have to say that whatever Robin did not do, I did. For the most part we worked as a team and were able to cover each other's capabilities through the development of the various aspects of the game. Link to Game-play Demonstration https://www.youtube.com/watch?v=OU-ciqVpPMw&feature=youtu.be Conclusion With that the official development of the game had come to end. Amidst the relieve, an ever so slight feeling of remorse is felt knowing deep down inside that the game could have been so much better. So much time spent idling on my phone during the lull periods of weeks three and four, the lack of interest and discipline to continue development of the game. If I were to refer to the game as person, it would be like that friend in school who always made an extra effort to treat you well, but you never really appreciated it, and on the day of graduation you two make a passing glance with a light-hearted exchange of friendly banter only to never see each other again. The development of this game has taught me so much, it has kept me up longing to work on it, dreaming of ideas, thinking of code, burning me out, pulling me back in till the final deadline and completion. I will always remember this as my first substantial game, with nightmarishly messy code, 50% copyrighted assets, and wonky gameplay. I would also like to mention my teammate Robin who I had the pleasure working with. Working with so many groups in polytechnic over the past one and a half years, nothing comes close to the bliss of working with someone who is competent enough to handle substantial workload independently. Robin is in my opinion a very good programmer who has contributed substantially to the development of the game, without which the game would not be what it is now. I would like to move on to developing another game with game-maker to make use of the knowledge I have now and to learn more the intricacies of the developing platform. My idea revolve somewhat around a 2D game inspired by Monster Hunter, with fluid and natural monster movement using a combination of different objects as body parts. Stay tuned!
0 Comments
|
Details
AuthorZachary Tay, 23 years old. Making my first ever game! ArchivesCategories |