
AC:NH Completionist
a companion app for Animal Crossing: New Horizons (currently in development)


why build something around animal crossing?
(or: what a time to be alive in this, the year of our quarantine 2020)
Animal Crossing: New Horizons released on the Nintendo Switch right when we needed it most—the beginning of the COVID-19 shutdown. It sounds very sentimental, but Animal Crossing has helped me handle the difficulties of the pandemic by giving me something positive to look forward to each day and providing a place where I could "hang out" with my loved ones virtually.
​
Animal Crossing is played in real-time: it deliberately promotes a more relaxed and patient playstyle, placing very few demands on the player. While there are a variety of activities you can choose to take part in, none are really "required" to progress.
You can play the game however you like at your own pace without penalty.
​
Because I had so much time on my hands, I did all of those things and more... but I found that what I cared about the most was collecting anything and everything I could get my grubby, polygonal hands on. It was silly, but not surprising: as I gamer, I tend to be a "completionist"—I want to see all that a game has to offer.
​
Animal Crossing really lends itself to that type of play because of the way it's structured, but it's not without its issues. Faced with my own personal frustration, I decided to try to design something that would serve as a companion resource to the game and make collecting less of a nightmare to track.
what makes collecting things in animal crossing challenging (and satisfying)?
different varieties
Pieces of furniture and articles of clothing often come in many colors or styles.
varying sources
Items can come from different sources, some of which are rarer than others.
limited stock
Only a limited number of items are available for purchase in your stores each day.
seasonality
Many items are only available seasonally. There are also items that can only be obtained during limited-time events.
creature availability
Each catchable creature is only available between specific hours during specific months.
museum donation
New creatures, works of art, and fossils you dig up can be donated to the museum, which visually develops as you contribute.
what makes it challenging (and frustrating*)?
*for a very, very specific type of player
The major pain point here is that none of this information is actually available in-game.
You can see which items you have collected and which creatures you have caught and donated, but you cannot see any information about things you have yet to encounter.
There is no way for you to know if you have collected all colors of a specific piece of furniture, for example—it might show that you've collected the red version and the green version, but there is no indication of whether other varieties exist, and if so, how many you have left to find. Likewise, there's no in-game information on when the creatures you have yet to catch are actually available to be caught. Which items are sold by which vendors, which items are seasonal, whether you have managed to collect all of the items for a specific event... all of that information is (intentionally) obfuscated.
​
I really want to stress that this is only an issue for a particular type of player. There is a lot to be said for the wonder of just encountering new things by chance! Most players don't feel the need to obtain every single item in a game! The beautiful thing about this game is that everyone plays a little bit differently.
so I decided to make something
a reference I could use while playing (and which other people with similar priorities might enjoy, too)
primary goals
-
A complete, up-to-date database of all in-game items and their respective variations, organized into categories as they are in-game
-
Database is searchable and filterable by item properties: source, seasonality, color, style, etc.
-
Users can mark which items and variations they have obtained
-
Visually indicate one of three states for each item: no variations obtained, some variations obtained, all variations obtained
-
Elegant visualization of progress across different categories of items
-
Pleasant, responsive, and accessible UI with easily-understood visual cues
secondary, "stretch" goals
-
Users can create lists of items
-
Tracking of bugs, fish, and sea creatures, including accurate display of current availability based on local date and time
-
Allow users to specify their island's villagers and display relevant characteristics for those villagers (birthdays, gift preferences, etc.)
-
Optionally display a checklist of daily tasks
-
Generate gift suggestions for a particular villager based on their style and color preferences and drawing those suggestions from either the user's entire item catalog or a user-created list​
platform: android
-
I expected that most users would be inclined to use a resource like this on a mobile device, so I wanted to focus on a mobile-first design
-
There was a similar app being developed for iOS, and one had not yet been made for Android
-
Room integration seemed like it would a good option for handling the database
-
I've never made an Android app before, and I wanted to learn how
dataset and data handling
-
Data Spreadsheet for Animal Crossing: New Horizons: a community-sourced and -maintained repository of all of the items in the game
-
ACDB Google Sheets to JSON: the data in the spreadsheet converted into JSON files
-
GSON: used to create Java objects from JSON (and vice versa)
