Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Jon

Liquorice - new doom editing language, sorta

Recommended Posts

I've just pushed an iniitial release of something I've been poking at in private for (it turns out) a couple of years

 

Liquorice is a system (specifically: A library for the Haskell programming language, impementing an embedded domain-specific language) for algorithmically generating Doom maps from code.


It closely resembles WadC which strongly influences it, but it departs in a few ways. I've written it mostly as a what-if but now that I have something that actually works, I think it will be an interesting platform for me (at least) to explore some other ideas I've got. So erm stay tuned for those I guess

 

The code: https://github.com/jmtd/liquorice

Example program: https://github.com/jmtd/liquorice/blob/master/birds.hs

Based on this existing WadC program: https://redmars.org/wadc/examples/#_birds_wl

 

That Liquorice program generates a PWAD for limit-removing ports, Doom 1, E2M8. Here' it is  with nodes: https://redmars.org/liquorice/birds.zip

 

Everything is up in the air and subject to change. Feedback appreciated. Enjoy!

Share this post


Link to post

Could you give some concrete examples of things you can do with Haskell/Liquorice that you couldn't with WadC? For example, you wrote on the GitHub readme.md that you get full access to the context, but what does that actually mean for map-making?

Share this post


Link to post

Good question. I guess the best way to demonstrate that would be in examples. There are a couple of small examples in the “birds” map that I should add comments around, particularly because you can point straight at the wadc version in comparison. But I should add more examples.

 

I actually cut something from “birds” which is impossible in wadc because it exposed a bug I haven’t fixed relating to xoffs on 2s lines, so I might bring that back when I fix the bug. 

 

Broadly, the advantage is that, in wadc, once a line is drawn, that’s it, it’s set in stone: but here, you can go back in and manipulate anything. So you could have one set of routines that drew some regular rooms, say, and some other code that went back and warped already drawn lines around some gravity coordinate, or something similar. Also cutting and deleting existing shapes.

Share this post


Link to post

I am completely anxious to check this out!

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×