SlideShare a Scribd company logo
1 of 29
Download to read offline
Tworzenie gier z
wykorzystaniem
Castle Game Engine
Michalis Kamburelis
O mnie
● Castle Game Engine - https://castle-engine.io/
● PasDoc - https://pasdoc.github.io/
● Modern Object Pascal Introduction - https://castle-engine.io/modern_pascal
● Web3d, Khronos (standardy 3D - glTF, X3D)
● Cat-astrophe Games - https://cat-astrophe-games.com/
Castle Game Engine
● Tworzenie gier 3D i 2D
● Edytor
● Potężne API dla programistów (wszystko co można zrobić w edytorze + dużo więcej)
○ Pascal (Delphi, FPC) - elegancki i szybki język
○ do silnika i do gier
● Open-source
○ fork aby dodać feature do konkretnego projektu? Możesz.
● Multi-platform
○ Windows, Linux (Raspberry Pi), FreeBSD, macOS
○ Android, iOS
○ Nintendo Switch
○ Note: Delphi only for Windows for now
Edytor -> build gry
Castle Game Engine fps_game demo
1. Edytor
3D FPS game template
● Views
● Play view:
○ Viewport, navigate in 3D
○ Left side: hierarchy with components
■ UI
■ viewport is also UI
■ 3D: transform scenes, cameras, lights
○ Right side: properties
○ Bottom: editor files (double click to run view3dscene on scenes)
Uruchom
● Z edytora lub z Delphi.
● Przyciśnij F9 gdzie chcesz:)
● Note do Community Edition: tylko z Delphi!
● Silnik fizyki
○ "Rozwiązuje" kolizje - gdzie się zdarzy kolizja, i co z niej wyniknie
● Empty template
● Plane, cubes, spheres
● Lights
○ Ciekawsze kolory
○ Cienie
● Rigid body and colliders
Fizyka, ustawmy od zera
Fizyka - symulacja w edytorze
● Uruchom w edytorze
● Uruchom z Delphi
Export z Blendera do glTF
2. Większe gotowe projekty
Platformer
FPS game
3. Kodowanie - podstawowe API
Klawisz -> log
● Double click na moduł związany z view
● Metody Start, Update, Press
● Koduj w Delphi, VS Code, gdzie chcesz…
● Uruchamiaj gdzie chcesz
○ Delphi daje debugger, więc często najwygodniej
○ Gdy jesteśmy w Delphi, WritelnLog idzie do event loga Delphi (de facto, Windowsa)
Button-> log
● Zadeklaruj button w kodzie (sekcja published)
● Obsłuż OnClick
Odtwórz dźwięk
● Dźwięk przestrzenny (3D) lub nie
Załaduj modele, przesuwaj je
● TCastleScene - najważniejsza klasa w silniku
● Wyświetlanie, animowanie, właściwie cała obsługa 3D
● Dziedziczy z TCastleTransform które pozwala przesuwać, obracać etc.
● Wszystko co widzisz w edytorze to instancje i ich properties - wszystko to możesz zmieniać
Zareaguj na model pod myszą
● Viewport.TransformUnderMouse
● Czy ma TCastleRigidBody? Sprawdź przez FindBehavior
● ApplyImpulse aby podrzucić
Instancje designu (Unity prefabs)
● TransformLoad aby załadować gotowe komponenty
● Dodaj do viewport
● Ustaw properties, użyj sił - jak poprzednio
4. TCastleControl na formularzu
TCastleControl
● Komponent Castle Game Engine na form Delphi
● FMX i VCL
● Wszystko działa - można załadować design lub skonstruować go z kodu
● Np. 3D viewer
Kod
5. Plany
Plany
● 7.0 release niedługo - naprawdę w 2023
○ Steam (PR - in review)
○ Nowe komponenty nawigacji (PR - in review)
○ Creature AI
○ Komponenty do materiałów
■ (z efektami - lustra, shaders - w edytorku)
https://castle-engine.io/wp/2023/06/17/planned-steam-integration-and
-engine-available-as-a-download-on-steam/
Web platform
● FPC WebAssembly (kompiluje się już!) + pas2js
● WebGL 1.0, optionally use 2.0
● WebAudio or FMOD
● FpWeb for simple deploy
● Stretch goal: edytor także na web!
https://castle-engine.io/wp/2023/04/08/web-target-progress-and-plans/
Więcej
● Vulkan
● VR (dostaliśmy Oculusa specjalnie dla CGE)
● Konsole? Mam Xbox i niedługo będę miał PS.
● https://castle-engine.io/roadmap
Czas i team
● Nie jestem sam :)
○ Andrzej Kilijański
○ Eugene Loza
○ Community - see nasz GitHub, Discord, forum
● Jak żyć?
○ Community support: https://www.patreon.com/castleengine
○ B2b (konsultacje, dedykowane features i platformy) - zapraszam do
kontaktu
Dziękuję!
https:/
/castle-engine.io
michalis@castle-engine.io

