Forum posts

Posted 1 year ago2023-11-17 21:41:41 UTC
in Xash3D fixing overbright in Half-Life Post #348055
Yeah, it's funny how it turned out :)
Posted 1 year ago2023-11-17 19:09:26 UTC
in Half-Life Updated (custom SDK) Post #348054

Half-Life 25th anniversary version released

Valve has released the 25th anniversary version of Half-Life which has slight changes in how the filesystem interface works which causes all mods based on recent versions of Half-Life Updated to crash. I've identified the problem and i've pushed a fix to a separate branch: https://github.com/SamVanheer/halflife-updated/tree/dev-anniversary

Until Valve releases a new SDK all projects will remain as-is. Use the steam_legacy branch to run mods. You can access it by right-clicking Half-Life in Steam, opening Properties and going to the Betas tab:
User posted image
Make sure to change Half-Life's branch even if you're trying to run another game like Counter-Strike because all GoldSource engine games and mods use Half-Life's engine files. Once you've switched it make sure Half-Life is up-to-date (you may need to launch it or press the Update button) and then you should be able to run other games/mods.

Once the SDK has been released i'll update the SDKs to work with the new version.

Note that there are some bugs in the new version. There is a noticeable (half second) delay in sound playback so they'll probably be fixing bugs before any SDK updates can be expected.

Please don't report mod crashes as bugs on the Half-Life Updated issue tracker because it's currently out of our hands. Check the Half-Life issue tracker and search before you post.
Posted 1 year ago2023-11-17 18:56:03 UTC
in Xash3D fixing overbright in Half-Life Post #348053
Valve literally just released the 25th Anniversary Update that fixed gl_overbright
Posted 1 year ago2023-11-17 17:52:17 UTC
in Half-Life Asset Manager Post #348052

Half-Life Asset Manager V2 Beta 12 released

Half-life Asset Manager V2 Beta 12 has been released: https://github.com/SamVanheer/HalfLifeAssetManager/releases/tag/HLAM-V2.0.0-beta012

Changes:
  • Removed dot in file extension to fix file associations not working when installed using offline installer
Posted 1 year ago2023-11-17 17:16:47 UTC
in Xash3D fixing overbright in Half-Life Post #348051
May be you've seen this YouTube video:
gl_overbright
(Author is not exactly correct on when overbright feature was cut from Goldsource though. Early 00s Steam builds still had it, I was introduced to HL with Condition Zero when it was already on Steam and still had overbright.)

Posting this video on HLFX forum started a discussion that resulted in fixing display of lightmaps and in couple other bugfixes like lighting of outdoor models.
Thanks to user Decay for lurking VOGONS forums and figuring out how to implement it in Xash3D.
https://www.moddb.com/engines/xash3d-engine/downloads/original-looking-lightmaps-and-textures

More screenshots: https://imgur.com/a/ahntAbu
beforebefore
afterafter
This post was made on a thread that has been deleted.
Posted 1 year ago2023-11-16 16:17:09 UTC
in Water plop sound Post #348048
Ambiguous leafnode content errors happen when different faces on the same brush have a different type, like one having a water texture and another having a normal one. This can happen due to bad texture application but also when the compiler splits brushes and applies the wrong texture.

You can use func_detail to help avoid this or rework the geometry a bit but sometimes it's unavoidable.
Posted 1 year ago2023-11-16 14:25:24 UTC
in New Textures dont load Post #348047
already compiled bsps? use newbspguy.
Posted 1 year ago2023-11-16 10:09:34 UTC
in New Textures dont load Post #348046
found the problem lol. i changed the normal model but i was playing with hd models.

other question: how can i change textures inside a map?
Posted 1 year ago2023-11-16 09:53:41 UTC
in New Textures dont load Post #348045
did you forgot to save?

also please use HLAM.
Posted 1 year ago2023-11-16 08:33:16 UTC
in New Textures dont load Post #348044
Hey Guys,
i am very new to the Half-Life "Modding" (if you can call it that). My problem right now is, that i changed the the back of Barneys Model, and it loads everything correctly in Jeds Model Viewer. The texture hast the same resolution and bit depth. However, when i restart Half-Life, Barney still has the original old Back Texture.

