Commented 9 months ago2024-03-29 00:33:48 UTC
in journal: Objective designComment #106096
Yeah, my current idea, subject to change, is some sort of abandoned factory taken over and fortified by the combine. Industrial buildings are already semi-restricted by nature; they're not super fortified like an army base, but they're built by nature as spaces that are only open for a limited set of people (employees, contractors, etc), so that'd lend itself well to repurposing. Two main entrances and exits (main/employee entrance, loading bay), and enough stuff that could be snuck into (the usual ventilation system, drainage, etc.). I gotta think some more about what it could actually contain though.
Commented 9 months ago2024-03-28 09:56:50 UTC
in wiki page: momentary_rot_buttonComment #106092
Findings:
Door hack flag makes the entity un-use-able but solid (default is useable but not solid)
Not useable flag has no effect [not implemented?]
[bug] the entity only works well with positive distance (clockwise opening). Negative distance makes the internal value "start open". The linked momentary_door will always be opening when the momentary_rot_button moves clockwise and vice versa.
solution: have all linked momentary_rot_buttons have positive distance, and rotate the entity's yaw 180 degrees to make it spin counterclockwise (and now lighting needs to be taken to consideration)
[bug] [Related with negative distance also,] if there are 2 or more linked momentary_rot_buttons and the other has different signed distance then the other button will keep spinning past the end (and the internal ratio value would go past the 0 ≥ x ≥ 1 range)
solution: same as above
If 2 or more linked momentary_rot_buttons have different distance/speed the one being USEd will dictate the speed and distance of the others. Then when it reaches the full distance all the others will snap to their fully opened/closed positions.
As per RUST: Creating Proximity Doors triggering the momentary_rot_button every 0.1s does move it at the prescribed speed, but if "auto return" is not set it'd just continually ping-pong between opening and closing.
[2024-06-05]
This is common knowledge amongst pro mappers but the momentary_* setup is used on Uplink and Blue Shift for the dialing-in sequences through an off-the-playable-area setup where the momentary_doors push a func_pushable through several trigger_multiples that have "pushables" flag set. One of them is the "correct, dialed in" position, the others unset it.
One very basic application for this that I can think of is replicating HL2 Route Kanal sliding gate setup locking at its open position by having a trigger_once at the very end of the momentary_door, and when the func_pushable touches it, kills the momentary_* entities and replaces them with func_wall_toggles of the setup frozen at their final positions.
Commented 9 months ago2024-03-26 01:06:50 UTC
in wiki page: activatorComment #106087
In vanilla SDK, there is no way for any entity to specify the activator in the target field. However in Spirit of Half-Life, Sven Coop, and Featureful, you can use these special names:
Commented 9 months ago2024-03-25 22:03:56 UTC
in journal: Objective designComment #106085
You say that you've written yourself into a corner, but really the planning phase is where it's the least hassle to adapt your plans. Better to make changes at this stage than when you've got a fully detailed and scripted map that you then realise doesn't make sense.
The planning phase is where you draft the overall play through steps, think up a theme and the kinds of engagements you want the player to have. The block out phase is where you work on a very basic layout with some mock up encounters throughout and can easily make changes if something doesn't work the way you intended.
Neither of these phases are "easy," but they are when the map is at its most adaptable.
As for your current theme, the combine facility in an urban environment accessible to citizens, that certainly wouldn't be a secret. What it would be however, is fortified. The United Nations building in New York isn't a secret, but it's not exactly inviting people in either. There could be a secret entrance though.
I wonder does this Method Possibly Work with The default studiomdl from the Half-Life SDK for WON Half-Life? (Even though I have the Seven Co-op studiomdl due to it being in the Half-Life Absolute Zero Development Drive)
I've started writing my level design briefs. It's actually how they managed things over at Slipgate Ironworks. Everyone was assigned a level and given some key points (map introduces these 2 enemies, map introduces these new weapons, etc). Level designers then had two weeks to plan their map out entirely on paper (or in confluence), before getting that signed off and starting on the blockout phase.
The documentation would be divided up into segments with the occasional rough sketch of the layout.
WE TRUE HOMIES
WE RIDE TOGETHER
WE DIE TOGETHER
Send this GUN to everyone you care about including me if you care. See how many times you get this, if you get 13, you're A TRUE HOMIE!
If you care about me, please send it to me. I only need one more to hit 13 and achieve my dream of becoming a TRUE HOMIE 🙏
For my project "The World Machine" I drew the maps beforehand in an isometric view. Always concerned about how the player shall traverse the rooms and hallways. It turned out that this workflow works for me at least. When actually making the maps there was always room for changes from the initial drawing concept. Don't be too rigid.
Commented 9 months ago2024-03-19 10:40:20 UTC
in vault item: cs_sarajevo testingComment #106074
I got in contact with the original author He sent me everything from testing. Sadly, as he said, it's not the complete map, it's mutliple maps with certain parts of it as it was impossible to compile back then. I tried talking to a guy who compiles maps but he didn't have the time. Don't know will we ever see this amazing piece of work in full spirit.
Planning a map isn't only done by sketching ideas, but definitely can be done by just writing down ideas or even writing it as a kind of story.
In fact, writing down ideas is always a good thing to do as it helps preventing you from forgetting about it, and even if it gets unused in your current project it can be archived in an "idea bucket" where you can come back to later on to reuse ideas for new/other projects.
Myself, I like to do a combination. I start out writing down the main ideas and keywords etc I have for a project, and try to write a story of what I want to happen in the project, and sketch out things I have a visual idea for to help remembering it and to start fleshing out details I didn't think of first.
I can tangentially relate to this. I mapped for Far Cry 1 for a while which was an entirely different beast to GoldSRC.
One excelled at scripting and sequences (there was literally a keyframe-based sequence editor), and the ability to create new types of NPCs, weapons & vehicles just by editing some text files. And of course, very large open spaces with lots of vegetation.
The other excelled at its ease of creating unique set pieces and richness in player interaction. I've wanted the best of both worlds for a while.
I've seen bits and bobs of Arma 3 modding so I totally kinda get what you're saying. Hopefully your venture with VScript goes well!
I think the map's cool, but I also think the CS:S assets (from Inferno I think?) kinda clash with the HL2 assets from a style perspective. Along with that really green grass texture which I don't think fits with most of the desaturated HL2 materials.
Architecture: As a non mapper I can say that this seems like really good brushwork to me. Not as detailed as the new maps, more similar to the Vanilla maps. But that's the point of the contest isn't it? I really can't find something to criticize.
Texturing: Mostly the same as the architecture. There are some textures that are used a little too often in the map but overall I have to say there is not much to critize about this.
Ambience: Sound design is chosen quite well, with the wind blowing. Very fitting with the skybox and general setting of the map. Also, the car's engine makes it's own ambient sound which is quite appreciatable. Perfect for this map, although the wind gets a bit annoying after a while. But that shouldn't be a problem while playing.
Gameplay: Can't really say much about this as I didn't get to test it with people, but traversing the map felt very fluid (I guess), and I imagine this map probably plays well.
Overall, this is a really nice map, that I would definitely play in deathmatch.
Commented 9 months ago2024-03-12 10:22:08 UTC
in wiki page: func_pushableComment #106062
Just to answer that age-old question that has been left unanswered for so long here:
The Hull Size (size) determines which of the three cliphulls to test its own collisions against.
This is why a big pushable using HULL1 or HULL3 might be clipping into world geometry when pushed around.
("Am I colliding with the world?" from the pushable's perspective).
This isn't the same sort of collisions as when a player is touching/climbing the pushable, in which case it's the player testing collisions against the pushable's own cliphulls, which are similar to its shape regardless of size.
("Am I colliding with the pushable?" from the player's perspective).
Commented 9 months ago2024-03-11 14:22:23 UTC
in wiki page: func_pendulumComment #106061
Just posting it here as well for convenience:
Linear Pendulum trick
If you want to simulate a linear pendulum (e.g. a weight on a spring that bobs up-and-down or side-to-side) you can do so by placing the ORIGIN brush at a distance far away from the pendulum.
To find the values to be given to the func_pendulum for a given length of oscillation you can use the equation A = 2 × sin⁻¹(h / d)
where h is how far from the center the pendulum should oscillate (half the total distance), d is how far the center of the ORIGIN is from the center of the pendulum,
and A is the resulting angle we will use for Distance (distance).
To make sure it oscillates properly we also need to set negative half A to Pitch Yaw Roll (angles) in the appropriate axis.
As for the Speed (speed) you'd want a value that's near A, otherwise it'll move too fast (as the origin is so far away, small changes in the angle results in great changes in position of the pendulum).
As an example, let's say we have a pendulum we want to move up-and-down by 32 units in the Y/Z plane. We create our pendulum and set the ORIGIN brush to be 7300 units away along the Y axis and we use the equation to find A = 2 × sin⁻¹(32 / 7300) ≈ 0.5°.
So for our func_pendulum we set Distance to 0.5, Pitch Yaw Roll to 0 0 -0.25, Speed to 0.2, and we set the Start on and X-axis flags.
Note:
Make sure to set your calculator to use degrees, not radians
Commented 9 months ago2024-03-11 06:35:21 UTC
in vault item: BoredComment #106059
I found a server that has cardboard maps, just not this exact map. High probability it's using textures from this map. Very cool concept overall. I just wish more servers host cool maps.
Commented 9 months ago2024-03-10 12:41:05 UTC
in vault item: dm_deltalabsComment #106055
Very neatly.
In some parts of the map, quite empty.
I would suggest considering the option of using luminous textures instead of lights (imho - more realistic lighting).
Commented 9 months ago2024-03-10 00:07:59 UTC
in wiki page: Tutorial: Coding FogComment #106053
@FranticDreamer
That is not true, latest version of HL engine still uses Legacy GL functions but has shader compatibility. The reason why this tutorial doesn't work is that the shaders DON'T know if glEnable(GL_FOG) is run, it just is impossible. To make this tutorial work, theoretically you should replace glEnable(GL_FOG) with something like glUniform1i(glGetUniformLocation(SHADERID, "fogEnabled"), (int)true) but I have ZERO clue on how to find SHADERID atm.
There is also an alternative method, you will have to modify the shader code for your mod though; which should be in "Half-Life/platform/gl_shaders/fs_world.frag". Replace uniform bool fogEnabled with layout(location = 0) uniform bool fogEnabled. Now go back into your code and replace every glEnable(GL_FOG) with glUniform1i(0, (int)true) and obviously replace every glDisable(GL_FOG) with glUniform1i(0, (int)false).
(And yes, I don't know how to reply lol)
My goldsource days are likely over but if I ever decide to go back I know where to go for prefabs ^^
0 ≥ x ≥ 1
range)[2024-06-05]
This is common knowledge amongst pro mappers but the momentary_* setup is used on Uplink and Blue Shift for the dialing-in sequences through an off-the-playable-area setup where the momentary_doors push a
func_pushable
through severaltrigger_multiples
that have "pushables" flag set. One of them is the "correct, dialed in" position, the others unset it.One very basic application for this that I can think of is replicating HL2 Route Kanal sliding gate setup locking at its open position by having a
trigger_once
at the very end of the momentary_door, and when the func_pushable touches it, kills the momentary_* entities and replaces them withfunc_wall_toggles
of the setup frozen at their final positions.Images are more worth than thousand words...
!activator
(SC, Featureful)*locus
(SoHL, Featureful)The planning phase is where you draft the overall play through steps, think up a theme and the kinds of engagements you want the player to have. The block out phase is where you work on a very basic layout with some mock up encounters throughout and can easily make changes if something doesn't work the way you intended.
Neither of these phases are "easy," but they are when the map is at its most adaptable.
As for your current theme, the combine facility in an urban environment accessible to citizens, that certainly wouldn't be a secret. What it would be however, is fortified. The United Nations building in New York isn't a secret, but it's not exactly inviting people in either. There could be a secret entrance though.
I'm currently trying to compile the Early Python - https://combineoverwiki.net/wiki/File:357_beta.jpg RPG - https://combineoverwiki.net/wiki/File:Rpg_view_E3_1998.png and E3 Shotgun - https://combineoverwiki.net/wiki/File:Spas_view_E3_1998.png (Which were in the 2023 HL: Source Repo Leak even though the RPG's Mesh Has been in the SDK - https://web.archive.org/web/20190612095724mp_/https://forum.facepunch.com/games/sqrb/VALVE-CUT-CONTENT-V2-1-Digging-through-Valve-s-trash-since-2003/23/#postnqcrp plus the Worldmodel) and the MP5 that was in the SDK - https://combineoverwiki.net/wiki/File:Sdk_smg_view.png with the 0.52 Alpha Textures (I'm using Overwiki Photos since I can't attach my kwn pictures unless I upload them to an external Hosting Site) but I couldn't get the MP5 and Phython to compile (e.g. the Console outputs "forcedperspective.smd doesn't exist") Even with Crowbar so I'm wondering do i need to put <library2> at the Start of the Options even if I'm compiling for the WON Version?
The documentation would be divided up into segments with the occasional rough sketch of the layout.
that is some good review
....../ `---___________----_____] = = = = = D
.....==o;;;;;;;;______.:
.....), ---.((_) /
....// (..) ), ----"
...//___//
..//___//
.//___//
WE TRUE HOMIES
WE RIDE TOGETHER
WE DIE TOGETHER
Send this GUN to everyone you care about including me if you care. See how many times you get this, if you get 13, you're A TRUE HOMIE!
If you care about me, please send it to me. I only need one more to hit 13 and achieve my dream of becoming a TRUE HOMIE 🙏
example
In fact, writing down ideas is always a good thing to do as it helps preventing you from forgetting about it, and even if it gets unused in your current project it can be archived in an "idea bucket" where you can come back to later on to reuse ideas for new/other projects.
Myself, I like to do a combination. I start out writing down the main ideas and keywords etc I have for a project, and try to write a story of what I want to happen in the project, and sketch out things I have a visual idea for to help remembering it and to start fleshing out details I didn't think of first.
One excelled at scripting and sequences (there was literally a keyframe-based sequence editor), and the ability to create new types of NPCs, weapons & vehicles just by editing some text files. And of course, very large open spaces with lots of vegetation.
The other excelled at its ease of creating unique set pieces and richness in player interaction. I've wanted the best of both worlds for a while.
I've seen bits and bobs of Arma 3 modding so I totally kinda get what you're saying. Hopefully your venture with VScript goes well!
Texturing — 8
Ambience — 9
Lighting — 7
Gameplay — 7
QUICK REVIEW
Architecture: As a non mapper I can say that this seems like really good brushwork to me. Not as detailed as the new maps, more similar to the Vanilla maps. But that's the point of the contest isn't it? I really can't find something to criticize.Texturing: Mostly the same as the architecture. There are some textures that are used a little too often in the map but overall I have to say there is not much to critize about this.
Ambience: Sound design is chosen quite well, with the wind blowing. Very fitting with the skybox and general setting of the map. Also, the car's engine makes it's own ambient sound which is quite appreciatable. Perfect for this map, although the wind gets a bit annoying after a while. But that shouldn't be a problem while playing.
Gameplay: Can't really say much about this as I didn't get to test it with people, but traversing the map felt very fluid (I guess), and I imagine this map probably plays well.
Overall, this is a really nice map, that I would definitely play in deathmatch.
blackmesascientist
Very good journal 10/10
The Hull Size (size) determines which of the three cliphulls to test its own collisions against.
This is why a big pushable using HULL1 or HULL3 might be clipping into world geometry when pushed around.
("Am I colliding with the world?" from the pushable's perspective).
This isn't the same sort of collisions as when a player is touching/climbing the pushable, in which case it's the player testing collisions against the pushable's own cliphulls, which are similar to its shape regardless of size.
("Am I colliding with the pushable?" from the player's perspective).
Linear Pendulum trick
If you want to simulate a linear pendulum (e.g. a weight on a spring that bobs up-and-down or side-to-side) you can do so by placing the ORIGIN brush at a distance far away from the pendulum.To find the values to be given to the func_pendulum for a given length of oscillation you can use the equation
A = 2 × sin⁻¹(h / d)
h
is how far from the center the pendulum should oscillate (half the total distance),d
is how far the center of the ORIGIN is from the center of the pendulum,and
A
is the resulting angle we will use for Distance (distance).To make sure it oscillates properly we also need to set negative half
A
to Pitch Yaw Roll (angles) in the appropriate axis.As for the Speed (speed) you'd want a value that's near
A
, otherwise it'll move too fast (as the origin is so far away, small changes in the angle results in great changes in position of the pendulum).As an example, let's say we have a pendulum we want to move up-and-down by 32 units in the Y/Z plane. We create our pendulum and set the ORIGIN brush to be 7300 units away along the Y axis and we use the equation to find
A = 2 × sin⁻¹(32 / 7300) ≈ 0.5°
.So for our func_pendulum we set Distance to 0.5, Pitch Yaw Roll to
0 0 -0.25
, Speed to 0.2, and we set the Start on and X-axis flags.lights.rad
,info_texlights
, orlight_surface
?In some parts of the map, quite empty.
I would suggest considering the option of using luminous textures instead of lights (imho - more realistic lighting).
Or I dunno... favourite soup
That is not true, latest version of HL engine still uses Legacy GL functions but has shader compatibility. The reason why this tutorial doesn't work is that the shaders DON'T know if
glEnable(GL_FOG)
is run, it just is impossible. To make this tutorial work, theoretically you should replaceglEnable(GL_FOG)
with something likeglUniform1i(glGetUniformLocation(SHADERID, "fogEnabled"), (int)true)
but I have ZERO clue on how to find SHADERID atm.There is also an alternative method, you will have to modify the shader code for your mod though; which should be in "Half-Life/platform/gl_shaders/fs_world.frag". Replace
uniform bool fogEnabled
withlayout(location = 0) uniform bool fogEnabled
. Now go back into your code and replace everyglEnable(GL_FOG)
withglUniform1i(0, (int)true)
and obviously replace everyglDisable(GL_FOG)
withglUniform1i(0, (int)false)
.(And yes, I don't know how to reply lol)
Texturing — 10
Ambience — 10
Lighting — 10
Gameplay — 10