More Related Content

Similar to Castle Game Engine presentation at Zlot Programistów Delphi 2023 (Polish)

Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Semihalf
 
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...PROIDEA
 
PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcjiMarcin Kurzyna
 
ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015Michał Dudak
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004Tomasz Cieplak
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Cloudskraqa
 
Domain Driven Development
Domain Driven DevelopmentDomain Driven Development
Domain Driven DevelopmentKonrad Russa
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1Piotr Pawlak
 
Implementacja algorytmów na procesory kart graficznych
Implementacja algorytmów na procesory kart graficznychImplementacja algorytmów na procesory kart graficznych
Implementacja algorytmów na procesory kart graficznychKrzysztof Wegner
 
DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8Grzegorz Bartman
 
Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?GameDesire Company
 
Architektura serwera gier online
Architektura serwera gier onlineArchitektura serwera gier online
Architektura serwera gier onlineMaciej Mróz
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
 
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...The Software House
 
4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...
4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...
4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...PROIDEA
 

Similar to Castle Game Engine presentation at Zlot Programistów Delphi 2023 (Polish) (20)

Direct3D 9
Direct3D 9Direct3D 9
Direct3D 9
 
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
 
Mikrousługi w allegro
Mikrousługi w allegroMikrousługi w allegro
Mikrousługi w allegro
 
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
 
PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcji
 
ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015ITAD PolSl 2014 - Nowości w .NET 2015
ITAD PolSl 2014 - Nowości w .NET 2015
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Domain Driven Development
Domain Driven DevelopmentDomain Driven Development
Domain Driven Development
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1
 
Implementacja algorytmów na procesory kart graficznych
Implementacja algorytmów na procesory kart graficznychImplementacja algorytmów na procesory kart graficznych
Implementacja algorytmów na procesory kart graficznych
 
Iron Python I Dlr
Iron Python I DlrIron Python I Dlr
Iron Python I Dlr
 
DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8DrupalDay Podstawy Drupal 8
DrupalDay Podstawy Drupal 8
 
Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?
 
Architektura serwera gier online
Architektura serwera gier onlineArchitektura serwera gier online
Architektura serwera gier online
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
 
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
 
Dcamcut dla SOLIDWORKS i Inventor
Dcamcut dla SOLIDWORKS i InventorDcamcut dla SOLIDWORKS i Inventor
Dcamcut dla SOLIDWORKS i Inventor
 
Docker
DockerDocker
Docker
 
4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...
4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...
4Developers: Kacper Kościeński- Walka z MVC i innymi wzorcami projektowymi w ...
 

