top of page

Inspiration 

A Christmassy Christmas started as a way for me to learn all about Godot Engine 4 & Composition. 

 

The goal originally was to create a very small arena survival game using Composition, which is a design technique in object-oriented programming to implement has-a relationships between objects... and I accomplished this! 

But I wasn't satisfied.

I felt that it was important to reinforce everything I learned by starting over from nothing, so I did!

I remade the project entirely, with my own original assets that I created in aseprite, and I turned the game into a full Steam release after adding plenty more features.

ROLE

Solo Developer

DESCRIPTION

A Christmassy Christmas is an arena roguelike survival game where Santa disposes of naughty children. Play as Santa and fulfill your sacred duties. "Beneath the festive cheer, Santa's wrath draws near. Naughty souls, tremble in fear, for judgment day is finally here."

YEAR

2024

TIMELINE

4 Months

PLATFORM

Steam

TOOLS

Godot Engine 4, Aseprite, Audacity

Experience Gained

GODOT ENGINE 4

As this was my first big project in Godot, I can confidently say that I went from having zero experience to being proficient in the engine. Coming from Unity was a nice head start as well. I specifically learned about creating a robust player controller driven by the power of components, UI design and theming, and using a weighted table to handle spawning enemies.

STEAMWORKS

I learned a lot going through the process of publishing a game on Steam through Steamworks for a second time. A significant portion of the documentation is out of date, so you are left to figure it out on your own. I created Library and Store assets that had to match Steam's specifications, and I had to make sure it was clear to any potential players what control schemes my game supports/is unsupported.

ASEPRITE

I chose to use Aseprite for my Pixel Art in this project because of my previous experience with the software. I have made many characters and animations in the past, but this was my first time creating a Tilemap for a game. I learned that there are a number of things to keep in mind when creating a Tilemap, such as making sure the shadows line up with the obstacles that are casting them. As well as making sure the tiles fit together properly.

COMPOSITION

I tried out a new approach to programming for this project and I can honestly say that I really liked it! I will be continuing with this approach down the line. To better understand how it works I created a UML diagram for the enemies pictured on the right.

BasicEnemyArchitecture.png

KEY TAKEAWAYS

I am a fast learner, and I learn by doing. Godot Engine was completely new to me but I still dove in head first and put out a quality product in just 4 months, because I love learning about new things. This applies to the style of programming I used as well. I was completely unfamiliar with Composition when I started my development process in Godot, but I quickly figured out just how clear it can be and how clean it keeps your code! I can and will adapt to any situation I'm put in.

GAMEPLAY!

CHARACTERS

bottom of page