Commented 3 weeks ago2024-10-28 07:34:07 UTC
in journal: It's been so long...Comment #106471
Happy birthday!
20 years is such a long time. I think it was around that long I joined this site as well. I bet it was fun to see your son picking up level design!
Commented 1 month ago2024-10-03 07:14:00 UTC
in journal: 2^5Comment #106435
Better than half of them being burnt!
For plain popcorn I microwave them until it takes about 4 seconds between each pop. In my experience that's a good balance between getting as many popped as possible, without burning them :p
For pre-buttered popcorn I'd just do whatever the instructions say and play it safe. Those burn very easily.
One might think I wrote Map2Prop just to avoid writing Part 2 of this tutorial, BUT actually
a) it's been a very busy year since I wrote this tutorial
b) I'm tired
c) Part 2 is going to be about rigging and basic animations and M2P can't do that, so I'll have to write that at some point anyway 😔
(Also that previous comment from me above was in response to a now-deleted user, sorry for any confusion it might have caused) :p
I think adding entities used for displaying models, such as cycler* entities and env_sprite, could come in handy for those wanting to use props with multiple body/skin groups.
Commented 2 months ago2024-08-31 10:19:04 UTC
in journal: CyprusComment #106352
Sweden and Norway are beautiful in different ways.
Norway has fjords and some pretty dramatic mountains, while Sweden is full of forest (so much forest) and the coast being full of archipelagos (the skärgårdar).
Not to mention there's a big difference whether you're north or south of the Arctic Circle in either country, such a big difference in the nature you get to see, not to mention that north of the Circle you get midnight sun and it's a very popular place to see the aurora borealis.
There's also lots of glaciers in both countries, I highly recommend seeing one if you ever go to either one 🙂
I can confirm at least EF_INVLIGHT (16) and EF_LIGHT (64) works on point entities.
It'd be useful to do further testing and create a table of which effects works on which type of entity.
Thanks you two! 😊
I'm actually surprised it wasn't already made for GoldSrc, only for Source in the form of Propper. And I agree, I think mappers would really have benefitted from it being made earlier. Just a shame I never really got the time and opportunity to properly sit down and work on modding until now.
Commented 4 months ago2024-07-11 10:28:04 UTC
in vault item: Core Critical [final]Comment #106242
Excellent map. Beautifully crafted and fun to play.
The teleport sequence, with its complete change of the arena and resetting of player loadout, adds an interesting and exciting variation to the map and its gameplay that I haven't seen in other HLDM maps. -Chef kiss- 👌
Commented 7 months ago2024-04-07 00:41:46 UTC
in journal: 🐀🐀🐀🐀🐀Comment #106115
I suppose we could do a search for "monster_rat" in the vanilla maps to get a correct count, and to make sure it really is only within the Hazard Course.
Wikis are community driven, so information isn't guaranteed to be correct. Someone might have made a guesstimate without checking, and the number was never fact-checked. That happens all the time :p
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.
Commented 8 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 8 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
I could just implement an parent_model key, where the value is another func_map2prop that becomes a template so to speak.
Perhaps add a spawnflag "Is submodel" that makes the mesh of this entity become a submodel of the template's model (or the worldspawn model, if no parent_model is set).
I have some ideas for skeletal stuff, but I'm saving that for post-release.
So your mock-up was not far off, just missing some of the QC options.
Also instead of an offset key the mapper should just use an ORIGIN brush to set the model origin. It's a practice most mappers should be familiar with already. 🙂
The source code repo is still private, waiting until v1 to open that one.
If you give the players no other options, they will eventually get used to using only melee.
Just be careful about the difficulty ramp. Warm them up with some headcrabs and breakables first and slowly increase the encounter difficulty instead of dropping the player directly into an arena with several gonomes and bullsquids. Let them become comfortable with it before challenging them, so to speak.
If the enemies have ranged attacks, give the player plenty of cover so they don't end up feeling defenceless (which in turn is experienced as unfair and difficult by the player).
You're welcome! Just glad to help out with these things. Would be a shame if you or someone else had to do severe cuts to their map just because of wasted clipnodes :p
Commented 10 months ago2023-12-30 12:38:07 UTC
in wiki page: Specification: JMFComment #105812
With the December 2023 update the JMF version was changed to 122, now including a data for background images in the 2D displayports.
From what I've found so far, the new structure looks like this:
typedef struct {
char[4] magic; // File format magic number, "JHMF" in ASCII encoding
int32 version; // File format version (currrently 122)
int32 ep_count; // Number of recent export paths
p_char[ep_count] export_paths; // Recent export paths
bg_image[3] bg_images; // Background images
int32 group_count; // Number of groups in the map
Group[group_count] groups; // Group objects
int32 visgroup_count; // Number of VisGroups
VisGroup[visgroup_count] visgroups; // VisGroups objects
Vector cordon_min; // Minimum corner of the Cordon box
Vector cordon_max; // Maximum corner of the Cordon box
int32 camera_count; // Number of Camera objects
Camera[camera_count] cameras; // Camera objects
int32 path_count; // Number of path objects
Path[path_count] paths; // Path objects (created with the Path tool)
Entity[] entities; // All entities including worldspawn, read until the end of the file
} Jmf;
How's visibility handled? Is Pathos limited by the room-corridor paradigm, or does it handle large open spaces well?
Enjoy yours!
20 years is such a long time. I think it was around that long I joined this site as well. I bet it was fun to see your son picking up level design!
Did you do anything fun to celebrate, or was it mostly sort of 'just another day'? 🙂
For plain popcorn I microwave them until it takes about 4 seconds between each pop. In my experience that's a good balance between getting as many popped as possible, without burning them :p
For pre-buttered popcorn I'd just do whatever the instructions say and play it safe. Those burn very easily.
How was the restaurant? Would you go back? :p
I won't be doing much to celebrate, just going to bake a cake and cook a fancy dinner and enjoy some stout beer ^^
body
property packing. 🙂I hope you're feeling better now 🙂
a) it's been a very busy year since I wrote this tutorial
b) I'm tired
c) Part 2 is going to be about rigging and basic animations and M2P can't do that, so I'll have to write that at some point anyway 😔
(Also that previous comment from me above was in response to a now-deleted user, sorry for any confusion it might have caused) :p
Norway has fjords and some pretty dramatic mountains, while Sweden is full of forest (so much forest) and the coast being full of archipelagos (the skärgårdar).
Not to mention there's a big difference whether you're north or south of the Arctic Circle in either country, such a big difference in the nature you get to see, not to mention that north of the Circle you get midnight sun and it's a very popular place to see the aurora borealis.
There's also lots of glaciers in both countries, I highly recommend seeing one if you ever go to either one 🙂
EF_INVLIGHT (16)
andEF_LIGHT (64)
works on point entities.It'd be useful to do further testing and create a table of which effects works on which type of entity.
And yeah, nothing quite like growing your own food 😃
I shall write a slightly displeased letter to the council about this! 😤
I'm actually surprised it wasn't already made for GoldSrc, only for Source in the form of Propper. And I agree, I think mappers would really have benefitted from it being made earlier. Just a shame I never really got the time and opportunity to properly sit down and work on modding until now.
The teleport sequence, with its complete change of the arena and resetting of player loadout, adds an interesting and exciting variation to the map and its gameplay that I haven't seen in other HLDM maps. -Chef kiss- 👌
Take care of yourself, and hope you get well soon!
Those mountains look lovely! I bet that slope was fun!
I hope things get well and you get the rest you need 🙂
Wikis are community driven, so information isn't guaranteed to be correct. Someone might have made a guesstimate without checking, and the number was never fact-checked. That happens all the time :p
Kind of reminds me of the mountains in southern Spain 🙂
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.
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.parent_model
key, where the value is another func_map2prop that becomes a template so to speak.Perhaps add a spawnflag "Is submodel" that makes the mesh of this entity become a submodel of the template's model (or the worldspawn model, if no parent_model is set).
I have some ideas for skeletal stuff, but I'm saving that for post-release.
Also instead of an offset key the mapper should just use an ORIGIN brush to set the model origin. It's a practice most mappers should be familiar with already. 🙂
The source code repo is still private, waiting until v1 to open that one.
Just be careful about the difficulty ramp. Warm them up with some headcrabs and breakables first and slowly increase the encounter difficulty instead of dropping the player directly into an arena with several gonomes and bullsquids. Let them become comfortable with it before challenging them, so to speak.
If the enemies have ranged attacks, give the player plenty of cover so they don't end up feeling defenceless (which in turn is experienced as unfair and difficult by the player).
From what I've found so far, the new structure looks like this: and for the background image struct:
The cvar
waterroom_type
(default 14) controls which env_sound Room Type is applied when the player is underwater. It's seemingly unused in the game.