Thanks for everybody, who can help out!
Posted 1 year ago2023-11-15 11:26:11 UTC
in Wiki enhancment thread Post #348043
Yeah, we could make a plan on a Google docs with a hierarchical structure and the possibility to add comments. I can create it if that suits you.
Posted 1 year ago2023-11-15 00:55:56 UTC
in Wiki enhancment thread Post #348042
I'm down for writing a number of beginner tutorials. I could allocate some time to write them all by New Year, just need a bit of a plan first.
Admer456 Admer456If it ain't broken, don't fox it!
Posted 1 year ago2023-11-14 22:05:38 UTC
in Wiki enhancment thread Post #348041
Yeah we really need better beginner tutorials, the problem is that nobody has time to write all of that down. And any tutorial that explains everything people need to know will end up being very long due to how many terms there are, the amount of history, etc.
For now we really just need a starting point for beginners, not to make it comprehensive. I could work on it, but we would need to decide how it will relate to existing beginner tutorials and to Admer’s planned tutorial.
Posted 1 year ago2023-11-14 16:59:07 UTC
in Water plop sound Post #348040
To be honest, I’m wondering how to fix this, I can’t even imagine what it is and where to start?
Posted 1 year ago2023-11-14 16:29:00 UTC
in Wiki enhancment thread Post #348039
Yeah we really need better beginner tutorials, the problem is that nobody has time to write all of that down. And any tutorial that explains everything people need to know will end up being very long due to how many terms there are, the amount of history, etc.

I thought about making pages that list every kind of fatal error the engine can produce along with an explanation (easy enough to find by searching for Sys_Error calls and Host_Error calls using a disassembler) but that also takes time.

Also needed is a page containing all of the old update notes from the pre-Steam HL website and the old Steampowered news site before they switched to Steampipe since that's all lost now outside of archive.org, but again that takes time to dig through and assemble. There's also information in the old mailing lists that isn't documented anywhere else.
Posted 1 year ago2023-11-14 16:25:37 UTC
in Water plop sound Post #348038
It shouldn't make any difference performance-wise, but you can always fix them if you're worried about it.
Posted 1 year ago2023-11-14 12:36:20 UTC
in Water plop sound Post #348037
I understand that this is another topic, but what kind of error is this, how critical is it, for wpoly for example?
Posted 1 year ago2023-11-14 11:52:01 UTC
in Water plop sound Post #348036
It shouldn't cause water sounds to play.
Posted 1 year ago2023-11-14 10:31:21 UTC
in Wiki enhancment thread Post #348035
I’m joining late in the discussion, so bear with me if I say something already mentionned. I read the posts but I might have missed something.

I learned mapping at an age where I barely knew how to use a computer. When I was told to go in the "File" menu I was looking for it in the Windows XP’s Start Menu, I didn’t understand what the tutorial mean by "extracting" something, and it took me years to understand I had to compile a map to play it and figure out that to create a mod I was supposed to edit "liblist.gam".

The TWHL wiki is a great source of information, but as I think was already mentionned, it looks absolutely daunting to me and to any real beginner.

I believe it is crucial to have clear distinction between an all-encompassing introductory tutorial for complete beginners that assume no previous knowledge, and more specialised guides and other specialised articles like glossaries and entity references. This would help beginners know where to start, and more advanced modders know where to find the information they are looking for.

This distinction must be made clear in the wiki homepage (by displaying a visible link to the introductory tutorial). The current wiki homepage simply lists articles which would seem extremely confusing to any beginners. For instance, after being scared by the sheer number of available pages, they would click on "Tools" as advised, and find an enormous number of things they are supposed to download, not knowing what they do.

In specialised articles, it would be great to display a small banner warning readers that it requires some skills and redirecting beginners to the introductory tutorial). This might sound overkill, but for the minority of confused beginners I think that will be very useful, and it does not need to take a lot of space.

For me, most of the effort needs to go in the introductory tutorial.

The introductory tutorial

I believe tutorial, to mean an article that explains and teaches modding from the very beginning, is an appropriate term, moreso that guide and especially explanation. Guide to me seems more appropriate for more advanced articles on specific techniques.

The situation is very difficult for a beginner arriving on TWHL. For instance, assuming a beginner manages to access the GoldSource tutorials homepage, they might not know what GoldSource really is, what is WON, what is modding. Maybe they’ll think they have to first do the "modding in general" section, then learn programming, to finally be able to reach the part about level design. They will also be discouraged if they see the sheer amount of pages in the category at the bottom of the page, not knowing they do not need to read all of them. Even if they get to Introduction to mapping, the introduction is very thin. What does the tutorial explain? What is a level editor? Maybe the user expects the level editor to be in-game as it is for other games.

Content

That’s why we need a real introductory tutorial that would be all-encompassing and aimed at beginners (e.g. "Learn to create maps and mods for Half-Life 1 games"). This introductory tutorial would start by explaining for what games the tutorial is for (Half-Life 1, CS, Sven Co-op, etc.), what GoldSource is and why modding is similar on all GoldSource games, what modding is, and what can be done (creating maps, mods, etc.).

It would then link to the mapping tutorial (e.g. "Learn to create maps for Half-Life / GoldSource games and mods"), explaining what it will allow the reader to do. It would also link to the programming tutorial, warning that it requires C++ knowledge.

