Self Taught Stardew Valley Mechanics to Create My Own Non-Player Character (NPC) Mod

Title: Lucy NPC Mod for Stardew Valley
Work: Solo Character Design NPC Mod
Application(s): Stardew Valley (C#), Paint.NET, GitHub
Roles: Programmer, Writer, Pixel Artist, Project Manager
Skills: Coding (C#), Pixel Art Creation, Tile Set Map Design, Project Management, Level Design

Ongoing: 2019 – Present

 
Art: Conceptualized and created various portrait and sprite sheets for the new character – the latest of which was drawn entirely from scratch.
Programming: Used Stardew Valley’s pre-existing language based on C# and file formatting to edit the code and add my own files to the game, allowing me to program interactions and events that scale with the new character’s affection.
Writing: Wrote every line of dialogue for the new character and added new dialogue to pre-existing game characters that match their demeanor and character. Additionally, wrote dialogue specifically so that it would evolve and become friendlier as affection increases.
Project Management: Set up a GitHub repository and project in order to keep track of overall progression towards project completion. Split the project up into a series of tasks and kept track of those tasks as they were completed.
Level Design: Used Stardew Valley’s pre-existing tile sets to create new maps for the game to host this new character and story.
 
After playing Stardew Valley (by Eric “ConcernedApe” Barone) for a while, eventually downloading and adding a few game play modifications. When I did so, I discovered a few flaws that I wanted to fix — such as spelling and grammar errors in dialogue — so I taught myself how to do so by going into the mod folders and learning how the code worked. Eventually, I decided to use these new skills to make my own mod as a test of my character and game design capabilities, as well as to familiarize myself with working inside a game.
 
Going in, my only worry was that I wouldn’t be able to write intriguing dialogue to do my character justice — and looking back, that was the easy part.
The game was written in a coding language I wasn’t familiar with, C#, so I had to teach myself parts of the language based on what I knew about C and C++. I also had to learn how to edit the game’s asset files, which were in a format unfamiliar to me. In addition, I quickly realized artwork was needed for my character, and I didn’t know anything about the pixel art resources the platform would demand.
 
Using some pre-existing art assets as a base, I taught myself programs like Paint.NET to make the pixel art images that games like Stardew Valley require. The result is after just over a month of self-teaching, coding, and pixel art illustration and refining — my first character NPC mod was created, a character I named “Lucy.”
 
With version 1.0.0, initially I was quite content. However, as time went on, I began to think “there are so many things I could have done better.” So in 2021, I decided to revisit my mod and give it a major overhaul using the additional skills I had practiced and mastered in the time since. Version 2.0.0 features completely revamped and wholly original portrait art, improved sprite work, additional dialogue and events, and a brand-new map area to explore. It also fixed a few notable bugs from my original version, namely compatibility issues with Mac computers. While version 2.0.0 is currently still in testing, it is a vast improvement over the original, and I feel I will be proud of this version for years to come.
 
Developing the mod came with several challenges I needed to overcome. With version 2.0.0, I wished to develop it in a manner similar to actual game development, and that meant scheduling it around my other commitments, making a project planner to track progress and keep track of tasks, conducting alpha and beta testing, and eventual publication on the internet for review and download.
 
Scheduling it around my other commitments — including the completion of my Masters in Business Leadership and Communications at the time — came to be surprisingly easy with organization. I set a weekly progress goals and allocated time each week to work towards each. I set a goal to start testing by May of that year, and I was successful. For project planning, I leveraged GitHub to track my tasks, keep tabs on my overall progress, and allow me to easily work on it across many devices, ensuring maximum possible production. In order to test the mod for bugs and suggestions, I had the assistance of friends and family for both long-distance and in-person testing.
 
While publication will not occur until testing has reached a satisfactory conclusion, I am confident that the feedback I will receive will help me prepare the mod for public viewing.