Tophat Game Framework

A 2D Framework for making games in Umka

Join us on Discord.

Join Discord

Play (with) the examples

The well known flappy bird game, written in tophat. It is very small and simple - implemented in just one 300 line file.

The space shooter is an arcade game, where you have to shoot enemies before they descend down the screen. It shows the basics of game development in tophat, featuring things like movement, collision handling, particles and GUI.

This is an implementation of a famous block game only using the module to draw graphics. It show many ways to add special effects to your games.

A pomodoro timer made in tophat. It features a custom GUI system with fancy transitions and nine-patch rect based controls.

Projects made in tophat


SAVESCUM is a puzzle platformer that's being worked on by Sviatoslav Shatunov (also known as ske). It revolves around saving and resetting the game's state to solve puzzles and get through the levels.

Play the Prologue

Rail dispatcher game

This game is about dispatching trains at a 1920's train station in Czechoslovakia. You need to make sure trains run at schedule and, most importantly, don't crash into each other. The source code for the game is yet to be released, but I've been creating a series of development logs.

I ❤︎ FEM

A finite element method demo in Umka and tophat made by Vasiliy Tereshkov. This demo models mechanical stresses and deformations in elastic materials and can serve as a tutorial for learning the fundamentals of finite element analysis.

The project is deliberalely kept very simple. It consists of three main parts:

  • 2D editor, a GUI tool for entering plate geometry, constraints and forces, as well as material properties
  • Triangulation procedure that computes the Delaunay triangular mesh using the Bowyer-Watson algorithm, with an enhancement to support insertion of plate boundary edges missing from the vanilla triangulation
  • Finite element solver that constructs the stiffness matrices for all the mesh triangles, combines them into the global stiffness matrix and solves the linear equations w.r.t. vertex displacements. It also computes the equivalent stresses using the von Mises criterion
Try Online Source Code