Posted May 13, 2024 by GhostClef
Welcome to The Cozy Library! This “first” game I’m working on is a result of a final school project, after an intensive 9 months of game development classes. (I say “first” since I’ve made a fair few games before, but this is the first I’m intending to finish and release in some capacity beyond just as a hobbyist.)
In planning for this project, I started by breaking down the idea a fair bit. I knew I wanted to make a cozy feeling game, with a bit of a sim-type feel. A library felt like a nice setting as I haven’t seen a ton of video games leveraging this theme, and I recently played a board game (Ex Libris) featuring a book shelving mechanic that was pretty fun. I know a bunch of folks that work in the game industry currently, and the main piece of advice they gave me while spitballing ideas was to pick a project that was not too ambitious, and can be turned around and completed/playable in a reasonable amount of time. The library felt like it fit because it had a set of interesting game mechanics that shouldn’t fall outside of my ability to do within a couple of months scope-wise.
The game will be pretty simple, in its initial version the only gameplay loop is as follows:
I think it’s a pretty common feeling to have a lot of ambition and for scope creep to sneak up on you real quick, even for a simpler idea. As I started prototyping things, creating environments and gathering assets, and laying down the foundation, I definitely started feeling it already. Maybe during the day the player has to return to their desk to scan out books for checkout? It’d be strange to have invisible patrons at the counter, maybe need to implement NPC characters that come in to check out the library? The code I’m implementing for the day/night cycle has a weather system, maybe implement rain/snowy days randomly to add to the atmosphere?
I gave myself a list in my Trello board to just write down these possible points and then just let them go for the time being while I focus on core functionality. Even as I worked through prototyping the character controller and getting the movement feeling right, I kept needing to remind myself, okay, this feels good enough, now maybe just get back to the part where there are actually books in the game.
The library currently has a lot less books than you’d expect for, you know, a library, but the building looks nice enough.
I’ll probably talk about that in my next post once I have a more finalized UML and structure, but I’m thinking I’ll sort the books using the dewey decimal system and just deal with nonfiction for now (this keeps it easy and every book’s call number will just be a sortable float from 000-999). One of my friends is a librarian and talking with her about this concept has actually been really interesting - one of the first questions was, does it even make sense to use dewey? A not unpopular opinion is that the dewey system is outdated and that there are other systems of sorting and categorizing that make a lot more sense and might be good to implement.
I think the reason I’m going with dewey is mainly for familiarity - I think a lot of people generally don’t even walk into a library these days anyway, let alone know how & where books get classified. I thought this game could be an opportunity as a bit of a learning tool, since dewey is currently still really widely used, likely at many player’s local branch.
That’s going to be it for part one I think - now that the building/environment and player controller are baseline working, it’s time to lay the foundational code for the books & shelving system, as well as sorting. At some point during development I’ll probably get into showing my project management a bit as well.