Reaper Grimm
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom Editing > Voodoo Doll Boolean Switch
 
Author
All times are GMT. The time now is 15:17. Post New Thread    Post A Reply
EarthQuake
9.5 on the Richter!


Posts: 1462
Registered: 05-03


I need to create a system using conveyors and voodoo dolls in Boom that allows the voodoo doll to trigger a linedef action if a door is closed in it's path, and to perform another linedef action if the door is open.

I'm working on a project that requires a massive amount of voodoo dolls running along circuits much like that of a computer processor. The results from this switch system must be reliable, and the voodoo must pass through it quickly with relative ease.

I've exhaustively tried many combinations of things. The most obvious solution was to create the door with an angled wall so that when the voodoo doll collides with it, it is pushed over a bit following an alternate route. While it all seems simple in theory, it's quite difficult getting it set up to be reliable enough for my tasks.

1. The switch system must be able to pass a voodoo doll through multiple times per second, but not too fast as to cause the voodoo doll to clip through the linedef actions or teleport lines. The teleport lines are basically used to restart the system, teleporting the doll to the beginning so it may pass through it again.

2. The system must be reliable. When the door is closed, the first action must be activated, and only that one. When the door is open, only the second action must be activated. The door is the only way to influence the outcome of the system.

3. The system must use as few linedefs and sectors as possible. This is because the system will be copied and used hundreds of times in different parts of the map. Also, the larger and more complex it is, the longer it will take a voodoo doll to pass through it.

I'd rather not go into detail about what I'm working on, but it's a massive undertaking. Basically, if anyone can give some ideas on what I can do, please do.

Old Post 08-19-08 04:41 #
EarthQuake is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
kristus
Godlike/Doglike


Posts: 6313
Registered: 07-00


Why aren't you just making two conveyor belts? I dunno, I didn't sleep, but that seemed like the most obvious solution to me.

Old Post 08-19-08 05:21 #
kristus is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Creaphis
I will deliberately take a contrary position just for the sake of writing incredibly long arguments


Posts: 1296
Registered: 10-05


Hm, angled walls were the first idea that came to me too. It's a shame to hear those aren't reliable. Maybe another idea will come to me.

By the way, I've noticed that when a thing enters a scrolling sector it may get an extra boost of speed in some engines, which can also make conveyor belts unreliable. Just something to watch out for.

Old Post 08-19-08 06:43 #
Creaphis is offline Profile || Blog || PM || Email || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
esselfortium
Senior Member


Posts: 1823
Registered: 01-02



Creaphis said:
By the way, I've noticed that when a thing enters a scrolling sector it may get an extra boost of speed in some engines, which can also make conveyor belts unreliable. Just something to watch out for.

I believe this was the original Boom behavior for them. In ZDoom it doesn't occur by default, but I think there's a compatibility flag for it.

__________________
sl4.poned.com: Free Esselmusic
Esselmusic: The Album
Knee-Deep in KDiZD: Relive KDiZD, in doom2.exe: (WiP Page) (Doomworld Thread)

Old Post 08-19-08 07:08 #
esselfortium is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1084
Registered: 12-03


Not sure if this gives you any ideas, but this binary counter works:
http://www.doomworld.com/idgames/index.php?id=14480

__________________
Doom Builder 2 is coming!

Old Post 08-19-08 07:09 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Creaphis
I will deliberately take a contrary position just for the sake of writing incredibly long arguments


Posts: 1296
Registered: 10-05


Here. I made this.

http://www.zshare.net/download/1726749924f4ae47/

Hopefully, once optimized, it should do what you need.


Another possibility (perhaps a better one) would be to have the door on a teleport destination instead of directly in the voodoo doll's path. If the door is closed, the destination is blocked and the teleport line is ignored. Boom's line-to-line teleporters would work best for this.


Another edit: Nevermind, Boom's line-to-line teleporters don't take ceiling height into account (you can get trapped in the roof) so this would only work with the teleports that use teleport destination things, and the teleport delay limits the speed at which this switch could operate.

Last edited by Creaphis on 08-19-08 at 07:36

Old Post 08-19-08 07:18 #
Creaphis is offline Profile || Blog || PM || Email || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
EarthQuake
9.5 on the Richter!


Posts: 1462
Registered: 05-03


Wow, I had no idea you could do that with a scrolling floor. The problem with the design though, is that I would be required to tag each and every one of these mechanisms by hand, and with requiring so many in the entire map, it's going to get tedious. Also, I suspect that if your contraption was sped up (remember I need the doll to move very quickly), it would probably fly off the conveyor.

There isn't a need to make a seperate branch entirely, just enough for the voodoo doll to trigger a different linedef action. It's actually preferable in my case if it led into the same teleport linedef.

I just recently created what I was kind of looking for, although it has one problem.

Looks something like this:
code:
_ |T| | \ |D 1| |2 | \ | |_|


