Dev Log Pt. 1 - Concept & Design


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:

  • Players manage their library collection and shelve books that get returned during the day.
  • Each day lasts a certain amount of time and players will be scored based on how many books they could shelve, how quickly, and how correctly.
  • Overnight new books will appear to shelve (and more will be checked out), so when the player returns to work the next day they have more shelving to do.
  • As the game progresses more books are returned and queue up on carts to return. Eventually, if the player can’t keep up with the flow, they’ll reach a game over state and get a final score.

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.

Get A Cozy Little Library