Gamedev Technical Best Practices

For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

When you develop, i.e. create, a video game, you may want to follow this checklist of best practices. This is less important than the actual content or gameplay of the game but these items apply to the majority of video games:

  1. Enemies don’t respawn automatically unless the player is informed. By default, except for JPRG games, the expectation is that there is a limited number of enemies. No matter your genre, you must be consisent: enemies either respawn everywhere or nowhere. If there’s a special area with respawn, you must inform the player (for example, the character could be repeating „I don’t think they’ll ever stop coming.“).
  2. When there’s a time limit, you must show an actual countdown timer on the screen. No matter how bad the situation looks, the default assumption is that you can leave the game on for hours away from keyboard and nothing bad will happen. The characters can keep repeating things like „We need to hurry.“ or „There’s not much time left.“  but unless there’s an actual countdown timer in the HUD, you cannot punish a player for waiting.
  3. Mark all points of no return. In open world games, any points of no return must be clearly marked. If completing a question will cause a chapter to end, or if moving into a certain dungeon will end a part of the game or if talking to a certain NPC will move you in the finale, a big red dialog box should pop up in the player’s face, stating in no uncertain terms something like „This is a point of no return. If you proceed, the chapter will end and you will no longer be able to return to Littletown. Do you wish to proceed? [Yes, move on.] [No, not yet.]“ Do not use in-character dialog for this. Make it very clear by using a game interface element.

Read more »

Java Pathfinder Inspector

Přes léto 2016 jsem se účastnil programu Google Summer of Code, během nějž jsem aktualizoval a značně vylepšil aplikaci zvanou Java Pathfinder Inspector.

Java Pathfinder (JPF) is framework pro formální kontrolu programů napsaných v Javě. Jeho jádro sestává z virtuálního stroje pro bajtkód, který sám běží v Javě; to umožní, aby JPF instrumentoval kód a nahradil kritické instrukce svými vlastními variantami. JPF je velmi rozšiřitelný a existuje mnoh modulů pro různé druhy verifikace jako například modul pro symbolickou exekuci. JPF Inspector je jedním takovým modulem a soustředí se na možnost ladění.

JPF Inspector je nástroj pro pozorování a kontrolu běhu programu spuštěného na virtuálním stroji Java Pathfinder. Podporuje breakpoiny, krokování (dopředu i dozadu), a to na několika úrovních granularity, a umožňuje uživateli pozastavit program a prozkoumat jeho současný stav (vlákna, zásobníky, proměnné, objekty na haldě). Oproti standartním debuggerům jako GDB také umožňuje explicitní plánování vláken.

Toto je první softwarový projekt, za který jsem dostal skutečné peníze.

Je naprogramovaný v Javě.

Na tomto projektu jsem pracoval ve věku 23 let, v roce 2016.

Read more »

Oracion Online

Oracion Online je online sběratelská karetní hra v češtině, pro jednoho až dva hráče, kterou jsem vytvořil jako zápočtový projekt v létě 2016.

Hru Oracion, v papírové podobě, jsem vymyslel v roce 2009 pro svůj skautský oddíl, a v letech 2009-2011 jsem ji používal ve své družině vlčat jako motivační prvek.

Oracion je jednoduchá karetní hra, ve které v každém kole každý hráč vyloží bytost, přiloží nástroje nebo použije zvláštní akce, a pak hodí kostkami, jejichž počet a druh je ovlivněn kartami. Hráč, který hodil více, „porazil“ soupeřovu bytost. Hráč, který jako první porazí čtyři soupeřovy bytosti, vyhrál hru.

Read more »

RFC: Protokol pro navázání/ukončení běžného hovoru

Abstrakt: Mnozí občas rádi mluví s ostatními lidmi přes internetové komunikátory o svých životech, zprávách ze světa, společných zájmech a dalších tématech, aniž by jim chtěli sdělit nějakou podstatnou informaci nebo je o něco požádat (tomuto budeme říkat „běžné hovory“). Ovšem může být těžké zjistit, jak moc se druhému účastníkovi dialogu chce povídat nebo kdy by chtěl hovor ukončit, protože narazíme na problémy se zdvořilostí. Proto navrhujeme nový protokol pro běžné hovory, který by mohl účastníkům ušetřit čas a vést hovory právě tak dlouho, jak by oba optimálně chtěli.

Read more »

World Romantic Relationships Authority

For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

Sylvia was living in an unsanctioned relationship.

It wasn’t the fact that she was dating a girl that was bothering the World Romantic Relationships Authority. No, same-sex relationships had been sanctioned decades ago and were commonplace. The problem was that Sylvia was also dating a boy.

This was not a problem in itself. The WRRA could be more aptly named the World Romantic Relationship Advisory – it didn’t make laws, it offered recommendations. But even though it wasn’t illegal not to follow the WRRA’s guidance, it still felt wrong somehow and Sylvia couldn’t wait to be back in full compliance with the Authority’s recommendations.

 

 

Read more »

The Deadlock Empire

The Deadlock Empire je logická programovací hra, kterou jsem vytvořil v týmu s Michalem Pokorným pro hackathon Hack Cambridge v roce 2016.

V této hře hráč zaujme roli počítačového plánovače. V každé úrovni hráč dostane dvě nebo tři vlákna počítačového programu napsaného v C#. Pak musí program krokovat a provádět přepnutí kontextu, jak uzná za vhodné, aby prokázal, že program obsahuje chyby ve svém kódu.

Hráč například může nasimulovat pořadí vykonání takové, že dvě vlákna vstoupí do kritické sekce najednou nebo hráč může způsobit deadlock.

Hra na hackathonu vyhrála první místo. Kromě toho jsme vyhráli dvě dodatečné ceny – cenu Improbable za „nejlepší gaming/VR hack“ a cenu Bloomberg za „nejzajímavější projekt“.

Hra je naprogramovaná v Javascriptu.

Hru jsme vytvořili ve věku 23 let, v roce 2016.

Hrát online:

Vlastnosti:

  • Nauč se paralelní programování hraním hry.
  • Příběhová kampaň – usmrť draky, nauč se paralelismus!
  • Přes 15 levelů
  • Přes 6 synchronizačních primitiv

Stáhnout zdrojový kód:

Skauting by měl znát svoje principy.

V prosincovém čísle časopisu Skautský svět je esej od Mukókiho, vůdce ILŠ Collegium, zvaná „Tři základní principy skautingu a chvála nedefinovanosti“, ve kterém říká, že nejen povinnost k Bohu, ale i ostatní dva principy jsou málo definované, ale že tato nedefinovanost principů je dobrá věc, kterou bychom neměli měnit. Tento článek je reakcí na Mukókiho esej, ve které se snažím ukázat na chyby v jeho argumentaci a proč bychom stejně měli definovat, co myslíme povinností k Bohu.

Read more »

« Older Entries Recent Entries »