Oh boy, what a nutty couple of months! It’s been very intense but it was all worth it because I can now present to you the YPAPS-G Trailer! I’m very proud of this thing and hope you get a kick out of it! I’ve got just a ton of things to say but let’s get to the good stuff first!
Making the trailer was fun as hell but I forgot about how much work it takes to get the footage and to edit it all. It didn’t take me too long; I think about 4 hours total including the recording but I had to dust off some cobwebs so to speak. I just had an idea about what it should look like in my head and once I got back into the flow of things it was not hard to achieve.
So let’s get into what’s happened since the last update. Unfortunately, my friend who was going to do the soundtrack was only able to provide 1 track (which I ended up using for the trailer) His plate was already pretty full when he took on this job and so to relieve some pressure (and to stop hounding his ass because that’s what I was beginning to do) I thought it would be best for the long term to put it on hold. I came across the work of another composer named Eric Matyas (www.soundimage.org) who has done a ton of music and when I listened to some of his samples, I thought they fit the game perfectly. I contacted him about usage and everything was good to go!
This all happened about a month after the last posting while I was waiting for the soundtrack to be made. I was working on Out Of Hell and the ideas for YPAPS-G still kept pouring in. I thought of funnier things to add, new features etc. so I went back in. I’m so glad I did because in hindsight, had I just released YPAPS-G a month ago in that form I would have been kicking myself NOW just thinking “Oh man, I should have added this!…and-and THIS! And it would have been even funnier if I did THIS!“
As it stands right now, I am completely satisfied with what it is. There were only 3 things I wasn’t able to do but I can let them slide:
1: Long flowing hair for some of the mannequin heads (you know, like one of those Japanese female ghosts that just stand there and people find them scary for some reason?) I originally used the same technique I did for the poop chain (chaining together hair planes) but it just didn’t look the way I wanted it to. Maybe I’ll give it another shot later but I think I’ll just leave it for the time being.
2: Jumping out of the water. I did get it working but something wasn’t quite right with the way the player character was interacting with entering and leaving the collision volumes. At times it would work the way it was intended (you jump up out of the water and then plop back in) but other times you would still be able to continually “swim” up out of the water and into the air if you spammed the swim key at certain times. I’m sure it had something to do with the way I set it all up but I eventually just gave up on the idea because of all the other potential problems it could have caused to the game mechanics.
3: Seperate Leaderboards. I just could not get this to work http://epicleaderboard.com (even the demo that was provided didn’t work for me) No matter what I did I could not get the scores to upload. I emailed support but haven’t heard from them but that’s alright since I’ll just be using the Steam Leaderboards anyway!
The rest of the time I spent testing, testing, TESTING! I wasn’t expecting that much testing! (If I had put this much effort into troubleshooting the Out Of Hell mod it may not have turned out to be the mess that it was *wink*) I was at it literally EVERY DAY. Testing and tweaking and bug hunting and implementing suggestions from people who played the game. It was non-stop.
It’s a very difficult line to walk; making a game challenging without it being frustrating. I did my best to not make it rage-inducing! I wanted it to stay a simple 2-button “Tappy” game and had to remove some of the things or not include others; a dive feature when holding the swim key down (but it actually made people dizzy) autofire when picking up specific items or the second idea of holding down the fire key for autofire (it made the game feel less satifying and less challenging) Player knockback when colliding with an enemy (made for some frustrating deaths so I added a camerashake to give the illusion of impact but in reality you aren’t being forced back when you’re hit) and movement keys as suggested by one tester (which I straight up refused because the addition of movement keys turns it into a different type of game)
There were also a lot of issues that just plagued me for weeks upon weeks. One of them was getting a “Save” feature to work for the scores. I followed tutorial after tutorial and everything seemed to work for the people in the videos but not for me! It was driving me batshit crazy until after week 3 when I nearly gave up on that feature. It was only then when I was casually reading up on a save system someone had made that I came across ONE. SINGLE. LINE of code that changed everything.
” -MultiprocessSaveConfig “
The people in these tutorials were all launching their game with PIE but I was launching it as a Standalone game. In order for it to work in a Standalone game you needed to add that line to “PLAY STANDALONE GAME, additional parameters” if you were using UE4’s SAVECONFIG method.
*forehead slap* No one even mentioned that shit!
After that was solved, it was onto another issue: sometimes the character would go off-kilter which would cause the level tiles to spawn at an angle. I checked all my code, went through all the models again to make sure their pivots were all aligned yet it was still happening! It took me until OCT. 16 to fix it! I tried narrowing it down and noticed it was only occuring during the last level. It just so happened that a single ninja was twirling my way and when he kicked me, I noticed the crates moved a few degrees! THAT WAS IT! The direction of his kick was what was knocking me off my axis and so everything appeared to be spawning crooked when it was actually the player trajectory that was crooked! That ninja was the only type that had a tornado kick which hit horizontally and that is why it wasn’t happening anywhere else. The relief I felt when that got fixed is…indescribable.
There was also the issue of the the player character suddenly dying when it reached tile 156 (when playing as a certain character) Why that tile? Took me days, after going through a ton of code to realize “Oh wait, am I just hitting the “Level Boundary?” and it turns out I was. I think that “Endless Runner” type games have it so that the player simply runs in-place and the tile spawns underneath them, moves and then disappears behind the player giving the illusion that the player is running through 3D space. In doing it this way you could have an infinite amount of tiles to run through.
I did it the stupid way, in that the player actually moves through 3D space and the tiles spawn as they move and get destroyed as they pass. It’s too late to change now but that’s something I learned for future projects of this nature.
I also didn’t know about things like Deltatime and locking movement to framerate. I didn’t realize it until I packaged the game and was testing it out on a friend’s laptop (it was an older machine) and noticed that even though the framerate was low, the movement of some of the actors was just really, really slow. I looked into it when I got home and learned about using Deltatime. That was another big plus for testing, testing, TESTING!
The last big problem was that everything worked fine until about the 60th tile where I would get huge drops in framerate (I’m talking a 50-60% decrease) I went back and restructured a lot of code so that it didn’t rely on ticks so much and the problem still persisted. Eventually I found out that some of the things I was spawning (items/weapons/enemies) weren’t actually getting destroyed when they were no longer in the player’s sight. So everything was fine until we got to tile 60 and there were literally HUNDREDS of actors spawned off-screen and eating up all the memory! It turned out to be a silly little oversight that had to do with setting the wrong collision and…you know what, it’ll just take too long to explain my setup so just know that it was a stupid little mundane mistake that I made. 🙂
All in all, it was an absolute blast making this game from the beginning design stages all the way to the trailer. I learned so much in such a (relatively) short amount of time that I can apply to Out Of Hell (I actually went back and fixed some of the code in Out Of Hell using what I learned from making YPAPS-G) I learned even more about myself and how to keep focused yet stay balanced (I never once burnt-out) I just like to think of this as a little 2-3 month venture off the main path to gain some tools and learn some extra knowledge that will make my main journey a little easier.
I’m going to go even more in-depth with all of this and offer some words of advice when I write the Developer Journal for the game but right now what I have to do is maybe go through and check for redundant code and assets, implement Steam Achievements and Leaderboards (there’s tutorials out there for it)
So there you have it guys! I’ll update you when it’s all uploaded onto the Steam page. The game will cost 2 bucks and I’d love it if you could help spread the word about this nutty game since I suck at PR! 🙂