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

WadC Community Project?

Recommended Posts

How about making UDMF maps? Coding-wise, it shouldn't be very difficult.

Share this post


Link to post
GreyGhost said:

They said it couldn't be done (actually, no-one's said anything), they said I was crazy (that's probably common knowledge), but after days of boiling brain cells I probably can't spare - IT'S FINISHED - for now.


I like this a lot. Can I include it in WadC as an example? (licensed the same way as WadC?) - I will make some improvements to it and explain them in this thread. Right now though glbsp isn't happy with the result :)

Gez said:

How about making UDMF maps? Coding-wise, it shouldn't be very difficult.


I confess I've never even looked at UDMF. I think I saw the initial conversation and quickly got turned off by some of the suggestions. Scanning the spec now, I've stopped at "Multi-line comments may not be nested." Urgh. Doomed to repeat mistakes of the past!

Share this post


Link to post

The syntax was deliberately as simple as possible to make implementation easier. What's so important about having /* /* */ */ anyway? C/C++ doesn't support it either.

Share this post


Link to post
Gez said:

The syntax was deliberately as simple as possible to make implementation easier. What's so important about having /* /* */ */ anyway? C/C++ doesn't support it either.


Yes exactly. And people have complained about that for decades. That's why so much C/C++ code uses #if 0 / #endif (which you can nest) for comments.

I haven't read the UDMF spec in any depth so I can't comment on it as a whole. I just skimmed it and that red flag jumped out at me.

Share this post


Link to post

A big difference, however, is that you're not really supposed to write UDMF code by hand. You can put comments so that it's easier to debug (like having your program output thing/sector/vertex/etc. numbers or other information), but you're not going to manually add comments anyway. Requiring parsers to count levels of nested comments would have been complexifying the standard for a mostly useless feature. None of the structures are nested.

Share this post


Link to post
Jon said:

I like this a lot. Can I include it in WadC as an example? (licensed the same way as WadC?)

Be my guest, I've no objections to the source being GPL'd.

I will make some improvements to it and explain them in this thread. Right now though glbsp isn't happy with the result :)

I wonder if glbsp isn't happy with the environment it's working in. ZenNode and zdbsp both worked for me, though ZenNode tends to drop finished wads into the src directory.

Share this post


Link to post
GreyGhost said:

I wonder if glbsp isn't happy with the environment it's working in. ZenNode and zdbsp both worked for me, though ZenNode tends to drop finished wads into the src directory.


Figured this out. The issue was actually changing the lump order. I've backed that change out for now and will revisit it soon.

I've made the first change to entryway: introducing a 'tekwall' function to remove some of the repetitive sections which alternate from tekgren2 to tekgren5:

http://github.com/jmtd/wadc/commit/197d71690c5f1d26d3c1e9b874c54761809caa19

Share this post


Link to post
Jon said:

Figured this out. The issue was actually changing the lump order. I've backed that change out for now and will revisit it soon.

I've made the first change to entryway: introducing a 'tekwall' function to remove some of the repetitive sections which alternate from tekgren2 to tekgren5:

http://github.com/jmtd/wadc/commit/197d71690c5f1d26d3c1e9b874c54761809caa19


EDIT: various other fixes, that tekwall fn was totally wrong as showns above :) http://github.com/jmtd/wadc/commit/90b153c275377b8a59fcfcc3fe68dba9662bd4dc corrects it.

fixes include the impassable and midtex 2s lines, brings me to http://github.com/jmtd/wadc/blob/cf22c51142d155942b0d5f07bdc9c8894a419835/examples/entryway.wl

Share this post


Link to post

Heard there was interest in mapping in text around these parts. It was suggested to me that I should mention a project here that I've been working on for a while: http://github.com/DavidPH/DH-dlc

