SHOWCASE
OpenTK Sprite BatcherENGINE
Sprite Batching Experience

A small project that helped me grasp the concept of sprite batching in an engine. Right now, it can batch positions and colors.

It also serves as a starting point for a small engine. I've set up entities, components, scenes, and an architecture that can be used across different platforms. Though it's geared towards sprite batching, it has some of the pieces needed to start a simple game.

C#Sprite Batching
Microsoft Hackaton 2023GAME

This game offers a unique twist on tower defense, putting you in the role of the attacker rather than the defender. Developed entirely from scratch using MonoGame, it was created within four days, totaling around 45 hours.

Drawing inspiration from tower defense and rogue-like games, the gameplay involves strategic planning of attacks by choosing the right units to destroy the enemy base. Following each round, players have the opportunity to randomly select buffs for their units, such as increased movement speed, damage, health, or increasing the player's currency.

These buffs are assigned randomly, allowing for the creation of diverse builds based on the strengths of specific units. For instance, initially sluggish yet resilient units may gain increased movement speed or even more health.

Adding an extra layer of challenge, each round features a randomly generated environment, introducing a new tower with every successive round. Consequently, as the game progresses, the number of attacking towers corresponds to the round number (e.g., 5 towers at round 5, 6 towers at round 6).

C#MonoGameProcedural Generation
Map Generation ExperienceGAME
Map Generation Experience

An incomplete project in which I aimed to create randomly generated maps, employing ASCII graphics and drawing inspiration from the generation techniques used in Dwarf Fortress.

Although this project was in its early stages of development, I focused on incorporating tools that could assist me in procedural generation for future projects. Here are some notable aspects of this project:

  • A parser that takes as an input a config file to generale the world map
    • The config file is composed of different noise passes
    • Each pass is also composed additively overlapping noise generation algorithms
    • The following noise algorithms are supported:
      • Simplex noise
      • Worley noise
      • Square gradient noise
    • Each algorithm can be configured using their respective attributes
    • You can then define which cell gets generated for each pass based on the value cutoff
    • Each pass are also additively overlapped to finally generate the map
  • An image analysis tool that would help me visualise the noise generated
  • Explored the basis of scene and entity management which would help me improve the system in the future
C#MonoGameProcedural GenerationTooling