Jump to page: 1 2
Thread overview
I made a game and engine in D that's a cross between Superliminal and Viewfinder, and you can play the demo now
Feb 24
Lewis
Feb 24
Lewis
Feb 25
Mike Shah
Feb 27
Lewis
Feb 27
Lewis
Feb 27
evilrat
Feb 27
evilrat
Feb 27
Ethan
Feb 24
someone
Feb 24
Ethan
Feb 26
monkyyy
Mar 01
Lewis
5 days ago
Lewis
4 days ago
Hipreme
February 24

Hello! I'm Lewis, a solo developer from Vancouver. I've been working on The Art of Reflection for ~4 years. It's basically Superliminal meets Viewfinder with mirrors, with a bit of Portal and The Witness thrown in for good measure.

I built the game and engine from scratch in D, using D3D11, PhysX, FMOD, and a few other libraries. Happy to answer any questions about the process, but in short I'm super happy with my decision to use D. I honestly can't really imagine going back to C++ at this point.

You can play the demo right now if you want to give it a spin. Feedback is always welcome and appreciated.

Thanks so much for your support!

-Lewis

February 24

On Monday, 24 February 2025 at 03:08:11 UTC, Lewis wrote:

>

Hello! I'm Lewis, a solo developer from Vancouver. I've been working on The Art of Reflection for ~4 years. It's basically Superliminal meets Viewfinder with mirrors, with a bit of Portal and The Witness thrown in for good measure.

I built the game and engine from scratch in D, using D3D11, PhysX, FMOD, and a few other libraries. Happy to answer any questions about the process, but in short I'm super happy with my decision to use D. I honestly can't really imagine going back to C++ at this point.

You can play the demo right now if you want to give it a spin. Feedback is always welcome and appreciated.

Thanks so much for your support!

-Lewis

Hi Lewis. Your game looks absolutely insane. This looks so wildly impressive I cannot help but rewatch the trailer 3 times. Absolutely keep up the excellent work

February 24

On Monday, 24 February 2025 at 03:08:11 UTC, Lewis wrote:

>

Hello! I'm Lewis, a solo developer from Vancouver. I've been working on The Art of Reflection for ~4 years. It's basically Superliminal meets Viewfinder with mirrors, with a bit of Portal and The Witness thrown in for good measure.

I built the game and engine from scratch in D, using D3D11, PhysX, FMOD, and a few other libraries. Happy to answer any questions about the process, but in short I'm super happy with my decision to use D. I honestly can't really imagine going back to C++ at this point.

You can play the demo right now if you want to give it a spin. Feedback is always welcome and appreciated.

Thanks so much for your support!

-Lewis

Congratulations on such a great achievement! Do you use D restricted to betterC subset, avoiding GC and everything related?

February 24

On Monday, 24 February 2025 at 10:27:00 UTC, Vladimir Marchevsky wrote:

>

On Monday, 24 February 2025 at 03:08:11 UTC, Lewis wrote:

>

Hello! I'm Lewis, a solo developer from Vancouver. I've been working on The Art of Reflection for ~4 years. It's basically Superliminal meets Viewfinder with mirrors, with a bit of Portal and The Witness thrown in for good measure.

I built the game and engine from scratch in D, using D3D11, PhysX, FMOD, and a few other libraries. Happy to answer any questions about the process, but in short I'm super happy with my decision to use D. I honestly can't really imagine going back to C++ at this point.

You can play the demo right now if you want to give it a spin. Feedback is always welcome and appreciated.

Thanks so much for your support!

-Lewis

Congratulations on such a great achievement! Do you use D restricted to betterC subset, avoiding GC and everything related?

I don't strictly use betterC, but I do avoid GC usage in all frame-to-frame gameplay code. I allow myself GC usage for debug code, editor tools, and major state changes where a hitch is okay (eg. startup, loading a save game).

The bulk of my frame-to-frame allocations are handled by an object pooling system that reuses elements and grows if needed. I also have a per-thread linear allocator that resets after each frame, useful for scratch allocations that don't need to outlive a frame. I made some minor changes to druntime so that in any given scope I can switch into "scrapheap mode" as I call it, at which point all GC allocations get redirected to my linear allocator until the scope exits. This lets me use phobos, druntime, and other libraries even if they would allocate to the GC in a problematic way. As long as the allocation doesn't need to outlive the frame, I can use the library unmodified by just switching into scrapheap mode.

February 24

On Monday, 24 February 2025 at 03:08:11 UTC, Lewis wrote:

>

Hello! I'm Lewis, a solo developer from Vancouver. I've been working on The Art of Reflection for ~4 years. It's basically Superliminal meets Viewfinder with mirrors, with a bit of Portal and The Witness thrown in for good measure.

I built the game and engine from scratch in D, using D3D11, PhysX, FMOD, and a few other libraries. Happy to answer any questions about the process, but in short I'm super happy with my decision to use D. I honestly can't really imagine going back to C++ at this point.

You can play the demo right now if you want to give it a spin. Feedback is always welcome and appreciated.

Thanks so much for your support!

-Lewis

Y win only direct instead of portabl opengl or maybe vulkan now ur game stuck on win where many D users Mac n Linux

February 24

On Monday, 24 February 2025 at 12:17:55 UTC, someone wrote:

>

Y win only direct instead of portabl opengl or maybe vulkan now ur game stuck on win where many D users Mac n Linux

I really wish people would at least try loading it up on a Steam Deck before making such posts.

Which I just did. It runs fine.

Mac solutions similar to Proton have been announced/are incoming/etc.

February 25
On 2/24/25 2:51 AM, Lewis wrote:

First, congratulations!

> I don't strictly use betterC, but I do avoid GC usage in all frame-to-
> frame gameplay code. I allow myself GC usage for debug code, editor
> tools, and major state changes where a hitch is okay (eg. startup,
> loading a save game).

All those juicy details beg to be presented at DConf. ;)

Ali

February 25
On Tuesday, 25 February 2025 at 17:36:53 UTC, Ali Çehreli wrote:
> On 2/24/25 2:51 AM, Lewis wrote:
>
> First, congratulations!
>
> > I don't strictly use betterC, but I do avoid GC usage in all
> frame-to-
> > frame gameplay code. I allow myself GC usage for debug code,
> editor
> > tools, and major state changes where a hitch is okay (eg.
> startup,
> > loading a save game).
>
> All those juicy details beg to be presented at DConf. ;)
>
> Ali

100% agreed with Ali!

Very nice looking game, can't wait to try!
February 26

On Monday, 24 February 2025 at 10:51:09 UTC, Lewis wrote:

>

I don't strictly use betterC, but I do avoid GC usage in all frame-to-frame gameplay code. I allow myself GC usage for debug code, editor tools, and major state changes where a hitch is okay (eg. startup, loading a save game).

The bulk of my frame-to-frame allocations are handled by an object pooling system that reuses elements and grows if needed. I also have a per-thread linear allocator that resets after each frame, useful for scratch allocations that don't need to outlive a frame. I made some minor changes to druntime so that in any given scope I can switch into "scrapheap mode" as I call it, at which point all GC allocations get redirected to my linear allocator until the scope exits. This lets me use phobos, druntime, and other libraries even if they would allocate to the GC in a problematic way. As long as the allocation doesn't need to outlive the frame, I can use the library unmodified by just switching into scrapheap mode.

This sounds ideal to me. How much of phobos did you mod? What kind of lift was it? Does it take much maintenance? Does using phobos feel seamless or is there some reluctance/superstition about using it in complex scenarios e.g. threads.

I'm an indie game dev, and am moving to D from C++. Congrats on the release! The game looks fantastic. A crowning achievement for a solo dev.

February 26

On Monday, 24 February 2025 at 03:08:11 UTC, Lewis wrote:

>

Hello! I'm Lewis, a solo developer from Vancouver. I've been working on The Art of Reflection for ~4 years. It's basically Superliminal meets Viewfinder with mirrors, with a bit of Portal and The Witness thrown in for good measure.

I built the game and engine from scratch in D, using D3D11, PhysX, FMOD, and a few other libraries. Happy to answer any questions about the process, but in short I'm super happy with my decision to use D. I honestly can't really imagine going back to C++ at this point.

You can play the demo right now if you want to give it a spin. Feedback is always welcome and appreciated.

Thanks so much for your support!

-Lewis

I care less about your game design then your engine as its very pretty

Id suggest making a "surf" game or 3d speedrun platformer with whatever engine you have after you ship

https://www.youtube.com/watch?v=BT9w395ouMk

https://www.youtube.com/watch?v=wtBmylOKVxU

https://www.youtube.com/watch?v=htdYpQs19zE

« First   ‹ Prev
1 2