GithubHelp home page GithubHelp logo

twhl-community / halflife-op4-updated Goto Github PK

View Code? Open in Web Editor NEW
70.0 8.0 25.0 8.93 MB

Half-Life: Opposing Force SDK based on Half-Life Updated, with bug fixes. Check README.md for more information.

License: Other

C 4.49% C++ 95.43% Makefile 0.05% Batchfile 0.02% Shell 0.01%
valve half-life halflife steam

halflife-op4-updated's Introduction

About

Half-Life Updated, Opposing Force Updated and Blue Shift Updated are repositories that provide updated versions of the Half-Life SDK, targeted to the 3 Half-Life 1 PC games officially available.

Purpose

Each repository provides project files compatible with Visual Studio 2019 and 2022, as well as bug fixes. The Opposing Force and Blue Shift projects are reference implementations of their respective games. This means they provide the original features, implemented as they are in the original games, including the many cases of code duplication.

The goal of the Updated repositories is to allow modders to make mods based on these games, while providing bug fixes that could be applied to the official games as well. A mod installation is also provided for each repository to allow players to play these games with all bug fixes applied.

This mod installation includes files that are required when making a mod based on these SDKs.

The following types of changes are in scope for this project:

  • Bug fixes
  • Features to improve the game's code (refactoring, generalizing, simplifying). This does not include complete redesigns of systems as this makes it much harder for modders to integrate changes and get started with Half-Life modding
  • Fixing game-breaking bugs in game assets (e.g. soft-locked trigger setups)

The following types of changes are out of scope:

  • Graphical upgrades
  • Physics engine changes
  • Other engine changes
  • Gameplay changes

If you need help setting up the SDK or developing a mod please ask on the TWHL website or on its Discord server.

The TWHL wiki has tutorials to guide you through making a mod: https://twhl.info/wiki/page/Half-Life_Programming_-_Getting_Started

See the #welcome channel for more information about the Discord server. Please do not use the #unified-sdk channel for general help requests, there are channels for modding help.

See the TWHL thread for status updates about these projects: https://twhl.info/thread/view/20055

Requirements to run mods built with this SDK

Only the latest Steam version of Half-Life is supported. For the Opposing Force and Blue Shift repositories you will need to own the games and have them installed to use their assets.

Building this SDK

See BUILDING.md

Mod installation instructions

See INSTALL.md

What isn't supported

Backwards compatibility with WON and older versions of Steam Half-Life is not supported. Xash isn't supported, but may work. You cannot use Updated clients to play on vanilla servers, you also cannot use vanilla clients to play on Updated servers.

Placing Updated game dlls in vanilla installations is not supported.

These repositories have a limited scope and will not have major changes applied.

Deathmatch Classic and Ricochet

The source code for Deathmatch Classic and Ricochet is in the original Half-Life SDK. The purpose of these updated repositories is to provide updated versions only for Half-Life and its expansion packs, so the source code for these mods has been removed.

Since the vanilla versions don't compile under newer versions of Visual Studio separate repositories have been made that provide the same updates to make them compile:

Unlike the other updated repositories these only provide basic fixes. No further development and support will be provided.

Changelog

See CHANGELOG.md and FULL_UPDATED_CHANGELOG.md

Half Life 1 SDK LICENSE

Half Life 1 SDK Copyright© Valve Corp.

THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE CORPORATION (“Valve”). PLEASE READ IT BEFORE DOWNLOADING OR USING THE HALF LIFE 1 SDK (“SDK”). BY DOWNLOADING AND/OR USING THE SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE PLEASE DON’T DOWNLOAD OR USE THE SDK.

You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/

You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this license.txt and third_party_licenses.txt.

Any distribution of the SDK or a substantial portion of the SDK must include the above copyright notice and the following:

DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED “AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE.

LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

If you would like to use the SDK for a commercial purpose, please contact Valve at [email protected].

Half-Life 1

This is the README for the Half-Life 1 engine and its associated games.

Please use this repository to report bugs and feature requests for Half-Life 1 related products.

Reporting Issues

If you encounter an issue while using Half-Life 1 games, first search the issue list to see if it has already been reported. Include closed issues in your search.

If it has not been reported, create a new issue with at least the following information:

  • a short, descriptive title;
  • a detailed description of the issue, including any output from the command line;
  • steps for reproducing the issue;
  • your system information.*; and
  • the version output from the in‐game console.

Please place logs either in a code block (press M in your browser for a GFM cheat sheet) or a gist.

