Archive:

Subscribe:Atom Feed

"Lumo Journal: Week 3"

Posted: 15 May, 2023

Lumo Journal

15.05.2023

Started setting up my dev environment for the Switch. Got the correct SDK installed, cloned UE5.2 from source, built everything, and started tweaking the project settings. Not sent a build to device yet, but I do at least have the editor running. The project is loading, and it's listing Switch as a target.

16.05.2023

I've got the camera snapping to animate. It's got a sharp ease, and the entire duration is about a 3rd of a second, but even quick movement helps with spatial awareness.

The geometry in Lumo was, er, a load of cubes. Millions of them. It wasn't my finest hour, but I didn't know any better. I do now: made a couple of modular bits for blocking out, and a custom procedural grid material that'll self-hide as the camera rotates.

17.02.2023

Thought I'd tackle moving between rooms. In Lumo each room was its own level, loaded & unloaded as the player moved between them. In this game, everything's in the same map. Some will be visible, some will be hidden, depending on the zone and what you’re doing.

Transitioning between rooms is a system with several moving parts:

  1. Override UE internals (ChosePlayerStart), and manually find the "correct" PlayerStart actor in the world. This is super useful for debug builds. I can have as many PlayerStart actors as I want, placed anywhere, and toggle any room to be a debug entry point when I hit Play In Editor (PIE)
  2. Normal entry to the game would check against the save slot, see which room the player was in, and teleport the player to the correct Respawn Point.
  3. Doorways need to link rooms, trigger room-transition sequences, and ultimately get the Game Mode to teleport the player to the correct location.
  4. Inactive Rooms may need to be invisible. Any actors they contain should be paused, and their materials faded out.
  5. Rooms that the player is transitioning between need materials to fade in and out on a timeline

I got the majority of this scaffolded, today. It's clean and I'm happy.

18.05.2023

Not quite finished with the room transitioning, but I'm nearly there. I made "Respawn Point" Actor Components that can be placed anywhere. It's possible to have 16 of these per room, which is 8 more than the original. I also implemented a base Blueprint that every doorway will derive from. Everything is behind C++ interfaces, and in a separate plug-in.

The player is warping, the new room is starting up, but the camera doesn't transition and the active room doesn't shut-down. Feels like a decent base, and setting up rooms in the editor is pretty simple.

19.05.2023

Cool, you can move between rooms and the camera follows.

Rather than have all the logic in the camera, I decided to make a separate class; Camera Origin. A Camera Origin actor can be placed anywhere in a room. The camera can lerp between origins, and the origins can have different logic to determine if (and how) they follow the player character as they move around the new room.

Lumo's pretty simple. The camera's mostly static, but for big rooms it's nice have it unlocked. Tall rooms might need a bit of vertical movement. Doing things this way removes the need to fiddle with parameters, or do any weird setup calls; I just pick the type of Camera Origin I want, and drop it in the room. Keeps the follow camera code nice and simple, the origin does the modal stuff, the camera just accepts a new position each frame and jumps to it.

Previous Post: "Lumo Journal: Week 2" Next Post: "Lumo Journal: Week 4"

Friends:

If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: