Daniel Kowalski

Game designer and developer

About me

Welcome to my game design and software engineering portfolio! As an alumnus of RIT's outstanding Game Design and Development major and a long time game design and computer science hobbyist, I have a strong background in all aspects of game design as well as web development, graphic design, and general computer science.

I have a deep love and passion for the games industry stemming from a very playful and inventive childhood. Now, I make and maintain all sorts of projects for myself, my friends, and soon the world! I do my best work with a team to rally alongside, and I strongly value open, productive, and authentic communication in any group.

Below, you'll find a collection of some of my favorite projects that I've worked on over the years. These include a combination of personal and academic projects spread across a wide array of disciplines. Even this very website is something I've designed, developed, and hosted myself!

Projects

Hunter's Notes

Hunter's Notes is a homebrew supplement I designed for Dungeons and Dragons 5th Edition based on the world and gameplay of the Monster Hunter franchise. It includes item stats and skills for all of the iconic weapon types as well as custom status effects, monster statblock extensions, race/species options, hunting tools, and other custom-made mechanics to try and capture the essence of the source material. With this module, I've run several mini-adventures to great success. This personal project showcases my skills in game design, technical/instructional writing, and working within an existing design framework and IP.

Having played both D&D and Monster Hunter since high school, I was one day struck with the inspiration to make all of the Monster Hunter weapon types as D&D items. After diving into the challenge, the scope gradually expanded as I had ideas for implementing more and more mechanics from the games, such as status damage, breaking specific parts of the monster, and the various consumable items hunters can use. Eventually, this expanded into a series of one to two session long adventures set in a homebrew setting inspired by a mix of D&D's Forgotten Realms and Monster Hunter's mythos. After each session, I'd revise the homebrew document with balance changes, new mechanics (such as weapon upgrades and armor skills), and other improvements. To this day I continue to make improvements to this rules supplement and to my mini-adventures, and you can see some of those changes in the "Patch Notes" at the bottom of the link below.

(Check it out!)

Fire Flight

Fire Flight is a two to four player local party game with a competitive edge, made in Godot. Each player acts like a miniboss in a bullet hell, firing waves of attacks in the form of firework patterns at their opponents in a colorful and chaotic battle. I was the project and design lead for Fire Flight, pitching the idea both to the four programmers on the team and to the three artists I recruited outside of the class this project was for. It's the project I'm the most proud of as a designer both for the quality of the prototype and for the organization, planning, and coordination behind it.

Unlike my projects before this, I was almost entirely focused on game design and team management as opposed to programming. This meant finding the best ways to communicate my vision to the programmers and artists on the team and adjusting design elements for limitations and roadblocks in the code. As the project lead, I also got to take on the role of producer, managing the team as a whole, assigning tasks for each sprint, regularly checking in on the team, scheduling and leading meetings, etc. The most gratifying moments in making Fire Flight were the playtest days, especially when we had the opportunity to have high school students try the game. Even in its earliest forms, people were having fun, laughing, leaning in with intense focus to try and clutch a game, and bantering with their friends. This is a project the whole team sees a lot of potential in, and one we may return to outside the context of an academic assignment.

(Try it out!)(Design Doc)(Postmortem)

(De)Composing

(De)Composing is a rhythm-based puzzle platformer where you play as the ghost of a failed composer trying to help his student finish his masterpiece. Within the team, I helped design the puzzle mechanics as well as some of the levels. I also programmed the various puzzle objects while helping elsewhere across the board on the development side. This project was also my first time working in an agile development framework with sprints, stories, epics, etc.

As one of my first major large-group projects with people filling dedicated roles on the team, one of my goals was to make sure anything I designed or implemented would be as easy as possible for anyone else on the team to work with. For example, I set up the game's trumpets (the main puzzle mechanic that launches the player around and sends out a soundwave) with helpful public parameters and Unity gizmos. This made it easy for the level design lead to drag and drop the objects into a puzzle and change launch trajectories in a way that visually made sense without worrying about exact coordinates or having to do trial and error with launch velocities.

(Try it out!)

Graviturgy

Graviturgy is a puzzle platformer where you can use the force! I made it entirely in JavaScript utilizing PIXIjs and Howler. This is the first fully completed solo game project I've made, and while it's rough around the edges I'm particularly proud of how it turned out, especially since I was starting from scratch.

The foremost goal of this project was to create a functional, believable, and fun physics system based on what I have learned over the years. Because of this, the very first thing I did was manually add in basic tools such as vectors, rectangles, collision detection, and kinematic objects with masses that can have forces applied to them. Making these physics (and the player controls) feel tight and smooth took a lot of testing, but after reconsidering various approaches I finally got the game to feel right. After that I focused on designing interesting puzzles that made the most out of what I found fun during physics testing: getting to high places, and throwing things across the room. The documentation tab of the game's webpage is definitely amateurish, to say the least, but I like to keep it as it was when I made it as a comparison point to my more recent projects.

(Try it out!)

Locke Smith

Locke Smith is a physics-based 3d platformer where you control a key jumping through a messy house, trying to reach the front door to unlock it. Created in Unity with a team of four during the 2021 Global Game Jam, I programmed the player controls, fixed major issues with the camera, designed one of the rooms, and debugged code throughout the project.

Having been my first ever Game Jam, my personal goal for the project was to just finish something playable by the end of the strict time limit. However, as the project progressed, our team realized we were managing to make something good, something we genuinely enjoyed playing and testing. The simplicity of the concept allowed us to make a much more refined and engaging experience than we would have otherwise been able to do. Additionally, my ability to perform well under a harsh time constraint proved to myself that I can work under pressure and with tight deadlines. As an example, I wrote code for triggers that could activate other objects around the room, but we decided to cut the feature from the level design itself due to time constraints. Often, the hardest part of a project is letting go of things that you put hard work into, but in cases like these sometimes a feature has to be cut and the best thing to do is simply move on.

(Try it out!)(Global Game Jam Page)(Repository)

Trial by Combat

Trial by Combat is a local 2-player 2D tactics game developed using C# and Monogame. In this group project, I created the map loading logic as well as the external tool used to draw, save, and edit the maps for the game. Additionally, I was the production manager, organizing meetings, timelines, and goals. In meetings and while working remotely, I often ended up acting as the group leader, coordinating our efforts and ensuring everyone had something productive to work on.

Not only did I learn more about file I/O, but I also got great practice with making external tools to help streamline game development. Getting one program to export a file in a way that is readable and easy to disect in another program was challenging, but by making sure the structure of the output and the input was clear and defined I was able to make the whole process much easier than it could have been.

Pokémon Moveset Generator

The Pokémon Moveset Generator is a website that uses JavaScript and the PokéAPI to search for a pokémon and give it a random assortment of attacks and abilities. As someone who enjoys competitive Pokémon, I thought it would be fun to come up with a way to spice up my games every now and again, and having played around with my own website I can confirm it's a blast!

This project was my first deep-dive into utilizing a webAPI, so while working on it my primary goal was to learn how to smoothly pull data from a greater database and implement it cleanly into my own website. Since in the past I've usually been able to alter any given part of the code I'm working on, adjusting to be able to handle a predetermined, rigid source of data was difficult and added extra complexity to my JavaScript. For example, the PokéAPI has info on pokémon species and individual pokémon (such as various forms of the same species). Figuring out how to translate between these two data types was difficult, but by studying the API and how it is structured I managed to get my website to work how I wanted it to.

(Try it out!)