At least for the mapping tutorial, any IT skills such as extracting a zip file or installing a program should be explained. It doesn’t take too long, especially with one or two screenshots. Having a page that covers the essentials of using a PC, might be useful Solo, but it’s best to include its relevant content directly in the beginner tutorial (it will be easier to understand and apply), instead of relying on it as a requirement. Similarly, a very small introduction to GoldSource, describing it as a collection of files that allow Half-Life and its mods to run and handle its graphics, audio, and AI is sufficient, instead of a full-blown article on the subject (for the beginner tutorial at least).

Mabe this is what you mean by the "in the beginning" tutorial that you intend to create Admer? I think it would be amazing to have such a tutorial. The current wiki navigation can suit specialised articles, but it should be made simpler and more straigtforward for beginner tutorials. The tutorial starting point page should list all pages of the tutorial, and only those links, so as not to confuse or discourage the read. Each page should link to the next and previous chapter, as well as to the starting point page. This could be done in the website’s code or, more probably, directly in the article content.

Example

So, in the end, for the introductory tutorial, we might have something like this:

Learn how to create maps and mods for Half-Life 1 and GoldSource games (the introductory tutorial)
- What games is this tutorial for: HL, CS, SC…, what is GoldSource, what is modding, how to learn mapping (link to tutorial)
- Screenshots / links to maps & mods created by the community, for illustration
- Link to navigate to the mapping tutorial
- Link to navigate to the programming tutorial

Learn how to create maps for GoldSource games (the mapping tutorial)
- Link to the parent tutorial (the introductory tutorial)
- What is mapping, examples of maps, etc.
- Link to the next chapter: "Installing the map editor"
- List of all the chapters of the tutorial

Installing the map editor
- Link to the parent tutorial (the mapping tutorial)
- Why you need to download a map editor
- How to download and install a map editor
- Link to the next chapter (setting up the map editor)

Specialised articles

By specialised articles, I mean any article that only address a specific topic and requires some previous knowledge, which is what the current wiki mostly contains. I think the main issue is with the navigation that should be improved, maybe by improving navigation between categories, maybe by making navigation more hierarchical (displaying only the top categories in the homepage), and moving the list of all pages of the category in a separate page, maybe in the results of a search request).
Posted 1 year ago2023-11-14 10:09:44 UTC
in Water plop sound Post #348032
Could this have any effect or what does this mean? The coordinates are different, but they all lead to worldspawn when you go to the coordinates through a search, and if you find it yourself, then there is usually emptiness. Could it be another problem with the clip brushes?

Warning: Ambiguous leafnode content ( EMPTY and SOLID ) at (-579,132,-86)-(-576,139,118) in hull 1 of model 0 (entity: classname "worldspawn", origin "", targetname "")
Posted 1 year ago2023-11-14 01:34:03 UTC
in wally not working Post #348031
This works, thank you!
Posted 1 year ago2023-11-13 14:18:09 UTC
in Wiki enhancment thread Post #348030
The Half-Life Programming - Getting Started tutorial has been updated to streamline the tutorial and remove obsolete information.

References to Mac development have been removed. Half-Life Updated no longer supports Mac builds and only the Steam version of Half-Life has a Mac version.

Steam will drop support for the last 32 bit Mac OS version in a few years, they dropped support for Mac OS 10.12 this last september and the last 32 bit version is MacOS Mojave (10.14). This is in response to Chromium dropping support for those versions since Steam uses Chromium for its user interface.

Chromium is dropping support for MacOS Mojave in their latest versions, as noted in this issue which tracks removal of code used to support older MacOS versions.

Chromium version M117 released a few months ago. Steam usually trails behind Chromium updates and will be updating to a version that no longer supports Windows 7 and 8.1 at the start of next year. Chromium M110 was the first version to drop support for those and released about a year ago.

Given the rate at which Steam updates its Chromium dependency it will likely drop support within 1-2 years.
Half Life 2 - ‘Last Legs / Vortal Combat / Triage At Dawn’ (guitar cover + tab) [Soundtrack]
https://www.youtube.com/watch?v=N0VjEI2E2E8
User posted image
Posted 1 year ago2023-11-12 19:15:00 UTC
in Half-Life Updated (custom SDK) Post #348028
<== Continued from previous post

A new UI

I've looked into integrating RmlUi to determine which challenges are ahead in that area. I've experimented with replicating the look of the HUD in HTML, but so far i haven't been able to reproduce the exact method used which involves using a grayscale image colored with a specific value and whose alpha value is affected by the saturation of the color.

All of my findings are included in the Github issue: https://github.com/SamVanheer/halflife-unified-sdk/issues/453

