Open to roles Munich, Germany

Ismail Adiyaman

I build how a game looks, in code.

Work by role

Graphics & Technical Art

Graphics & Technical Art

Real-time shaders, VFX and lighting, written to a performance budget. I set the look, then ship the material that produces it.

Graphics / Tech Art Start here

Cannon Blast

Pirate prototype, VFX and environment

A cannon blast taken from concept sketch to shipped effect, plus the water shader and sky the prototype is lit by. Drawn first, then built in Shader Graph.

A prototype, and only the visuals are mine: the ships, UI, gameplay and camera were placeholders built by others or dropped in to have something to shoot at.

  • Unity
  • VFX
  • Shader Graph
  • Environment
  • Concept art
How it was built Close

What I built

  • The cannon blast: I drew the effect as concept art first, then built it in Unity with Shader Graph and a particle system to match the drawing, from the muzzle flash through the smoke bloom to the debris.
  • The ocean shader the whole scene sits on, with the wave motion, colour depth and shoreline foam.
  • The skybox and environment lighting that give the prototype its golden-hour look.

How

  • The concept came before the graph. Deciding the silhouette, the timing and the colour break on paper meant the shader work was execution rather than exploration.
  • Shader Graph rather than hand-written HLSL here, because the effect needed to stay editable by teammates who do not read shader code.

Role

VFXShader GraphEnvironmentConcept art

A prototype, and only the visuals are mine: the ships, UI, gameplay and camera were placeholders built by others or dropped in to have something to shoot at.

Authoring it in Unity, graph and result in the same frame.
Concept art for the cannon blast: a dark smoke bloom with orange fire at its leading edge, a muzzle flare behind it, and the cannonball trailing away to the right
The concept the effect was built to match.

More graphics work

Blue Yellow Green screenshot

Top 100 for visuals of 7,500+ entries, GMTK Game Jam 2024 2024

Blue Yellow Green

Play as a cube that scales between three sizes, each with its own abilities, to solve increasingly tricky platforming. I led the visuals across a 72-hour jam.

  • Godot
  • Visual lead
  • Lighting
  • Animation
What I built
  • Owned the game’s look end to end under a 72-hour deadline: lighting, animation and its implementation, level design, and asset integration.
  • Lit the levels so the three cube scales stay readable at a glance. The mechanic only works if you can instantly tell which size you are.
How
  • Godot. Every visual decision was made against the clock, so the look had to come from lighting and composition rather than asset volume.
Role
Visual leadLightingAnimationLevel design

Placed in the top 100 for visuals against more than 7,500 entries, built in three days.

The three scales, and the lighting that keeps them readable.
Together at Last screenshot

Where most of my shader & VFX work lives 2024

Together at Last

A two-player co-op platformer built around a fire droplet and a water droplet. I set the game’s visual language in code: the materials, the foliage, and the effects that carry its theme.

  • Unity
  • Shaders
  • Real-time VFX
  • 3D assets
What I built
  • A material that takes two custom textures and splits them across a surface (top half from the first, bottom half from the second), so the whole game could be themed fire/water fast and coherently.
  • Tree and bush shaders tuned to sit inside that art direction rather than fight it.
  • The flame VFX, and a contribution to the water VFX.
  • 3D assets and skybox optimization.
How
  • Unity, authored as custom shaders instead of per-asset texture variants, so one material change re-themes every surface in the game.
  • Effects built against the co-op camera framing, so both players read their own element at a glance.
Role
ShadersReal-time VFX3D assetsArt directionOptimization

A small co-op game with a single, coherent look, produced by shaders rather than by hand-painting every asset.

Breakdown media for this project is being captured.

Nightmare Slayer screenshot

Exhibited at gamescom 2023

Nightmare Slayer

A fast metroidvania that switches between the waking world and the dream world as you cleanse a village of the nightmares plaguing it. I was the visual designer.

  • Unity
  • Visual design
  • Environment art
  • Environment animation
What I built
  • Built the background environment art and its animations for the build that shipped to gamescom.
  • Produced that art under strict performance budgets so it held frame rate on the exhibition floor.
How
  • Unity. Constraint-aware art: every layer costed against the frame budget of the machine it would actually run on.

Invited to and exhibited at gamescom 2023, made in a week.

Breakdown media for this project is being captured.

Screens coming soon

Current project, team lead Since 2025

Elixir of Eternity

