Telwen
Member
Was wanting to ask a few questions as I'm wrapping up making a level and wanted to do another sweep of cleanup soon, but there's some questions either unanswered or solutions I think could be better.
OpenGL
This is probably the most apparent. I've had several times (and even now currently) where the level I make ends up having visual errors in OpenGL that Software doesn't have. The prime example being tears in the map. The most basic solutions I can come up with has just been to modify the terrain repeatedly until it goes away, but I'm sure there's some sort of reason why this comes up. Looking at the OpenGL article in the wiki doesn't seem to mention this but I do see basic tears in other accepted levels, just not something like an entire wall acting like a HOM even though it has a texture applied to it. Example is given below:
In Software:
In OpenGL:
Maybe something to do with wall angles or something to that effect? I'm not sure. Some guidance on how to avoid this would be appreciated.
Switch Coding
So in the map, I wanted to make a section where you needed to hit multiple switches to open a door. A basic switch to open one door is pretty simple, but there's no real basic way of making it so if you hit n switches it opens m doors and no option like this is really seen in any of the linedef options (the closest being trigger after X calls, which I use). So I'm not sure of an optimal way of doing this. I have a solution, but to me it seems so obtuse that there has to be a better way. Method is:
Create a sector which triggers after a tag is called two times, it will open a door. Make another sector with the tag attached to it, two sides of its linedef given the invisible, intangible linedef and place these sectors under the button so they cannot be touched through ways not touching the button. Give this sector the trigger when in sector property and give it the same tag as the tag needed to open the door. When the button is pressed, raise the ceiling of the invisible sector (so this happens to both buttons) high enough so it hits the player, and do this in less time than a second, and then in that exact amount of time move the sector back into the ground. That way the player, when pressing the button, is essentially hit with the sector once and can no longer hit it again. Once both buttons are pressed the flag is called twice and the door opens.
Watching this happen when the floor is set to translucent is amusing, but it makes me wonder if there's a more sensible way of doing this other than having invisible sectors hitting the player? It also doesn't help that it is entirely possible to stand on the switch in such a way that the button is pressed but you don't get hit by the sector at all. And if you make the sector that hits the player larger than the button sector its possible to make it call more than once making the door open after pushing only one button.
Busting Walls to Trigger Events
This one is a similar problem but less confusing. Basically there are moments in the level where you have to bust walls to progress in the level. Right now my idea is to place invisible, intangible sectors in the same place as the bustable wall, that way once someone busts the wall they have to hit the invisible sector too, right? Well, if you sort of tiptoe up to the wall with Knuckles, its entirely possible to bust a wall without hitting the invisible sector too. Obviously, if its any bigger then you can trigger the switch without busting the wall and it looks silly. Is there a way to basically make the game go "if this wall is busted, do this" more directly than that?
Busting One Wall Busts Two?
Another issue is tied to the above. There's one part where you bust a wall to set off a switch; however, its placed above "bars", meaning that the area in question is actually a mesh of two different sectors instead of just one, and the areas are close knitted together enough that you can't just cover up one without the other with bustable walls. The issue is that its easy to bust just one of the walls and not the others, and this looks silly. Is there a way to break a bustable wall remotely?
I think that's all of the problems I ran into. Thanks for any help that you can provide.
OpenGL
This is probably the most apparent. I've had several times (and even now currently) where the level I make ends up having visual errors in OpenGL that Software doesn't have. The prime example being tears in the map. The most basic solutions I can come up with has just been to modify the terrain repeatedly until it goes away, but I'm sure there's some sort of reason why this comes up. Looking at the OpenGL article in the wiki doesn't seem to mention this but I do see basic tears in other accepted levels, just not something like an entire wall acting like a HOM even though it has a texture applied to it. Example is given below:
In Software:
In OpenGL:
Maybe something to do with wall angles or something to that effect? I'm not sure. Some guidance on how to avoid this would be appreciated.
Switch Coding
So in the map, I wanted to make a section where you needed to hit multiple switches to open a door. A basic switch to open one door is pretty simple, but there's no real basic way of making it so if you hit n switches it opens m doors and no option like this is really seen in any of the linedef options (the closest being trigger after X calls, which I use). So I'm not sure of an optimal way of doing this. I have a solution, but to me it seems so obtuse that there has to be a better way. Method is:
Create a sector which triggers after a tag is called two times, it will open a door. Make another sector with the tag attached to it, two sides of its linedef given the invisible, intangible linedef and place these sectors under the button so they cannot be touched through ways not touching the button. Give this sector the trigger when in sector property and give it the same tag as the tag needed to open the door. When the button is pressed, raise the ceiling of the invisible sector (so this happens to both buttons) high enough so it hits the player, and do this in less time than a second, and then in that exact amount of time move the sector back into the ground. That way the player, when pressing the button, is essentially hit with the sector once and can no longer hit it again. Once both buttons are pressed the flag is called twice and the door opens.
Watching this happen when the floor is set to translucent is amusing, but it makes me wonder if there's a more sensible way of doing this other than having invisible sectors hitting the player? It also doesn't help that it is entirely possible to stand on the switch in such a way that the button is pressed but you don't get hit by the sector at all. And if you make the sector that hits the player larger than the button sector its possible to make it call more than once making the door open after pushing only one button.
Busting Walls to Trigger Events
This one is a similar problem but less confusing. Basically there are moments in the level where you have to bust walls to progress in the level. Right now my idea is to place invisible, intangible sectors in the same place as the bustable wall, that way once someone busts the wall they have to hit the invisible sector too, right? Well, if you sort of tiptoe up to the wall with Knuckles, its entirely possible to bust a wall without hitting the invisible sector too. Obviously, if its any bigger then you can trigger the switch without busting the wall and it looks silly. Is there a way to basically make the game go "if this wall is busted, do this" more directly than that?
Busting One Wall Busts Two?
Another issue is tied to the above. There's one part where you bust a wall to set off a switch; however, its placed above "bars", meaning that the area in question is actually a mesh of two different sectors instead of just one, and the areas are close knitted together enough that you can't just cover up one without the other with bustable walls. The issue is that its easy to bust just one of the walls and not the others, and this looks silly. Is there a way to break a bustable wall remotely?
I think that's all of the problems I ran into. Thanks for any help that you can provide.