Existential Risk Prevention Authority

Existential Risk Prevention Authority is a strategy game developed for the GameJolt DreamHack game jam 2017.

In October 2017, a nuclear terrorist attack forces the world’s nations to wake up and join forces to prevent any possible threats to the extinction of humankind. You are placed in charged of the UN’s new Existential Risk Prevention Authority. Your mandate, supported worldwide, is to identify ways in which humanity as a whole can be destroyed and to ensure that such destruction will not come to pass. That in itself would be a herculean task, but as the emotions from the nuclear attack calm down, you will soon discover that the world’s “unconditional support” for your mission is not as unconditional as it might seem.

Can you save the world from a nuclear apocalypse, an asteroid apocalypse or a pandemic apocalypse? And from all three at the same time?

Read More

Magisterské státnice na Matfyzu

Tento článek popisuje, jak fungovala ústní magisterská státní zkouška z informatiky na Matematicko-fyzikální fakultě Univerzity Karlovy (MFF, Matfyz) v září 2017. (verze v Google dokumentu)


Magisterská státnice se nazývá “ústní část státní závěrečné zkoušky”. Žádná písemná část neexistuje. Slovo “ústní” ji pouze rozlišuje od “obhajoby diplomky,” což je druhá část zkoušky. Není dělená na několik zkoušek podle předmětu (matematika/informatika) na rozdíl od bakalářské zkoušky. Na zkoušku je třeba se přihlásit před termínem uvedeným v harmonogramu, ale nelze se přihlásit dříve, než máte splněné všechny ostatní studijní povinnosti vyjma diplomové práce.

Read More


omegaGo is a client for the board game Go.

Go is an ancient board game that has stood the test of time. It is enjoyed by players of all ages and from all walks of life. If you never played, maybe give omegaGo a try – it contains useful resources and will help you on your way, maybe you will the game to your liking!

ONLINE PLAY: You may play on the server of your choice – either Pandanet (IGS) or KGS. Use the same clean interface for both servers. You may even play a game on both servers at the same time, if you feel strong enough!

SGF EDITOR: Open and edit SGF files, and save your games as SGF files.

QUESTS: Earn points for winning games and completing quests, and advance through the ranks in our single-player experience!

OTHER FUNCTIONS: Other features such as the tutorial, the encyclopedia, the analyze mode, or tsumego puzzles await you in omegaGo.

Read More

Heart Horror

Heart Horror is a browser-based bullet hell shoot-em-up game.

The core of gameplay is to avoid bullets, partially by recognizing and remembering enemy boss attack patterns.

The avatar you control is a lot larger than your hitbox – enemy bullets may touch your ship and yet you will not take damage. Only if the bullet touches the very centre of your ship will you lose a life point.

Read More


Když jsem byl menší, hrál jsem s bráchou hru “chodičku” s dřevěnými kostkami. Chodička funguje tak, že dva hráči pohybují jednotkami z dřevěných kostek po koberci a snaží se obsadit budovy. Budovy produkují jednotky, a jednotky hráčů proti sobě navzájem útočí. Jeden z hráčů hraje typicky za “nepřítele”, který “přichází”, tzn. nemá základnu, ale jeho jednotky se spawnují na okraji území, který “hráč” vidí.

Chodička je modelována částečně podle Dračího doupěte, ale hlavně podle počítačových real-time strategií jako Age of Empires a State of War.

Read More

Gamedev Technical Best Practices

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

In the summer of 2016, I participated in the Google Summer of Code program, during which I updated and significantly improved the Java Pathfinder Inspector.

Java Pathfinder (JPF) is a framework for formal checking of Java programs. Its core consists of a virtual machine for Java bytecode, running itself on Java; this allows JPF to instrument the code and provide its own functionality for critical instructions. JPF is very extensible and many modules exist for various kinds of verification such as symbolic execution. JPF Inspector is one such JPF module that focuses on debugging capability.

JPF Inspector is a tool for inspection and control of Java Pathfinder execution. It supports breakpoints and single-step execution (forward and backward) at different levels of granularity, and it allows the user to examine and modify program state (threads, call stacks, and heap objects). Unlike with standard debuggers (GDB), it is also possible to control thread scheduling explicitly.

This is the first software engineering project for which I received actual money.

It is programmed in Java.

It was created at the age of 23, in 2016.


Read More

Oracion Online

Oracion Online is an online collectible card game for one or two players. It is in Czech only. It was created as a school project in the summer of 2016.

I invented the game Oracion, in its paper form, in 2009 for my Scout group and in the years 2009-2011 I used it in my patrol as a motivation element.

Oracion is a simple card game. Each round, each player plays a creature card, attaches tool cards or uses special actions, and then rolls dice. The number and kind of dice is determined by cards. The player who rolls the higher total “defeats” the opponent’s creature. The first player to defeat four of their opponent’s creatures wins the game.

Read More