From dd21844eb3b1050b9c1da4d0ecfac25c26f284b6 Mon Sep 17 00:00:00 2001
From: Lars Frost <larsf@fsmpi.rwth-aachen.de>
Date: Mon, 24 Jun 2024 22:15:14 +0200
Subject: [PATCH] Minor text improvements

---
 images/godot/icon.svg |  1 +
 leitfaden.typ         | 17 +++++++++--------
 sections/godot.typ    |  5 ++++-
 sections/unity.typ    | 13 +++++++++----
 4 files changed, 23 insertions(+), 13 deletions(-)
 create mode 100644 images/godot/icon.svg

diff --git a/images/godot/icon.svg b/images/godot/icon.svg
new file mode 100644
index 0000000..39d0b5c
--- /dev/null
+++ b/images/godot/icon.svg
@@ -0,0 +1 @@
+<svg height="1024" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m0 0s-.325 1.994-.515 1.976l-36.182-3.491c-2.879-.278-5.115-2.574-5.317-5.459l-.994-14.247L-71-23.218l-1.904 12.912c-.424 2.872-2.932 5.037-5.835 5.037h-38.188c-2.902.0-5.41-2.165-5.834-5.037l-1.905-12.912-27.992 1.997-.994 14.247c-.202 2.886-2.438 5.182-5.317 5.46l-36.2 3.49c-.187.018-.324-1.978-.511-1.978l-.049-7.83 30.658-4.944 1.004-14.374c.203-2.91 2.551-5.263 5.463-5.472l38.551-2.75c.146-.01.29-.016.434-.016 2.897.0 5.401 2.166 5.825 5.038l1.959 13.286h28.005l1.959-13.286c.423-2.871 2.93-5.037 5.831-5.037.142.0.284.005.423.015l38.556 2.75c2.911.209 5.26 2.562 5.463 5.472l1.003 14.374 30.645 4.966z" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 919.24059 673.152141)"/><path d="m0 0v-47.514-6.035-5.492c.108-.001.216-.005.323-.015l36.196-3.49c1.896-.183 3.382-1.709 3.514-3.609l1.116-15.978 31.574-2.253 2.175 14.747c.282 1.912 1.922 3.329 3.856 3.329h38.188c1.933.0 3.573-1.417 3.855-3.329l2.175-14.747 31.575 2.253 1.115 15.978c.133 1.9 1.618 3.425 3.514 3.609l36.182 3.49c.107.01.214.014.322.015v4.711l.015.005v54.325c5.09692 6.4164715 9.92323 13.494208 13.621 19.449-5.651 9.62-12.575 18.217-19.976 26.182-6.864-3.455-13.531-7.369-19.828-11.534-3.151 3.132-6.7 5.694-10.186 8.372-3.425 2.751-7.285 4.768-10.946 7.118 1.09 8.117 1.629 16.108 1.846 24.448-9.446 4.754-19.519 7.906-29.708 10.17-4.068-6.837-7.788-14.241-11.028-21.479-3.842.642-7.702.88-11.567.926v.006c-.027.0-.052-.006-.075-.006-.024.0-.049.006-.073.006v-.006c-3.872-.046-7.729-.284-11.572-.926-3.238 7.238-6.956 14.642-11.03 21.479-10.184-2.264-20.258-5.416-29.703-10.17.216-8.34.755-16.331 1.848-24.448-3.668-2.35-7.523-4.367-10.949-7.118-3.481-2.678-7.036-5.24-10.188-8.372-6.297 4.165-12.962 8.079-19.828 11.534-7.401-7.965-14.321-16.562-19.974-26.182 4.4426579-6.973692 9.2079702-13.9828876 13.621-19.449z" fill="#478cbf" transform="matrix(4.162611 0 0 -4.162611 104.69892 427.387251)"/><path d="m0 0-1.121-16.063c-.135-1.936-1.675-3.477-3.611-3.616l-38.555-2.751c-.094-.007-.188-.01-.281-.01-1.916.0-3.569 1.406-3.852 3.33l-2.211 14.994H-81.09l-2.211-14.994c-.297-2.018-2.101-3.469-4.133-3.32l-38.555 2.751c-1.936.139-3.476 1.68-3.611 3.616L-130.721.0l-32.547 3.138c.015-3.498.06-7.33.06-8.093.0-34.374 43.605-50.896 97.781-51.086h.066.067c54.176.19 97.766 16.712 97.766 51.086.0.777.047 4.593.063 8.093z" fill="#478cbf" transform="matrix(4.162611 0 0 -4.162611 784.07144 718.723121)"/><path d="m0 0c0-12.052-9.765-21.815-21.813-21.815-12.042.0-21.81 9.763-21.81 21.815.0 12.044 9.768 21.802 21.81 21.802C-9.765 21.802.0 12.044.0.0" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 389.21484 527.151321)"/><path d="m0 0c0-7.994-6.479-14.473-14.479-14.473-7.996.0-14.479 6.479-14.479 14.473s6.483 14.479 14.479 14.479C-6.479 14.479.0 7.994.0.0" fill="#414042" transform="matrix(4.162611 0 0 -4.162611 367.36686 532.537071)"/><path d="m0 0c-3.878.0-7.021 2.858-7.021 6.381v20.081c0 3.52 3.143 6.381 7.021 6.381s7.028-2.861 7.028-6.381V6.381c0-3.523-3.15-6.381-7.028-6.381" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 511.99336 626.219821)"/><path d="m0 0c0-12.052 9.765-21.815 21.815-21.815 12.041.0 21.808 9.763 21.808 21.815.0 12.044-9.767 21.802-21.808 21.802-12.05.0-21.815-9.758-21.815-21.802" fill="#fff" transform="matrix(4.162611 0 0 -4.162611 634.78706 527.151321)"/><path d="m0 0c0-7.994 6.477-14.473 14.471-14.473C22.473-14.473 28.95-7.994 28.95.0s-6.477 14.479-14.479 14.479C6.477 14.479.0 7.994.0.0" fill="#414042" transform="matrix(4.162611 0 0 -4.162611 656.64056 532.537071)"/></svg>
\ No newline at end of file
diff --git a/leitfaden.typ b/leitfaden.typ
index 7b6dc0d..b5543dd 100644
--- a/leitfaden.typ
+++ b/leitfaden.typ
@@ -23,18 +23,18 @@
 - During the presentation, you will show the games on your own devices. You shall further upload a compiled version, that is distributed to all participants.
 
 = Technical Requirements
-- The game has to support either Windows (10+) or Ubuntu (24.04). If possible (your engine supports this, and you used no OS-specific APIs), you shall submit versions for Windows, MacOS, and GNU/Linux.
-- If your game is intended for gamepads, it must also be possible to play one user with keyboard and mouse.
-- There will be repositories in the RWTH Gitlab. You also submit your final version there.
-- We do not mandate a specific engine, though we do recommend to use Godot or Unity. We also recommend you to get familiar with the engine you would like to use beforehand.
-- You may only use assets and libraries that are available free of charge, and only if the license permits you and us to distribute your unmodified binaries to the other participants. To keep track of the licensing, we recommend creating a list of all used assets, including assets that don't require attribution.
+- The game has to support either Windows (10+) or Ubuntu (24.04). If possible (your engine supports this, and you used no OS-specific APIs), you shall submit versions for Windows, MacOS, and Linux.
+- If your game is intended for gamepads, it must also be possible to play one player with keyboard and mouse.
+- There will be repositories in the RWTH Gitlab. There you submit your final version.
+- We do not mandate a specific engine, though we do recommend to use Godot or Unity. We also recommend that you get familiar with the engine, you would like to use, before the jam starts.
+- You may only use assets and libraries that are available free of charge, and only if the license permits you and us to distribute your unmodified binaries to the other participants. To keep track of the licensing, we recommend creating a list of all used assets and their source, including assets that don't require attribution.
 
 = Introduction: How to develop games?
 
 == What do I need for a game?
 To create a game several components are usually needed:
 
-*Graphics*#h(1em)
+*2D Graphics*#h(1em)
 To show something in the game, you will need graphical assets.
 In 2D games, the graphics consist of 2D UI Overlay elements like the menu, buttons, or the score.
 The rest of the game graphics are also 2D images and are usually called _sprites_.
@@ -45,6 +45,7 @@ Animations are done by having different variants of an object and cycling throug
   Example character sprites with walk animations from #link("https://opengameart.org/content/top-down-pokemon-esque-sprites")[Corey Archer]
 ])
 
+*3D Graphics*#h(1em)
 In 3D games, the UI overlay is done the same way as in 2D games, but the 3D world is more complicated.
 #figure(image("images/0AD_example_colored.png"), caption: [
   A screenshot from #link("https://play0ad.com/media/screenshots/")[0.A.D.]. The 2D UI Overlay is marked green. Buildings, People, Animals, Ground, Trees, and everything else are 3D models.
@@ -70,9 +71,9 @@ which heavily restricts how complex graphics can be.
 
 For unanimated objects, this is sufficient.
 For animated objects we need some more components.
-First, we add bones to the model.
+First, we add bones to the model (this process is called _rigging_).
 Then we say for each combination of bone and vertex,
-how much a change in the bone position should influence the position of that vertex (this process is called skinning).
+how much a change in the bone position should influence the position of that vertex (this process is called _skinning_).
 Then for each point and each keyframe, we say what position the bone is in that frame.
 This way of animation is called _skeletal animation_.
 If the relative position between bones is fixed, the connection is called a _joint_.
diff --git a/sections/godot.typ b/sections/godot.typ
index 653b933..9ba238f 100644
--- a/sections/godot.typ
+++ b/sections/godot.typ
@@ -3,13 +3,16 @@
 #pagebreak()
 
 = How to Godot
+#let wrapleft = [
 #link("https://godotengine.org/features/")[Godot] is an open-source game engine under the MIT license.
 It uses an object-oriented programming model and has its own scripting language #link("https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/index.html")[GDScript] with optional typing and python-like syntax.
 It also supports #link("https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/index.html")[C\#/.NET]
 and has native bindings called GDExtensions for C and C++.
 There are also several community-maintained language bindings like #link("https://github.com/utopia-rise/godot-kotlin-jvm")[Kotlin]
 or #link("https://github.com/Geequlim/ECMAScript")[JavaScript/TypeScript] with a modified base engine or #link("https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/what_is_gdextension.html#supported-languages")[Rust, Go, and Swift] for GDExtensions.
-However, I advise to use GDScript or C\# as they have the best support, have a programming model fitting the engine, and are mainted by the Godot project itself.
+However, I advise to use GDScript or C\# as they have the best support, and have a programming model fitting the engine.
+]
+#wrap-content(image("/images/godot/icon.svg", width: 4em), wrapleft)
 
 Some general hints for Godot:
 - All fields accepting numbers also accept math expressions like `sqrt(2) - 1`.
diff --git a/sections/unity.typ b/sections/unity.typ
index ea455bd..5b44051 100644
--- a/sections/unity.typ
+++ b/sections/unity.typ
@@ -11,8 +11,13 @@ and that is used in all Unity documentation.
 T obtain Unity, use #link("https://docs.unity3d.com/hub/manual/InstallHub.html")[UnityHub].
 You will also need to #link("https://unity.com/products")[register as student or personal user].
 
+Using Git with Unity is generally a nightmare, because Unity uses UUIDs in its files, making them difficult to read,
+and randomly changes some fractional digits when different systems load a file and save it unchanged.
+Use #link("https://github.com/github/gitignore/blob/main/Unity.gitignore")[this gitignore as a starting point],
+to get some control over the giant pile of files Unity will create.
+
 == UI
-The GalacticKittens sample project still uses the old UI system.
+The GalacticKittens sample project referenced below still uses the old UI system.
 It is simple to start with, but inflexible and unresponsive.
 The new system #link("https://docs.unity3d.com/Manual/UIElements.html")[UI Toolkit] builds UIs from XML and CSS with #link("https://css-tricks.com/snippets/css/a-guide-to-flexbox/")[flexbox] for layouts.
 
@@ -52,8 +57,8 @@ The new system #link("https://docs.unity3d.com/Manual/UIElements.html")[UI Toolk
 }
 ```, caption: [USS example])
 
-== Music and sound effects
-See #link("https://github.com/UnityTechnologies/GalacticKittens/blob/main/Assets/Scripts/Managers/AudioManager.cs")[the AudioManager from the GalacticKittens sample game] for sound management under Unity.
+// == Music and sound effects
+// See #link("https://github.com/UnityTechnologies/GalacticKittens/blob/main/Assets/Scripts/Managers/AudioManager.cs")[the AudioManager from the GalacticKittens sample game] for sound management under Unity.
 
 == Input processing
 There are two input systems.
@@ -66,7 +71,7 @@ This works if you have only one input device per local game instance.
 However, it is unsuited if you want to allow a multiplayer mode by connecting multiple gamepads to the same PC.
 In that case you need the to handle InputEvents, that know what device triggered them.
 
-The complex way is to register handlers for events in `UnityEngine.InputSystem.InputSystem`.
+The complex way, used in that case, is to register handlers for events in `UnityEngine.InputSystem.InputSystem`.
 ```cs
 // on device connect or disconnect
 void OnDeviceChange(InputDevice device, InputDeviceChange change);
-- 
GitLab