|

🧱 Post #1: Project Foundations — Version Control and Folder Structure That Scale

Genesis of Infrastructure — Entry #1
By Emergent Dynamics, building Colonies: Genesis of E.D.E.N.

Welcome to the first entry in Genesis of Infrastructure, the technical foundation series behind our simulation-first strategy game, Colonies: Genesis of E.D.E.N. This is where we share the systems, structure, and tools that make an ambitious, multi-epoch, AI-driven sim possible.

Today’s focus is simple:
Lay the groundwork properly — or suffer forever.


🎯 Goals of This Setup

By the end of this entry, you’ll understand:

  • How to structure your Unity project folders with long-term clarity
  • Why Git is essential (not optional) — and how to set it up right
  • How to configure your .gitignore for Unity the correct way
  • How to prepare your project for Continuous Integration (CI) in the future

This is not flashy — it’s foundational. But you’ll thank yourself later.


đź—‚ Recommended Unity Folder Layout

Here’s the layout we use:

Assets/
├── External/                # Modular packages (Eden.Core, Eden.Unity, etc.)
│   ├── Eden.Core/
│   ├── Eden.Unity/
│   └── ThirdParty/
├── Scenes/
├── Game/
│   └── Content/
└── Art/                     # Models, textures, materials
ProjectSettings/
Packages/
.gitignore
README.md

Why This Works

  • âś… Clean modular separation between engine (Eden.Core) and game content
  • âś… Supports Unity asmdef (Assembly Definition) granularity
  • âś… Keeps root clean — project tooling lives at the top (README.md, .gitignore, CI config)

This structure scales — whether you’re prototyping one system or simulating an entire galaxy.


đź”§ Setting Up Git the Right Way

If you’re new to Git, here’s your minimal onboarding:

  1. Install Git and GitHub Desktop
  2. Create a GitHub repository (private or public)
  3. Clone it to your Unity project folder
  4. Add a .gitignore file (see below)
  5. Commit only clean, necessary files

You can use GitHub Desktop or the command line:

git add .
git commit -m "chore: initial commit with clean Unity structure"
git push origin main

đź“› Prevent Git From Exploding: Unity .gitignore

Unity generates a ton of temporary files you must never commit.

Here’s a battle-tested .gitignore for Unity projects:

[Ll]ibrary/
[Tt]emp/
[Bb]uild/
[Bb]uilds/
[Oo]bj/
[Mm]emoryCaptures/
Logs/
UserSettings/

# IDE files
.vscode/
.idea/

# Unity-specific
*.csproj
*.unityproj
*.sln
*.user
*.pidb
*.booproj
*.svd

# OS junk
.DS_Store
Thumbs.db

Place this file in the root of your project — the same folder as Assets/, Packages/, and ProjectSettings/.


âś… First Commit Checklist

Before you commit:

  • [x] .gitignore is in place
  • [x] Only include Assets/, Packages/, ProjectSettings/, and meta/tooling files
  • [x] Exclude Library/, Temp/, Builds/, and .vs/
  • [x] Initial Unity scene opens cleanly

Then:

git add .
git commit -m "chore: initialize project structure and ignore files"
git push origin main

🚦 Ready for CI (Coming Soon)

This structure is CI-ready — meaning:

  • You can automate Unity builds and tests using GitHub Actions
  • You’ll be able to track per-commit performance and errors
  • The project is now safe for scaling to team development

We’ll dive into Unity CI pipelines in the next post.


🔚 Wrap-Up

Getting your folder structure and Git hygiene right isn’t glamorous — but it’s what makes long-term development possible.

From here, you’re ready to add:

  • Source profiling (tick profiler, system timing)
  • CI-backed automated test suites
  • Unity content split into modular packages (like Eden.Core and Eden.Unity)

Next Entry: Setting Up Unity Continuous Integration with GitHub Actions

Similar Posts

Leave a Reply