-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation pages to add or update for Godot 4.0 #5121
Comments
You can add almost every page on the editor as they all need new screenshots and in some cases updated descriptions too. |
Indeed, although I think tracking screenshot updates on existing pages should be done in a separate tracker issue. I want to focus on significant text changes here. |
I already have a PR in progress for lights and shadows. #4570. I'll add in the extra stuff you've mentioned here, though I still need help with fog fade and transmittance bias. The said does it make sense to work on stuff for 4.0 now? There's no alpha yet so the UI can still change. This PR you made (godotengine/godot#48561) is still waiting to get merged and I wouldn't be surprised to see more UI changes between now and an alpha. |
@Calinou What do you want us to do if we stumble across outdated manual pages? Mention them here to get them added to the list or open a new issue, possibly tagging them with Godot 4.0? I'm currently running through the |
Feel free to mention a list here, although I'm already working on rewriting the global illumination docs right now (including GIProbe and BakedLightmap). |
Dope. Here's the first couple I found: The Multiple Resolutions page talks about different stretch modes and mentions the three modes The Size and anchors page talks about "margins". This concept seems to have been renamed to "Offset" with the functionality remaining the same as far as I can see. The screenshots on both of these pages need to be updated too. There was mention of a separate tracker that should be created for that, but it looks like that hasn't happened yet. Should I set up one while I'm at it or wait for someone from the "core" team to do it? |
There are some changes planned to the GUI system's containers and margin system, so I would wait until beta stage to make editor screenshots. Still, pretty much all editor screenshots should be remade, since a new editor theme was designed for Godot 4.0. Feel free to create a separate tracker issue that lists individual image files that need to be remade. |
The Handling quit requests page seems to be completely outdated. It appears that the I noticed that most of the pages I mentioned are tutorials and I know there are plans to remove tutorials from the docs. Would it make sense to keep posting them vs. letting the problem solve itself when the tutorials get removed eventually? |
Now that feature warnings have been added to the engine, the Feature Tags page might have to be updated to include relevant information about how the warnings work. |
As far as I can see, the Reset Animation feature is not documented anywhere, either in the class reference or any of the tutorials. There is a single mention of a related property in the API documentation, but nothing that would clear up any questions users might have about the feature. |
@Calinou I'd like to work on the documentation of 3D particle systems. I'm currently getting familiar with the GPU particle system, so I would want to start with that. I'd also provide a translation while I'm at it (German in my case). |
Sure, feel free to start working on a 3D particle systems page 🙂 I would only focus on GPUParticles usage for now. Topics to cover would be:
Manual emission requires a custom particle shader, which is likely outside the scope of a basic particle tutorial. |
The animation RESET track is not documented. Relevant PRs: |
The RESET track functionality is also present in Godot 3.4, so this is not exclusive to Godot 4.0. This issue is for items that should only be documented in Godot 4.0, so I'd open a separate issue for the RESET track documentation. |
My bad, you're right. I created a separate issue. |
I'm almost done with 3D particles and would like to do the localization overhaul next. If all goes well, I should have both ready by end of March. |
I have a suggestion for a new section: Accessibility. According to the discussion on proposal 983, there is already quite a lot built into the engine that devs can use to make their games more accessible. TTS was also improved recently. I think it's time to start collecting all that info in a dedicated documentation section. |
I think a dedicated documentation section for accessibility makes sense if we can group enough items under that section. We can have a TTS manual page, but is there anything else in the core engine worth covering for accessibility? |
Here are some that I've implemented in past games:
Here are some resources on how TLOU2 did it:
You can do a lot of these with Godot already, so I'm proposing to add a dedicated section that teaches people how. |
Colorblind filters are generally considered an antipattern in accessibility guidelines, so I wouldn't cover them. They can help as a stopgap, but it's not possible to make a colorblind person see a color that they can't see. A proper implementation of a colorblind-friendly mode avoids relying on color as the only source of information. This should ideally be done by default, so that all players benefit from this out of the box. Adding subtitles is another thing that is worth documenting, but a good implementation requires more than a few lines of code. Therefore, I think it's best covered by an add-on. The rest sounds good to me, although font and UI scaling should probably be covered in Multiple resolutions instead to keep the information centralized. We can then link to the relevant section on the accessibility page. Since Godot 3.4, there's a scale factor property so you don't have to resize every control and font manually (although individual resizing is still possible, and made easier in Godot 4.0 thanks to per-Control font sizes).
Post-processing is a viable solution here, but it's not the cheapest and it can be less flexible sometimes. I think adjusting materials at load-time can go a long way here, while having zero run-time cost. Ultimately, both approaches should be covered, but material adjustment is probably the one that should be preferred if you have enough time to implement it. For example, you could adjust the albedo color (and possibly make it slightly overbright), or enable emission to make highlighted objects glow in the dark. If you want to go for that "clay model" look of TLoU2 in its object highlighting mode, you can remove the albedo textures entirely, set a bright albedo color and keep the normal maps. |
Those are good suggestions, but I want to clarify this part:
I know what you're talking about (at least I think I do), but that's probably not what I mean. I'm not talking about shifting hues of an entire scene, turning grass purple and water orange. That is dumb, no question. What I'm talking about is this: You have a bunch of clickable UI elements, one of them is special so it has a different color. What you do is you let players set a different color for elements of this kind or you define presets per colorblindness mode with the goal to still set it apart from the surroundings. But you don't touch the other elements. Sorry if this actually was what you were talking about. Your second point still stands regardless. Color should not be the only source of information. |
In that case, that sounds good to me 🙂 |
Hi, I'm wondering if the gdscript grammar page should fall under the "needs to be updated" category. https://docs.godotengine.org/en/stable/development/file_formats/gdscript_grammar.html. Our team is currently trying out Godot 4.0 alpha from Godot 3.5 and we're also looking to update some of our tooling (like linters) which will probably need an updated BNF to work off. |
The GDScript grammar page was added shortly before GDScript was rewritten, so it's missing some things (including the |
I would like to provide sth for compute shaders. I am currently experimenting with C# compute shader based noise generation. |
See #4834. A dedicated documentation page is welcome 🙂 |
I've noticed 2 errors in pages that claim to be up-to-date for Godot 4.0. https://docs.godotengine.org/en/4.0/classes/class_arraymesh.html#class-arraymesh-method-regen-normal-maps
By the way this page seems to imply you can't generate normals automatically from ArrayMesh API, so you'd have to use SurfaceTool for that. Which is it?
Or am I just confusing things? Is generating normals != generating normal maps == generating tangents? https://docs.godotengine.org/en/4.0/classes/class_surfacetool.html#class-surfacetool-method-commit
|
On 2D Navigation Overview page there are links in "see also" box: Both demos are for GD 3.5 |
I'm a Unity user trying out Godot Mono, excuse me if I'm in the wrong place GDScript classes "JSON" and "HTTPRequest" are now "Json" and "HttpRequest" in Mono
PS: Thanks to Capitalization >:( and awful AI advice, I tried compiling Godot with mono from source (seeing lots of Error 1's from scons....), which Thankfully I discovered I did NOT have to do... |
Page Godot notifications says that it's up to date for Godot 4.1, but the GDScript snippet for _init vs. initialization vs. export isn't valid syntax anymore
|
I think properties of joints should include units (if the property is an adimensional coefficient also indicate it) and the range of values. The problem Im having is that Im trying to parse joint parameter from other source to godot joints and without possible ranges nor units one cannot make a proper conversion. In some cases the units can be deduced from equations in the engine code. This issue happens for all joint3D classes Also I will mention that the HingeJoint3D implementation seems not to implement the angular limit restrictions Code : //apply motor
if (m_enableAngularMotor) {
//todo: add limits too
Vector3 angularLimit(0, 0, 0);
Vector3 velrel = angVelAroundHingeAxisA - angVelAroundHingeAxisB;
real_t projRelVel = velrel.dot(axisA);
real_t desiredMotorVel = m_motorTargetVelocity;
real_t motor_relvel = desiredMotorVel - projRelVel;
real_t unclippedMotorImpulse = m_kHinge * motor_relvel;
//todo: should clip against accumulated impulse
real_t clippedMotorImpulse = unclippedMotorImpulse > m_maxMotorImpulse ? m_maxMotorImpulse : unclippedMotorImpulse;
clippedMotorImpulse = clippedMotorImpulse < -m_maxMotorImpulse ? -m_maxMotorImpulse : clippedMotorImpulse;
Vector3 motorImp = clippedMotorImpulse * axisA;
if (dynamic_A) {
A->apply_torque_impulse(motorImp + angularLimit);
}
if (dynamic_B) {
B->apply_torque_impulse(-motorImp - angularLimit);
}
}
As you can see there is a //todo: add limits too . Not directly business of this repo but docs should reflect the status of the code they are versioning right? Thanks for the effort |
|
This is incorrect, see:
This is done by choice and should not be reverted, instead the screenshot should be fixed |
So I deleted the comment cause I am new and felt embarrassed but after researching this topic it looks like docs are changing to snake case because devs use them, but after downloading Godot 4.1 binary for linux straight from the site it auto generated this file |
@ArekKubinski you need to save the scene as If the scene is new and not saved yet it doesn't work and falls back to PascalCase. |
#6741 is closed as completed ... should the multiplayer docs be marked complete in the checklist? |
Navigation Elements Docs Thoughts: When I read the Navigation docs (and Signal docs, but I don't have time to explain those), here are the places I glitch out. IDK if I am your "audience" for the docs, so this all may be irrelevant. As an audience, I am someone who is self-taught, very very little programming background (like "goto line 32" on an Apple 2+), was able to do navigation easily in Unity, has been working Godot daily for about 2 years, and is just now really understanding things like the difference between a method and a function and a call and a signal. On this doc (and several Navigation elements' docs), https://docs.godotengine.org/en/stable/tutorials/navigation/navigation_using_navigationpaths.html basic query for a navigation path in 3D using the default navigation mapIt doesn't say which node to add the script to. Scroll Down on that page ^^^ to header: ^^^ That sounds like you'd add the script on the NavMesh, but it says "Inherits Node3D" at the top of the script. So that means it's not on a mesh node, or a NavigationRegion node. Where do best practices say I should put it? I'm just learning Navigation stuff and though I have read the docs over several times, I get lost on where to add which script. Side note, I do think it is clear NavAgent stuff can go in its parent's character body or node script. So, needed is below. Need: a simple, clear line about which node to put scripts on when giving a script as custom way to do a nav thing. Example: "Attach this script to a NavigationRegion3D parent node of type Node3D, or to the NavigationRegion3D itself." Need: keep the great documentation going down to each node--especially NavigationAgent3D--w/examples (including NavAgent + mesh or + array path or + idk what else can be used). I can't give an example because I cannot figure out how to do the actual "hey, NavAgent, it's time to move to point A" function (which seems should use set_target_location, but that's called in Physics, and set_movement_location is called in setup, so I get lost as to what exactly should be called where, and if I am supposed to add a function separately other than the ones in the docs). I see this script in NavAgent Docs under Actor as CharacterBody3D: https://docs.godotengine.org/en/stable/tutorials/navigation/navigation_using_navigationagents.html And this script in Obtaining a Navigation Path: https://docs.godotengine.org/en/stable/tutorials/navigation/navigation_using_navigationpaths.html But another one somewhere else which I cannot find now where it says this in physics:
It is unclear when to use which, and/or how to include target_desired_distance in either of these scripts. Does it somehow automatically know that the desired distance is the end of the path? When I run either of these scripts my NavAgent parent cuts across the field and doesn't follow the set/baked NavRegion in any way. I set all on same Nav and collision layers. Issue: the exact way to get NavAgent to start moving when you want it to. It is mostly clear when we need each element and where that goes in the hierarchy, but then in order to: "Navigation paths can be directly queried from the NavigationServer," when I don't know where the NavServer script goes--if it even goes on a node at all? And after reading the Server docs, I had decided I didn't need to be that detailed. But also didn't see there where my script would get run from? Why: I only want my curve points (which I made into a CSGpolygon3D so they could be the nav mesh for the node NavRegion) as my NavAgent path, and I only want to do that so I can control Agent starting to move on his path (on signal when something else happens) because I do NOT want him to cut across the field, he should stay on the road (my curve/polygon/Path3d base thing, which is the only thing in the navmesh). I cannot use Pathfollow3D because I don't want my NPC as a child of that (long story why). But would that with Remote Transform REPLACE navigation? I have not looked into adding curve points as array for NavMesh--so I can say "move to the third index point now" (I think the idea is what the last script shows on that page: "The following script uses the NavigationServer to update a navigation region with procedurally generated navigation mesh data." Even though I don't need to generate the curve/path--I already made it a node. Before I try that, I want to know where the NavigationServer script goes, and understand how to control my navAgent to sit there at point A until thing happens, start moving when thing happens, then keep moving to point B, then stop and wave hello at the end. But none of the docs drill down to actually controlling your NavAgent outside the actual physics function. The current outside tutorials all either have a continuous loop OR set target_path to random in Physics so those don't help. I just downloaded the 3d Navmesh tutorial sample project thing. I will look how it's set up and try to mimic that in mine. BUT if the docs had (maybe in a Navigation intro?) explained more simply which to use in what use cases (for best load balance, best visuals, best stay right on this exact path, etc), Need: So, at no point are "path follow" or "remote transform" mentioned as alternatives. Are they? If so... Where I glitch out is would either of these be used INSTEAD of using NavigationRegion + Curve/Path points you use NavRegion with your NavAgent3D on that remote path??? or do you only need your player/npc as the remote node and your curve and you're good to go? Pathfollow doc says: "It is useful for making other nodes follow a path, without coding the movement pattern". But then goes on to say you would set the value to update movement, which would be coding the pattern using the path you made, wouldn't it? Even so, if I cannot have that moving node as a child, I cannot use path follow, right? It says: "After setting the target_position property, the get_next_path_position method must be used once every physics frame to update the internal path logic of the navigation agent. The vector position it returns should be used as the next movement position for the agent's parent node." So if I want to choose my next_path_position on the path...??? I am unclear as to whether Remote Transform could be used on a NavAgent (or if there's some other way to specifically tell them when to go where). So somehow helping us understand actually moving the NavAgent on the specific path part of the NavMesh, Region, Curve, etc would REALLY help I think. I wonder: Remote Transform has no mention of PathFollow3D or NavigationMesh/Region/Agent ...could they work together? Should they? Is Remote Transform redundant if using NavAgent? Is a "Remote Node" basically the same as NavAgent? That's how someone at my level tries to use the docs to handle Navigation of an NPC who literally only needs to walk when NodeX visibility changes (signal to NavAgent parent), along a simple curve path, and stop when he gets to point B. I can't even imagine trying to get him to avoid obstacles. In fact, I just moved everything out of the way of his path (NavRegion NavMesh CSGPolygone from a curve) so I wouldn't have to lol. I hope this helps, and isn't just really annoying. |
Your First 2D game >> Finishing up >> Background |
This seems like a good place to leave this note as opposed to a whole new issue- we just noticed that the documentation about Format Strings doesn't mention how to escape the |
This comment has been minimized.
This comment has been minimized.
#10216 fixed some obvious old terminology and screenshots in Sizes and Anchors, but the page still needs a deeper update. There are two other PRs trying to update the page: #10005 and #8855 (which builds off another PR #7106). One or both of these other PRs can be used as the basis to fully update the page. #10005 is not yet reviewed at all. Some time soon I'll try to rework these into a deeper update of the page. |
Note: This issue is only for manual pages. For class reference pages, refer to the automatically updated tracker: https://godotengine.github.io/doc-status/
Help for working on these pages is welcome. If you're going to start writing a new page or rewrite an existing one, please leave a comment to state which page you're going to work on 🙂
New pages
Pages to write for features that were not present in Godot 3.x.
3.x
.Pages to rewrite
These pages need rewrites from scratch with new screenshots.
The text was updated successfully, but these errors were encountered: