Skip to content

Hova is a Domain-Specific Language designed to describe and organize entities in a clean, readable and structured way. It lets you define your data once and automatically export it as JSON, YAML or TOML.

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE-AGPL
Unknown
LICENSE-Comercial.md
Unknown
LICENSE-Community.md
Notifications You must be signed in to change notification settings

G4brielXavier/Hova

Hova โ€” A DSL for Worlds, Entities & Game Universes

Made with Python GitHub Repo stars GitHub release (latest by date) GitHub all releases Python Platform Issues

HOVA

Stop describing game worlds, entities and rules using formats made for machines.

Hova is a human-friendly DSL made for world-building, entity definition, modding ecosystems, NPC sets, configuration-heavy systems and narrative universes. Write structured worlds once โ†’ export instantly to JSON, YAML or TOML.


๐ŸŽฎ What is Hova?

Hova is a Domain-Specific Language for describing worlds.

It is used to define:

  • games and engines
  • RPG & world-building projects
  • modding frameworks
  • structured narrative systems
  • projects with many entities and metadata

Hova files are written by humans.
They are compiled into JSON, YAML or TOML for machines.

๐Ÿ‘‰ More info & docs: https://hova.space


๐ŸŒŒ Why Hova Exists

Hova was created by Gabriel Xavier (dotxavierket) to solve a real problem:

Developers, modders, writers and engine creators repeat data structures too much. They fight ugly configuration formats. They lose clarity.

Hova exists to:

  • make entity definition readable
  • formalize worlds without pain
  • keep creativity without chaos
  • export clean data that engines love

๐Ÿ‘ค Who is Hova for?

If your world has entities, rules, metadata or structure, Hova is for you:

โœ” Game devs โœ” Indie studios โœ” Modders โœ” Narrative designers โœ” Engine creators โœ” Tool builders


๐Ÿค” Why not just JSON?

This is the question everyone asks. And it's the wrong one.

JSON is an excellent machine format. It is stable, universal and easy to parse.

But JSON was never designed for human authorship at scale.

The real problem with JSON

JSON works great when:

  • generated by tools
  • used as output
  • consumed by engines

JSON breaks down when:

  • written by hand
  • maintained long-term
  • used to describe large worlds
  • edited by designers or writers

In game development, world data grows fast: enemies, items, NPCs, factions, rules, metadata.

JSON does not communicate intent. it only stores structure.

Hova's position

Hova does not replace JSON.

Hova exists before JSON.

  • Hova is the source of truth
  • JSON / YAML / TOML are build artifacts

Just like:

  • TypeScript -> JavaScript
  • SCSS -> CSS
  • Shaders -> bytecode

You don't write bytecode.
You don't write AST.
And you shouldn't have to write JSON by hand.

In short

JSON is for machines.
Hova is for humans.

Hova in a Build Pipeline

To Hova:

/world
    enemies.hova
    items.hova
    npcs.hova

After Build (Emiting as json):

/hovabuild
    enemies.json
    items.json
    npcs.json

๐Ÿง  Philosophy

Hova is NOT a programming language. Hova does NOT execute logic.

Hova is for describing worlds. Clean. Expressive. Deterministic.

Machines consume JSON. Humans deserve Hova.


Examples

If you want to be what Hova really does.

Simple:

Medium:

Advanced:

๐Ÿ› ๏ธ Defining Game Enemies

โŒ JSON (machine-friendly, human-hostile)

{
  "Enemies": {
    "Slime": {
      "Damage": 15,
      "MaxLife": 50,
      "Drop": {
        "Gold": 5,
        "Chance": 0.8
      }
    },
    "KnightGuard": {
      "Damage": 23,
      "MaxLife": 200,
      "Drop": {
        "Gold": 25,
        "Chance": 0.3
      }
    }
  }
}

Problems:

  • Deep nesting hides meaning
  • No semantic distinction between entities and metadata
  • Repetition grows silently
  • Refactoring is painful
  • Hard to read as a world

โœ… Hova (human-first, structured)

anvil Enemies

    atomic
        atom emit : "json"
        atom visual : "minimal"
    end

    ore Slime
        spark Damage int : 15
        spark MaxLife int : 50

        ore Drop
            spark Gold int : 25
            spark Chance float : 0.3
        end
    end

    ore KnightGuard
        spark Damage : 23
        spark MaxLife : 200

        ore Drop
            spark Gold : 25
            spark Chance : 0.3
        end
    end

end

Benefits:

  • Clear intent and hierarchy
  • Entities feel like entities, not objects
  • Structure reads like a design document
  • Easy to expand, refactor and reason about
  • Exports clean JSON instantly

๐Ÿงฉ Core Concepts

Hova Meaning
anvil world / root container
atomic metadata + output behavior
ore entity / object
spark property

Hova models structure. Your engine executes meaning.


๐Ÿ—บ๏ธ Hova Roadmap

Soon (not guaranteed but dreamed):

  • Markdown + .ini export
  • Hova IDE
  • VSCode plugin
  • Better tooling
  • Game engine adapters

See full roadmap: Hova Roadmap


โš™๏ธ Installation

โœ” Releases on Github

Go to https://github.com/G4brielXavier/Hova

Download installer from Releases.


๐Ÿš€ Learn Hova in 3 Steps

1๏ธโƒฃ Create shapes.hova 2๏ธโƒฃ Write:

anvil shapes
    atomic
        atom emit : "json"
        atom creator : "dotxav"
    end

    ore Square
        spark sides int : 4
    end

    ore Triangle
        spark sides int : 3
    end
end

3๏ธโƒฃ Run:

hova forge shapes.hova

Output appears in:

hovabuild/json

๐Ÿ”„ JSON / YAML / TOML

Set output:

atomic
    atom emit : "yaml"
end

Hova builds:

hovabuild/
  json/
  yaml/
  toml/

๐Ÿ“œ License

Hova is dual-licensed.

If you are a company or plan to monetize a product using Hova, you must use the Commercial License.

Community License

Free for:

  • individuals
  • students
  • hobby & open-source
  • research
  • non-profit

Commercial License

Required for:

  • companies
  • studios
  • SaaS
  • commercial production use

See:

  • LICENSE-AGPL
  • LICENSE-Community.md
  • LICENSE-Commercial.md

Commercial contact: ๐Ÿ“ง hovalicense@gmail.com


๐Ÿค Contribute

  1. Fork
  2. Create branch
  3. Commit
  4. Push
  5. PR

Ideas, docs, features and fixes are welcome.

View more here: Contribute Hova


๐Ÿ”ฅ Final Thought

Hova isnโ€™t โ€œjust another data formatโ€.

Itโ€™s:

  • a language for worlds
  • a bridge between creativity and machines
  • something game dev tools donโ€™t have yet

โค๏ธ Support

Hova is indie.

If this helped your game, mod or universe, support development ๐Ÿ™Œ

๐Ÿ‡ง๐Ÿ‡ท Pix ๐Ÿ“ง nopaxxff@gmail.com

Foreigners can donate via Wise using this Pix.

About

Hova is a Domain-Specific Language designed to describe and organize entities in a clean, readable and structured way. It lets you define your data once and automatically export it as JSON, YAML or TOML.

Topics

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE-AGPL
Unknown
LICENSE-Comercial.md
Unknown
LICENSE-Community.md

Code of conduct

Contributing

Stars

Watchers

Forks

Languages