summaryrefslogtreecommitdiff
path: root/blog/dst/g/godot_project_structure.html
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2022-12-16 17:45:03 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2022-12-16 17:45:03 -0600
commit7e49db5ddefe8c515b5f3931a5c701efaac33d91 (patch)
treed7d1efda44837a466fe079266efda90021812399 /blog/dst/g/godot_project_structure.html
parent3112a76dac594fe715b59e53c399b0dec5b53193 (diff)
change structure for new pyssg version
Diffstat (limited to 'blog/dst/g/godot_project_structure.html')
-rw-r--r--blog/dst/g/godot_project_structure.html263
1 files changed, 0 insertions, 263 deletions
diff --git a/blog/dst/g/godot_project_structure.html b/blog/dst/g/godot_project_structure.html
deleted file mode 100644
index 5e6f93f..0000000
--- a/blog/dst/g/godot_project_structure.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<!DOCTYPE html>
-<html class="theme-dark" lang="en"
- prefix="og: https://ogp.me/ns#">
- <head>
- <base href="https://static.luevano.xyz">
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>General Godot project structure -- Luévano's Blog</title>
- <meta name="description" content"Details on the project structure I'm using for Godot, based on preference and some research I did."/>
- <link rel="alternate" type="application/rss+xml" href="https://blog.luevano.xyz/rss.xml" title="Luévano's Blog RSS">
- <link rel="icon" href="images/icons/favicon.ico">
-
- <!-- general style -->
- <link rel="stylesheet" type="text/css" href="css/style.css">
- <link rel="stylesheet" type="text/css" href="fork-awesome/css/fork-awesome.min.css">
- <link rel="stylesheet" type="text/css" href="font-awesome/css/all.min.css">
-
- <!-- highlight support for code blocks -->
- <script type="text/javascript" src="hl/highlight.min.js"></script>
- <!--<script type="text/javascript" src="hl/highlight-ln.min.js"></script>-->
- <script type="text/javascript">
- hljs.initHighlightingOnLoad();
- // hljs.initLineNumbersOnLoad();
- </script>
-
- <!-- theme related -->
- <script type="text/javascript" src="scripts/theme.js"></script>
- <link id="theme-css" rel="stylesheet" type="text/css" href="css/theme.css">
- <link id="code-theme-css" rel="stylesheet" type="text/css" href="hl/styles/nord.min.css">
-
- <!-- og meta -->
- <meta property="og:title" content="General Godot project structure -- Luévano's Blog"/>
- <meta property="og:type" content="article"/>
- <meta property="og:url" content="https://blog.luevano.xyz/g/godot_project_structure.html"/>
- <meta property="og:image" content="https://static.luevano.xyz//images/b/default.png"/>
- <meta property="og:description" content="Details on the project structure I'm using for Godot, based on preference and some research I did."/>
- <meta property="og:locale" content="en"/>
- <meta property="og:site_name" content="Luévano's Blog"/>
- </head>
-
- <body>
- <header>
- <nav>
- <ul>
- <li>
- <a href="https://luevano.xyz/"><i class="fas fa-home" alt="Home"></i><span>Home</span></a>
- </li>
-
- <li>
- <a href="https://blog.luevano.xyz/"><i class="fas fa-book-open" alt="Blog"></i><span>Blog</span></a>
- </li>
-
- <li>
- <a href="https://art.luevano.xyz/"><i class="fas fa-paint-brush" alt="Art"></i><span>Art</span></a>
- </li>
-
- <li><i class="fab fa-git" alt="Git"></i><span>Git</span>
- <ul>
- <li><a href="https://git.luevano.xyz/" target="_blank"><i class="fab fa-git-alt" alt="Git-alt"></i></a></li>
-
- <li><a href="https://github.com/luevano" target="_blank"><i class="fab fa-github" alt="Github"></i></a></li>
-
- <li><a href="https://gitlab.com/dluevano" target="_blank"><i class="fab fa-gitlab" alt="Gitlab"></i></a></li>
- </ul>
- </li>
-
- <li><i class="fas fa-box-open" alt="Stuff"></i><span>Stuff</span>
- <ul>
- <li><a href="https://gb.luevano.xyz/"><i class="fas fa-gamepad" alt="Gameboy"></i><span>Gameboy</span></a></li>
- </ul>
- </li>
- </ul>
- </nav>
-
- <button class="theme-switcher" onclick="toggleTheme()"><i class="fas fa-moon"></i><i class="fas fa-sun"></i></button>
- </header>
-
- <main>
- <h1>General Godot project structure</h1>
-
- <p>One of my first issues when starting a project is how to structure everything. So I had to spend some time researching best practices and go with what I like the most and after trying some of them I wanted to write down somewhere what I&rsquo;m sticking with.</p>
-<p>The first place to look for is, of course, the official <em>Godot</em> documentation on <a href="https://docs.godotengine.org/en/stable/tutorials/best_practices/project_organization.html">Project organization</a>; along with project structure discussion, also comes with best practices for code style and what-not. I don&rsquo;t like this project/directory structure that much, just because it tells you to bundle everything under the same directory but it&rsquo;s a really good starting point, for example it tells you to use:</p>
-<ul>
-<li>/models/town/house/<ul>
-<li>house.dae</li>
-<li>window.png</li>
-<li>door.png</li>
-</ul>
-</li>
-</ul>
-<p>Where I would prefer to have more modularity, for example:</p>
-<ul>
-<li>/levels/structures/town/house (or /levels/town/structures/house)<ul>
-<li>window/<ul>
-<li>window.x</li>
-<li>window.y</li>
-<li>window.z</li>
-</ul>
-</li>
-<li>door/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>house.x</li>
-<li>house.y</li>
-<li>house.z</li>
-</ul>
-</li>
-</ul>
-<p>It might look like it&rsquo;s more work, but I prefer it like this. I wish <a href="https://www.braindead.bzh/entry/creating-a-game-with-godot-engine-ep-2-project-organization">this site</a> was still available, as I got most of my ideas from there and was a pretty good resource, but apparently the owner is not maintaining his site anymore; but there is <a href="https://www.reddit.com/r/godot/comments/7786ee/comment/dojuzuf/?utm_source=share&amp;utm_medium=web2x&amp;context=3">this excelent comment on reddit</a> which shows a project/directory structure more in line with what I&rsquo;m currently using (and similr to the site that is down that I liked). I ended up with:</p>
-<ul>
-<li>/.git</li>
-<li>/assets (raw assets/editable assets/asset packs)</li>
-<li>/releases (executables ready to publish)</li>
-<li>/src (the actual godot project)<ul>
-<li>.godot/</li>
-<li>actors/ (or entities)<ul>
-<li>player/<ul>
-<li>sprites/</li>
-<li>player.x</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>enemy/ (this could be a dir with subdirectories for each type of enemy for example&hellip;)<ul>
-<li>sprites/</li>
-<li>enemy.x</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>actor.x</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>levels/ (or scenes)<ul>
-<li>common/<ul>
-<li>sprites/</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>main/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>overworld/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>dugeon/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>Game.tscn (I&rsquo;m considering the &ldquo;Game&rdquo; as a level/scene)</li>
-<li>game.gd</li>
-</ul>
-</li>
-<li>objects/<ul>
-<li>box/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>screens/<ul>
-<li>main_menu/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>globals/ (singletons/autoloads)</li>
-<li>ui/<ul>
-<li>menus/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>sfx/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>vfx/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>etc/<ul>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>Main.tscn (the entry point of the game)</li>
-<li>main.gd</li>
-<li>icon.png (could also be on a separate &ldquo;icons&rdquo; directory)</li>
-<li>project.godot</li>
-<li>&hellip;</li>
-</ul>
-</li>
-<li>\&lt;any other repository related files></li>
-</ul>
-<p>And so on, I hope the idea is clear. I&rsquo;ll probably change my mind on the long run, but for now this has been working fine.</p>
-
- <div class="page-nav">
-
- <span class="index">
- <a href="https://blog.luevano.xyz" alt="Index">
- <i class="fas fa-home" alt="Home"></i>
- <span>Index</span>
- </a>
- </span>
-
- <span class="previous">
- <a href="https://blog.luevano.xyz/g/starting_gamedev_blogging.html" alt="Previous">
- <i class="fas fa-arrow-right" alt="Arrow right"></i>
- <span>Previous</span>
- </a>
- </span>
-</div>
-
-
- <hr>
- <div class="article-info">
- <p>By David Luévano</p>
- <p>Created: Sun, May 22, 2022 @ 01:16 UTC</p>
- <p>Modified: Tue, May 24, 2022 @ 04:35 UTC</p>
- <div class="article-tags">
- <p>Tags:
-<a href="https://blog.luevano.xyz/tag/@english.html">english</a>, <a href="https://blog.luevano.xyz/tag/@gamedev.html">gamedev</a>, <a href="https://blog.luevano.xyz/tag/@short.html">short</a> </p>
-</div>
-
- </div>
- </main>
-
- <footer>
- <span>
- <i class="fas fa-address-card" alt="Contact"></i>
- <a href="https://luevano.xyz/contact.html">Contact</a>
- </span>
-
- <span>
- <i class="fas fa-donate" alt="Donate"></i>
- <a href="https://luevano.xyz/donate.html">Donate</a>
- </span>
-
- <span>
- <i class="fas fa-rss" alt="RSS"></i>
- <a target="_blank" href="https://blog.luevano.xyz/rss.xml">RSS</a>
- </span>
-
- <br>
- <span class="created-with">
- <i class="fas fa-hammer" alt="Hammer"></i>
- Created with <a href="https://github.com/luevano/pyssg">pyssg</a>
- </span>
-
- <br>
- <span class="copyright">
- Copyright <i class="far fa-copyright" alt="Copyright"></i> 2021 David Luévano Alvarado
- </span>
- </footer>
- </body>
-</html> \ No newline at end of file