KALADANIA

Heyo! I'm Kaladania (known alternatively as Kal), an ambitious programmer and illustrator currently studying at the University of Staffordshire. Within this portfolio, you can find my various projects, educational history and CV.

• C++      • C#      • PYTHON      • GIT      • SDL      • OPEN GL      

For illustration or Artist Alley convention portfolios, Click Here.

about me

2nd year games programming student at the university of stafforshire

• Studying Computer Games Programming BSc (Hons)
• Averaged a grade of 80% during first year. On track for a First Class Degree
• Programmed in C++, C#
• Created prototypes in Unreal Engine 4/5 and Unity
• Created a game engine using SDL
• Created a graphics engine and physics engine in OpenGL and DirectX11
• Created VFXs in Niagara

projects

Mechanics Prototyping

The industrial zone

• Unreal engine 4      • unreal blueprints      • Niagara Real-Time VFX      • Mechanic Design      • Boss Design

'The Industrial Zone' was an Unreal Engine 4 project that focused on rapid-fire development - and testing - of various gameplay mechanics, enemy designs and boss prototypes.

Bespoke Game Developement

Bandit Rush

• SDL      • C++      • Porting      • procedural generation

'Bandit Rush' was an experimental project exploring the SDL library. The ambitious project looked at creating a game engine to both develop and optimise a game for PC and low-spec hardware (the Evercade).

VFX Developement

Ukie game jam 2024

• Unreal engine 4      • unreal blueprints      • Niagara Real-Time VFX      • Mechanic Design      • vfx design

Our entry for the Ukie 2024 Game Jam was a Looter-Shooter where the player used experiment-themed weapons to discredit the journals of their CPU opponents. I was responsible for developing the VFX and code for the projectiles and their explosions.

EDUCATION & WORK HISTORY

University of Staffordshire

Sept 2023 - present

•C++      • C#      • Unreal Engine 4 & 5      • Unity      • OpenGL      • SDL      • Niagara real-time vfx      • Source control      • Rapid prototyping      • Git

• Studying Computer Games Programming BSc (Hons) while aiming to secure a placement in 2025 and graduate with a First Class in 2027.
• Learning about the fundamentals of game, engine, and tools development, software engineering, AI, scripting, multi-player networking, source control and more.

Student Ambassador (University of Staffordshire)

Sept 2023 - present

•Customer Service      • Networking      • Public Speaking      • Time Management      • Teamwork      •Brand Representation      • Interpersonal Skill

• Working as a student ambassador to provide customer support, sign-posting and event maintenance for current and prospective students
• Learning about community engagement, networking, brand pitching, active listing, teamwork and various interpersonal skills

Krisis in Kaladania
(Self-Employed)

Jul 2019 - present

• Digital Illustration      • Adobe Creative Suite      • Merch Design      • Manufacturer scouting      • Networking      • consumer engagement

• To support my studies, I work as a freelance Illustrator, completing commissions, trading at conventions and running an online store.
• Learnt about art fundamentals and digital illustration. Developing skills in freelance, entrepreneurship, networking, pitching, brand management, brand asset creation and more.

For illustration or Artist Alley convention portfolios, Click Here.

City and Islington Sixth Form College

Sept 2020 - Jul 2022

• Python      • Game developement      • Digital illustration

• Studied at City and Islington Sixth Form College, focusing on developing skills in both computer science and digital illustration.
• Strengthened foundational knowledge in Python and digital illustration. Experimented with game design and game engine development.
• Achieved A-Levels in Computer Science (A*), Graphic Communication (A*), Maths (C)

KALADANIA

About Me

Determined, detail-orientated, with a strong love for the unknown, I'm Kal, a passionate creative who strives for new opportunities to learn new skills. My open mind and willingness to adapt lead me to be flexible in my thinking, allowing me to find creative solutions to problems and unique uses of any technology I'm given.A resilient worker, I put my all into anything I do, never being satisfied with just 'good enough'. With every project, I aim to push past my limits, strengthening the depths of my knowledge and expanding my skill sets.My experience with object-oriented programming leads me to think modularly, always looking for ways to utilize skills and experiences from other projects to create an optimised solution.As a passionate artist and a diligent programmer, I blend my skillsets to make informative choices that benefit both the programmers and artists in my group. This leaves me as a valued member of any team, ready to help either department when needed.

