Kotlin LibGDX/KTX RPG Tutorial - Part 22 (Scene2D UI)

Channel:
Subscribers:
1,720
Published on ● Video Link: https://www.youtube.com/watch?v=jiwE0oAU_MM



Category:
Tutorial
Duration: 2:13:52
960 views
36


This is a tutorial series about game development using Kotlin, LibGDX with LibKTX extensions.
We are developing a small 2D adventure RPG using different technologies like Box2D, GdxAI, Entity Component System or Tiled.

The full source code of the tutorial can be found on github: https://github.com/Quillraven/MysticWoods

Part 22 - Scene2D UI:
In this part we are going to learn how to create a user interface for our game using the model view viewmodel (MVVM) approach.

Link to my other scene2d video: https://www.youtube.com/watch?v=25_xCStxi9g
Link to Scene2D skin: https://libgdx.com/wiki/graphics/2d/scene2d/skin
Link to LibKTX Scene2D: https://github.com/libktx/ktx/tree/master/scene2d
Link to reified documentation: https://kotlinlang.org/docs/inline-functions.html#reified-type-parameters
Link to delegated properties documentation: https://kotlinlang.org/docs/delegated-properties.html

Chapters:
00:00 - Demo of UI
02:49 - Scene2D vs VisUI
05:19 - Create UiScreen
08:47 - GameView Introduction
09:12 - MVC vs MVVM
12:11 - Create GameView
15:10 - Scene2D Table
17:53 - Setup test UI
21:46 - Create skin
27:09 - Summary of part one
29:33 - Create LibKTX Scene2dDsl extension
35:15 - Create CharacterInfo widget
40:48 - Manage skin drawables
45:06 - Update CharacterInfo images and DSL
47:59 - Adjust CharacterInfo layout
50:51 - Add UI logic to CharacterInfo
53:01 - Test CharacterInfo widget
57:38 - 9patch drawables
1:02:13 - Create loot popup
1:04:47 - Manage skin label styles
1:06:25 - Manage skin fonts
1:09:42 - Label markup
1:10:52 - Adjust label layout
1:12:26 - Create UI animations
1:19:25 - Summary and result of UI
1:20:33 - Create GameModel
1:22:38 - Create property change support
1:34:56 - Create data binding
1:37:46 - Create EntityDamageEvent
1:41:53 - Summary MVVM approach
1:42:51 - Support EntityLootEvent of game
1:45:04 - Support EntityDamageEvent of game
1:46:04 - Create EntityAggroEvent of game
1:54:42 - Test everything
1:55:33 - Summary of part two
1:57:09 - Benefit of Scene2dDsl
1:59:32 - Hot reload of UI changes
2:02:28 - Support of multiple skins
2:03:57 - Improve data binding via delegation







Tags:
kotlin
libgdx
libktx
rpg
tutorial
box2d
gdxai
ai
ecs
entity component system
game development
programming
scene2d
2d
pixel
retro
english
behavior tree
mvvm
model
view
viewmodel
data binding
delegates
delegation