If there is a way to replicate the HUD's exact appearance in HTML then it probably won't work in RmlUi since it will likely depend on CSS features that RmlUi doesn't (yet) implement.

Until it's possible to render the HUD in RmlUi it isn't worth trying to integrate it into a mod.

I've also done some investigation work into how modern engines handle UIs to see if any of them provide their UI toolkits as standalone options that can be integrated into an engine this old.

My findings are as follows (not an exhaustive list):
  • Unreal engine: Uses Unreal Motion Graphics, a tightly integrated toolkit that depends on other Unreal features like blueprints to function.
  • Unity engine: Uses UGUI, a GameObject-based toolkit. Totally dependent on the engine to function and written in C#.
  • Godot engine: Uses Godot UI, a tightly integrated toolkit that builds on Godot's class hierarchy.
  • Source and Source 2 engines: Use Panorama, a tightly integrated toolkit that uses a web-like development stack using XML, CSS and Javascript. It integrates with the engine to allow features like particle systems and model rendering to be embedded in the UI itself. Panorama's XML is not strictly HTML; it's very similar but is an evolved form of VGUI (it uses `Panel`s just like all VGUI versions).
Panorama is the closest to RmlUi in functionality but like all toolkits listed is tightly integrated into the engine.

This integration allows engine functionality to be used in the UI but precludes integration into other engines. None of these toolkits are available for standalone use, and even if they were they all use modern graphics APIs which makes integration even harder.

All of these toolkits are optimized for use in games, which means they update and render once a frame.

Another alternative is Chromium Embedded Framework 3 (CEF3), used to implement the UI in various desktop applications like Steam, Discord and Visual Studio Code (using Electron, a desktop application framework built on top of Chromium).

Chromium is designed to power web browsers; its architecture is designed around this use case. In practical terms this means Chromium uses subprocesses to perform tasks to prevent a browser tab from freezing the entire application, to prevent one tab from using exploits to read another tab's memory and other security and performance-related issues.

In part because of the use of subprocesses Chromium uses a lot more memory. Steam for instance uses around 470 MB of memory when running idle in the background. Discord uses 315 MB. It's possible for Chromium to use more memory then the rest of the game combined.

Chromium renders frames on its own, out of sync with the application. It's possible for Chromium to render more frames than your application needs, but also less, and probably lagging behind which can be a problem in a real-time environment like a game.

Additionally since pages are handled by subprocesses exposing Javascript APIs to UI logic isn't as cheap as it is with toolkits like RmlUi and Panorama. Half-Life's UI code accesses game state and in some cases modifies it as well which is complicated by the need to also communicate with the main game process.

GoldSource uses CEF1, an older single-process version of Chromium to render the HTML-based message of the day in Counter-Strike and Day of Defeat. It's been out of support for 10 years and can't even display the official Counter-Strike website due to a lack of support for modern secure connection technology. This integration is limited to rendering frames for display in VGUI2; it can't allow interaction between a website's Javascript and the game itself.

There aren't many cases of games using Chromium for their in-game UI. Here are some articles and discussions that covers the subject in more detail: I couldn't find any references to games that actually use Chromium but i have seen discussions about it in passing before.

A couple mod teams have attempted to integrate Chromium into mods before (GoldSource and Source) but it has always led to failure due to the problems listed above and overall technical challenges involved with such a complex framework. If you really want to use it, you'd better prove it can be done properly first.

Based on my findings i'd say trying to integrate a new UI toolkit is a waste of time unless you can guarantee these things:
1. You can replicate the UI in HTML exactly as in the original without performance issues
2. The toolkit of choice can be integrated into a mod and works properly on Windows and Linux and when using the OpenGL and Software renderers (Software mode support can be dropped if needed, but for the Unified SDK in particular it's not an option without a major version change)
3. The implementation runs well in general and on older systems in particular. Given that Steam is dropping support for older platforms due to CEF as well this isn't a major challenge but Half-Life players tend to use older systems

Remaining work to be done

  • MIT license all community-written Updated & Unified SDK code
  • Move projects to twhl-community organization
  • Add any required documentation on development process that is currently missing
I've run through all of the games again to test for any remaining issues. A handful were found and fixed and are listed above alongside fixes found by others.

This just about wraps up all work for V1.0.0. Everything that can be done in a reasonable timeframe has been done, all major issues have been dealt with and the last full test shows the games are working as expected. Once the remaining work listed above has been completed all projects are ready for a V1.0.0 release.

However, the full release of V1.0.0 will have to wait until after Valve has finished what they're working on to avoid having to release a patch in case there are any problems. People have noticed activity in a new password-protected branch that indicates the games are being updated with better controller and Steam Deck support.

No details are available so to avoid potential problems V1.0.0's full release has been delayed until these changes have been released by Valve. Given that controller support is implemented in the client dll which is part of the SDK this will likely mean mods will have to update to get the same changes.

That's probably meant to release on the 25th anniversary which is a week from now, so it shouldn't be a very long delay.

Once all of that stuff is sorted out all three of the Updated projects and the Unified SDK will be part of the twhl-community Github organization and will be maintained by the community.

The map decompiler will also be moved over after i've double-checked all of its features and the text color bug in Avalonia has been fixed.

Half-Life Asset Manager V2.0.0 will also receive a full release shortly once all of the above has been dealt with after which i will begin working on V3.0.0 which aims to replace the graphics code with modern OpenGL and to hopefully provide a fully functional Linux version.

I'd like to thank everybody for helping to develop and test these projects and hopefully they'll be fully released soon for everybody to try out and play with!
Posted 1 year ago2023-11-12 19:14:51 UTC
in Half-Life Updated (custom SDK) Post #348027
<== Continued from previous post

Progress on the Unified SDK

Release candidate 3 is now available: https://github.com/SamVanheer/halflife-unified-sdk/releases/tag/UNIFIED-V1.0.0-RC003

SDK Changes

  • Reworked tripmine entities to use separate world model
  • Don't allow executing sv_addbot with no parameters
  • Added ITEM_FLAG_SELECTONEMPTY flag to weapons that regenerate ammo to always be selectable and never show as red in hud history
  • Truncate yaw using cast to int instead of floor to match engine behavior (fixes NPC navigation in some maps)
  • Fixed ambient_music not being triggerable in radius mode
  • Added keyvalues to set barney & otis corpse bodygroups
  • Fixed code analysis warnings when combining format result with string_view in ternary
  • Speed up sv_load_all_maps, automatically load first map & print more info, more consistent and robust behavior and added stop_loading_all_maps command to stop this process
  • Build portable binaries and workaround gcc bug to allow the Linux version to run on architectures that are missing the C++ runtime version used by the game and to avoid problems with std::regex
  • Additional fix for op4loader sound looping bug to stop looping when the NPC is removed
  • Boosted volume to match original engine by multiplying by **8**

C# Changes

  • Adjusted MaxRange (far Z clipping plane) in c2a2a to fix graphical issues
  • Fixed Alien Slaves in ba_canal1 waiting for 5 seconds before attacking
  • Added upgrades to fix issues with barney, otis & scientists in specific levels (skin color & equipped weapons and items)
  • Don't delete node graphs, update timestamps instead so graphs will be loaded from disk
  • Updated third party dependencies and updated BSPToObj to account for changes in the vertex order used by Sledge library
  • Add upgrade for bell1.wav sound and pitch so the bell sound sounds like it does in the original game

Asset Changes

  • Added separate tripmine world model
  • Added scientist_cower models
  • Reverted changes made to viewmodel animations to match the original games
  • Updated test maps to account for code changes
  • Fixed HEV suit sentences playing in Opposing Force and Blue Shift
  • Changed event id for sounds played by scientists that shouldn't affect the mouth so scientists don't "talk" when a beep sound plays
  • Add polygons to loader accordion spine
  • Added hlu_technology_demonstration map (unfinished, only contains a zoo of various NPCs and NPC models at this time)

Framerate issues in the GoldSource engine

Some people have reported issues that occur when playing at high framerates (100+ FPS) or when using cvars like host_framerate to manipulate the framerate to run very high.

This game was developed on machines that ran the game at about 20-30 FPS and everything was designed around that. The engine doesn't compensate for high framerates correctly in some cases and some game code also lacks proper compensation. Some of these issues have been fixed but the game will never work properly at high framerates because the render framerate is tied to the simulation framerate.

The engine was also designed to run at a maximum of 72 FPS, as seen in Quake 1's source code: https://github.com/id-Software/Quake/blob/bf4ac424ce754894ac8f1dae6a3981954bc9852d/WinQuake/host.c#L494-L522

GoldSource lacks this limiter but it still won't work properly. The recommended framerate is either 30 or 60 FPS. 100 FPS generally works but in specific cases like elevators there might be glitches like NPCs taking damage, dying or getting gibbed due to getting stuck. Higher framerates will be more prone to glitches.

Modern engines typically lock framerates or decouple the simulation framerate from the render framerate to avoid these issues, unfortunately this can't be fixed in a mod without re-implementing the entire physics engine.

NPC navigation issues

Users reported NPCs having problems navigating in specific areas. Known occurences include We've Got Hostiles in the area after the first elevator and a soft-lock that sometimes occurs in Lambda Core level A, where the scientist holding the shotgun fails to move to the button to open the door.

This was caused by an engine function that was re-implemented in game code to allow for better optimizations.

The faulty code looked like this:
float VectorToYaw(const Vector& forward)
{
    if (forward[1] == 0 && forward[0] == 0)
    {
        return 0;
    }

    float yaw = atan2(forward[1], forward[0]) * 180 / PI;

    if (yaw < 0)
    {
        yaw += 360;
    }

    return yaw;
}
The fixed code looks like this:
float VectorToYaw(const Vector& forward)
{
    if (forward[1] == 0 && forward[0] == 0)
    {
        return 0;
    }

    float yaw = static_cast<int>(atan2(forward[1], forward[0]) * 180 / PI);

    if (yaw < 0)
    {
        yaw += 360;
    }

    return yaw;
}
The lack of a cast to int caused yaw angles to be calculated slightly differently compared to the engine.

Casting to int and then back to float causes the value to be rounded. The exact behavior is compiler-specific, in Microsoft's case this is equivalent to calling std::round: https://learn.microsoft.com/en-us/cpp/c-language/conversions-from-floating-point-types?view=msvc-170

Without the cast no rounding is performed and yaw angles will be slightly off, in some edge cases like those mentioned above this can cause NPCs to get stuck.

Finding the cause of this is 99% finding a reproducible case of the problem happening. The Lambda Core occurrence didn't always happen, but the We've Got Hostiles one did.

Once that was found it was a simple matter of using version control to pinpoint which change introduced the problem and then finding the exact line of code. Comparing against the engine's version showed the missing cast.

This bug highlights the importance of being precise when recreating existing functionality, as well as making good use of version control. Without version control finding the cause would've been a lot harder.

sv_load_all_maps command

The sv_load_all_maps command has been modified a bit to deal with an engine bug that causes the game to crash or shutdown partway through loading all maps.

This command is mainly intended to be used to automate generation of node graphs but it can be used to gather error logs for each maps as well, or to automate testing of scripting systems using map-specific scripts if your mod has that.

A related command called sv_stop_loading_all_maps has been added to stop this process if necessary.

Node graphs

Node graphs are now bundled with mod installations instead of requiring them to be generated when a map is first loaded. This should make the first-time experience a lot smoother.

New repositories in the TWHL Community Github organization

A few new repositories have been added:
  • HalfLifeSDKHistory: Contains each Half-Life 1 SDK release's source code as individual commits to allow viewing changes made in each update. There are also branches for the multiplayer version (lacks AI code) and a branch showing the difference between the singleplayer and multiplayer versions
  • OldValveReleases: Contains modding files released by Valve, mostly old SDKs
  • SlackillerDownloads: Contains files hosted on the old Slackiller modding website
  • VHLT-V34: Contains the source code for VHLT V34 along with branches that remove disabled code paths for easier viewing. Also includes a copy of the VHLT V34 tools for completeness sake
Continued in next post ==>
Posted 1 year ago2023-11-12 19:14:38 UTC
in Half-Life Updated (custom SDK) Post #348026

Half-Life Updated release candidates released

Half-Life Updated, Half-Life: Opposing Force Updated and Half-Life: Blue Shift Updated release candidates have been released:

Half-Life Updated: https://github.com/SamVanheer/halflife-updated/releases/tag/HLU-V1.0.0-RC003
Half-Life: Opposing Force Updated: https://github.com/SamVanheer/halflife-op4-updated/releases/tag/HLOP4U-V1.0.0-RC003
Half-Life: Blue Shift Updated: https://github.com/SamVanheer/halflife-bs-updated/releases/tag/HLBSU-V1.0.0-RC003
Note
Drown recover damage handling was broken during the period of October 9 through November 5. If you cloned the source code during that time, make sure to update to include the fix for this problem. If you need to know what to change you can view the fix here (i'd suggest using Git to get the update instead): https://github.com/SamVanheer/halflife-updated/commit/7fbccedbd9d2adc115f8f6e61dcd58858c0f5b3c
Notable changes for all games:
  • Fixed save game system not saving arrays of EHANDLEs if the first half of the array contains null handles (mainly affected Nihilanth's spheres)
  • Fixed player gaining health when drowning with god mode enabled and recovering health after surfacing
  • Fixed human grunts continuing to fire for a few seconds after killing the last enemy in an area
  • Fixed crash when +USEing NPCs that have just exited a scripted sequence
  • Fixed talk monsters resetting other talk monsters' dying schedule if they are both killed at the same time
  • Fixed RPG laser turning on when reloading immediately after equipping the weapon
  • Reverted weapon selection using weapon IDs to prevent the game from malfunctioning when delta.lst is missing
  • Added sv_load_all_maps & sv_stop_loading_all_maps to help automate node graph generation
Notable changes for Opposing Force:
  • Fixed Male Assassin Snipers not tracking their last shot time properly causing them to fire the Sniper Rifle as if using full auto
  • Fixed torch and medic grunts, male assassins and shock troopers continuing to fire for a few seconds after killing the last enemy in an area
  • Fixed Gonome crashing the game if the player dies while being damaged by Gonome's chest mouth
  • Save and restore allied grunt repel entities to ensure spawned NPCs have correct properties
  • Fixed Desert Eagle laser turning on when reloading immediately after equipping the weapon
Continued in next post ==>
Posted 1 year ago2023-11-12 14:00:09 UTC
in Water plop sound Post #348025
Apparently only the second method is possible, the commands did not help. let it stay there because it’s a chore to redo a lot of brushes and then look for leaks(
but thanks anyway.
Posted 1 year ago2023-11-12 13:24:36 UTC
in 64-bit GoldSource engine? Post #348024
Without a 64 bit executable to launch it those binaries are rather useless. From what i can find online it seems that there was once a 64 bit version around 2004-2006 but i don't see any way to run it now.

The game has had Linux server support since long before the client was ported to Linux, that's why there are only 64 bit server files and not client files.
Posted 1 year ago2023-11-12 13:12:34 UTC
in Water plop sound Post #348023
The -skyclip command line parameter explicitly enables sky clipping, -noskyclip disables it.

The info_compile_parameters entity can also change this setting using the noskyclip keyvalue.

If items still pass through it then you can work around the issue by making the sky brushes as thin as possible.
Posted 1 year ago2023-11-12 10:15:30 UTC
in Water plop sound Post #348022
In general, everything is the same. What settings are you talking about? I only enter -wadinclude in compile menu. and that’s it.
Posted 1 year ago2023-11-12 09:41:53 UTC
in 64-bit GoldSource engine? Post #348021
I'm pretty sure that the GoldSource engine is and always has been 32-bit, but I've noticed that the Linux/dedicated server builds have a few _amd64.so files (and equivalent _i686.so files).

I'm guessing that the _amd64.so files are just unused but does anyone know why they're there or when they started shipping? I'm pretty sure they've been there since before Counter-Strike had a Linux port anyway.
Posted 1 year ago2023-11-12 09:38:44 UTC
in Half-Life Featureful SDK Post #348020
Nice work.
Posted 1 year ago2023-11-12 09:36:12 UTC
in Is GoldSource still cool Post #348019
Sure it. Like Doom, Duke Nukem 3D, Quake etc, it's still an engine that isn't too complicated to understand.
Posted 1 year ago2023-11-10 13:50:27 UTC
in Half-Life Featureful SDK Post #348018
New release https://github.com/FreeSlave/halflife-featureful/releases/tag/featureful-2023-11-10

Changelog

BugFixes

  • Fixed Pitworm entity light, laser attack sprite, strafe beam and missing sound precache.
  • Fixed barnacle grapple physics to match Opposing Force.
  • Fixed player_weaponstrip unintentionally removing player's flashlight or NVG.
  • Fixed trigger_camera no longer prevents enabling the control if player dies while using the camera.
  • Level transition won't be activated if player is dead, to avoid strange situation when player gets transitioned to another level in a dead state (which is possible if trigger_changelevel is triggered by something else with a delay).
  • When trigger_camera entity gets removed it automatically releases the player who activated it.

Entities

  • Added Ignore Armor flag for trigger_hurt and trigger_hurt_remote
  • Added No Camera Punch flag for trigger_hurt and trigger_hurt_remote
  • Added Alive player only flag for trigger_camera to ensure that the camera won't start if player is dead. It also makes camera release the player's view if player died while camera was activated.
  • Allow opfor human grunts to have no weapons if weapons are set to "None".
  • Opfor medics and torch grunts can be set to throw hand grenades. FGD was changed accordingly.

Client cvars and commands

  • hud_min_alpha cvar to control the minimum HUD alpha value.
  • hud_color is now a client command. The color is now getting saved to the player's configuration.

Server cvars

  • Added items_physics_fix server cvar in attempt to fix items and ammo sometimes falling through the floor (e.g. if spawned from a func_breakable on a shelf). Changing this cvar may have some unwanted side-effects. Read description in featureful_exec.cfg

Configurable features

  • monsters_spawned_named_wait_trigger. When set to false, named monsters spawned from monstermaker won't wait 5 seconds before entering their regular AI loop, unlike they do in Half-Life. Previously the default behavior in this SDK was the same as having this feature set to false, and while it's usually desirable, it might break some existing maps. So now it's set to true by default in order to match original Half-Life behavior.
  • vortigaunt_squad allows to add a capability to form squads for vortigaunts. In original Half-Life they don't have this capability set.
Posted 1 year ago2023-11-10 13:49:26 UTC
in Water plop sound Post #348017
You should use VHLT instead of ZHLT: https://twhl.info/wiki/page/Tools_and_Resources#Compile_Tools

There are command line options and info_compile_parameters settings to control sky clipping behavior so make sure you're not changing the setting.
Posted 1 year ago2023-11-10 13:09:37 UTC
in Water plop sound Post #348016
Thanks for the answer, I use 64-bit zhlt compilers from 2015, are they old?
Posted 1 year ago2023-11-10 04:05:18 UTC
in trigger_changelevel @ c1a1d Post #348015
Okay I fixed it, my knowledge of how info_landmark works lacked a bit
Posted 1 year ago2023-11-10 00:16:59 UTC
in trigger_changelevel @ c1a1d Post #348014
So it transitions you to the previous map but to another location?
Posted 1 year ago2023-11-09 23:04:09 UTC
in Water plop sound Post #348013
Older map compilers didn't make the skybox solid so the skybox brush volumes act like water.

Entities will also make water sounds when they move in or out of certain contents types, as you can see here in code from Quake 1: https://github.com/defunkt/quake/blob/63e82d566a86d0380803189a53d48af42413ea42/WinQuake/sv_phys.c#L1198-L1236
Posted 1 year ago2023-11-09 23:00:28 UTC
in trigger_changelevel @ c1a1d Post #348012
A map can have multiple level changes to the same level. In this case both the previous and next map are the same and you enter through a different level change. Your code needs to account for that.
Posted 1 year ago2023-11-09 22:48:50 UTC
in trigger_changelevel @ c1a1d Post #348011
Yeah but the trigger changelevel is on the way that takes me back to c1a1c and I can't progress in this case, I noclipped past that trigger and that tunnel is cut which I think it is continued on some other map, maybe it is built in some place on c1a1c that your supposed to spawn on? I coudn't find it though. Elevator yes your right it takes you to the c1a2 map but how do you get to the elevator when your teleported back to c1a1c if you walk into that trigger
Posted 1 year ago2023-11-09 22:02:08 UTC
in trigger_changelevel @ c1a1d Post #348010
You get to the next map via an elevator I think? This is just before Office Complex yeah.

What ends up happening is you're going between 2 maps that depict basically the same area, you just kinda do a "U-turn" in terms of levelchanges to get to the other side of the (destroyed) bridge in map 1.
Admer456 Admer456If it ain't broken, don't fox it!
Posted 1 year ago2023-11-09 22:00:10 UTC
in Draw numbers in HUD Post #348009
You mention a new ammo counter for a specific weapon. That'd require keeping track of a tertiary ammo source, which would require changes to some of the prediction code too.

Can you show your code? I just realised this thread is 2 months old, I've no idea how I managed to miss it...
Admer456 Admer456If it ain't broken, don't fox it!
Posted 1 year ago2023-11-09 21:50:32 UTC
in trigger_changelevel @ c1a1d Post #348008
But how do you get to the next map then? That's confusing
Posted 1 year ago2023-11-09 05:22:41 UTC
in trigger_changelevel @ c1a1d Post #348007
Both changelevels of c1a1d points back to c1a1c.
User posted image
User posted image
Your implementation must have made the wrong assumptions.
Posted 1 year ago2023-11-09 01:56:28 UTC
in trigger_changelevel @ c1a1d Post #348005
The rest of the triggers work fine SO FAR: https://www.youtube.com/watch?v=_0_jhK51U-g
Posted 1 year ago2023-11-09 00:09:13 UTC
in Draw numbers in HUD Post #348004
Where exactly are you using DrawHudNumber()? Try running HL in Software renderer and see if the numbers are drawn, if so, than your using it the wrong way. If you want to do it fast just add this code into any registered hud element and draw inside the draw() function. However Best course of action would be to create your own hud class and register the hud element: gHud.AddHudElement() + set HUD_ACTIVE flag + add it into the .Init() & VidInit() lists.Base your class off of some stabndard hud elem class then you'll get a pretty good idea of what it's supposed to look like
Posted 1 year ago2023-11-09 00:03:47 UTC
in Gauss jump on singleplayer Post #348003
You can make it server-cvar controlled if you wish though
Posted 1 year ago2023-11-08 23:49:53 UTC
in trigger_changelevel @ c1a1d Post #348002
Hello everyone! I'm currently working on implementing proper level transitioning for Half-Life while in Multiplayer mode.
One funny or annoying thing that I found is that the trigger changelevel on c1a1d for some reason prompts the game to changelevel to c1a1c? Is there anyone here who has any idea as to what's going on?My code simply replaces changelevel2 with changelevel and sets the player position according to the landmark offsets..
Any input appreciated thanks