Would highly suggest adding more visuals and some way of very easily playing with runnable demos. Games are inherently audiovisual artifacts, so the lack of audiovisuals on the site is a bit of a negative signal.
I'm hoping to improve the visuals, as more games get made with it :)
There's some big stuff in the pipeline, so I'm sure it'll be enhanced soon enough.
Wren has some really interesting design choices so I feel like it’s a good fit for performant embedding.
I did "sudo apt install libsdl2-dev", make, and "./dome examples/spaceshooter/main.wren"
Took less than 30 seconds to build. The game ran instantly.
Also I ran it through WSL 2 with these instructions: https://github.com/microsoft/WSL/issues/4793
Thank you for this! First time I've heard of wren also.
Aside: Is it possible to do something like sockets / http requests through wren?
Where do you plan on taking this? What inspired you to make it?
I started this project because I had been making small games with the PICO-8 and Lua, but I wanted to work on larger projects. There's Love2D, but I find Lua tricky at times, since you often have to reinvent OOP-structures and it's disconcerting with 1-indexed arrays.
Wren is closer to more classical programming languages, so I thought I'd give it a go. :)
HTTP is tricky since the protocol is quite complex. I think it would require an external library. However, creating an interface for net sockets wouldn't be too hard. I'd love to enable multiplayer games with UDP sockets in the future :)
The Wren runtime is very extensible, so if I can code it with C, it can be made available to users of DOME!
TIC-80 is very well done, but it's a more constrained system (intentionally so).
DOME was meant to be the foundation for larger projects :)
For example there is a version of the LOVE game engine that targets ChaiScript instead of Lua[1].
What I really want is a version of LOVE that targets a lightweight LISP like Janet.
(I know, fennel exists. But imagine having a battle-tested game engine like LOVE in any LISP at all.)
And yeah, I'm implying LOVE should be that library. They have pretty much everything you'd ever need for a gamejam. I'll never touch GL.h again.
As for what the author of DOME says on exposing fewer abstractions than LOVE, I found I didn't have to muck around with low-level details like window resolution that much. LOVE provides the functions wrapping all that and preventing undefined behavior while benefiting ergonomics. The process of resizing the window which took far longer than it should have for me to get right in C++ is handled by a single call to love.window.setMode - and it handles hidpi and fullscreen and stencil buffers and MSAA and a bunch of other things[2]. Imagine implementing all that yourself, supposing that yes, you really do need that stencil buffer in the future. The work has been done already.
Where LOVE's very large standard library becomes useful is when I code myself into a corner with some inefficiency or wrong drawing output, then I look at the wiki and discover this neat feature I never knew existed that solves the problem. As an example, I wanted to control the size of a sprite batch, but drawing it ignores width and height. Then I found there's a neat thing called love.graphics.setScissor, which lets you push and pop a drawing region. Using it solved the problem with necessitating a rewrite of any internals.
Things like that make my day.
Love2D and DOME do similar things for their languages, but I think there's still some key differences in our design sensibility and mission.
My hope is that DOME provides a set of sane defaults for a number of projects (game jams, lighter games, etc), and it gives you enough features that you can implement whatever you wish on top. Alternatively, it is open source (and MIT licensed), so you can hack with the internals for customised functionality.
I hope you feel like trying DOME at some point. I'd be curious to know what your experience is like.