@zehreken@mastodon.art cover
@zehreken@mastodon.art avatar

zehreken

@[email protected]

Güçhan Alkan
Programmer at 10 Chambers.
Audio, graphics and AI enthusiast.
It works on my machine.
🦀🦀🦀🦀🦀
On my way to become Balenciaga.
📍Stockholm

This profile is from a federated server and may be incomplete. View on remote instance

@zehreken@mastodon.art avatar zehreken , to random

I wrote some lousy Python code to generate a scene for my renderer and created some nice renderings with the new post-processing system, just for you.

image/png
image/png
image/png

@zehreken@mastodon.art avatar zehreken , to random

Nowadays I've been exploring models on HuggingFace. To stay relevant as a programmer, I think it's crucial to understand what's happening in the AI space. It is too big to ignore. Also, I never thought I'd write a line of Python. Yet here I am.

@zehreken@mastodon.art avatar zehreken , to random

Finally managed to combine different effects. The hierarchy seems to be random and I don't understand why. Next is fixing that and also making it adjustable. The result is already very interesting.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Managed to totally break rendering while working on stacking post-process effects. I think it looks cool though. Will be back soon.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

I was reading about the Vitruvian Man and thought why not a Vitruvian Bicycle? It did not turn out as artistic as I imagined but I still think it is a good attempt. Queen's Bicycle Race is playing in the background in spirit.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

After a short vacation, I'm back with islands! Now terrain generation starts with a bump and builds on top with different frequency noise. I like the result, but it looks a little too realistic. Added some noise to the texture too.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

I never realized cylinders could be this versatile. These are all cylinders with different sector counts. I guess if you can only have one primitive mesh type in your game, it should be a cylinder.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

It's a lot of fun figuring out rendering basics through trial and error. Fixing the UVs and normals for a cylinder was much harder than I thought. It's still not perfect because of missing seam vertices but good enough for the next step.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Spent some time on colors and added placeholder props and water in search of a visual identity for the game.
I love how the maze looks underwater, but it has to be on land. So, islands are definitely the next step for the terrain.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Got carried away with mazes and ended up adding them to my renderer. Each frame generates a new maze on all faces. Not sure where this is going, and as Picasso said: "To know what you are going to draw, you have to begin drawing."

video/mp4

zehreken OP ,
@zehreken@mastodon.art avatar

And some stills.

image/png

@zehreken@mastodon.art avatar zehreken , to random

Printed and framed one of my earlier renderings and even signed it. Made me feel like an artist for a short while. XD

@zehreken@mastodon.art avatar zehreken , to random

Working on mazes on the side gave me a new idea for fōrma that needed texture support. It was long overdue anyway. And combining new features with the previous ones is already leading to some interesting effects.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Created a basic texture from the elevation just to get a feeling of how it would look as a map. I guess I have to force the terrain into an island shape, otherwise a good chunk of the maze ends up in water.

image/jpeg
image/jpeg

zehreken OP ,
@zehreken@mastodon.art avatar

@eishiya Yes, I plan to force the terrain shape into islands but I need a pier or a bridge like structure to connect the levels. :)

@zehreken@mastodon.art avatar zehreken , to random

Trying out different ideas. I added terrain generation with Perlin noise and carved the maze into it. So many ideas come up, but picking the right one is the real challenge.

video/mp4

zehreken OP ,
@zehreken@mastodon.art avatar

Switching to perspective view makes the maze way harder. Not sure if that makes it more fun and challenging or just frustrating.

image/jpeg

@zehreken@mastodon.art avatar zehreken , to random

Gave the fake sine wave a test run. Also added noise generation, and with a volume envelope, managed to synthesize some basic cymbals.

There’s so much to add, maybe another envelope, some echo, or definitely shadows, as this scene really begs for it.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Warning: mind your ears! Tested the fake sine I shared earlier. Time domain looks clean, but the frequency domain clearly shows harmonics. The sound is brighter and rougher than a real sine. Could be useful for a cheap, gritty tone for drums or noise layers though.

video/mp4

zehreken OP ,
@zehreken@mastodon.art avatar

Also benchmarked sine against the fake sine. The fake one was about 12 times faster on my machine.

@zehreken@mastodon.art avatar zehreken , to random

Stumbled upon a cheap sine wave imposter. I’ll add it to my oscillator and compare it to the real thing. Curious how it sounds and performs. https://bmtechjournal.wordpress.com/2020/05/27/super-fast-quadratic-sinusoid-approximation/

@zehreken@mastodon.art avatar zehreken , to random

Found some time to work on the gameplay again. I now generate a spline to render the path, stable width, smooth curves, less jank. It’ll be very useful later on, but I won’t spoil that part yet.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

I bumped into this site with color palettes based on birds in New Zealand. It’s fantastic. I like all of them and will definitely try them in fōrma. https://g-thomson.github.io/Manu/

@zehreken@mastodon.art avatar zehreken , to random

Even though I work on other projects, I enjoy revisiting fōrma every now and then to try new forms, angles, and effects. It’s still basic stuff, but I’m very happy with the direction.

image/png
image/png

@zehreken@mastodon.art avatar zehreken , to random

Being able to tweak colors and effects in real time is a game changer. It makes experimenting easy and is definitely a good investment for the future. After all, the goal is visualizing sound in the best way possible.

