project_organization.rst 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. .. _doc_project_organization:
  2. Project organization
  3. ====================
  4. Introduction
  5. ------------
  6. This tutorial aims to propose a simple workflow on how to organize
  7. projects. Since Godot allows the programmer to use the filesystem as
  8. they please, figuring out a way to organize projects when starting
  9. to use the engine can be a little challenging. Because of this, the
  10. tutorial describes a simple workflow, which should work as a starting
  11. point, regardless of whether it is used.
  12. Additionally, using version control can be challenging, so this
  13. proposition will include that too.
  14. Organization
  15. ------------
  16. Godot is scene-based in nature, and uses the filesystem as-is,
  17. without metadata or an asset database.
  18. Unlike other engines, many resources are contained within the scene
  19. itself, so the amount of files in the filesystem is considerably lower.
  20. Considering that, the most common approach is to group assets as close
  21. to scenes as possible; when a project grows, it makes it more
  22. maintainable.
  23. As an example, one can usually place into a single folder their basic assets,
  24. such as sprite images, 3D model meshes, materials, and music, etc.
  25. They can then use a separate folder to store built levels that use them.
  26. ::
  27. /project.godot
  28. /docs/.gdignore
  29. /docs/learning.html
  30. /models/town/house/house.dae
  31. /models/town/house/window.png
  32. /models/town/house/door.png
  33. /characters/player/cubio.dae
  34. /characters/player/cubio.png
  35. /characters/enemies/goblin/goblin.dae
  36. /characters/enemies/goblin/goblin.png
  37. /characters/npcs/suzanne/suzanne.dae
  38. /characters/npcs/suzanne/suzanne.png
  39. /levels/riverdale/riverdale.scn
  40. Importing
  41. ---------
  42. Godot versions prior to 3.0 did the import process from files outside
  43. the project. While this can be useful in large projects, it
  44. resulted in an organization hassle for most developers.
  45. Because of this, assets are now transparently imported from within the project
  46. folder.
  47. If a folder shouldn't be imported into Godot, an exception can be made with a
  48. .gdignore file.