Evgenij Lutz's Avatar

Evgenij Lutz

@evgenij-lutz

Software Engineer. iOS, macOS, Swift, SwiftUI, UIKit, AppKit, Metal https://linktr.ee/evgenij.lutz

23
Followers
4
Following
27
Posts
22.10.2024
Joined
Posts Following

Latest posts by Evgenij Lutz @evgenij-lutz

Post image
27.08.2025 16:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Made sure NEON builds for arm64 work as expected. Tested the biggest 12x12 block size with the least accurate compression: 2MB vs 68KB. Video of the final version on iPad vs the initial version on Mac, where I had messed up the color channels on image import:

27.08.2025 16:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image Post image Post image

arm’s astc-encoder is one of the best documented and most straightforward libraries I’ve used. Took me a while to figure out how to build them for all Apple platforms and Android, but it was definitely worth it. It even has a progress reporting callback 😭

26.08.2025 17:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

FreeType has low level access to font information and is cross platform, perfect for games. The framework will support other platforms like Windows as soon as including non-Apple binaries in Swift Packages will be possible. CoreText already uses FreeType afaik but is less low level and Apple only

26.07.2025 06:10 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

I created a Swift Package that wraps the FreeType library as an Xcode framework - compatible with iOS, macOS, visionOS, tvOS and even watchOS, available via SPM. You can use it in both Swift and C. The package is battle tested, I use it in my upcoming game. Repo:
github.com/EvgenijLutz/...

26.07.2025 00:21 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image

My first server on raw kevent and socket api πŸ₯Ή

02.04.2025 16:48 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Making an interactive animation timeline editor with BΓ©zier curves for UIKit and AppKit + SwiftUI bridge for a little hobby project, soon to be released

04.03.2025 16:54 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Throwing shards on hit. I feel the urge to model the full version of the enemy on the right side, it looks kind of ugly right now ngl

#gamedev

16.02.2025 19:51 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I also pack assets in a file that is optimised for fast loading now, as I planned earlier, and the results are insane - loading time is now 13-18 times faster! It takes only a fraction of a second, and it’s in debug mode, the game launching is almost instant

12.02.2025 23:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image Post image Post image Post image

In January I made a lot of sketches for some game objects in @procreate.com and @nomadsculpt.com and quickly made two of them out of primitives in @blender.org to see how they look in-game. They are of course by no means final versions, but I’m already content with their dimensions

12.02.2025 23:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image

It was surprisingly easy and straightforward to port the FreeType library to all Apple platforms. It compiles even for WatchOS! I use it to generate bitmaps for every glyph and render text in the 3D scene

12.02.2025 23:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

Another sketch in Procreate, always loved this kind of ships because they look badass. I think I’m going to increase the distance between the core and the first inner ring and add more details to them. Can’t wait to model it in Blender and test it in the game πŸ‘€

#gamedev #indiedev

16.01.2025 22:23 πŸ‘ 12 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0
Post image Post image

First sketch made with Nomad Sculpt, it was a delightful experience. I’m going to model it again from scratch in Blender to fine-tune it, adapt it to the game’s requirements and draw the textures in Procreate. How much models will I create to the end of the month? Diving deeper into #Gamedev

15.01.2025 22:36 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Now we are talking 😌

09.01.2025 19:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Wanted to render explosion sprites using raster order groups and tile shading instead of built-in blending, got gpu hallucinations
#MetalAPI #gamedev

09.01.2025 19:14 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

This way, I’d only need to load all buffers and textures using Metal Fast Resource Loading. I started working on this yesterday and I’m already halfway there πŸ’ͺ

27.12.2024 12:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I import meshes from OBJ files, which don’t include tangents, so I generate them every time. Importing the whole scene takes less than two seconds, which is great, but I can make it much more performant by storing all mesh resources and generated data in a single file with an efficient layout.

27.12.2024 12:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image

I also accidentally fixed the tangent/bitangent space generation. It was previously calculated slightly incorrectly for some models, but now it works as it should. Look at the gladiator’s collarbones - they had a seam that wasn’t supposed to be there, and the normal map itself looked totally wrong.

27.12.2024 12:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

I didn’t think I could easily interpolate back and forth between perspective and orthogonal projections just by interpolating every component of the projection matrices. I don’t need it, but hey, it looks pretty dang good.

27.12.2024 12:32 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image Post image
01.12.2024 21:51 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The most low-level logic is wrapped in a convenient Swift interface and it works ✨fabulous✨

I've learned so much and made huge improvements in the past six months and it’s definitely the most complex thing I’ve ever developed. Now I’m bringing the game to live. Fingers crossed

01.12.2024 21:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

There is a custom task manager to parallelize tasks and the main engine logic is isolated to custom Swift global actor with an executor that schedules work on task managers primary queue. The entry point is available from both SwiftUI, UIKit and AppKit.

01.12.2024 21:50 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The engine is written for iOS and macOS in C++ 20, Objective-C and Swift 6 including interoperability with C++; it uses Metal API to render graphics and soon the PHASE framework for audio backend.

01.12.2024 21:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The vast majority of features are implemented, now I render skybox and instantiate meshes, use PBR without limitations to the number of lights, have a basic ECS system, process user input, cast rays from the camera, perform ray-box and box-box intersection tests and much more.

01.12.2024 21:50 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

Never been as proud of myself as I am right now. Looks like I'm finally ready to move on from this test scene and start creating the actual game content.

#Gamedev #MetalAPI

01.12.2024 21:50 πŸ‘ 8 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Eight fallen yellow and orange leaves aligned in two rows and placed each on the center of their tile on a sidewalk

Eight fallen yellow and orange leaves aligned in two rows and placed each on the center of their tile on a sidewalk

Feeling like a monk today

21.11.2024 09:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image Post image

I've released a TagView for SwiftUI and UIKit, available for iOS 13 and newer on GitHub: github.com/EvgenijLutz/...

Implementing a tag view in pure SwiftUI never gave me good results, and existing solutions also were not good enough for me. So I made my own implementation, give it a try 😌

16.11.2024 16:18 πŸ‘ 7 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0