summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2022-05-23 22:38:49 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2022-05-23 22:38:49 -0600
commit9ed5d09180b6c975d60828265a2cd1eee9ac1ab4 (patch)
tree345a7cba4d147ec8f4462df3ac3134a334c5482e
parent40c6a00c6a3905ccd3a43962f15da5a69610b536 (diff)
edit godot project structure entry
-rw-r--r--art/dst/rss.xml4
-rw-r--r--art/dst/sitemap.xml10
-rw-r--r--blog/dst/g/godot_project_structure.html35
-rw-r--r--blog/dst/rss.xml37
-rw-r--r--blog/dst/sitemap.xml20
-rw-r--r--blog/src/.files2
-rw-r--r--blog/src/g/godot_project_structure.md27
7 files changed, 81 insertions, 54 deletions
diff --git a/art/dst/rss.xml b/art/dst/rss.xml
index 9266bf5..074a058 100644
--- a/art/dst/rss.xml
+++ b/art/dst/rss.xml
@@ -13,8 +13,8 @@
<copyright>Copyright 2021 David Luévano Alvarado</copyright>
<managingEditor>david@luevano.xyz (David Luévano Alvarado)</managingEditor>
<webMaster>david@luevano.xyz (David Luévano Alvarado)</webMaster>
- <pubDate>Sun, 22 May 2022 01:23:08 GMT</pubDate>
- <lastBuildDate>Sun, 22 May 2022 01:23:08 GMT</lastBuildDate>
+ <pubDate>Tue, 24 May 2022 04:35:41 GMT</pubDate>
+ <lastBuildDate>Tue, 24 May 2022 04:35:41 GMT</lastBuildDate>
<generator>pyssg v0.7.2</generator>
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
<ttl>30</ttl>
diff --git a/art/dst/sitemap.xml b/art/dst/sitemap.xml
index 2a0dbab..628e9e7 100644
--- a/art/dst/sitemap.xml
+++ b/art/dst/sitemap.xml
@@ -17,31 +17,31 @@
<url>
<loc>https://art.luevano.xyz/tag/@black-white.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://art.luevano.xyz/tag/@digital.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://art.luevano.xyz/tag/@drawing.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://art.luevano.xyz/tag/@sketch.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://art.luevano.xyz/tag/@spanish.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
diff --git a/blog/dst/g/godot_project_structure.html b/blog/dst/g/godot_project_structure.html
index 7e3f0b5..5e6f93f 100644
--- a/blog/dst/g/godot_project_structure.html
+++ b/blog/dst/g/godot_project_structure.html
@@ -78,8 +78,8 @@
<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.</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>
+ <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>
@@ -107,33 +107,32 @@
</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, 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/sirectory structure more in line with what I&rsquo;m currently using (and similr to the site that is down that I liked that much). I just do somethings a bit different, and end up with:</p>
+<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 for their respective software, could also be the whole imported assets from some packs, where you can just select few of them to actually use)</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>assets/</li>
<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>assets/</li>
<li>sprites/</li>
+<li>enemy.x</li>
<li>&hellip;</li>
</ul>
</li>
-<li>actor.gd</li>
+<li>actor.x</li>
<li>&hellip;</li>
</ul>
</li>
<li>levels/ (or scenes)<ul>
<li>common/<ul>
-<li>assets/</li>
<li>sprites/</li>
<li>&hellip;</li>
</ul>
@@ -150,7 +149,7 @@
<li>&hellip;</li>
</ul>
</li>
-<li>Game.tscn (I consider the &ldquo;game&rdquo; itself a level/scene, so I&rsquo;m including it here)</li>
+<li>Game.tscn (I&rsquo;m considering the &ldquo;Game&rdquo; as a level/scene)</li>
<li>game.gd</li>
</ul>
</li>
@@ -179,16 +178,28 @@
<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</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. Basically you need to abstract some entity/object that you&rsquo;re going to use into its more basic form and use subdirectories for each level of abstraction (a player is an actor and thus we use actor/player; a box is part of the world, and is a level so we can use levels/common/decor/box or something like that). Once you have the most basic abstraction done, anything that belongs to that abstraction will have all of its assets/sounds/shaders/etc in it&rsquo;s directory.</p>
+<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">
@@ -212,7 +223,7 @@
<div class="article-info">
<p>By David Luévano</p>
<p>Created: Sun, May 22, 2022 @ 01:16 UTC</p>
- <p>Modified: Sun, May 22, 2022 @ 01:23 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>
diff --git a/blog/dst/rss.xml b/blog/dst/rss.xml
index d815b06..e97bc22 100644
--- a/blog/dst/rss.xml
+++ b/blog/dst/rss.xml
@@ -13,8 +13,8 @@
<copyright>Copyright 2021 David Luévano Alvarado</copyright>
<managingEditor>david@luevano.xyz (David Luévano Alvarado)</managingEditor>
<webMaster>david@luevano.xyz (David Luévano Alvarado)</webMaster>
- <pubDate>Sun, 22 May 2022 01:23:08 GMT</pubDate>
- <lastBuildDate>Sun, 22 May 2022 01:23:08 GMT</lastBuildDate>
+ <pubDate>Tue, 24 May 2022 04:35:41 GMT</pubDate>
+ <lastBuildDate>Tue, 24 May 2022 04:35:41 GMT</lastBuildDate>
<generator>pyssg v0.7.2</generator>
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
<ttl>30</ttl>
@@ -32,8 +32,8 @@
<category>Gamedev</category>
<category>Short</category>
<description>Details on the project structure I'm using for Godot, based on preference and some research I did.</description>
- <content:encoded><![CDATA[<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.</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>
+ <content:encoded><![CDATA[<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>
@@ -61,33 +61,32 @@
</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, 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/sirectory structure more in line with what I&rsquo;m currently using (and similr to the site that is down that I liked that much). I just do somethings a bit different, and end up with:</p>
+<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 for their respective software, could also be the whole imported assets from some packs, where you can just select few of them to actually use)</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>assets/</li>
<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>assets/</li>
<li>sprites/</li>
+<li>enemy.x</li>
<li>&hellip;</li>
</ul>
</li>
-<li>actor.gd</li>
+<li>actor.x</li>
<li>&hellip;</li>
</ul>
</li>
<li>levels/ (or scenes)<ul>
<li>common/<ul>
-<li>assets/</li>
<li>sprites/</li>
<li>&hellip;</li>
</ul>
@@ -104,7 +103,7 @@
<li>&hellip;</li>
</ul>
</li>
-<li>Game.tscn (I consider the &ldquo;game&rdquo; itself a level/scene, so I&rsquo;m including it here)</li>
+<li>Game.tscn (I&rsquo;m considering the &ldquo;Game&rdquo; as a level/scene)</li>
<li>game.gd</li>
</ul>
</li>
@@ -133,16 +132,28 @@
<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</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. Basically you need to abstract some entity/object that you&rsquo;re going to use into its more basic form and use subdirectories for each level of abstraction (a player is an actor and thus we use actor/player; a box is part of the world, and is a level so we can use levels/common/decor/box or something like that). Once you have the most basic abstraction done, anything that belongs to that abstraction will have all of its assets/sounds/shaders/etc in it&rsquo;s directory.</p>]]></content:encoded>
+<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>]]></content:encoded>
</item>
<item>
<title>Will start blogging about gamedev</title>
diff --git a/blog/dst/sitemap.xml b/blog/dst/sitemap.xml
index 4ca84e6..4220240 100644
--- a/blog/dst/sitemap.xml
+++ b/blog/dst/sitemap.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://blog.luevano.xyz/g/godot_project_structure.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
@@ -107,55 +107,55 @@
<url>
<loc>https://blog.luevano.xyz/tag/@english.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@gamedev.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@rant.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@server.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@short.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@spanish.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@tools.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@tutorial.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://blog.luevano.xyz/tag/@update.html</loc>
- <lastmod>2022-05-22</lastmod>
+ <lastmod>2022-05-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
diff --git a/blog/src/.files b/blog/src/.files
index 1542439..29cdca1 100644
--- a/blog/src/.files
+++ b/blog/src/.files
@@ -14,4 +14,4 @@ a/volviendo_a_usar_la_pagina.md 1651116062.9191298 1651116501.5491333 0f36388a5a
a/devs_android_me_trozaron.md 1652608264.4901433 1652609027.0201497 41c897ac0c6e0bd66f67ddc8286f4413 rant,spanish,update
a/password_manager_authenticator_setup.md 1652654434.4686146 1653179084.149559 ccd90b7bb896f09438696bb793eb6138 english,short,tools
g/starting_gamedev_blogging.md 1652764794.9016073 1653179221.26956 2d6665cebea06ff376dbde9643a893c4 english,gamedev,short,update
-g/godot_project_structure.md 1653182170.4395845 1653182586.3895879 791ab9c902aa15d66218e1e6e6191491 english,gamedev,short
+g/godot_project_structure.md 1653182170.4395845 1653366918.4756405 a7b153df43631f17864cd8ab67aca60f english,gamedev,short
diff --git a/blog/src/g/godot_project_structure.md b/blog/src/g/godot_project_structure.md
index f69a74d..3f013cc 100644
--- a/blog/src/g/godot_project_structure.md
+++ b/blog/src/g/godot_project_structure.md
@@ -6,9 +6,9 @@ tags: gamedev
short
english
-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.
+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'm sticking with.
-The first place to look for is of course the official *Godot* documentation on [Project organization](https://docs.godotengine.org/en/stable/tutorials/best_practices/project_organization.html); along with project structure discussion, also comes with best practices for code style and what-not. I don't like this project/directory structure that much, just because it tells you to bundle everything under the same directory but it's a really good starting point, for example it tells you to use:
+The first place to look for is, of course, the official *Godot* documentation on [Project organization](https://docs.godotengine.org/en/stable/tutorials/best_practices/project_organization.html); along with project structure discussion, also comes with best practices for code style and what-not. I don't like this project/directory structure that much, just because it tells you to bundle everything under the same directory but it's a really good starting point, for example it tells you to use:
- /models/town/house/
- house.dae
@@ -28,27 +28,26 @@ Where I would prefer to have more modularity, for example:
- house.y
- house.z
-It might look like it's more work, but I prefer it like this. I wish [this site ](https://www.braindead.bzh/entry/creating-a-game-with-godot-engine-ep-2-project-organization) was still available, as I got most of my ideas from there, but apparently the owner is not maintaining his site anymore; but there is [this excelent comment on reddit](https://www.reddit.com/r/godot/comments/7786ee/comment/dojuzuf/?utm_source=share&utm_medium=web2x&context=3) which shows a project/sirectory structure more in line with what I'm currently using (and similr to the site that is down that I liked that much). I just do somethings a bit different, and end up with:
+It might look like it's more work, but I prefer it like this. I wish [this site](https://www.braindead.bzh/entry/creating-a-game-with-godot-engine-ep-2-project-organization) 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 [this excelent comment on reddit](https://www.reddit.com/r/godot/comments/7786ee/comment/dojuzuf/?utm_source=share&utm_medium=web2x&context=3) which shows a project/directory structure more in line with what I'm currently using (and similr to the site that is down that I liked). I ended up with:
- /.git
-- /assets (raw assets/editable assets for their respective software, could also be the whole imported assets from some packs, where you can just select few of them to actually use)
+- /assets (raw assets/editable assets/asset packs)
- /releases (executables ready to publish)
- /src (the actual godot project)
- .godot/
- actors/ (or entities)
- player/
- - assets/
- sprites/
+ - player.x
- ...
- enemy/ (this could be a dir with subdirectories for each type of enemy for example...)
- - assets/
- sprites/
+ - enemy.x
- ...
- - actor.gd
+ - actor.x
- ...
- levels/ (or scenes)
- common/
- - assets/
- sprites/
- ...
- main/
@@ -57,7 +56,7 @@ It might look like it's more work, but I prefer it like this. I wish [this site
- ...
- dugeon/
- ...
- - Game.tscn (I consider the "game" itself a level/scene, so I'm including it here)
+ - Game.tscn (I'm considering the "Game" as a level/scene)
- game.gd
- objects/
- box/
@@ -72,11 +71,17 @@ It might look like it's more work, but I prefer it like this. I wish [this site
- menus/
- ...
- ...
+ - sfx/
+ - ...
+ - vfx/
+ - ...
+ - etc/
+ - ...
- Main.tscn (the entry point of the game)
- main.gd
- - icon.png
+ - icon.png (could also be on a separate "icons" directory)
- project.godot
- ...
- \<any other repository related files\>
-And so on, I hope the idea is clear. Basically you need to abstract some entity/object that you're going to use into its more basic form and use subdirectories for each level of abstraction (a player is an actor and thus we use actor/player; a box is part of the world, and is a level so we can use levels/common/decor/box or something like that). Once you have the most basic abstraction done, anything that belongs to that abstraction will have all of its assets/sounds/shaders/etc in it's directory. \ No newline at end of file
+And so on, I hope the idea is clear. I'll probably change my mind on the long run, but for now this has been working fine. \ No newline at end of file