Where T is the beginning, D is the door, and 1/2 are the triggers. The conveyor moves at 512 speed, the player radius is 14, and the whole thing is 64w x 192h units. If the door is closed (it is triangular), the doll will activate linedef 1. If it's open, it will pass through to linedef 2. The voodoo doll currently moves through at about 2-3 times per second.

It currently uses 11 linedefs for the structure itself, 3 linedefs for the door, and 2 linedefs for each of the triggers. This doesn't count the teleport lines, which are shared between multiple systems like this.

That's 16 linedefs. But, when you multiply that by a minimum of 768, those numbers are daunting (like 12k linedefs). And that's probably only a third of these systems that I will require. It also doesn't count rest of the map.

So the system I just designed which has been the most efficient of them all so far, is not good enough. :(

Honestly, I just don't think it's possible. I will most likely have to find a different way of processing stuff so I can use less of these.

Old Post 08-19-08 07:50 #
EarthQuake is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Creaphis
I will deliberately take a contrary position just for the sake of writing incredibly long arguments


Posts: 1296
Registered: 10-05


Don't give up! I want this mysterious idea of yours to become reality.

And yeah, boomref.txt has some interesting stuff in it.

I don't know what your switch really looks like, but your ASCII diagram is in a shape that could fit together with itself quite nicely. You should be able to lower your linedef-per-switch count somewhat by sharing borders between switches.

Old Post 08-19-08 08:04 #
Creaphis is offline Profile || Blog || PM || Email || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Graf Zahl
Forum Legend


Posts: 4194
Registered: 01-03


If you have to stick to Boom features, no, there's no better way. I think you may be able to get down to 12 linedefs for the structure but I really can't see any way to get lower than that.

If you need such mechanisms in larger quantity, I'm sorry that real scripting is the only working alternative.

Old Post 08-19-08 08:07 #
Graf Zahl is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
EarthQuake
9.5 on the Richter!


Posts: 1462
Registered: 05-03



Creaphis said:
I don't know what your switch really looks like, but your ASCII diagram is in a shape that could fit together with itself quite nicely. You should be able to lower your linedef-per-switch count somewhat by sharing borders between switches.


I thought the same thing, but the part is, sharing linedefs means those linedef will be impassible and two-sided and the voodoo dolls tend to stick to impassible linedefs. Also, placing these in the map as rooms (as compared to pools as they previously were), would reduce the sidedef count. Merging them together wouldn't be productive in that case.

And Graf Zahl: The point of this project is to demonstrate something that possibly could have been done a decade ago with Boom. If this ever gets finished and working, it's going to be very memorable, even by today's standards.

I do appreciate what you guys have to say though.

Old Post 08-19-08 08:16 #
EarthQuake is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
gggmork
Member


Posts: 402
Registered: 06-07


I find this very interesting. I just used your suggestions to get it down to 8 lines each (for 4 separately controlled doors). But I use two triggers each (just to make a light blink so you can visually see which switch is working), so if you only need 1 trigger that's only 6 each. And probably less as you can continue sharing lines as you add more doors.

Still that's a hell of a lot of tedious tagging; if you don't have an easy way to make a program do the tagging for you, probably do 100 a day or something and it'll be done in 7 days.. Not really sure exactly what you want and it might need tweaking.

(edit: hmm, I read the comment about sidedef count as opposed to linedef count; I have 'impassible' lines but I guess they have 2 sidedefs. Also would it help if all those doll sectors had no linedef textures and a single tessellating white pixel or something for the floor and ceiling if that saves space. whatever, here's the link)

http://www.sendspace.com/file/l2gu7h

Last edited by gggmork on 08-22-08 at 02:56

Old Post 08-22-08 02:36 #
gggmork is offline Profile || Blog || PM || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
EarthQuake
9.5 on the Richter!


Posts: 1462
Registered: 05-03


Actually, that is not quite so bad, speedwise. It can be sped up a tremendous amount, but the only problem I see with it is your teleporting, which requires a butt load of more tags, as opposed to several line-to-line teleports stretched over multiple switches. However, it's tricky getting line-to-line teleporters to discard any side to side momentum that can build up and cause havoc at random. This was my main problem of using line-to-line teleporting.

I appreciate the help you guys are giving me, it's actually starting to get my brain thrown into the right gear. And by the way Creaphis, I cannot thank you enough for your wad, because it opened my eyes to the fact that doors can apply vectors to scrollers to change their speed and direction. I'm already using a system in my wad that takes advantage of this.

It gives a nice bouncing effect. ;)

Old Post 08-22-08 04:45 #
EarthQuake is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
Worst
Warming Up


Posts: 24
Registered: 09-07


If you end up with having to tag dozens of sectors, I'd suggest trying to build it with WadC, can save hours of tagging :)

Old Post 08-22-08 12:02 #
Worst is offline Profile || Blog || PM || Search || Add Buddy Report to mod || IP || Edit/Delete || Quote
All times are GMT. The time now is 15:17. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom Editing > Voodoo Doll Boolean Switch

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.

Forums Directory