My Mission

Bit weird for a programmer to have a mission statement, right?Well - as a creative - my 'mission' is to make whatever I create feel 'alive'. Obsessed with the concept of alternative realities, my art and games aim to be a window into the world that could be. In this ever-expanding series of infinite universes, it's not out of the question that somewhere - right now - a creature in a distant universe is experiencing exactly what I've created.So why not show the world what they're up to?

I'm also working as a freelance illustrator! As a child, I always had a deep passion for both games and art. While I pursue a career in games through my studies, in my free time, I moonlight as a digital illustrator; taking on both personal and commercial commissions, dealing at events, and selling merchandise to build on my passion and financially support my studies.

Digital illustrations and photographs of various items I sell. Both my logo and featured artwork of my mascot on this site were also made by me.

PROJECTS

Click a project to view more. (Hover/hold a project to see the key languages/engines used).


Click a project to view more. (Hover over a project to see the key languages/engines used).You can filter projects by type, languages and engines/software by clicking on a keyword below. (e.g. for Unreal 4 projects, click on the 'Unreal Engine 4' keyword.



Mechanics Prototyping

the industrial zone

• Unreal engine 4      • unreal blueprints      • Niagara Real-Time VFX      • Mechanic Design      • Boss Design

COPYWRIGHT WARNING: As the game's initial concept was inspired by the OST of Galvantic Game's 'Wizard with a Gun', the game uses some of WWAG's songs in its soundtrack. Ryan Ike's "The Ghost of Salt and Spray" and "Cold Dead Hands" are featured in this demo.

In-engine game demo.

'The Industrial Zone' was a 2-month Unreal Engine 4 project focused on rapid-fire development while testing various gameplay mechanics, enemy designs and boss prototypes.The short game was a sci-fi-wasteland inspired top-down shooter where you must use the crystals around you to help you fight your way through a 'seemingly' abandoned lava mining facility. The project served as a great introduction to Unreal Engine 4 as it allowed me to experiment with the key areas of the engine (such as blueprints, audio systems and Niagara).

Snapshots of development. You can find Dev Logs here.

I chose the aesthetic of a post-apocalyptic sci-fi wasteland, as I felt it had a lot of room for experimentation, allowing me to push the meshes provided by the university to their limits. By merging, warping, or colouring meshes in unique ways, I was able to create an interesting and personal interpretation of the given framework, one that proved to be very visually appealing and resonated with many of the playtesters.Thanks to my flexibility and adaptable knowledge of programming concepts, I quickly grew comfortable with blueprints, using my experience with C++ to navigate the various nodes. My complicated ideas meant I needed to go above what was provided in the tutorials to get the outcome I wanted, learning how to use events, construction scripts, volume boxes, and more.

Successes

  • Familiarised myself with Unreal Engine 4 and key features such as Blueprints, the Niagara System, Materials, Unreal's audio tools and more.

  • Took a standard third-person, top-down shooter framework and turned it into a unique experience with its own identity. Meshes provided by the framework were warped and pushed to their limits to create a world far removed from the content pack provided. This was also achieved by experimenting with materials; unintentionally stumbling upon ways to create a colourful metallic material for the boss, causing its shine to change colour depending on the camera angle.

  • Learnt to prototype staple game mechanics such as regenerating ammo, resource management for special abilities, various enemy types, and multi-stage bosses (due to a bug, only phase 3 is shown in the demo as it is a combination of the previous stages. Click for phase 1 and phase 2).

Improvements

  • Enemies need more variation in their mechanics to make the game more replayable (as all enemies were mostly a variation of the 'patrol and shoot' enemy type). Enemies like the Fireball (a honing enemy that destroys itself on impact) provided some variety, but this could have been greater. This is also true for the enemy designs.

  • Strong sign-posting/goal challenges would have improved the playertester's experience. Some players were unsure where to go, while others were able to blaze through the level, skipping areas and interactive elements. I attempted to rectify this with neon signs to direct the player, but they were sometimes missed. Small goals, such as pressing buttons to open the barrier to the next stage (rather than opening the barriers automatically), would have helped encourage players to navigate the level.

  • Quests or directives would also have given the players' a sense of urgency. Fleshing out the gameplay loop and game balance would have strengthened the game's interactive elements (as currently, the game is quite lackadaisical about how the player completes it).

  • Having clearer goals in mind per session would have helped to target development so that things like enemy balancing, QA and optimisation were given greater priority and done more frequently during development.

  • General optimisation such as managing the amount of particles and bullets being spawned to prevent frame drops.


VFX Development

Ukie game jam 2024

• Unreal engine 4      • unreal blueprints      • Niagara Real-Time VFX      • Mechanic Design      • vfx design

In order to gain more first-hand experience developing full games, I joined the Ukie 2024 Game Jam as part of a team of 5. Our entry was a looter-shooter where the player used high school experiment-themed weapons to discredit the journals of their CPU opponents.As the team member with a good blend of artistic and technical skills, I was put in charge of developing the weapon projectiles. This included both coding the projectile logic and creating the VFX for their impacts and explosions.
This allowed me to build on the skills I learnt during my Mechanics Prototyping project; experimenting with materials and Niagara to create a unique variety of effects.
As our team decided the projectiles would be flasks (to fit with the scientific theme), I created a separate Niagara system which would dispel small triangular particles on impact - implying the presence of shattering glass. To further the immersion, cube particles were added to the system to represent the bits of debris that arise from contact with a wall/enemy.

TYPE: General Explosion
FUNCTION: Deals a large amount of damage
INSPIRATION: Inspired by violent chemical reactions witnessed in common experiments like Alkaline Metal reactions

TYPE: Advanced Explosion
FUNCTION: Smoke Screen + AOE attack
INSPIRATION: Inspired by violent chemical reactions that evolve to become dangerous to the area.

TYPE: AOE Shockwave
FUNCTION: AOE attack
INSPIRATION: Inspired by electricity and technological experiments

TYPE: Healing Field
FUNCTION: Heals the player when in range
INSPIRATION: Inspired by 'Magical Experiments' such as potions and broths

Successes

  • Learnt more about materials and the Niagara system to rapidly develop projectile prototypes.

  • Practiced team-based source control using branches to allow the team to work on the project simultaneously.

  • Expanded knowledge of blueprints to speed up mechanic prototyping and optimisation.

  • Gained experience with the game development pipeline and my place as a programmer and technical artist.

Improvements

  • Better backup practices and a stronger understanding of source control would have allowed us to complete our entry (unfortunately, the game was overridden by a team member who did not realise they were working on the main branch).

  • Adding shapes or distortion to the VFX would help to make the effects more appealing (such as adding variation to the smoke in the Advanced Explosion).

  • Adding texture or secondary effects to flesh out VFX and give it more personality.

Throughout my modules and game jams, VFX has always been the part I've enjoyed the most due to it being a perfect blend of my artistic background and technical capabilities.You can see some examples of my VFX in action here (along with some material work):

Bespoke Game Developement

BANDIT RUSH

• SDL      • C++      • Porting      • procedural generation

COPYWRIGHT WARNING: The following demo features Mushroomdude123's 8-Bit remix of Nintendo's Gangplank Galleon .

Game demo.

'Bandit Rush' was a 2-month C++ project focusing on developing a game engine with the SDL Library. The ambitious project looked at using said engine to develop and optimise a game for PC and low-spec hardware (the Evercade).The arcade game was a platforming endless runner that saw you fight your way through patrolling enemies as you collected gold and attempted to outrun the OHKO screen. The project served as a great introduction to game engine programming, forcing me to understand how mechanics worked from a technical level; giving me a greater appreciation for the minute aspects of games (such as out-of-the-box collision and the ability to land on a platform after falling). The game also served as a great way to explore the SDL Library, allowing me to experiment with sprite and text rendering, audio, event delegates and more.

Snapshots of development. You can find Dev Logs here.

This was an enjoyable project that contextualised the various tools and processes I was using during the Mechanics Prototyping and C# Scripting projects. Creating a game engine gave me a better understanding and appreciation of the Unreal and Unity engines. Attempting to implement my own versions of their logic allowed me to peer behind the hood and experience some of the thought processes that go into making an engine. As a person who aspires to progress into a tools-related field - where my responsibilities will be to hopefully help develop systems and mechanics - this was an invaluable experience as I was able to gain first-hand knowledge of how to use libraries to build applications that can be used as tools for other parties. Furthermore, being an engine programmer is one of many tech fields I am interested in. Therefore, building engines may likely be part of my job - causing this project to be vital in highlighting areas I will need to improve in (such as physics programming).Much like with The Industrial Zone, Bandit Rush was given a simple premise with a lot of potential for experimentation. With every game project, I attempt to push my limits by experimenting with mechanics I have not yet developed. As a result, this project looked at procedural generation - creating an endless runner that spawned in random chunks to prolong the level. These chunks would also have randomised enemy and item placement, allowing each new screen to feel like a new part of the level. I also delved more into power-ups, allowing the player to execute a boosted attack whenever they killed an enemy (the type of attack dependent on the enemy killed).This project also allowed me to experiment with organisational tools (like a Gantt chart) and porting requirements (such as optimisation for a low-spec Linux platform and input managers to translate controls). Having to maintain the source control of such a detailed project also gave me a stronger understanding of Git and good development practices (such as putting separate mechanics on different branches to prevent pauses in development).

Successes

  • Learnt about the SDL library, including how to render text, audio, animated sprites and basic shapes to the screen

  • Exposed myself to some of the logic behind procedural generation and the requirements to ensure it executes as a smooth, optimised mechanic that does not cause memory leaks or frame-rate dips during generation.

  • Gained experience building a game engine and strengthened my knowledge of the logic behind mechanics both basic and complex (such as falling through/onto platforms, ability collecting/execution, enemy attack radii, etc).

  • Developed a working port of the game (originally developed for PC) for a low-level, Linux-based system.

Improvements

  • The game loop, while fun, would be better if it focused on the ability-collecting combat rather than the platforming. Playtesters reported they found the abilities to be the most interesting part of the game, feeling the platforming was tedious and got in the way of the potentially interesting combat.

  • While the game was mostly bugless, there was a major issue with collision where the player would not accurately land on platforms when they fell (leading them to either fall through floors or float on air). This was due to my code logic, which caused the player to fall infinitely unless their speed/state matched a hard-coded requirement (leading to unpredictable behaviour as frames where these edge cases weren't met would disrupt the collision checks). The game would vastly improve if I re-evaluated how I checked for falling collisions - taking inspiration from other engines (e.g. Unreal, Unity, Godot).

C# Scripting for Game Engines

LAST STAND

• UNITY      • C#      • Mechanics Prototyping      • Pathfinding      • AI Navigation

In-Engine Game demo.

'Last Stand' was an 8-week Unity Project focused on experimenting and gaining experience with the Unity engine. The project focused on exploring Unity's various APIs and development tools to create a simple 2D, top-down game.This tower-defense game saw the player use their environment to survive the incoming hordes. The game deviates from the standard 'on-rails' gameplay by using 8-direction movement, granting free movement to the player, the enemies and defence placement.The project served as a great introduction to Unity, giving me opportunities to experiment with various aspects of game development such as sound design, animation state programming, VFX and mechanics prototyping. The game's open nature also allowed me to explore pathfinding and enemy navigation to ensure the hordes could progress regardless of where the enemies were placed.

The base is split into 8 parts, each of which can be destroyed independently. Each split has its own health bar that contributes to the overall health of the base. Future iterations of the game would've introduced a healing mechanic to allow a split to be 'rebuilt'.

Defensive weapons can be found in chests randomly spawned around the map. These weapons can be placed anywhere and rely on collision detection to target enemies that enter their attack radius.

Along with weapons, the player is given a melee attack, a ranged projectile, and a dash to help with traversal. It also gives them a way to recover if their defences are overwhelmed by the hordes.

Snapshots of development. You can find Dev Logs here.

Due to my - at the time - limited experience with Unity, this was a challenging project due to the complexities of the mechanics. Since I'm used to developing projects with pre-determined routes or directions, I was able to force myself out of my comfort zone by developing a game that needed to consider every movement possibility.To allow enemies to manoeuvre the open battlefield freely, Navigation Meshes were used to guide agents across the map, using A* to find the shortest path to the base while taking the various traps and spawned weapon chests into account. My inexperience with navigation meshes initially led to some performance issues as I would attempt to rebake the mesh the moment a base split was destroyed and a new path had been cleared. This was not only extremely ineffective (as unchanged areas of the map would need to be re-calculated), but was also something that should not be done in real-time due to being an expensive process. Further research into its documentation led me to learn about 'Nav Mesh Obsticals' which would allow me to dynamically update the walkable areas of a Navigation Mesh without having to constantly rebake it. Marking the base and its weapons as obstacles meant I could easily carve out and fill in sections of a Nav Mesh by activating, de-activating or deleting a game object, drastically improving performance.Building the main base-building mechanic tested the limits of my Unity knowledge. I had originally intended for the base to be an interactive environment, allowing the player to move internal objects across the base (and map) without restrictions. This encourages the use of strategy as the player could decide whether to use the objects as a defence to corner, block or divert enemies, or as an offence to directly target and damage hordes.While I did enjoy the complexities of building this mechanic, I soon realised that the scope of the mechanic was too much for an 8-week project. It was unfortunate, as the base-building mechanic did work and can partially be seen being demoed in the final gameplay showcase. However, attempting to implement the mechanic caused me to quickly realise that the base's current design and collision layout would need to be reworked in order to use the mechanic properly.In retrospect, the game's top-down perspective may have contributed to problems during development. Not having a Z-axis meant collisions would constantly need to be turned on or off to allow objects to pass through them - something that I've learnt can be extremely dangerous and error-prone due to the many things relying on/using that collision box. Situations like this made me realise how drastically I underestimated the mechanic's complexity.That being said, in hindsight, I could have still demoed the defensive side of this mechanic through smaller items like closets (which could have been used defensively to block holes in the wall or offensively as a makeshift suitcase bomb). This would have given the game more variety, as - while the game loop is entertaining - it becomes repetitive very quickly due to only having 1 type of defensive weapon and 3 types of enemies.Time management was a major problem during this project. Development began to stall as I spent an extended period of time trying to get the main base-building mechanic to work. While I succeeded in the end, this was to the detriment of other mechanics, weapons and enemies, which were drastically cut as there was not enough time left in development. Future projects such as Bandit Rush would make use of planning and organizational tools such as Gantt Charts or Kanban boards to ensure development stayed on track.If I were to retry this project again, I would look at building a solid arsenal of weapons and small shield objects I could use to create a diverse battlefield. This ensures that I have a minimum viable product that - while it may not show the more defensive aspects of the base-building mechanic - will still result in a fun game that can be critiqued and commended (instead of a working tech demo).

Successes

  • Learnt about the Unity game engine, including how to render UI elements and text, audio, and animated sprites

  • Exposed myself to some of the logic behind enemy pathfinding, its use in games and optimisation techniques

  • Gained experience building basic melee mechanics in Unity, along with prototyping more complex mechanics

Improvements

  • The game loop, while fun, would be better if it had more variety in the type of weapons the player could use, the items they could move or the enemies and their behaviours. Playtesters reported that they found the gameplay lacking as the experience remained roughly the same as the waves progressed.

  • While the game was mostly bugless, there was a major issue where enemies may sometimes fail to update their targets once a split is destroyed. This would lead them to remain stationary until a new 're-target' broadcast was sent after another split had fallen. This could potentially have been due to numerous events continuously transmitting information back and forth, relying on timing to ensure objects weren't deleted before variables were updated. This did not always follow the intended timeline, leading to unexpected behaviours or errors where an enemy/variable was attempting to reference a now inactive split.

An introduction to Graphics Programming

OPENGL SIMULATIONS

• Graphics rendering      • C++      • Engine Programming      • OpenGL\

Simulation Demo.

This was a 2-month project focused on learning the basics of OpenGL, graphics rendering and graphics engine creation. The project aimed to render an assortment of hard-coded primitives and data loaded from a text file, along with their textures and transformations.This experiment served as a great introduction to Graphics Programming. It refreshed my knowledge of matrix transformations and vector maths while also contextualising much of the graphical tools and knowledge I have learnt from my ventures as a digital illustrator and using engines to make 3D games. I also decided to structure the project as if I was creating a tool for artists to use to simulate objects. As a result, this allowed me to experiment with UI and UX, ensuring the simulation would be easy to use and understood by a third party.

Snapshots of development.

Successes

  • Learnt about OpenGL, engine development, and the graphic rendering pipeline

  • Strengthened knowledge of Matrixes and Vector maths

  • Explored basic UI and UX design in order to improve the communication of my ideas and experiences to third parties.

Improvements

  • The camera could be more fleshed out to make it easier to traverse the scene. Currently, the movement is locked to an axis, making it tedious to traverse through the scene.

  • Rendering effects/filters could be introduced to strengthen the UI and make it easier for the user to understand what object they are currently tracking/viewing the data of. This would also help to improve the UX.

REBELLION NORTH MENTORSHIPS

VFX EXPERIEMENTS

• Unreal Engine 4      • Niagara real-time vfx

For the past few months, I've been honoured to have the opportunity of being mentored by Rebellion North's VFX artist, Raed Alamoudi. Thanks to the gracious efforts of Jason Yong - Rebellion's North's Technical Artist - who has been introducing me to the world of technical art, I've been using my spare time to study VFX with Raed. As VFX can be a challenging area to learn without an institution, I've also been reaching out to various 2nd/3rd year VFX students and lecturers to acquire resources, feedback and knowledge to help familiarise myself with materials and the Niagara system.

My first project from Raed was a simple spell projectile. As we were both into fantasy, he wanted me to create a projectile a wizard could use for a standard ranged attack.Poking around and experimenting with Niagara lead me to re-discover the 'Distortion' material, which gave me the idea to create a vortex projectile inspired by black holes; using the distortion to make it seem as if the world was bending to the influence of the projectile.While this attempt is solid for a 1st initial idea, it has too much negative space, feeling empty and boring. This is exacerbated by its almost monotonous colour pallet, which sticks to mostly yellows, with some orange and red particles.

Raed gave me valuable feedback on my first attempt, mentioning that I should look into modules such as 'Point Attraction Force' to get the system to draw in its particles, making the vortex effect more convincing. My second attempt was based on a spiraling material he provided, customising and warping it to tailor it to my needs (thus, many of the effects in my second and 3rd attempts are customised versions of that material).

While I was satisfied with my 2nd attempt, I still felt it lacked a 'solid' feeling as it came across as a 2D effect rather than a 3D effect. Thus, I felt it suited a 'charging' action rather than an actual projectile.My 3rd attempt tried to emphasise this 3D form, drastically speeding up the radial spirals to give the illusion of a sphere. While this worked, I do feel that the projectile still has that 'charging' quality, working more as an 'attack ready' VFX rather than a projectile VFX

After my conversations with a VFX 3rd-year student, I also began working on a voxel flame in order to experiment with stylised VFX (as my previous attempts were intended to be semi-realistic).

Throughout my modules and game jams, VFX has always been the part I've enjoyed the most due to it being a perfect blend of my artistic background and technical capabilities. Therefore, it's an area I've been avidly trying to improve upon during my 2nd year.You can see some examples of my old VFX in action here (along with some material work):

While we were under a short time crunch, I still feel I could have done more with the briefs I was given for the Ukie 2024 Game Jam.As a result, once my vortex projectile is complete, I plan to revisit the VFX I made for the 2024 Ukie Gam Jam to re-attempt and improve it.