A couple of weeks back I decided I fancied a change of pace; the Haunted PS1 Demo Disc is something that I’ve been aware of before, and when I saw that they were having a summer game jam, I figured this could be an interesting project to work on for a month and a bit. I haven’t made anything in UE4 for a while, and I’ve been playing a lot of PlayStation 1 games over the past couple of years, so I really liked the idea of recreating that aesthetic.
I don’t want to reveal too much about my plans for the game just yet, but I’m going with the theme ‘Submechanophobia’ (the fear of submerged human-made objects), and the game is going to be a 2.5D platformer in the style of Pandemonium or Klonoa. First thing I did was model and animate the main character; it was fun to make something so low-polygon, with crunchy low-resolution textures:
I obviously have a lot more modelling to do, but the next thing I wanted to get done was to get the character moving around in UE4. I always sort of wonder if writing my own movement code is the most efficient way of doing things, but I sort of hate UE4’s default character pawn, and find that it doesn’t make it easy enough to control the specifics of the movement. And given what I planned to do with splines, it was probably going to be easier overall. The following video demonstrates this:
Basically I created spline objects that can be placed in the level, and whenever the character moves left or right, instead of updating their world position, I update their distance along the spline, and then use that to determine their location and orientation in the level. I only use it to set their X and Y position, however; this means that their vertical position is independent from the height of the spline, so they can jump around and move along platforms in the air.
The most recent thing I implemented, which is also shown in this video, are camera transitions. I did this by creating objects in the level that have a collision volume attached to them, and each one has editable values that control the camera’s Field of View, rotation and distance from the character. When the player touches one of these volumes, the new values get passed to them, and the camera transitions to them over a specified length of time. It works nicely!
That’s all for this update; next thing I want to do is set up functionality for moving from one spline to another, so that there can be a branching path that takes you away from the main spline, and then start planning out the design of the level and start modelling the environment.