It has a very different syntax from WadC (which I hadn't heard of until well into DH-dlc). It supports UDMF, Doom, Hexen, and Strife (different thing flags) format, nested comments, compound objects (configurable prefab geometry), expressions, and a few other things. Custom functions should be coming soon.

It is a purely command-line utility, so it doesn't allow for previewing except by compiling and running the map.

Slightly outdated Windows binaries are available here: http://forum.zdoom.org/viewtopic.php?f=19&t=25016

Of course, WadC has its merits. But I think that DH-dlc has a lot to offer this project.

Share this post


Link to post
DavidPH said:

Heard there was interest in mapping in text around these parts. It was suggested to me that I should mention a project here that I've been working on for a while: http://github.com/DavidPH/DH-dlc


Looks interesting, thanks for sharing! I will definitely take a look at this, this week.

From my brief scan, I think adding subroutine support (or functions - I try to avoid using that word if I'm not talking about pure functions) would make it a lot more useful. I can't imagine building anything non-trivial without an abstraction tool.

Share this post


Link to post

Well, I did finally add the ability to define custom functions. But abstraction is really left to compound objects. In theory, a good library of compound objects would allow you to quickly build large, complex maps. (A tautology, I suppose, since that's what would make it a good library.) For instance, if you use the ZDoomDoor compound object from map-libs, you can easily swap it out for ZDoomPolyDoorSlide with very little hassle or probably any other door if I end up adding any (the compound objects in map-libs are mostly just meant to be examples and starters, not all-encompassing).

Share this post


Link to post

Not to burst any bubbles but the map01 entryway stuff is just one long program. It does not really show what WadC does and can help the argument that WadC is less productive and simple to the point of requiring more work. I don't know if WadC has functions but you could move each room to a seperate function and call those functions, then use loops and other stuff to recreate the rest of the level.

Share this post


Link to post
GhostlyDeath said:

Not to burst any bubbles but the map01 entryway stuff is just one long program.

That's what happens when you allow a tool like WadC to fall into the hands of non-programmers like myself. :P
Entryway was a personal challenge and I knew they'd be plenty of scope for optimization, which Jon will probably do as and when the mood strikes.

Share this post


Link to post
GhostlyDeath said:

Not to burst any bubbles but the map01 entryway stuff is just one long program. It does not really show what WadC does and can help the argument that WadC is less productive and simple to the point of requiring more work.

It is a work in progress. It is indeed quite long. I would like it to be as short as possible, but as long as is necessary, to be easy for a human to comprehend. this commit last night makes quite an impact on the length.

There are a few WadC language features that can be used to help make it easier to comprehend, and shorter. The next thing I want to look at is removing some of the large move/step functions that leap around the map and replacing them with anchors. There's also some double-tracing going on in places which could be simplified. I also hope to harness/demonstrate the autotexturing rules.

GreyGhost, I see you were following Aard's advice there by wrapping the bot/mid/top calls inside functions, but I actually disagree with that advice (and might remove it from the documentation). I don't think it makes the code any more legible. In fact whilst working on the chainsaw area, I found it hard to know whether a function was setting the mid or bottom texture. So I unwound them all :)


I don't know if WadC has functions

Erm... well quite fundamentally it does. I don't quite know how you could have read the script to come to your above conclusion and not learn that wadc has functions along the way. Please read up on wadc in order to usefully contribute to this thread.

but you could move each room to a seperate function and call those functions,

That may help comprehension because you can ignore the details of one room and focus on the higher-level inter-connectivity, yes.

then use loops and other stuff to recreate the rest of the level.

There's some savings that can be made (the tekwall function I introduced is one example) but since the layout we are recreating is essentially 'hand drawn' there's a limit to how much it can be replaced with loops and such.

Whilst working on this I have noticed, 15 years later, that the window area is blatantly a penis.

Share this post


Link to post

I would just like to say that I have successfully cross-compiled a Windows build of DH-dlc. It can be found on DavidPH's git repository here:
http://github.com/downloads/DavidPH/DH-dlc/DH-dlc-20100629.7z

If anyone could test this and provide some feedback that would be great :) So far DH-dlc has ONLY been extensively tested in Linux. I have tested this build in Wine and so far everything works, but something may have been missed.

EDIT: WHOOPS. Yeah I meant Linux :/

Share this post


Link to post

I think what he meant to say was that it has only been tested in Linux (Ubuntu, specifically). Other than that, everything he said is true.

Share this post


Link to post

I think it's perhaps time we stopped derailing this thread, so I've created some threads elsewhere for discussion of the tools:

So, back to the subject of a wadc community project :)

I would suggest single player focussed, boom compatible ports, aim for 9 levels (but that depends entirely on how many people are interested). I am interested in doing one level to start with.

The aim should be to create fun maps that do not look like slige spat them out.

Share this post


Link to post

Count me in. <wanders off to consult the Map idea generator>

Jon said:

GreyGhost, I see you were following Aard's advice there by wrapping the bot/mid/top calls inside functions, but I actually disagree with that advice (and might remove it from the documentation). I don't think it makes the code any more legible. In fact whilst working on the chainsaw area, I found it hard to know whether a function was setting the mid or bottom texture. So I unwound them all :)

I was, though having seen the difference I don't think I'll texture maps that way again.

Whilst working on this I have noticed, 15 years later, that the window area is blatantly a penis.

You mean it wasn't just his heart and soul that Sandy Petersen put in his work? :D

Share this post


Link to post
GreyGhost said:

Count me in. <wanders off to consult the Map idea generator>

I was, though having seen the difference I don't think I'll texture maps that way again.

You mean it wasn't just his heart and soul that Sandy Petersen put in his work? :D


It's only recently occurred to me how the quality of mapping in doom2 is generally a lot worse than doom. I realise most people probably had this epiphany a long time ago. But MAP01 is so much poorer than E1M1 it's amazing. I'm now convinced that iD figured they didn't need to deliver a fun game, just an engine for PWADs. It's so weird how the SSG and all the extra monsters fit in so well and add so much to the game, considering the environment they are presented in is so average. Having said that, I think the first 'episode' is generally well designed, and I also particularly like 7, 10, 11, 16, and when pushed, 23. But I think 12 in particular but also many of the later levels are really poor.

Share this post


Link to post
Guest DILDOMASTER666

Ok, I've finally gotten around to sitting down and reading up on how to use WadC, and I must say, I really like it. That being said, if jute and anyone else are still interested in pulling together a WadC community project, I'll gladly hop aboard.

Share this post


Link to post
Jon said:

Whilst working on this I have noticed, 15 years later, that the window area is blatantly a penis.


Freud would have loved to hear this.

I scoped map01 over and over and I see nothing that resembles a penis until I was pointed out to it in IRC. Obviously it is just a coincidence. off topic be damned, the record must be set straight here. I don't want an idiot adding that into the wiki citing that post as a source. :P

Share this post


Link to post
Csonicgo said:

Freud would have loved to hear this.

I scoped map01 over and over and I see nothing that resembles a penis until I was pointed out to it in IRC. Obviously it is just a coincidence. off topic be damned, the record must be set straight here. I don't want an idiot adding that into the wiki citing that post as a source. :P


Well, you are no more an authority on the matter than I, so I don't think it's obviously a coincidence. Either of us could be right, but neither of us are certainly so.

Share this post


Link to post

I've been away in Gloucestershire for the last 5 days and mostly offline. I thought it would be a good opportunity to have a stab at a wadc map for this project. I've only managed about 30 minutes unfortunately (spent at least that trying/failing to get BSP tools etc working on this macbook air I borrowed), but here's the result so far

http://www.staff.ncl.ac.uk/jon.dowland/tmp/sewer.h

I haven't even played this since I can't build the nodes. I doubt it's very exciting since I haven't done any floor/height/texturing/light variations at all. I've largely been re-working a WIP map I had many years ago from memory. It is loosely inspired by Doom2 MAP02.

Share this post


Link to post

The second and third column sectors created by sewerbars appear in-game as HOMs, so I made a small addition to that function.

sewerbars() {
  sewerpipe(64)
  move(-64)
 !sewerbars
 movestep(0,56)
 for(1,3,
    pushpop(
      movestep(24,0)
      ibox(0,0,160,24,24)
      popsector
    )
    movestep(0,64)
  )
  ^sewerbars
  move(64)
}
Could do with some texture alignment in the curves but apart from that I like it - here's a 1280x800 screenshot

EDIT - Using an xoff value of -1 in the curve commands fixed their alignment issues.

Share this post


Link to post

Thanks for catching the popsector issue!

File updated. Not a great deal new: implemented triggered door opening and variable floor heights. I think I'm going to scale the size of the corridors down a bit.

Edit: file updated. width of the corridors now controlled by a variable "sewerwidth" and all the functions have been adjusted to use this. Fixed the proportions of the bars. The new sizes mean the bars actually block you. Textured the bars and some doortrack, but mostly as a distraction as I haven't begun styling the level at all yet.

I discovered this: look familiar? :)
http://git.savannah.gnu.org/cgit/freedoom.git/tree/levels/jond/map02.wl
alas, "pipes.wl", containing most of the code, is not present.

Share this post


Link to post

I was just thinking, I'm quite enjoying this (although I haven't touched it in a week or so), but a megawad needs more than one level. I guess we've got the entryway rework too, which is pretty interesting. But is anyone else remotely interested?

Share this post


Link to post

What WadC needs I guess is an online tutorial (such as an article on the Doom wikia), to show to those lukewarm about it how it works, what are its strengths and its weaknesses.

I know, I know, there's doc and examples bundled with it. But you have to download it and look at it. It's a lot more non-committal to look at that stuff directly in the browser, so it'd offer more visibility to potentially interested parties.

Share this post


Link to post

I just got this idea-

Could WadC be combined with a more graphical editor? That way, people could still draw their maps by hand, but would be able to use scripts for WadC to handle things that or difficult/tedious/repetitive to do by hand. The sewer bars is actually a good example of this. It could also be useful for drawing/detailing symmetrical rooms, putting borders on rooms, building custom staircases/lifts/doors automatically... etc. It sounds like it could be incredibly useful.

Share this post


Link to post
Guest DILDOMASTER666
bgraybr said:

I just got this idea-

Could WadC be combined with a more graphical editor? That way, people could still draw their maps by hand, but would be able to use scripts for WadC to handle things that or difficult/tedious/repetitive to do by hand. The sewer bars is actually a good example of this. It could also be useful for drawing/detailing symmetrical rooms, putting borders on rooms, building custom staircases/lifts/doors automatically... etc. It sounds like it could be incredibly useful.


WadC allows you to draw by hand, fyi. You'll have to figure out how that works for yourself, though.
;)

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
×