Loading video...

Video Failed to Load

Go Home

been working on a 2D Unity-like game engine from scratch: C++ with SDL3 renderer, Luau scripting, scene hierarchy and behavior system, and interactive editor in an integrated webview. Still some rough edges but the pieces are all there!

24,721 views • 7 months ago •via X (Twitter)

23 Comments

Austin Henley's profile picture
Austin Henley7 months ago

Very, very neat. Would love to read a blog post about your experience building it.

Dan Fessler's profile picture
Dan Fessler7 months ago

Hmm I might have to do that

Manabies's profile picture
Manabies6 months ago

The instant game tree preview is really cool!

Zesty Glitch's profile picture
Zesty Glitch7 months ago

If you can nail the equivalents of: - scriptable objects - shader graph - anim state machine - serialized inspector refs You're pretty much 80% of the way there, UX wise. Love the Lua choice; ever consider go? EbitEngine is go based and absolutely rocks. Nice work!!

Dan Fessler's profile picture
Dan Fessler7 months ago

@DaggerJockey For a 2d engine what would you imagine you’d use the anim state machine for? Modular sprite animation?

Zesty Glitch's profile picture
Zesty Glitch7 months ago

Ah, just 2d...maybe 2d skeletal deform based anim?

Dan Fessler's profile picture
Dan Fessler7 months ago

@DaggerJockey yeah that'd be sweet! btw what do you mean by serialized inspector refs

Zesty Glitch's profile picture
Zesty Glitch7 months ago

Drag and drop inspector refs; where you can connect one component/script to another in the UI

Dan Fessler's profile picture
Dan Fessler7 months ago

@DaggerJockey ah yes absolutely!

Tomobodo's profile picture
Tomobodo7 months ago

Cool stuff ! How do you show the game inside the editor if it's a webview ? Is it based on electron and the game inside is built to wasm ? or is it a native app and the ui is a webview above it ?

Dan Fessler's profile picture
Dan Fessler7 months ago

It’s a native app with the web view above the sdl viewport. The Web is simply transparent where I want the game and it reports where the bounding rect is for it to draw to

Evo's profile picture
Evo7 months ago

As someone who loves using new toolkits I'll be following this!

Dan Fessler's profile picture
Dan Fessler7 months ago

Thanks! It’s been fun

Ransomwave's profile picture
Ransomwave7 months ago

Luau my beloved being used in standalone projects!

Lepanem no kxitre vats tut's profile picture
Lepanem no kxitre vats tut7 months ago

I've been interested in creation of game engines And even though i got SDL3 working on Common Lisp , it might be a tad bit too much to learn all at once , and so will try out C++ with SDL3 .

Paths's profile picture
Paths7 months ago

hows sdl3 over 2, in a good spot?

Dan Fessler's profile picture
Dan Fessler7 months ago

I really wouldn’t know. I hear sdl2 has better support but I don’t have first hand experience. First time using it

Everlasting | Making Mancer's profile picture
Everlasting | Making Mancer7 months ago

Looks amazing! Do you render the game view with OpenGL?

sethhamumu's profile picture
sethhamumu7 months ago

Pretty much copied lmao come up with something original

Dan Fessler's profile picture
Dan Fessler7 months ago

The demo project is a clone of asteroids - a game made in 1979, just a bit before

Jeff "The Jude" Lebowski's profile picture
Jeff "The Jude" Lebowski7 months ago

this looks nice!

Ellie 🎀's profile picture
Ellie 🎀7 months ago

could've used lua. python. C#. GDScript. he picked luau. roblox's scripting language. for a standalone engine that has nothing to do with roblox

Dan Fessler's profile picture
Dan Fessler7 months ago

Because luau *is* a standalone embeddable language that makes no assumptions about Roblox. It’s just Lua but with types. It’s also a an optional superset of Lua so you don’t have to use types if you don’t want them

Related Videos