DEV Community

Cover image for Hova: a small DSL for describing worlds (early projects)
Gabriel Xavier
Gabriel Xavier

Posted on

Hova: a small DSL for describing worlds (early projects)

I've been working on a small project called Hova.

Hova is a DSL focused on** describing game worlds, entities and universe structures** in a clean and declarative way.

It is not a game engine, and it doesn't execute logic or handle rendering.

Its only goal is to describe what exists in a universe β€” not how it run.


Why I built it

When building games or tools, I often felt that world design ended up mixed with engine code, scripting logic or implementation details.

I wanted something that:

  • stays engine-agnostic
  • focuses only on world structure and meaning
  • can be consumed by different tools or pipelines

That's where Hova came from.


How it works

You write Hova source code describing your world, and it gets converted into a neutral format (currently JSON).

This output can then be consumed by:

  • game engines
  • custom tooling
  • build pipelines
  • converters

Hova doesn't decide how the world is used β€” it only describes it.

A small example

anvil Shapes 

    atomic 
        atom visual : "minimal"
        atom hideConfig : "on"
    end

    ore Square 
        spark sides : 4
    end

    ore Triangle
        spark sides : 3
    end

end
Enter fullscreen mode Exit fullscreen mode

Which converts to:

{
    "Shapes": {
        "atomic": {
            "emit": "json"
        },
        "Square": {
            "sides": 4
        },
        "Triangle": {
            "sides": 3
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Current state

Hova is still an early project.

Documentation is a work in progress, so the /examples folder is currently the main reference to understand the language.

The language itself is evolving, and feedback at this stage is extremely valuable.


What I'm looking for

I'd love feedback on:

  • the language design
  • syntax clarity
  • whether this kind of DSL could be useful in real game or tooling workflows

If you're interested, here's the repository:
πŸ‘‰ https://github.com/G4brielXavier/Hova

THANKS FOR READING.

Top comments (0)