* The preferred and easiest way to get this information is from Steam's Hardware Information viewer from the menu (Help -> System Information). Once your information appears: right-click within the dialog, choose Select All, right-click again, and then choose Copy. Paste this information into your report, preferably in a code block.

Conduct

There are basic rules of conduct that should be followed at all times by everyone participating in the discussions. While this is generally a relaxed environment, please remember the following:

  • Do not insult, harass, or demean anyone.
  • Do not intentionally multi-post an issue.
  • Do not use ALL CAPS when creating an issue report.
  • Do not repeatedly update an open issue remarking that the issue persists.

Remember: Just because the issue you reported was reported here does not mean that it is an issue with Half-Life. As well, should your issue not be resolved immediately, it does not mean that a resolution is not being researched or tested. Patience is always appreciated.

Contributors

This is a list of everybody who contributed to these projects. Thanks for helping to make them better!

If you believe your name should be on this list make sure to let us know!

  • Sam Vanheer
  • JoelTroch
  • malortie
  • dtugend
  • Revenant100
  • fel1x-developer
  • LogicAndTrick
  • FreeSlave
  • zpl-zak
  • edgarbarney
  • Toodles2You
  • Jengerer
  • thefoofighter
  • Maxxiii
  • johndrinkwater
  • anchurcn
  • DanielOaks
  • MegaBrutal
  • suXinjke
  • IntriguingTiles
  • Oxofemple
  • YaLTeR
  • Ronin4862
  • the man
  • vasiavasiavasia95
  • NongBenz
  • Hezus
  • Anton
  • ArroganceJustified
  • a1batross
  • zaklaus
  • Uncle Mike
  • Bacontsu
  • L453rh4wk
  • P38TaKjYzY
  • hammermaps
  • LuckNukeHunter99
  • Veinhelm
  • jay!
  • BryanHaley
  • λλλλλλ
  • Streit
  • rbar1um43
  • LambdaLuke87
  • almix
  • sabian

Special Thanks

  • Valve Software
  • Gearbox Software
  • Alfred Reynolds
  • mikela-valve
  • TWHL Community
  • Knockout
  • Gamebanana
  • ModDB

halflife-op4-updated's People

Contributors

alfred-valve avatar anchurcn avatar danieloaks avatar dtugend avatar edgarbarney avatar fel1x-developer avatar freeslave avatar intriguingtiles avatar jengerer avatar joeltroch avatar johndrinkwater avatar logicandtrick avatar malortie avatar maxxiii avatar megabrutal avatar mikela-valve avatar revenant100 avatar samvanheer avatar solokiller avatar suxinjke avatar thefoofighter avatar toodles2you avatar zpl-zak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

halflife-op4-updated's Issues

Implement Opposing Force NPCs

List created using dumpbin: dumpbin /exports opfor.dll > results.txt

Entities:

  • monster_ShockTrooper_dead
  • monster_alien_babyvoltigore
  • monster_alien_slave_dead
  • monster_alien_voltigore
  • monster_assassin_repel
  • monster_blkop_apache
  • monster_blkop_osprey
  • monster_cleansuit_scientist
  • monster_cleansuit_scientist_dead
  • monster_drillsergeant
  • monster_fgrunt_repel
  • monster_geneworm
  • monster_gonome
  • monster_gonome_dead
  • monster_grunt_ally_repel
  • monster_hfgrunt_dead
  • monster_houndeye_dead
  • monster_human_friendly_grunt
  • monster_human_grunt_ally
  • monster_human_grunt_ally_dead
  • monster_human_medic_ally
  • monster_human_torch_ally
  • monster_male_assassin
  • monster_massassin_dead
  • monster_medic_ally_repel
  • monster_op4loader
  • monster_otis
  • monster_otis_dead
  • monster_penguin
  • monster_pitdrone
  • monster_pitworm
  • monster_pitworm_up
  • monster_recruit
  • monster_shockroach
  • monster_shocktrooper
  • monster_shocktrooper_repel
  • monster_sitting_cleansuit_scientist
  • monster_skeleton_dead
  • monster_torch_ally_repel
  • monster_zombie_barney
  • monster_zombie_soldier
  • monster_zombie_soldier_dead

Misc entities:

  • charged_bolt (Voltigore attack)
  • env_genewormcloud
  • env_genewormspawn
  • gonomeguts
  • hvr_blkop_rocket (copy of hvr_rocket)
  • info_pitworm
  • info_pitworm_steam_lock
  • pitdronespike
  • pitworm_gib
  • pitworm_gibshooter
  • trigger_geneworm_hit

Ammo problems in multiplayer.

