Log #25: Jan/30/2025


The beginning of this week was discouraging. I continued to plan out the details of our project's later levels, and found myself stumped a few times. But as I continued to work, progress was made. I suppose overwhelming tasks get less overwheming the more you work on them.

My planning did some good. Our programmers worked to set up all the different "keycard" items we need for our game. Additionally, I continued work on more of the game's levels. I want to get basic versions of everything implemented as soon as possible. (I really need to listen to myself here!)

Thankfully, our programmers have been doing good work, and we should be able to play through the first level and some of the second soon (our game only has a few "levels", it's not as bad as it sounds, I swear).

We're also preparing for a big game jam, which is exciting! I'll be leading a big team, which I think will be fun and educational. Wish me luck!

MATH SEGMENT: Numbers and Quantity

M.C. Escher has a famous piece, Relativity, which has inspired my level design. But I realized a problem. The stair-generating program we have generates stairs going up a triangle, which means we can't put anything in our levels under those stairs. I wanted to make symmetrical stairs that we could walk on from both sides, so I went to work poking at the stair program to see if I could rejig it to generate steps better.

The main problem was that each new step in the stairs were to generate at the same position, but longer (which is why the result was triangle shaped). To fix this, I made each step the same size, but changed their locations. The end result made stairs that had a diagnol shape, following the steps, as opposed to the wedge shape that the old version of the program made.

Some of the Blueprint code, partially showing how the location of each stair step is set.

In the above image, you can see how "Transform Location Z", is connected with a green line to the "Step Height", which is shown being added to another amount. This part of the code sets the heigh of each step's location.

While I don't have a good screenshot of it, my changes to my friend's stair program essentially did this to the steps' lateral location as well.

Mathematically, I had to make each's steps lateral location based on the number of steps before it, which was done by multiplying the number step you're on with the width of the step.

After messing around with things, I found Unreal Engine's visual scripting language "Blueprint" easy to work with, and I was happy that I figured out how to rework the stair's step locations too.

MATH SEGMENT: Geometry

I did more level design work this week. After I got the sick new stairs working, I was able to experiment with some fun level design ideas thanks to our upside down gravity game mechanic. In mathematical terms, this is called being weird.

Level design is fun!!

The flexible gravity calls me to design levels that are symmetrical floor and ceiling. Using the new stairs from both the top and bottom opens up new possiblities, especially for weirdness.

From a more technical perspective, I've made good use of "attaching" actors together in Unreal. This allows me to rotate the parent to rotate everything, so I can build whole rooms right-side up, and then reorient them after the fact.

Additionally, I have been utilizing my "base pieces" so I can copy and paste smaller sections to build the level. I have made an update or two to my base pieces, so hopefully I don't continue having walls that are ever-so-slightly misaligned.

I also want to mention how useuful Unreal's grid snapping is. What this does is it rounds actor's locations. For example, my actor's coordinates are ususally set to round to the nearest ten, because tens are prettier. It lets me drag around actors like everything is blocks in Minecraft, but then I can go in without grid snapping and manually adjust everything to have more precise locations if needed.

Simple sketching has helped me plan out ideas, and the more level design I do, the easier it is for me to build these areas. I look forward to unleashing weirdness on our game's players!

Thanks for reading, as always. Any feedback is appreciated.

-Luke Knotts