A 2D isometric gathering and crafting game. You play Alma, a young alchemist: gather in the outskirts, brew potions, sell them in the city, and chase the elixir her sister left her the trail to.

  • Godot
  • Team Lead
  • Project Manager
  • Main Programmer
What I built
  • Lead the project across design, visuals, and programming: scope, schedule, and the direction the team works to.
  • Main programmer on the loop that ties it together: gathering, crafting, the potions that change how the outskirts play, and the economy that sells them.
  • Author the shaders and tech art that give the isometric world its handmade look.
  • Set and hold the visual direction so the work of several people reads as one world.
How
  • Godot, with the rendering work written directly in its shading language rather than assembled from stock nodes.
  • Decisions documented so a small, part-time team can move without me in the room.
Role
Team LeadProject ManagerMain ProgrammerShaders & Tech ArtVisual Direction

In active development. A full technical write-up of the rendering and systems follows once the current build settles.

Breakdown media for this project is being captured.

What I work with

Shipped with

  • HLSL / ShaderLab
  • Unity Shader Graph
  • Godot shading language
  • Real-time VFX
  • Lighting
  • Skybox & draw-call optimization
  • Blender

Comfortable in

  • C#
  • GDScript
  • Compute & post-process passes
  • Texture authoring
  • Profiling & frame budgets

Learning

  • Unreal: materials, Niagara, and the C++ side

No shipped Unreal work yet. The rendering fundamentals, HLSL, and the VFX authoring habits carry over directly, and I am building in it now.

Gameplay & Engine

Gameplay & Engine

Gameplay systems, engine-side work, and the unglamorous parts of shipping: scope, schedule, and keeping a small team pointed the same way.

Gameplay & Engine Start here

Blue Yellow Green

Top 100 for visuals of 7,500+ entries, GMTK Game Jam 2024

Play as a cube that scales between three sizes, each with its own abilities, to solve increasingly tricky platforming. I led the visuals across a 72-hour jam.

Placed in the top 100 for visuals against more than 7,500 entries, built in three days.

  • Godot
  • Visual lead
  • Lighting
  • Animation
  • Level design
How it was built Close

What I built

  • Owned the game’s look end to end under a 72-hour deadline: lighting, animation and its implementation, level design, and asset integration.
  • Lit the levels so the three cube scales stay readable at a glance. The mechanic only works if you can instantly tell which size you are.

How

  • Godot. Every visual decision was made against the clock, so the look had to come from lighting and composition rather than asset volume.

Role

Visual leadLightingAnimationLevel design

Placed in the top 100 for visuals against more than 7,500 entries, built in three days.

More gameplay work

Nightmare Slayer screenshot

Exhibited at gamescom 2023

Nightmare Slayer

A fast metroidvania that switches between the waking world and the dream world as you cleanse a village of the nightmares plaguing it. I was the visual designer.

  • Unity
  • Visual design
  • Environment art
  • Environment animation
What I built
  • Built the background environment art and its animations for the build that shipped to gamescom.
  • Produced that art under strict performance budgets so it held frame rate on the exhibition floor.
How
  • Unity. Constraint-aware art: every layer costed against the frame budget of the machine it would actually run on.

Invited to and exhibited at gamescom 2023, made in a week.

Breakdown media for this project is being captured.

Screens coming soon

Current project, team lead Since 2025

Elixir of Eternity

A 2D isometric gathering and crafting game. You play Alma, a young alchemist: gather in the outskirts, brew potions, sell them in the city, and chase the elixir her sister left her the trail to.

  • Godot
  • Team Lead
  • Project Manager
  • Main Programmer
What I built
  • Lead the project across design, visuals, and programming: scope, schedule, and the direction the team works to.
  • Main programmer on the loop that ties it together: gathering, crafting, the potions that change how the outskirts play, and the economy that sells them.
  • Author the shaders and tech art that give the isometric world its handmade look.
  • Set and hold the visual direction so the work of several people reads as one world.
How
  • Godot, with the rendering work written directly in its shading language rather than assembled from stock nodes.
  • Decisions documented so a small, part-time team can move without me in the room.
Role
Team LeadProject ManagerMain ProgrammerShaders & Tech ArtVisual Direction

In active development. A full technical write-up of the rendering and systems follows once the current build settles.

Breakdown media for this project is being captured.

What I work with

Shipped with

  • Godot
  • Unity
  • C#
  • GDScript
  • Level design
  • Game feel & readability
  • Jam-scale delivery

