Please make sure to check out the first, second, third, fourth, fifth, sixth, seventh and eighth installments of the Xeodrifter dev diary, which you can find here, here, here, here, here, here, here and here!
Friday, August 8, 2014
This past week has been a very busy one! We have all of the enemies functioning in the game. Some of them have artwork, and some use just placeholder boxes to show their size and position. The enemy process starts with jotting ideas down in a doc, usually accompanied with a simple diagram to help illustrate the enemy size and behavior.
[Rough enemy diagram]
Once I am happy with that, I pass it over to Matthew who then presents his thoughts on issues that he sees or new ideas that improve the enemy designs. Once we’re both happy with the enemy designs Matthew will either implement them using placeholder art and/or I will start creating final art for the enemies.
[Final enemy art]
Often times we proceed with placeholder artwork because I am tied up with level design/art and do not want to slow Matthew down. Matthew always implements the enemies in such a way that their core parameters are exposed and editable in a text document, which I can mess with. Editable parameters include movement speed, rate of fire, speed of shots, health, damage, and so on.
[Editable Enemy Code]
Adjusting the “fx32 shotspeed” parameter, listed above, can produce dramatic results in the game. As you can see above, it is currently set at 3, which is fairly fast. To give you some reference, the player in Xeodrifter moves at a speed of 2, whereas Max in Mutant Mudds moves at a speed of 1. Making the enemy’s bullets travel faster or slower can make something more or less challenging.
Another parameter that can produce a noticeable difference is “int pausetime”, which is the time between shots. Right now it is set to 80 frames (at 60fps, 80 frames = 1.33 seconds). Lengthening or shortening this time affects how easy or challenging it can be to avoid the enemy’s shots. You’ll notice there is a line included, “;int pausetime 60”, with “;difficult” listed above it. The “;” symbol means the entry is ignored by the game. This is a reminder for myself I left in when I found 60 to present a difficult challenge.
So, now I am finally able to run through the game and experience the enemies for real, which is an amazing milestone and extremely impactful. I usually experience a mixture of emotions and thoughts that range from, “This game is awesome!” to “Damn, my design ideas are sh*t, this game sucks!” I try not to worry too much, though, as I know this is normal. I have been through the process enough times to logically realize that I need to experience these things in order for me to feel motivated to make the game the best we can make it.
In addition to getting the enemies functioning, we also have the saves and checkpoints working. It is really starting to feel like a finished game now – sort of. This is the point where the baby gloves come off and the… grown up gloves go on? Whatever the analogy, I can now start making final determinations of game difficulty and the player’s experience through the game. This involves the difficulty of enemies and the placement of pick-ups to try and make a challenging but fair journey through the Xeodrifter labyrinth.
[Somewhere to explore in the background]
[Scan this QR code with your 3DS and see the new screen in 3D]
The final big piece of the puzzle that remains are the boss encounters. The design is fairly flexible and enables us to create six boss encounters from one focused development effort. There will be a sense of repetition with each encounter, but I am hoping that the new, unique additions presented with each of the six encounters provide a fresh and entertaining experience.
[Empty boss room viewed in level editor]
Thanks for checking in on our progress with Xeodrifter. Keep on playing those games. I hear there’s a couple of excellent eShop titles that are on sale in North America right now! One is Moon something, and the other has Mudd in it. Happy gaming.