Bc. Jan Glaser

project leader

architect

game developer

I have lifetime experience in game development, started as 13 years old. The first project I remember I tried to write, was game do you want to be a milionare, in VisualBasic, which was the first programing language I learned.

I had (as kid) no idea about for loops, or OOP, or architecture. I simply copy pasted to learn. The project was from today's perspective a disaster (from code view), but functional.
Then I moved to C# programming language, in which I stayed for 4 years, believing, that if I learn everything about the language, I will be best programmer, able to write everything. I had no idea about technology limitations, or web technologies.
In C# I write projects totaling in gigabytes, mostly games, but also media player, screensavers, utilities, for my daily life.

As the time passed, I reached point, where I mastered C#, knowing every construct the language has, including lambdas, marshaling, extern functions, threads, shared objects and memory.
Then, I wrote chess game, with aim to implement AI for chess. As kid, I had no idea, that such task is NP-hard, and without knowledge of neural networks, monte carlo and years of development along with databases of existing games, I have no chance to produce good and working output.
I used minimax, which was only thing I knew back then, in conjunction of tons of conditions. What I have essentially written was AI which simulated how I would play chess, so I transcripted my own gameplay to the code.

Ai was behaving good at start, but soon in game became useless.

Then, I expanded, learning alot of other programming languages, as my school forced me to.
I learned bash scripting language, C, C++
I have even written my own STL library (without using STL library), as in school we had tasks to write programs without STL

As school project, I wrote Bomberman, and Snake game, using only C++ and terminal, (no graphics library).
That was first time, when I implemented pathFinding AI, and I saw on the computer how the game plays itself, which was amazimg, knowing that I am the architect.

Then, I wrote Snake game in C#, using animations, bonuses, and BFS.

As in school we were told, that C++ is best language, I went ahead and started new project, which was 2D zombie game (like call of Duty zombie game, but 2D), with aim to create freeware distributed game.
I used SDL2 graphics libraries, and SDL2 for audio. It was piece of shit to make it work, and it took me 1 week to conditionally translate the program on both linux and windows.
After 1 or 2 years of development, I created my own game engine in C++, and created working zombie game, clean from any memory leaks, except memory leaks from graphics library, which I could not influence.
I also created 3D models in blender, and renderred them to 2D, creating sprites for animation.
Game allowed infinite amount of rounds, with increasing number of zombies. Windows, whcih contained bars and had to be taken down by zombie, slowing zombie down. Game also had doors, node network and zombies used Dijkstra's algorithm for navigation.
There was mystery box, offering player random weapon. Game included 50+ weapons of different types (shooting automatic, shooting burst fire, shooting manual, grenade, placeable mine, meele knife, throwable knives) And also ammo.
Moreover, game had random bonus spawns (insta kill, max ammo, carpenter, perk bottle, etc.)
Entire project had 44 474 lines of code.
Unfortunatelly back then, I did not use git, so it is all on my PC only.

Then, I was more interested in web games...for example Runescape was web browser game. I did not know anything about webs, so I took course of Nette on our school, and created webgame Do you want to be a milionare using PHP, HTML, Javascript, along with database with 1000 questions, user registration, music, animation and topic selection.

At the end of course, teacher told me, that for my game dev passion might be better nodeJS than Nette and PHP.
I looked up NodeJS and socketIO, and started development. I rewrote C++ zombie game to NodeJS web game, using JAVASCRIPT only, telling myself, that if I will be carefull, I can do it (as Javascript does not throw errors when you acess non existent variable, you get simply undefined value and code execution continues)
I then figured out, that despite my experience and carefullness, it is not possible to be done, as it was not unusual, that it took me 3 hours to find where the hell is non existent variable being acessed from.

The situation was, that game ran, but then, it crashed. And search for that....Moreover, when you rename variable, and you misspell it, you get the nice undefined value, which can be added to number or used as string, so application runs and you know nothing.

Then, I discovered, that Typescript exists, and I started rewtriting entire game engine again, but this time, to Typescript. I also started using git, and learned more about it.
Now, the game itself is in git, written in typescript, code is clean, and ... yea, that is it...

During my life, these are languages / technologies I learned, sorted chronologically:

  • 13 yrs old - Windows CMD scripts
  • Visual Basic
  • C# (.NET) - mastered
  • C# with XNA
  • Unity - only tried game development, but there was not so much programming, so I quit
  • Bash scripting, sed, awk, find... you name it...
  • SQL Databases
  • C
  • C++ - mastered
  • Smalltalk (Pharo)
  • Lambda calculus
  • Java
  • 23 yrs old - HTML (mastered), PHP (mastered), JS, CSS, SCSS
  • 23 yrs old - nodeJS
  • Typescript - mastered

Here is list of game only projects I created, that I can remember, along with used tech:
  • Visual Basic
    • Do you want to be milionare
  • C# / XNA
    • Puzzle
    • Bang! singleplayer game
    • Chess with AI, using minimax
    • My own game version of Seven Seas (POPCAP)
    • Try to write my own version of Fish Fillets game
    • Try to write my own version of Navy Field game
    • Tower defence
    • Snooker
    • Game like super motherload, along with saves
    • Game like Mortal Kombat (see my youtube chanell)
    • Dungeon Maze, developed in team with my friend, Jacques Du Plessis (3D models in Blender)
    • Card game with my own invented cards (in style of Magic the Gathering)
  • C, C++
    • Snake with AI, using BFS, multiplayer (LAN only), using sockets and synchronization
    • Bomberman with AI, using BFS, multiplayer (LAN only), using sockets and synchronization
    • Zombies, 2D game with audio, animations, singleplayer (SDL2), with AI (zombie) using Dijkstra
  • Java
    • I tried to write game like Heroes of Might and Magic 3
    • My own Web data transmition protocol, based on TCP-IP sockets
  • Nette (PHP)
    • Do you want to be milionare, web game
  • NodeJS
    • Darkness or light, MMORPG, with SQL database, player database, my own written game engine, my own written network protocol, with AI, using BFS, Dijkstra, A* with dynamic choice for best algorithm according to map state,
      Along with website for promotion
      Along with map editor, plus game editor (manage players, monsters, items, dialogs using website), and more...

      in future: along with neural network, minimax and monte carlo + static script for monster behavior, where monster chooses best move eighter using network or minimax, or predefined move