Comfortable in

  • Team lead & project management
  • Design documentation
  • Playtest iteration
  • Git workflows

Studied formally

  • Level design analysis
  • Game design patterns (DDE)
  • Player psychology

CS at TUM with a game-engineering focus. Two written works, listed under About.

Software Engineering

Software Engineering

Full-stack and systems work outside games. I care about latency, determinism, and software that keeps working offline.

Bench press estimated one-rep-max chart in Suspender, with a fitted curve extending into a shaded 80% prediction band and a goal line above it
Suspender's today screen showing protein, the latest weigh-in, and the session's four exercises with their sets
Suspender trends screen listing every tracked lift with its estimated one-rep max and a sparkline of its history

Software Eng. Start here

Suspender

Android gym tracker, on-device

A native Android gym tracker with a real statistics engine behind it: weighted regression, prediction bands, population strength standards, all computed on the phone, with no network permission at all.

Installed on my phone and used for my own training. One signing key across build types, so any build installs over any other without wiping real data.

  • Kotlin
  • Android
  • Architecture
  • Statistics engine
  • UI
  • Offline-first
How it was built Close

What I built

  • A projection engine that fits a saturating log-time curve to a lift history and returns an 80% prediction band, not a single optimistic line.
  • Population strength standards that give a new movement a sensible prior before the log has enough points to fit anything.
  • The full Room/SQLite schema: exercises with composable metrics, per-side loads, bodyweight lifts against a frozen weigh-in, protein, body measurements, and goals.
  • A Compose UI over it: today dashboard, log, per-lift charts, body measurements, and goals with a required-rate pace check.

How

  • Recency-weighted least squares with Student-t prediction intervals, anchored at the latest session rather than the middle of the data. The first weeks of a movement are spent finding a working weight, not getting stronger, and a line through that ramp reads "today" far too low.
  • The analytics live in their own Gradle module with no Android dependency, so the maths is testable on the JVM: 282 tests across 28 files.
  • The manifest declares no permissions at all, not even internet. The data cannot leave the phone by accident because there is no code path for it to leave by.

Role

ArchitectureStatistics engineUIOffline-first

Installed on my phone and used for my own training. One signing key across build types, so any build installs over any other without wiping real data.

More software work

day screenshot

Used daily, by me and my friends 2025

day

A day-planning and tracking app. The day is a grid of 144 ten-minute blocks; you define reusable activities and paint them onto the grid with a brush.

  • SvelteKit
  • SQLite
  • Full-stack
  • Data modelling
  • PWA
What I built
  • The block model: 144 ten-minute blocks a day, with nestable activities three levels deep, painted by tap or drag and erased by tapping again.
  • A clock-driven overlay that renders past blocks solid, animates the current block as it fills over its ten minutes, and leaves the future faint, while keeping every block editable.
  • Server-side SQLite through Drizzle with generated migrations, so the same plan is live on the phone and the laptop.
  • Installable as a PWA, with unit tests over the block logic.
How
  • The whole design serves one rule: assigning an activity has to be as close to zero effort as possible. The app is a tracker, not somewhere to spend time.
  • SvelteKit with adapter-node, Drizzle for schema and migrations, Vitest for the logic that would silently corrupt a day if it broke.
Role
Full-stackData modellingPWAUX

In daily use by me and a group of friends, the only real test a tracking app has.

A day in day: a grid of ten-minute blocks, the morning solid in activity colours, the current block part-filled with a countdown, and the rest of the day outlined
Past solid, the present block filling, the rest of the day outlined.
The stats screen in day: a donut of the week by activity, a stacked daily bar chart, and a by-activity breakdown rolled up from child activities
A week, rolled up. Children fold into their parent.
Screens coming soon

Local-first desktop assistant, v4 Since 2025

Jarvis

A local-first, offline-first, deterministic desktop assistant for Apple Silicon. The design goal is not intelligence. It is being reliable, blazing fast, local, and capable.

  • Python
  • macOS
  • Architecture
  • Systems programming
  • On-device ML
What I built
  • The full voice path: microphone → Silero VAD endpointing → parakeet-mlx speech-to-text → a deterministic NLU router → skills.
  • A daemon that warms the STT model on start and exposes a streaming SSE endpoint, so the HUD shows the transcript live as it is heard.
  • A permission gate for any skill that touches the network: the first call asks, and the grant is scoped to the session.
  • A dependency-free CLI path on the standard library alone, plus a test suite over the routing and skill layers.
How
  • Deterministic routing instead of an LLM: the same phrase always does the same thing, and it works with the network off.
  • Four rewrites (v1 → v4). v1–v2 leaned on models and were unpredictable; v4 is the version that earned its place in my daily workflow.
Role
ArchitectureSystems programmingOn-device MLCLI & daemon

Runs on my machine every day. Voice path wired end to end; skills are added behind one router interface.

Breakdown media for this project is being captured.

Screens coming soon

The assistant Jarvis was a reaction to 2025

Siesta

A desktop assistant running local LLMs through Ollama, with persistent memory over LlamaIndex and ChromaDB, web search, and macOS app and media control.

  • Python
  • Ollama
  • Architecture
  • RAG pipeline
  • macOS integration
What I built
  • A retrieval-augmented memory layer so the assistant kept context across sessions instead of starting cold every time.
  • macOS integration: launching and controlling applications, media and volume control, Spotify, and Alfred-triggered search.
  • Web search with content extraction feeding back into the model’s context.
  • A test suite covering the interactive, chat, and integration paths.
How
  • Everything local and privacy-first: models run through Ollama on the machine, nothing is sent out unless a search is asked for.
  • Building it is what convinced me a model-driven assistant is the wrong shape for a daily tool, because the same request would not reliably do the same thing. Jarvis is the deterministic answer to that.

Complete and working. Its most useful output was the architectural argument that produced Jarvis.

Breakdown media for this project is being captured.

What I work with

Shipped with

  • Kotlin
  • Python
  • TypeScript
  • Jetpack Compose
  • SvelteKit
  • Room / SQLite
  • Node
  • Astro
  • Git

Comfortable in

  • Java
  • C#
  • Android
  • Local-first architecture
  • On-device ML (MLX, TensorFlow.js)
  • Applied statistics
  • Embedded firmware (ZMK / Zephyr)

How I work

  • Deterministic over clever
  • Tests on the parts that break
  • Documented decisions
  • Offline as the default
About

An artist at the core, expressed in code

Ismail Adiyaman, looking up at something out of frame

Computer science graduate from TUM, based in Munich, Germany. I build real-time shaders, VFX, and stylised rendering for games.

I am an artist at my core and express it through code, so I can set a look and then ship the material that produces it. I lead Elixir of Eternity across design, visuals and programming, and outside games I build software I actually use, because depending on something daily is the only honest test of whether it was built well.

Learn, Act, Make

Contact me
Also built

Smaller things

Wake Up

My first game, a loop of dreams within dreams. I set the visual style, drew the player animations, and guided the other artist to hold the look.

Unity · Semester Game Jam, "Best Visuals"

Racemarines

A racing game with submarines, made for a university course. Poster art and visual work.

Unity · University project

Custom keyboard firmware

Designed and hand-soldered the board, then wrote and flashed its firmware: layers, macros, and the layout I actually wanted.

ZMK · Zephyr · Hardware

Wake-word detector

A custom wake-word model trained from my own recorded dataset, with the collection, training, and evaluation pipeline around it.

Python · Audio ML

Flowy

A browser-based concept-mapping tool: draggable nodes, connections, markdown in the nodes, JSON import/export. No dependencies.

Vanilla JS

Sebastian

A Python service project with a documented roadmap and spike-driven design, an exercise in planning before building.

Python

Writing & research

Academic work

Published FDG '26: Foundations of Digital Games, Copenhagen

Creating Memorable Player Experiences Through Level Design: A Case Study of Elden Ring's Siofra River Well Elevator Scene

Paper · Ismail Adiyaman, Chrysa Bika, Daniel Dyrda · 2026

Read it in the ACM Digital Library doi:10.1145/3815598.3815691

Abstract

Player experience is shaped through the direct and indirect choices of game developers. Many people who have played a game have some memorable gaming moments that they still vividly remember long after forgetting other parts of the game. This paper examines the Siofra River Well scene in Elden Ring through a lens of psychology and level design to understand how level design can be used to manipulate player psychology in order to achieve memorability.

Game Design Patterns: A DDE Based Approach to Pattern Creation

Thesis · Ismail Adiyaman · 2026

Abstract

A framework for deriving game design patterns from the experiences a designer intends to create, built on the Design, Dynamics, Experience (DDE) model. Rather than cataloguing patterns observed in existing games, the approach works backwards from a target player experience to the structures that produce it.

Awaiting publication. The full text cannot be uploaded yet for legal reasons.

Tell me what you are building.

Top