So I don't know if its a problem of mine but I can't give myself OP4 ammo in multiplayer

However it work well in singleplayer.

Incompatible with WON version? (Crash)

Upon starting a level, an error message says "could not load library". The Steam version of Opposing Force does not crash and it works as intended (one HUD color value change).

Applies to both -dev and -master version (latest).

I'm using Microsoft Visual Studio 2017 Community.

I made a single change in hud.h, nothing else.

RPG Bugs and crashs

RPG crash the game in case you press reload; Or just recharge if you turn off laser sight.

Backport weapons from HLEnhanced

Entities:

  • weapon_displacer
  • weapon_eagle
  • weapon_grapple
  • weapon_knife
  • weapon_m249
  • weapon_penguin
  • weapon_pipewrench
  • weapon_shockrifle
  • weapon_shockroach
  • weapon_sniperrifle
  • weapon_sporelauncher

Misc entities:

  • displacer_ball
  • eagle_laser
  • grapple_tip
  • info_displacer_earth_target
  • info_displacer_xen_target
  • trigger_xen_return
  • shock_beam
  • spore

Gluon Flare in Multiplayer

One interesting quirk that I'm sure you've heard of before is that in Opposing Force's multiplayer, the Gluon Cloud effect actually works (albeit without a dissipation effect when it stops). See the video below for an example (recorded in WON version 1.1.1.2). This is also present in the vanilla steam version.

Half.Life.2021.03.04.-.14.40.21.02.DVR_1.mp4

Linux Build Issues

There appears to be an issue with building client libraries on Linux.
The libraries build, however when attempting to load the game, it responds with a Could not load library (path to game)/client.so error.
After poking around with GDB it seems that the issue is something to do with the game seeing "squeak" as an undefined reference.

Pitworm AI glitch

Pitworm dies, but there are cuts in animation and looping. (sorry for my bad English)

Implement Opposing Force misc entities

Entities:

  • env_blowercannon
  • env_spritetrain
  • func_tank_of
  • func_tankcontrols_of
  • func_tanklaser_of
  • func_tankmortar_of
  • func_tankrocket_of
  • item_generic
  • item_nuclearbomb
  • item_nuclearbombbutton
  • item_nuclearbombtimer
  • item_vest
  • trigger_kill_nogib
  • trigger_playerfreeze

Pipe Wrench Alt-fire delay

Testing this out, I found that the alt-fire for the pipe-wrench has a notable delay, like up to a full second after releasing the alt-fire button.

Weird Weapon Glitch + Compiling Issues

For some reason, the weapons are broken for me.
Half the weapons don't show up in the hud, and the ones that do don't have any animations or sounds.
If I pick up a weapon that doesn't show in the hud, it also doesn't have any animations or sounds.
Hope someone can help me or fix this if it's a bug with solokiller's stuff.

Here's a video:
https://youtu.be/i_Oc13jeeFA

Implement CTF specific entities

Entities:

  • ctf_hudicon
  • info_ctfdetect
  • info_ctfspawn
  • info_ctfspawn_powerup
  • item_ctfaccelerator
  • item_ctfbackpack
  • item_ctfbase
  • item_ctfflag
  • item_ctflongjump
  • item_ctfportablehev
  • item_ctfregeneration
  • trigger_ctfgeneric

No Linux build?

Hello I've been trying to compile the Linux version for this. I've done some tweaks to the Makefile and I've noticed it's missing archtypes.h header. Now I believe those missing headers can be obtained from metamod.org from the HLSDK 2.3p4 zip and I've noticed that your nodes.cpp is supposed to be as #ifdef __linux__ not #ifdef _LINUX as that CreateDirectory wasn't declared properly. Also it appears that the Makefile works better for loading that cmath header if G++ is used not GCC. But I'm stuck with pm_shared errors. If you need more info or need me, let me know!

Rope issue

When attempting to climb a rope, it seems that the player will randomly be teleported to a different part of the map and proceed to become stuck in position.
When loading a save from a map with ropes in it, the save and all saves tied to the same map appear to become corrupt and teleport the player to the position they would be in had they climbed the rope.
When saving, the rope appears to deform and attempting to climb it immediately teleports the player to the same position.
Footage of the bug in action (ignore frame drop, it's caused by ffmpeg recording and doesn't actually occur in game):
https://youtu.be/r4qsfxeEbH0
Tested and it seems to occur on an unmodified clone of the repo, only tested on Arch Linux so far.

Version info:
Protocol version 48
Exe version 1.1.2.2/Stdio (valve)
Exe build: 19:53:35 Aug 3 2020 (8684)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.