Thimbleweed Park 2 uses 5 different Git repos and one SVN repo.
Both the Git and SVN repos are self-hosted. Git’s Large File System (LFS) is used for large binary files (.png and .bank). Although any GUI client can be used, we encourage Fork and SmartSVN because they are cross-platform and, unless you are an expert, we can support them with help and assistance. I mostly use the Git CLI or lazygit, but they are not for everyone.
- Game
This is a Git repo that holds the game’s code, mostly .dinky, .yack, .txt, .wimpy files and the processed .png files for the rooms and UI. Game programmers have access and primarily use it. If you’re just doing game programming, this is the only one you need and has the most check-ins of the game.
- Game Engine
This is the engine for the game. It is mostly .cpp/.h files. Derek and I are the only two who use it. It produces the compiled engine that is distributed to game programmers as well as used for the released game.
- Engine Library
This is the shared library that all game engines use. It’s been used for Scurvy Scallywags, Thimbleweed Park 1, Delores, Return to Monkey Island, Death by Scrolling, and now Thimbleweed Park 2. It gets very few commits unless we’re adding a new feature that is not game specific.
- Game Sound
This repo is for the FMOD audio. Sound and music people have access. Game programmers might have access if they are changing sound, which can be common but is not required. When the FMOD .bank files are built, they get put into the Game repo so game programmers don’t need access.
- Art SVN
Art (mostly .psd and .aseprite files) is kept in SVN so it can be locked. Git’s large file system has the ability to lock files but tests for locked status only on push, whereas SVN keeps the file read-only until it’s locked. SVN is very long-in-the-tooth but I haven’t found a better solution. Perforce is way too expensive. Arc is a new one, but the maintainer doesn’t see a use case for making locked files read-only, which baffles me. Locking art files is critical because they can’t be merged.
- Art Git
No one has access to this, it’s an automatic mirror of the SVN repo. When a game is done, I shut down the SVN server and this provides a long-term backup. If the game becomes active again, I can push this to a new SVN repo. This repo is probably pointless until the game releases.

Comments:
Add comment: