Good Luck…

The new timeplan is so far a success- I’ve managed to cross a week off the list, and a little bit of next week too!

This week however has started off a little slow, but I’ve managed to get a lot done. This morning I played through the game from level one to level three for the first time to check that everything worked well in succession, and for the most part it did! One random little bug started to emerge towards the end of the playthrough however, as the framerate started dropping rapidly whenever I passed by a doorway to a building or cave. I managed to solve the problem by tweaking the “teleport” code slightly (I literally moved one line and removed a pair of curly brackets and everything was fine!) In the panic I read through this article on the Game Maker Community forums, which talks about optimizing game performance through various settings and commands, so the rest of the morning was spent tweaking little bits for best optimisation. One of the most vital lines of code I’ve added is this:

These few lines deactivate EVERYTHING that is outside the current view, and activates it when in sight. I had to activate the top corner of each room in the last line of code, as this is where all my control objects are kept including light functions, menu functions, sound functions, HUD functions… By reducing the amount of active instances, the game runs at a very steady 60 FPS constantly, occasionally dropping to about 58. Hopefully this means that even on lower spec machines the game will be very playable.

After this was over, I spent a little time tidying up little bits that I’ve previously started. I’ve replaced my old pink room transition object with an open door sprite, which is drawn onto the screen when the player reaches the right amount of flowers. The door only opens slightly, which is great if you’re nearby when you collect that final flower because it actually looks a bit like the door is opening.

I’ve fixed my save point Furin so that it looks like it is attached by a nail, not just floating next to a rock! I’ve made sure that all my save points are actually within reach of the player, which seems like an obvious task but this really is something I had previously overlooked.

As for the actual saving problems I was having, I’m not sure there’s such a big problem there after all. The problems may be related to the fact that the saves are made in the middle of making a lot of changes to the levels. I’ve also changed the save file to a .ini instead of a .sav, which for some reason saves more of the game information and is the only file extension which will reload sound effects. So until I’ve finished everything in the game, I’m not going to change the way the game saves or loads.

I’ve started to work on the final level of the game, firstly by changing the colours in the tileset and secondly by getting creative with my old tiles again. Up until now, my buildings have been very samey, so I’ve been experimenting with new ways that I can use my existing tiles (again!) I also managed to make a mini bridge from a section of my old bridge tiles.

There are now blossoms to collect in this level, so the HUD displays a total of all the flowers the player has collected throughout the game out of a possible 90. This was simply a case of adding the values of global.itemList1, global.itemList2 and global.itemList3.

Now that I know roughly what I’m going for with the design, I’ll do most of the rest on paper. This building will branch off into rooms, as opposed to having a large open outdoor space to explore. In one of the rooms there will be a door which only opens with an accumulative total of blossoms, so although the player may have made it this far they may still have to backtrack and do some more collecting! The end of the game is through this door, although I’m going to have to go back to the GDD and have a think because I don’t actually know how the game ends yet…

Good Morning, Week Twelve!

I recently bought a SNES controller to USB adaptor so I that I can plug my old gamepad into my laptop, and as an added bonus I’ve been setting up the buttons to correspond to keyboard keys so that it can be used to play Hanami. Game Maker has a limited range of functions for “joystick” input, which took a while to figure out. Each button is given a number, and I used a process of trial and error to work out which button responded to which figure! I made a note of all the relevant buttons so that I can make the best of controller input in the future:

Button 1: B
Button 2: A
Button 3: Y
Button 4: X

Button 5: L
Button 6: R

Button 7: SELECT
Button 8: START

The direction buttons (D-pad) are a given! I downloaded a script from the Game Maker Community forums which is fully customisable to allow each button to represent a keyboard key (I could have done this myself but this way was just easier and saved a lot of repetitive typing!) So far, I only have to accommodative for a short list of functions, but I’m trying to think of ways to use more of the controllers buttons (only if this doesn’t make things overly complicated!)

X (execute): Button 2
Z (jump/back): Button 1 & Button 3
S (Inventory): Button 4
RETURN (Pause): Button 8

I’ve created a new object called obj_joystick_control which simply sets each controller button to “false” until it is pressed, in which case the script operates the relevant function, so I haven’t had to go back and find everywhere that I’ve coded for keyboard input and change it! Obviously, you can still use the keyboard as I’m guessing not everyone has a SNES controller and USB adaptor lying around. For me, I find there are few PC games that I would rather play with a mouse/keyboard than a gamepad, and I think all good PC games should support controller input!

Back to more important things, yes it’s now week twelve of the EMP and the beginning of the Easter holidays. According to the timeplan I wrote 12 weeks ago, I should be “thinking of ways to resolve problems with various downloaded scripts and extensions” this week, which I’ve actually ended up doing as I’ve gone a long and as a result, haven’t had too many problems to resolve. My “problems” so far have mainly been visually, as I’ve included a range of useful extensions and scripts that execute functions far better than I could have done if I’d tried from scratch. As well as this, I’ve allowed this week for feedback from videos- so visual feedback rather than gameplay feedback so that I can continue to refine the game’s graphics.

As visuals are my main emphasis right now, I’ve decided to tweak my timeplan slightly from now until the end of the project. It wasn’t easy to predict exactly what I would have by this point when I wrote my original timeplan (which is why it’s ended up being a little vague!) Last week, I had planned to start to work on physical attributes of the game like casing and manuals, but ended up concentrating on getting level 2 down, which went really well and I managed to get a lot done in one week! So for now, I’m going to carry on designing and creating levels, and concentrate on other areas one at a time. I’ve tried to prioritise a list of things to do in terms of how important they are to the finished game: level layout design/creation, object/content placement, code for interactions, GUI/menu systems, sound refinement, physical design. Based on this, I’ve here’s my new timeplan: