|
5 | 5 |
|
6 | 6 | A multi-platform OpenGL / WebGPU / ~~Vulkan~~ game engine that works on Desktop Java, Android and browsers. |
7 | 7 |
|
8 | | -This is very much a code-only game engine. I recommend taking a look at the demos listed below in case |
9 | | -you are curious (all demo source code is available in the `kool-demo` subproject). The library is also published on |
10 | | -maven central, see [below](#usage). |
| 8 | +### Get In Touch |
| 9 | +Feel free to join the [Discord Server](https://discord.gg/GvsJj2Pk3K)! |
11 | 10 |
|
12 | | -I also started working on a graphical scene editor. |
13 | | -The editor is still in an early state and not very useful yet, but you can try the [Web Demo](https://fabmax.github.io/kool/kool-editor/) |
14 | | -in case you are curious. You can also take a look at the `kool-editor-template` in the [kool-templates](https://github.com/fabmax/kool-templates) |
15 | | -in case you want to play around with it a bit more. |
| 11 | +## Scene Editor |
| 12 | +Check out the web version [here](https://fabmax.github.io/kool/kool-editor/)! (Chrome recommended). |
16 | 13 |
|
17 | | -## Get In Touch |
| 14 | +The engine used to be a code-only engine, but I recently made some progress in implementing a graphical scene editor. |
| 15 | +The editor still is in an early state and lacks several rather essential features, but the basics already work quite |
| 16 | +well. It is fully implemented within the engine itself (including the UI). |
18 | 17 |
|
19 | | -Feel free to join the [Discord Server](https://discord.gg/GvsJj2Pk3K)! |
| 18 | +To unleash the full potential of the editor, you should run it locally. You can either download the editor |
| 19 | +directly in the web-version by clicking the `Save Project` button in the upper right corner (this also preserves any |
| 20 | +changes made in the editor) or you can clone the editor template project (see [usage](#usage) below). |
| 21 | + |
| 22 | +## Web-Demos |
| 23 | +The following demos run directly in the browser. Chrome is recommended but other browsers might work as well. |
| 24 | +All demos are implemented in code-only fashion (i.e. without using the editor). The code for all demos is available in |
| 25 | +the [kool-demo](kool-demo/src/commonMain/kotlin/de/fabmax/kool/demo) subproject. |
20 | 26 |
|
21 | | -## Demos |
22 | | -- [Editor](https://fabmax.github.io/kool/kool-editor/): Work in progress graphical editor for this engine. Fully |
23 | | - implemented within the engine itself. |
24 | 27 | - [Island](https://fabmax.github.io/kool/kool-js/?demo=phys-terrain): Height-map based |
25 | 28 | island incl. some wind-affected vegetation + a basic controllable character. |
26 | 29 | - [Physics - Ragdoll](https://fabmax.github.io/kool/kool-js/?demo=phys-ragdoll): Ragdoll physics demo. |
@@ -63,8 +66,6 @@ Feel free to join the [Discord Server](https://discord.gg/GvsJj2Pk3K)! |
63 | 66 | - [Mesh Simplification](https://fabmax.github.io/kool/kool-js/?demo=simplification): Interactive mesh |
64 | 67 | simplification demo (based on traditional [error-quadrics](https://www.cs.cmu.edu/~./garland/Papers/quadrics.pdf)) |
65 | 68 |
|
66 | | -Code for all demos is available in kool-demo sub-project. |
67 | | - |
68 | 69 | By default, the web demos use the WebGPU backend and fall back to WebGL if WebGPU is not supported by your browser. The |
69 | 70 | used backend is printed in the extended info-panel in the lower right corner (click on the little `+`), apart from |
70 | 71 | that there shouldn't be much visible difference in the WebGL and WebGPU backends. You can also force a certain backend |
@@ -142,8 +143,8 @@ the libs are resolved and added to the IntelliJ module classpath. |
142 | 143 |
|
143 | 144 | Getting a basic scene on the screen is quite simple: |
144 | 145 | ```kotlin |
145 | | -fun main() = KoolApplication { ctx -> |
146 | | - ctx.scenes += scene { |
| 146 | +fun main() = KoolApplication { |
| 147 | + addScene { |
147 | 148 | defaultOrbitCamera() |
148 | 149 |
|
149 | 150 | addColorMesh { |
@@ -185,8 +186,8 @@ in its full glory. The resulting scene looks like [this](https://fabmax.github.i |
185 | 186 | Model loading, animation and more advanced lighting with shadow mapping and ambient occlusion requires only a few more |
186 | 187 | lines of code: |
187 | 188 | ```kotlin |
188 | | -fun main() = KoolApplication { ctx -> |
189 | | - ctx.scenes += scene { |
| 189 | +fun main() = KoolApplication { |
| 190 | + addScene { |
190 | 191 | defaultOrbitCamera() |
191 | 192 |
|
192 | 193 | // Light setup |
@@ -270,7 +271,7 @@ repository is loaded. |
270 | 271 | Kool comes with an embedded UI framework, which is heavily inspired by [Jetpack Compose](https://github.com/JetBrains/compose-jb) |
271 | 272 | but was implemented from scratch. Here is a small example: |
272 | 273 | ```kotlin |
273 | | -fun main() = KoolApplication { ctx -> |
| 274 | +fun main() = KoolApplication { |
274 | 275 | ctx.scenes += UiScene(clearScreen = true) { |
275 | 276 | Panel(colors = Colors.singleColorLight(MdColor.LIGHT_GREEN)) { |
276 | 277 | modifier |
@@ -319,8 +320,8 @@ different backends in the future (e.g. metal). |
319 | 320 | Writing shaders in ksl is quite similar to GLSL, here's how a hello-world style shader looks like: |
320 | 321 |
|
321 | 322 | ```kotlin |
322 | | -fun main() = KoolApplication { ctx -> |
323 | | - ctx.scenes += scene { |
| 323 | +fun main() = KoolApplication { |
| 324 | + addScene { |
324 | 325 | defaultOrbitCamera() |
325 | 326 |
|
326 | 327 | addColorMesh { |
|
0 commit comments