A programmers UI framework

For 2025’s free project I choose to add some new features to the basic UI framework I developed during my time at The Game Assembly’s higher vocational education for game programmers.
I also wanted to challenge myself to turn it in to a somewhat polished product that could be integrated in any code base.
Did I succeed? I will let you be the judge of that!

Layered design
  • Game logic API
  • DemoUI API for widgets
  • ProgUI API for core fuctions

Every layer can be extended and customized as needed.

Plenty of examples

DemoUI is a gadget/widget layer on top of ProgUI and gives examples on how to build your own widgets.

The Demo executable gives a simple example on integrating engine systems and game logic.

Complete serialization

Serializes:

  • Layout
  • Behavior
  • Custom game logic
Very Few dependencies

External dependency:

  • nlohmans Json library

Integrate your own:

  • Sprite system
  • Text system

by implementing three interfaces.

Let AI work smarter not harder

A system for switching between higher and lower detail simulation of large group behavior

In this free school project, from 2024, I explored the idea of how to efficiently handle complex group behavior in games such as cities, factions, armies or the general world.
The core part I focused on was a system to switch between different levels of detail for the simulation of the large group behavior.

Lowest overall cost

With a large groups comes large costs of updating each part.

Only pay for the level of detail that is needed at each moment.

Dynamic switching

When the system detects that a higher level of detail is needed for the whole or a parts of the group, they are switched to a higher level of detail.
It comes at a price so it will switch back as soon as possible.

Consistent Experience

It was a design goal that a player would not experience notable inconsistencies in the world.

If you go away and return everything should be at reasonable places and states.

Predicatable worldstate

Another important design goal was that game influencing outcomes of the simulation, should be the same independent of at what level of detail the simulation was running.

School Team Projects

At TGA, The game Assembly, higher vocational education school of game development, the students of all disciplines form teams to develop complete games using agile methods.
This is a summary of my contributions in the projects I have participated in. In total at the end of my education I will have been part of making 10 games.

P1: Squid Heist
  • Sound implementation
  • Sound as scriptable objects
P2: A Bugs Adventure
  • Base classes for characters
  • Turn based move system
P3: Donkeys Inferno
  • Application framework
  • Menu implementation system
  • UI system
  • 2D animation system
P4: Dino Game
  • Enemies
  • Context based steering
  • Application framework
  • Event system
  • UI System
  • Menu UI
  • Component system


P5: Exposé
  • Custom cursor
  • Application framework
  • UI system
  • Menu UI
  • Sprite manager


P6: Spite – New Sun
  • Application framework
  • Menu UI
  • In game UI
  • Ability system
  • Level loading
P7: The Negotiators
  • PhysX integration
  • Movement component


P6(24): Spite – Heart of the Factory
  • Menu UI
  • In game UI
  • Multi mesh texturing
  • Editor improvements
  • Material system
  • Developer level selector tool
P7(24): Art of the Dead
  • Visual scripting engine integration
  • Enemy spawn node
  • Trigger box component
  • Signal game logic system 
  • Start wave spawner node
  • Wave spawn system
P8: Exam project

TBD not started yet

Bits and pieces

Here are some other smaller things that I feel has turned out well or has some feature I found interesting. What do you think, could these be useful things in a project?

A* pathfinding
  • Scalable workload by distributing pathfinding over multiple updates.
  • Not limited to triangle navigation mesh, implemented for regular 2D grid and polygon mesh with customizable max number of edges.


Damage assesment

This was project I did while working at the Swedish Defense Material Administration, FMV.

It’s not a game development project per se but  it was in the field called serious games where the potential of computer game tech and gaming as a method was explored for military purposes.

Base application framework

As some of the requirement were the same for every project i school, more or less, I decided to make a reusable framework for the overall application.

This included the required menus, start-up behavior and some related features.

While it never really stabilized fully some core parts where used in most of the projects I was a part of.

About me

Programmer and systems engineer

I am starting a second career as a game programmer. For the past twenty years I have worked in the field of military modelling and simulation. My role have been varied, ranging from writing lab software as needed, to project management, acquisition, education and analysis.

Maybe not too surprising I like simulation games be it a factory builder, a turnbased 4x, a RTS or RPG game as long as it feels ”real” I will probably like it. In the FPS genres I prefer cooperative game play with survival or exploration focus.

It’s your lucky day!

I’m looking for an internship as a game programmer and you, though you maybe didn’t know it, were looking for an intern, me. What a coincidence.

Job offers in a junior programmer are also appreciated and accepted with out restrictions.

Either way I promise to do my best to deserve your respect and acceptance through what I can contribute to your team. What I do not know I can learn, and the experience I have comes for free.

“I am part of The Game Assembly’s internship program. As per the agreement between the Games Industry and The Game Assembly, neither student nor company may be in contact with one another regarding internships before April 23rd. Any internship offers can be made on May 5th, at the earliest.”