diff options
Diffstat (limited to 'blog/dst')
-rw-r--r-- | blog/dst/g/godot_project_structure.html | 35 | ||||
-rw-r--r-- | blog/dst/rss.xml | 37 | ||||
-rw-r--r-- | blog/dst/sitemap.xml | 20 |
3 files changed, 57 insertions, 35 deletions
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’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:</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’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’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:</p> <ul> <li>/models/town/house/<ul> <li>house.dae</li> @@ -107,33 +107,32 @@ </ul> </li> </ul> -<p>It might look like it’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&utm_medium=web2x&context=3">this excelent comment on reddit</a> 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:</p> +<p>It might look like it’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&utm_medium=web2x&context=3">this excelent comment on reddit</a> 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:</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>…</li> </ul> </li> <li>enemy/ (this could be a dir with subdirectories for each type of enemy for example…)<ul> -<li>assets/</li> <li>sprites/</li> +<li>enemy.x</li> <li>…</li> </ul> </li> -<li>actor.gd</li> +<li>actor.x</li> <li>…</li> </ul> </li> <li>levels/ (or scenes)<ul> <li>common/<ul> -<li>assets/</li> <li>sprites/</li> <li>…</li> </ul> @@ -150,7 +149,7 @@ <li>…</li> </ul> </li> -<li>Game.tscn (I consider the “game” itself a level/scene, so I’m including it here)</li> +<li>Game.tscn (I’m considering the “Game” as a level/scene)</li> <li>game.gd</li> </ul> </li> @@ -179,16 +178,28 @@ <li>…</li> </ul> </li> +<li>sfx/<ul> +<li>…</li> +</ul> +</li> +<li>vfx/<ul> +<li>…</li> +</ul> +</li> +<li>etc/<ul> +<li>…</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 “icons” directory)</li> <li>project.godot</li> <li>…</li> </ul> </li> <li>\<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’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.</p> +<p>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.</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’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:</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’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’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:</p> <ul> <li>/models/town/house/<ul> <li>house.dae</li> @@ -61,33 +61,32 @@ </ul> </li> </ul> -<p>It might look like it’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&utm_medium=web2x&context=3">this excelent comment on reddit</a> 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:</p> +<p>It might look like it’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&utm_medium=web2x&context=3">this excelent comment on reddit</a> 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:</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>…</li> </ul> </li> <li>enemy/ (this could be a dir with subdirectories for each type of enemy for example…)<ul> -<li>assets/</li> <li>sprites/</li> +<li>enemy.x</li> <li>…</li> </ul> </li> -<li>actor.gd</li> +<li>actor.x</li> <li>…</li> </ul> </li> <li>levels/ (or scenes)<ul> <li>common/<ul> -<li>assets/</li> <li>sprites/</li> <li>…</li> </ul> @@ -104,7 +103,7 @@ <li>…</li> </ul> </li> -<li>Game.tscn (I consider the “game” itself a level/scene, so I’m including it here)</li> +<li>Game.tscn (I’m considering the “Game” as a level/scene)</li> <li>game.gd</li> </ul> </li> @@ -133,16 +132,28 @@ <li>…</li> </ul> </li> +<li>sfx/<ul> +<li>…</li> +</ul> +</li> +<li>vfx/<ul> +<li>…</li> +</ul> +</li> +<li>etc/<ul> +<li>…</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 “icons” directory)</li> <li>project.godot</li> <li>…</li> </ul> </li> <li>\<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’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.</p>]]></content:encoded> +<p>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.</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> |