Jaewoong
Works
Works
TOP

DungeonScript

DungeonScript

DungeonScript is a language for making HTML5 retro-style first person dungeon crawler games, like Wizardry.

This project is heavily inspired by Stephen Lavelle's PuzzleScript, and Twelve by Ramsey Nasser.

My goal was to make simple and intuitive programming language and web based IDE for people to easily make their own games. It was my first time trying to make my own language, which was a greatly intriguing experience but also a painfully hard process. This was due to the fact that I could be totally on my whim about designing the new language. I could follow some philosophical convention of existing languages (such as Objective Oriented Programming or Entity/Component Model) or try to implement my own thing. In any case, there was infinite freedom over everything, and I really needed to figure out what philosophy serves my goal the best.

Design concerns

In the end, I settled on an idea "Everything is a thing with charms," where 'thing' is sort of an object in a sense of OOP and 'charm' is property that thigns can have. But it is not like OOP. There is no conditionals, loops or variables in a traditional sense. Instead, every line of code is either about creating new thing or setting rules of the game. So if I put it in its most simplest words, you list things that the game will have then set some rules of the game, and all is done.

Documentation and examples

Code sample

☃ A line between two snowmen is a comment line ☃
☃ This code sample does not run but just to show how it looks like ☃

☃ List things that the game will use ☃
{ player, hp: 15, hp-max: 15, weapon: @short-sword }
{ weapon, short-sword, att: 5, price: 5 }

☃ Set some rules of the game ☃
player, hp <= 0 { .hp: 0, .dead }

☃ Drawing map is super easy ☃
{ map, dungeon-level1, cols: 20, rows: 10,
  tiles: "####################
          #...#.#...#....#.#.#
          #.#.....#...#....#.#
          #.#.#.#.###.####...#
          #.###...#.#..#...#.#
          #.....#............#
          ##.####...###.###..#
          ##...#..##.......###
          #..####............#
          ####################"
}

Demo game screenshots

Legend of Basement Legend of Basement
Legend of Basement Legend of Basement
Legend of Basement Legend of Basement
As always, all graphical assets done by myself.

Unfortunately, I stopped developing this idea further at this moment after several serious reformation/rethinking of the project.

To navigate all pages, please have your device in a landscape orientation.