image/jpeg
image/png
image/png

@zehreken@mastodon.art avatar zehreken , to random

I guess this week was all about serialization. Finally added the ability to save and load a song. I've lost so many nice tunes up till now but not anymore. Also added a weird object for your viewing pleasure.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Spent some time improving the editor. I can now toggle edges and instantly test changes with play mode. I strongly believe fast iteration is key to finding fun gameplay. Also realized how much I missed good old Unity after years in ECS land.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Thought using Unity as an editor for my toy renderer would be quick and easy. Then I hit the wall of coordinate systems. Switched to left-handed after hours of refactoring. Still worth it, doing this in pure code would’ve been very boring and slow.

video/mp4

zehreken OP ,
@zehreken@mastodon.art avatar

This is what it looks like in Unity.

@zehreken@mastodon.art avatar zehreken , to random

I thought I should generate mazes instead of designing them by hand, and it turns out maze generation is a whole field in graph theory. I started with the simplest algorithm, namely recursive backtracking. It already gives pretty good results!

video/mp4

zehreken OP ,
@zehreken@mastodon.art avatar
@zehreken@mastodon.art avatar zehreken , to random

I’ve been playing The Witness recently, such a great game. It inspired me to make a small puzzle game with a similar mechanic. This is the janky first prototype of the puzzle system. It is promising though.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Finally added the long-overdue camera controls. Classic FPS style. It'll help me get better angles for captures, but now I kinda want to make it into a game and fail badly. 😆 The curse of a game developer.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

I’m doing my best to deliver you seizures and headaches yet again with another video. Refactored the hell out of this thing and added a basic ADSR envelope. Still a lot to add, but sounds good!

video/mp4

zehreken OP ,
@zehreken@mastodon.art avatar

Different colors, different waves, same headache potential.

image/png
image/png

@zehreken@mastodon.art avatar zehreken , to random

Audio alert!
Added multiple waveforms: sine, triangle, square and sawtooth. I actually had my own library from years ago that did this, but visualizing the wave took ages. I think it looks cool though. More audio stuff is on the way.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

Shifting focus to audio next but got carried away with rendering experiments. Not sure this qualifies as an environment, maybe a poor man's Sponza.

image/jpeg

@zehreken@mastodon.art avatar zehreken , to random

I think it makes even more sense nowadays, when vibe coding and AI are a thing. Probably one day, people will only program for fun, expression and creativity, just like the demoscene. https://www.goto80.com/the-demoscene-as-a-unesco-heritage-in-sweden

@zehreken@mastodon.art avatar zehreken , to random

Finally found the issue. It was color correction, again. Linear on the left and gamma corrected on the right. Realism aside, I’ve always liked high contrast.

image/png

zehreken OP ,
@zehreken@mastodon.art avatar

I was surprised when I first learned that our perception of sound isn’t linear. Now I’ve learned that color and light aren’t linear either. Why should they be anyway?
I guess it’s about believing that what we experience is real.

@zehreken@mastodon.art avatar zehreken , to random

One thing I still don’t understand is colors and texture formats. I see different colors on different computers and also between real-time rendering and saved images. I’m not even sure which one is correct anymore. And this massive enum is not helping.

zehreken OP ,
@zehreken@mastodon.art avatar

@wumpf Yes, sRGB was the issue again. I first ran into it when I drew my first triangle with wgpu. I'm developing this project on a 2015 Mac, a modern gaming PC, and another powerful PC at work. It's actually nice to encounter these kinds of problems, they help me learn. I've fixed the realtime color rendering so it looks the same on all three machines. But this time, the problem occurred when I wrote the image to disk. Thanks for the link!

@zehreken@mastodon.art avatar zehreken , to random

Follow up with another simple effect: inverted colors. I think it’s time to start putting some work into audio now.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

One of the reasons I started this project was to learn compute shaders and eventually process audio. Today I finally got to the fun part: experimenting! There’s still a lot to iron out, but here’s a simple real-time pixelation post-processing effect.

video/mp4

@zehreken@mastodon.art avatar zehreken , to random

I'm adding render passes one by one and everything is coming together nicely except some minor issues. :)

@anotherwalther@mastodon.social avatar anotherwalther , to random

some days you put in an immense amount of effort at work, only to ponder late at night whether it truly was worth the sacrifice to get it done. oh well. this too shall pass.

zehreken ,
@zehreken@mastodon.art avatar

@anotherwalther It never is. I believe it's only worth that kind of effort when it's for your own projects, company, or something you truly own.

@zehreken@mastodon.art avatar zehreken , (edited ) to random

Looks like a step back but it is actually the opposite. Finally got rendering to a texture working. Took a while and I learned the hard way how slow CPU-GPU communication can be. I'm also fiddling with Unreal Engine on the side, lots to juggle but good progress.

@TheDevBlog@mastodon.social avatar TheDevBlog , to random

I'm still messing around with the art style for my game. I'm happy with the direction that it is going, but I'd like to add a bit more of a 'stylized' look to it. Comment any ideas!

zehreken ,
@zehreken@mastodon.art avatar

@TheDevBlog Yes, like stripes or small decorative shapes on the vehicle in a distinct color that also represents the faction.