== TODO == create db like https://github.com/lehast22/lehast22.github.io
- add pdf version
- add preview image
- read from JSON
== optimize ==
- optimize=speed
- module_webm_enabled=no
- builtin_bullet=no
- disable_advanced_gui
- Stripping binaries
- Enabling link-time optimization use_lto=yes
- scons p=windows --help
https://godotengine.org/qa/39550/how-to-reduce-android-apk-size-reduce-startup-time-too https://docs.godotengine.org/ru/latest/development/compiling/optimizing_for_size.html
== /tutorials == https://docs.godotengine.org/en/3.1/tutorials/
==timestep== https://www.gamedev.net/blogs/entry/2265460-fixing-your-timestep-and-evaluating-godot/
==godotengine.org blog== https://godotengine.org/article/godot-32-will-get-pseudo-3d-support-2d-engine
== r/godot == https://www.reddit.com/r/godot/comments/aofyfy/weekly_rgodot_discussion_thread_share_your/
==community== https://godotengine.org/community https://vk.com/topic-70467171_36555103 https://dtf.ru/flood/18165-discord-servery-o-geymdeve-i-cg
== git == https://github.com/topics/godot https://gitlab.com/explore/projects?tag=godot
== LOD == https://www.reddit.com/r/godot/comments/at93nh/does_godot_3_support_lod/ https://github.com/leiget/LOD-Simple-Example/blob/d84b5e87fc58858f2accfcc3aaa404baba280f6e/scripts/LOD_Mesh.gd#L19
== godot tuts == Godot site:gamedev.net https://github.com/Calinou/awesome-godot https://lehast22.github.io/ http://kidscancode.org/blog/tags/godot/ https://agameamonth.net/a-game-a-month-2-godot-platformer/ https://github.com/mohapsat/godot_sandbox/tree/3d57cc818a04af8d2c311e20211124366d849ba3/demo/Godot3_Samples https://github.com/GDquest/Godot-engine-tutorial-demos https://github.com/TutorialDoctor/TD-Godot-3-Demos http://fede0d.github.io/ https://github.com/rdcklinux/godot-docs/wiki/tutorial_singletons https://github.com/kidscancode/godot_recipes https://godot-engine.zeef.com/?query=Godot%20Engine&in=all https://www.reddit.com/r/godot/comments/an0iq5/godot_tutorials_list_of_video_and_written/ https://www.reddit.com/r/godot/comments/8vh4u7/looking_for_godot_3_tutorials/ https://youtu.be/BNU8xNRk_oU https://youtu.be/j_pM3CiQwts https://godot-engine.zeef.com/andre.antonio.schmitz https://pagefault.se/godot/2018/06/05/gdscript-the-wonders-of-yield/ https://coderwall.com/p/owym9g/yield-always-return-from-the-function-in-godot https://github.com/BastiaanOlij/godot3_test_projects https://github.com/GDquest/godot-open-rpg https://github.com/GDquest/godot-metroidvania-2d
== code snippets == https://github.com/willnationsdev/godot-next#classes https://github.com/ScyDev/Godot-Scripts/blob/master/polygon-merge.gd https://github.com/Gulkbag/GodotShaderCollection https://github.com/lettier/3d-game-shaders-for-beginners
== unit test == https://github.com/bitwes/Gut
== plugins == https://github.com/vnen/godot-tiled-importer
== background_load == https://github.com/godotengine/godot-demo-projects/tree/master/misc/background_load
== network == https://github.com/godotengine/godot-demo-projects/tree/master/networking https://github.com/gd-com/examples https://github.com/alfredbaudisch/GodotPhoenixChannels/blob/719ff5675894bbf269661b07ba2543e46627d2a6/Phoenix/Scripts/Socket.gd#L79 https://github.com/Faless/WebRTCNative/blob/master/SConstruct https://www.reddit.com/r/godot/comments/bux2hs/how_to_use_godots_high_level_multiplayer_api_with/ https://www.gamedev.net/blogs/entry/2267484-making-a-discord-bot-with-godot-part-one/ https://www.youtube.com/watch?v=rMnUVm-4fEw https://www.youtube.com/watch?v=1PHNj2Mitg8
==multiplayer misc== https://gitlab.com/yethiel/rc-carnage https://gitlab.com/rcorre/lichcraft/blob/master/game/game.gd https://github.com/red-eclipse/base/blob/524d6f688c61d2262ed91295523cba9ff45a3661/src/CMakeLists.txt#L99 https://github.com/SuckerServ/suckerserv/blob/suckerserv-v5/src/engine/server.cpp & http://wiki.piernov.org/en:suckerserv:start http://quadropolis.us/node/2525
== examples == https://github.com/shindig-games/astral https://github.com/tnibert/Panzer-Deathmatch-3D https://github.com/KOBUGE-Games https://github.com/Veraball/veraball https://github.com/Garydos/jump-sword-dash https://github.com/Calinou/fps-test https://github.com/vkbsb/godot_dts https://github.com/oxben/TowerDefense
== agones == https://github.com/nikibobi/godot-agones https://github.com/nikibobi/godot-agones-server
== Docker == https://github.com/aBARICHELLO/godot-ci https://github.com/godotengine/build-containers
==cloth== https://gitlab.com/frankiezafe/SoftSkin-demo
==water== https://www.gamedev.net/blogs/entry/2266519-playing-with-water-physics/ https://www.youtube.com/watch?v=DZRdwaknYfk https://github.com/fire/godot-realistic-water https://gitlab.com/ringtechsolutions/godot-tools/hydro/hydro
==sound== https://gitlab.com/frankiezafe/gdosc
== glTF == https://github.com/karroffel/godot-glTF2-plugin
== OMG == https://github.com/GDquest/godot-slides https://github.com/godotengine/godot-blender-exporter https://github.com/godotengine/tps-demo https://github.com/Zylann/godot_voxel https://www.gamedev.net/blogs/entry/2265460-fixing-your-timestep-and-evaluating-godot/ https://github.com/binogure-studio/godot-error-handler https://github.com/binogure-studio/chart-gd
==trello== https://trello.com/b/x1GjbG0Y/godot-syllabus
== gdscript docs == TODO
== Style Guide == https://gitlab.com/godot-stuff/gs-style
== ECS ==
- https://www.youtube.com/watch?v=tONOW7Luln8
- https://skypjack.github.io/page2/
- DynaMix as an entity-component-system https://ibob.github.io/dynamix/index.html
- entt (FASTER!) https://github.com/skypjack/entt & https://github.com/skypjack/entt/wiki/EnTT-in-Action
- entityx https://github.com/alecthomas/entityx
- Performance Comparison of OOD and ECS Patterns http://lab.guchanalkan.com/2016/11/07/performance-comparison-ecs.html
- https://gamedevdad.net/post/2018/12/godot-ecs/
- https://gamedevdad.net/post/2018/12/godot-ecs-project/
- http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ like Entitas for Unity ?
- https://www.reddit.com/r/godot/comments/7s4l1f/anyone_interested_in_testing_sveltoecs_and/
- https://www.youtube.com/watch?v=p65Yt20pw0g
- https://gitlab.com/godot-stuff/gs-ecs/tree/master/gs_ecs_test/tests & https://gitlab.com/godot-stuff/gs-ecs-demos
- Entities are just ids (integers or GUIDs), Components are pieces of data associated with these ids (they contain no logic, event handlers, callbacks, etc, just a bunch of values) and Systems iterate over all relevant entities in each tick and handle all the logic. And for performance (and ease of defining relationships), components are usually stored without any hierarchy in contiguous arrays, which has some similarities with RDBMS.
TODO:
- http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/
- http://entity-systems.wikidot.com/es-articles
- https://skypjack.github.io/tags/#entt
- https://skypjack.gthub.io/page2/
- https://skypjack.github.io/2019-02-14-ecs-baf-part-1/
- https://manu343726.github.io/2017-03-13-lock-free-job-stealing-task-system-with-modern-c/
- https://manu343726.github.io/2019-07-14-reflections-on-user-defined-attributes/
- https://manu343726.github.io/2019-06-20-raytracer-runtime-postmortem/
- https://manu343726.github.io/2019-04-18-more-fun-with-user-defined-attributes/
- https://manu343726.github.io/2017-05-07-emulating-reflection-proposals/
- https://manu343726.github.io/2017-02-11-writing-ast-matchers-for-libclang/
- https://github.com/Daivuk/tddod
- https://cellperformance.beyond3d.com/articles/index.html
- https://www.reddit.com/r/gamedev/comments/3wm3hc/mike_acton_broke_my_mind_but_now_it_is_rebuilt/
- https://gamedev.stackexchange.com/questions/82030/how-are-entity-systems-cache-efficient
- https://gamedev.stackexchange.com/questions/137156/entity-component-system-data-storage-design
- http://gameprogrammingpatterns.com/update-method.html
- http://entity-systems.wikidot.com/game-design-for-es
- http://entity-systems.wikidot.com/es-tutorials
== actors ? ==
== navmesh == https://github.com/godotengine/godot-demo-projects/tree/master/3d
== ik == https://github.com/godotengine/godot-demo-projects/tree/master/3d
== Run automated tests for your Godot game on CI == https://saltares.com/blog/games/run-godot-tests-ci-travis/ https://godotengine.org/article/godot-project-management-101 https://www.reddit.com/r/godot/comments/89cu19/exporting_and_publishing_your_games_automagically/ https://github.com/godotengine/godot-tests
== rendering == https://www.reddit.com/r/godot/comments/bnugvj/would_a_solo_or_mmo_rpg_possible_on_godot/ Lack of occlusion culling ? https://github.com/vblanco20-1/godot/blob/4ab733200faa20e0dadc9306e7cc93230ebc120a/servers/visual/visual_server_scene.cpp#L387 No LOD support for: static meshes skeletal meshes animations particles anything really No terrain system No foliage system Lack of support for deferred rendering Seemingly lower limit of polys than other engines + render threads + shadows + mesh batcher / instancing + open world GI + Proxy meshes + Automatic mesh instancing + Auto LODs + wire frame shader: visual shader that allows Godot users to aim the LOD poly count; probably make it a wire frame shader. + Sprite batching + better data structures godotengine/godot#23998 + ECS fork godotengine/godot#23998 (comment) + Godot bans the STL containers, and its C++03. This means it does not have move operators in its containers godotengine/godot#23998 (comment) + c++11 Return value optimization (Copy elision) performance https://shaharmike.com/cpp/rvo/#performance + c++17 Guaranteed Copy Elision https://jonasdevlieghere.com/guaranteed-copy-elision/ + Use std::string_view to avoid string copy in C++17 https://zpjiang.me/2018/09/16/use-string-view-to-avoid-copy-cpp17/
== performance measure == https://github.com/2shady4u/gdscript-performance
== video == https://github.com/Calinou/godot-video-rendering-demo
== settings == https://github.com/Calinou/godot-settings-manager-demo
== GUI == https://github.com/Calinou/godot-7guis
== Behavior tree ? ==
== Decals ? == on roadmap
== Occlusion in real-time ? == on roadmap
== 4.0 update == https://github.com/godotengine/godot/milestone/9
== Scalable Realtime Global Illumination == godotengine/godot#31289 https://roblox.github.io/future-is-bright/compare.html https://news.ycombinator.com/item?id=9982170 NOTE: requires Deferred pipeline, may work in WEBGL >= 2 http://publications.lib.chalmers.se/records/fulltext/256137/256137.pdf
== open world GI ? == HOT https://www.gdcvault.com/play/1026469/Scalable-Real-Time-Global-Illumination https://www.youtube.com/watch?v=8wCeWwXcoLc HOT http://jcgt.org/published/0008/02/01/paper-lowres.pdf HOT https://github.com/jose-villegas/VCTRenderer HOT https://github.com/Gforcex/OpenGraphic#svo HOT https://blog.csdn.net/fancyvin/article/details/78918403 HOT https://kevinyu.net/2019/01/30/soul-engine-devlog-jan2019/ && https://github.com/kevyuu/soul/commits/master https://pdfs.semanticscholar.org/fc43/9b7956d0d76db1452fda070c961a7fa56a18.pdf https://www.gamedev.net/forums/topic/702924-what-gi-is-usable-right-now/ https://www.youtube.com/watch?v=_3-Pvnuyq0c https://morgan3d.github.io/articles/2019-04-01-ddgi/overview.html https://www.gamedev.net/forums/topic/702924-what-gi-is-usable-right-now/ https://twvideo01.ubm-us.net/o1/vault/gdc2019/presentations/Hobson_Josh_The_Indirect_Lighting.pdf https://80.lv/articles/generation-zero-behind-the-scenes/ https://www.frontiersin.org/articles/10.3389/fict.2019.00007/full https://scholar.google.com/scholar?as_ylo=2018&q=voxel+illumination&hl=en&as_sdt=0,5 TODO http://www.makinggames.biz/feature/which-global-illumination-technique-is-best-for-your-game,9520.html http://procworld.blogspot.com/ https://hugoam.github.io/toy-io/3months.html https://wickedengine.net/2017/08/30/voxel-based-global-illumination/ http://raytracey.blogspot.com/ http://s1.pearlcdn.com/pearlabyss/publications/Practical%20Dynamic%20Lighting%20for%20Large-Scale%20Game%20Environments.pdf https://fenix.tecnico.ulisboa.pt/downloadFile/281870113703783/Dissertation-Final-73465.pdf
== GODOT RENDERER == https://godotengine.org/article/godot-3-renderer-design-explained Unity added its programmable render pipeline. Godot has the same kind of functionality through the ability to make custom render servers.
== culling GL == https://stackoverflow.com/a/23428113 https://bazhenovc.github.io/blog/post/gpu-driven-occlusion-culling-slides-lif/ https://community.khronos.org/t/occlusion-culling-by-the-cryengine-way-understanding/76426 https://www.gamesindustry.biz/articles/2016-12-07-overview-on-popular-occlusion-culling-techniques HOT https://pdfs.semanticscholar.org/2330/05198c63fd754070bd987e865e76568e3b1b.pdf http://www.cs.unc.edu/techreports/02-039.pdf HOT https://github.com/GameTechDev/MaskedOcclusionCulling HOT godotengine/godot#22048 https://is.muni.cz/th/o2uja/thesis.pdf HOT http://www.dca.fee.unicamp.br/projects/mtk/batageloM/ && http://www.dca.fee.unicamp.br/projects/mtk/batageloM/batagelo-wu-2002-cgf.pdf https://users.csc.calpoly.edu/~zwood/teaching/csc572/final12/iseletsk/ https://forum.aurasoft-skyline.co.uk/viewtopic.php?f=9&t=1427
== deferred-shading-and-the-g-buffer == https://github.com/Calinou/tesseract-renderer-design#deferred-shading-and-the-g-buffer
== simple voxel lights == https://0fps.net/2018/02/21/voxel-lighting/
== Quest system ? == https://github.com/MinetestForFun/quests
== C++ == HOT https://kevinyu.net/2019/05/28/c-11-atomics-and-concurrency-memory-model/
== HOT == https://github.com/UglySwedishFish/Open7Days https://github.com/topics/voxel?l=c%2B%2B&utf8=%E2%9C%93
== LearnOpenGL == https://github.com/Calinou/learnopengl https://github.com/Overv/Open.GL/blob/master/ebook/Modern%20OpenGL%20Guide.pdf
=== DOD == Data-Oriented Design: Software Engineering for Limited Resources and Short Schedules http://freecomputerbooks.com/Data-Oriented-Design.html
https://www.diva-portal.org/smash/get/diva2:422722/FULLTEXT01.pdf
blending parameter
A special case can occur when an vertex is shared by two adjacent blocks and the voxels determines different material. In this case the vertices shared need to be duplicated for each material.
for
texture palette
- each texture as well as the entire texture palette need to be rounded up to thenext power of two
The transition cells suffers from discontinuities of vertex normals in some cases which can result in poor quality of shading and texturing. This is proposed to also be solved by adding vertices in the interior of the voxels by identifying the cases causing the problem and add cases of enhanced triangulation
store flow fields at a minimal level and generate texture coordinates explicitly for vertices where the surface are intersected by the flow fields.
trilinear projection, sampling from cube map and use of 3D textures.
The mesh is split into uniform (homogeneous material) and non uniform parts where each non uniform mesh is duplicated for each used material and a **alpha** blending is interpolated over the transition.