Castle Game Engine presentation at Zlot Programistów Delphi 2023 (Polish)

  • 1. Tworzenie gier z wykorzystaniem Castle Game Engine Michalis Kamburelis
  • 2. O mnie ● Castle Game Engine - https://castle-engine.io/ ● PasDoc - https://pasdoc.github.io/ ● Modern Object Pascal Introduction - https://castle-engine.io/modern_pascal ● Web3d, Khronos (standardy 3D - glTF, X3D) ● Cat-astrophe Games - https://cat-astrophe-games.com/
  • 3. Castle Game Engine ● Tworzenie gier 3D i 2D ● Edytor ● Potężne API dla programistów (wszystko co można zrobić w edytorze + dużo więcej) ○ Pascal (Delphi, FPC) - elegancki i szybki język ○ do silnika i do gier ● Open-source ○ fork aby dodać feature do konkretnego projektu? Możesz. ● Multi-platform ○ Windows, Linux (Raspberry Pi), FreeBSD, macOS ○ Android, iOS ○ Nintendo Switch ○ Note: Delphi only for Windows for now
  • 4. Edytor -> build gry Castle Game Engine fps_game demo
  • 6. 3D FPS game template ● Views ● Play view: ○ Viewport, navigate in 3D ○ Left side: hierarchy with components ■ UI ■ viewport is also UI ■ 3D: transform scenes, cameras, lights ○ Right side: properties ○ Bottom: editor files (double click to run view3dscene on scenes)
  • 7. Uruchom ● Z edytora lub z Delphi. ● Przyciśnij F9 gdzie chcesz:) ● Note do Community Edition: tylko z Delphi!
  • 8. ● Silnik fizyki ○ "Rozwiązuje" kolizje - gdzie się zdarzy kolizja, i co z niej wyniknie ● Empty template ● Plane, cubes, spheres ● Lights ○ Ciekawsze kolory ○ Cienie ● Rigid body and colliders Fizyka, ustawmy od zera
  • 9. Fizyka - symulacja w edytorze ● Uruchom w edytorze ● Uruchom z Delphi
  • 10. Export z Blendera do glTF
  • 11. 2. Większe gotowe projekty
  • 14. 3. Kodowanie - podstawowe API
  • 15. Klawisz -> log ● Double click na moduł związany z view ● Metody Start, Update, Press ● Koduj w Delphi, VS Code, gdzie chcesz… ● Uruchamiaj gdzie chcesz ○ Delphi daje debugger, więc często najwygodniej ○ Gdy jesteśmy w Delphi, WritelnLog idzie do event loga Delphi (de facto, Windowsa)
  • 16. Button-> log ● Zadeklaruj button w kodzie (sekcja published) ● Obsłuż OnClick
  • 17. Odtwórz dźwięk ● Dźwięk przestrzenny (3D) lub nie
  • 18. Załaduj modele, przesuwaj je ● TCastleScene - najważniejsza klasa w silniku ● Wyświetlanie, animowanie, właściwie cała obsługa 3D ● Dziedziczy z TCastleTransform które pozwala przesuwać, obracać etc. ● Wszystko co widzisz w edytorze to instancje i ich properties - wszystko to możesz zmieniać
  • 19. Zareaguj na model pod myszą ● Viewport.TransformUnderMouse ● Czy ma TCastleRigidBody? Sprawdź przez FindBehavior ● ApplyImpulse aby podrzucić
  • 20. Instancje designu (Unity prefabs) ● TransformLoad aby załadować gotowe komponenty ● Dodaj do viewport ● Ustaw properties, użyj sił - jak poprzednio
  • 21. 4. TCastleControl na formularzu
  • 22. TCastleControl ● Komponent Castle Game Engine na form Delphi ● FMX i VCL ● Wszystko działa - można załadować design lub skonstruować go z kodu ● Np. 3D viewer
  • 23. Kod
  • 25. Plany ● 7.0 release niedługo - naprawdę w 2023 ○ Steam (PR - in review) ○ Nowe komponenty nawigacji (PR - in review) ○ Creature AI ○ Komponenty do materiałów ■ (z efektami - lustra, shaders - w edytorku) https://castle-engine.io/wp/2023/06/17/planned-steam-integration-and -engine-available-as-a-download-on-steam/
  • 26. Web platform ● FPC WebAssembly (kompiluje się już!) + pas2js ● WebGL 1.0, optionally use 2.0 ● WebAudio or FMOD ● FpWeb for simple deploy ● Stretch goal: edytor także na web! https://castle-engine.io/wp/2023/04/08/web-target-progress-and-plans/
  • 27. Więcej ● Vulkan ● VR (dostaliśmy Oculusa specjalnie dla CGE) ● Konsole? Mam Xbox i niedługo będę miał PS. ● https://castle-engine.io/roadmap
  • 28. Czas i team ● Nie jestem sam :) ○ Andrzej Kilijański ○ Eugene Loza ○ Community - see nasz GitHub, Discord, forum ● Jak żyć? ○ Community support: https://www.patreon.com/castleengine ○ B2b (konsultacje, dedykowane features i platformy) - zapraszam do kontaktu