Log #38: May/10/2025


This is my second-to-last blog post while we are working on our game "ERASE Employment". We are getting near the end of all the mechanisms our game requires, but I still want to work on our game's map a lot more. I also have to make sound effects this weekend.

The game has shrunked a lot from the original plan, and it will have to "release" in a fairly simple state. But for a first real 'game,' I am still pretty proud of our project. This is the final stretch, so I need to "lock in," as the kids say, and finish up our project.

I don't think we even had a team meeting this week becauase we all know what we're doing, and I have even layed tasks on our kanban that cover the rest of the foreseeable game. Things are really wrapping up.

My biggest problem so far has been fear. I have continually put off working on ERASE, and so our game is certainly less fleshed out becauase of that. And my own fear has made me less able to help my team, so I partially blame myself for the burnout my team has been facing. But despite everything, the work we have been doing is good. I am especially impressed with our programmers.

MATH SEGMENT: Geometry

I worked a lot on helping the rest of the team this week, but I also was working on redoing the "Lounge" level's map.

As I did with the new Demo Map, I sketched out my idea, and began working. This interesting thing with this level is that there are certain locations that are used for in-game events, and moving them would complicate things. Because of this, I am building my map somewhat awkwardly around the existing in-game events, which forces me to be a little more creative.

I continually have to manually enter actor location coordinates because I forget to make the actors "snap" to coordinates which are factors of 10 (not having neat location coordinates causes things to line up incorrectly, which is the bane of my existance). Additionally, I have been manually scaling walls by tenths, even though, now that I write this post, I realize I can make custom values to "snap" to so I don't need to manually enter the coords...

Measuring, rotating, and scaling are the tools I use to bend walls into the shapes I need. My level design craft continues to be refined, and my speed is tested as our deadline approaches.

MATH SEGMENT: Algebra and Functions

On my own time, I have created a Python program which prints all of the unordered partitions of a positive non-zero integer input.

I had to take some time to think about how I would actually do this, and while I could have just copied code online, I wanted to create an algorithm to generate partitions on my own.

I ended up coming with an algorithm which I feel clever about, even though I'm sure it's not optimized.

I start by converting the integer into a list of 1's, and then count the number of available 1's. From there I can iterate through all of the integers greater than 1 which can be "factored out" of the "1's list." I can then add this "1's list" which I have just extracted 'children' from, to a main list which will eventually hold all of my partitions.

To finish the program, I just iterate through different factors I can pull out of each 'child' extracted from the "1's list," and repeat this again with the new children.

Below is an illustration of my method with the input 4:

                    / 2,2
             / 2,1,1
4 --- 1,1,1,1
             \\ 3,1

To my happiness the program worked!

I had a weird problem arise while working on the program. I found I couldn't understand why the input seemed have a strange alternating pattern. It turned out that when I chose which 'child' to factor out 1's from next, I wasn't going through the list of children-to-be-factored in order. This was because I would cycle through the list of children-to-be-factored, but remove children as I factored them. Since I would remove the current child each time, then the whole list would sort of "shift" over by 1 position, so taking out the 'next' child would actually skip over a child which assumed the new first position.

After working out this kink, the program worked pretty well, and I am happy with it.

Well, that's all I have for these MATH SEGMENTs! Thank you, as always, for reading this post :)

-Luke Knotts