Díl 22. – Hra Factorio z technického pohledu

V minulém díle jste mohli slyšet historii a příběh o vzniku hry Factorio. Techničtější otázky jsme si nechali do dnešního druhého dílu s Michalem Kovaříkem.

Ptali jsme se ho, co obnáší portace hry na různé operační systémy a jestli se to vyplatí. V čem spočívá integrace na platformu Steam, jestli hru chrání proti pirátskému kopírování a hodně času věnujeme programování multiplayer části hry.

Jako programátor jsem si tento díl moc užíval a líbí se mi realistický přístup kluků k programování. Jak je vidno, lze udělat díru do světa i bez použití milionu buzzwordů a “hypovaných” technologií.

Zdroje

Video

Pouze audio

Obsah

  1. Portovali jste brzy na všechny hlavní OS. Vyplatí se to? 0:40
  2. Co používáte za knihovnu grafického engine? 1:55
  3. Na jakých platformách se hra prodává nejvíc? 3:45
  4. V čem spočívá integrace hry do Steam platformy? 5:06
  5. DRM free a přístup k pirátství 6:14
  6. Jaký byl úplný začátek programování, s čím jste začali? 7:42
  7. Narazili jste na nějaké koncepční limity, které vás donutily k refaktoringu? 8:42
  8. Jaké byly největší technologické oříšky? 9:51
  9. Jak se programuje multiplayer? 10:50
  10. Jak se deterministicky řeší prvek náhody (Mr. Obvious question)? 13:50
  11. Heavy mód pro analýzu rozdílů mezi různými instancemi hry 17:50
  12. Jak funguje synchronizace stavů mezi hráči v multiplayeru 20:30
  13. Peer to peer architektura vs. server client architektura multiplayeru 23:40
  14. Na kolik hráčů cílíte? 27:50
  15. Co je vlastně motivem k hraní multiplayeru? Hrají hráči proti sobě nebo spolu? 30:07
  16. Co jste se naučili od svých hráčů? 31:11
  17. AI ve hře (v kódu máme adresář AI 🙂 33:35
  18. Jak dalece se dá vyvíjet hra pomocí testů? 35:17
  19. Postupy optimalizace 40:07
  20. Používáš profiler? 44:14
  21. Jak měříš dopad optimalizací? 44:55
  22. Úvahy nad prací ve více vláknech 46:20
  23. Plánujete migraci hry na tablety nebo telefony? 51:44

Leave a Reply

Your email address will not be published. Required fields are marked *