-
Notifications
You must be signed in to change notification settings - Fork 625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide access to the engine for community support #1712
Comments
As the current lead maintainer of Science & Industry, I have a strong interest in this.
For example, I recently spent a lot of time trying to improve the shotgun in our game, which involved a few performance bottlenecks and engine limits. As far as I can tell, many of these are simple #defines in the engine source code which ought to be reconsidered almost 20 years after Half-Life was developed and released. In that same thread, I pointed out how the Half-Life engine and HLDS have open-source competition. However, I would prefer the official Half-Life binaries be kept up-to-date and transparent by the people contributing fixes on this Github repo. I cannot in good conscience ask my players to use an 'alternative engine' when the official engine is a closed-source paid product on Steam. I also tried to learn how sv_clienttrace works as part of some investigation into hit registration and netcode issues in my mod. Unfortunately, I could not find much information in the official channels. Which brings me to my next point..
If the engine and HLDS code were available as open source, I could make better decisions for my mod and contribute improvements to the code powering the official Steam distribution of Half-Life. For example, I investigated and fixed a very strange bug with tripmines (documented here ). My fix applies to the SDK code, but I would be just as willing to share fixes I make to the other components if I had access to them. There are many more stories like mine, but all the improvements being made are limited to the mods under which they are developed (since this repository is inactive and the Steam distribution of Half-Life is not being regularly updated).
As I explained here, the Quake games are fully available as open source (client, server and engine code). These games are still sold on Steam and elsewhere, but the people purchasing them today are able to benefit from improvements made by open source developers in the many years since their original release. Many successful arena FPS game projects have grown out of the Quake 2/3 source code (OpenArena, ioquake3, Warsow etc) and the most commonly used Quakeworld client/server distributions are all in active development on Github. I believe that, with only a small investment of management and support from Valve, the people posting on this repo could contribute positively to an open source Half-Life (including access to the engine and HLDS source code). |
I'm quite interested too. I made and continue to develop Sandpit: http://www.moddb.com/mods/sandpit/ |
The engine is full of checks that see if the game/mod dir is a particular one, like czero or cstrike, bshift, etc. That's why it's so inconsistent. The filesystem is actually somewhat buggy. I used it in a separate project to load content and it crashed after removing search paths. I should report that one when i've reproduced it. |
Do you know to use AddSearchPath properly? I'm trying to load Opposing Force content and I can't figure it out. I can get it to work but I don't want to change all the models paths to gearbox/models/whatever.mdl when models/whatever.mdl should work. |
AddSearchPath takes 2 parameters: the relative directory and a path ID. The path is formed like this: Assuming you're using the file system in a mod, adding the path "gearbox" will work. The path ID will have to match one used in the engine for it to be used though. The following path IDs are in use from what i can tell: It will use the "valve" directory as well to fall back to original content, unless a -basedir command line parameter is specified, in which case the given parameter is used. If "fallback_dir" is defined in liblist.gam, it also defines GAME_FALLBACK. If you want to add the Opposing Force directory, you'll have to add its search path. Ideally, adding it to "GAME" should be done since that's where it gets everything else from. Note that you'll be adding it to the end of the list, so the mod dir and game dir are checked first. Worst case scenario you'll have to wipe all paths and add them again. That's difficult to do given that some are added conditionally based on things like low violence settings and command line parameters. The engine will search for files by either passing null as the path ID, meaning all paths are searched, or by specifying a specific path ID, in which case only paths with that ID are considered. Whenever you're dealing with content that can be in _downloads, the null path ID should be used, since searching each path ID separately is a major hassle. Because it searches every path when using null, it will produce duplicate results. That's why the map command and the Options menu models list have duplicates. The same paths are searched multiple times because they're defined in multiple path IDs. Avoid calling RemoveSearchPath. That's the method that caused crashes for me. I don't know why, but i'm sure that if ran using a debug build or using pdbs the problem should be discovered easily. Disclaimer: all of this information was determined through reverse engineering. No official documentation exists, so there's no alternative. |
Hm, I'll try "GAME" - I think I was using "MOD" based on a VDC article... Also, to add to the list - crashing due to missing .wad files probably shouldn't happen - the engine can certainly handle missing textures; r_shadows could be exposed again (even if only when cheats are enabled) and if you want to print to the console from from some engine callbacks in client.dll then it won't work unless you use GameConsole003. |
I made the same mistake at first. GoldSource and Source use different path IDs for some reason. I agree with those issues. |
Another reason to provide access: i've built a prototype shader based BSP renderer. It's not complete yet, but it can load and display maps. Because it uses VBOs and shaders, its performance is much better than the engine's immediate mode based renderer. Repository can be found here: https://github.com/SamVanheer/BSPViewer If this were integrated into the engine, it could boost graphics performance by a considerable amount. Further improvements in the future could lead to complete support for all rendered objects, including studio models, sprites and particles. This should eliminate any performance issues caused by poor driver support (e.g. AMD drivers). |
I've created a VDC page for GoldSource's IFileSystem interface. You can find it here. |
+1 |
I am strongly in favor of open sourcing Goldsource. The fact this engine powers some of the best games of all time and that modders are still working with it 20 years after its release are proves of the quality of the gaming and development experience with it. |
+1 for open-sourcing the engine, a lot of wonderful enhancements, bug-fixes while keeping the legacy of Half-Life is something I wish to see in the future. I agree with the ideas of @Loulimi @tschumann @johnstt and @SamVanheer. |
+1 I support this idea. |
This will be a great step forward for GoldSrc mods if it happens. |
+1, this idea is great. |
+1 |
2 similar comments
+1 |
+1 |
FYI, you can now thumbs up OP message. That way we aren't annoyed by a ton of notifications for all that +1... |
+1, It would help us develope the servers we always wanted to create, and decrease limitations in the engine, fix bugs and performance issues. Even add features such as map instead of radar, HD water and more. Hope they listen this time, even though in reality i doubt it. |
Maybe if you guys listed some reasons to support this instead of saying +1... |
I could add a new triangle API that actually works in Software and lets you draw sprites with different scales properly. pfnDrawGeneric actually crashes Software mode... |
+1 as one of the developers of Earth's special forces (esforces.com) I strongly agree that this would help mod developers a lot. |
+1 but does Valve read this repository anymore? |
Something tells me they don't. |
@Lamix do u think valve reads anything at all from their clients? |
@di57inct They have been active in this repository before, no need for a cocky attitude |
yeah, been active in 2013, breaking entire counter-strike. |
+1 |
Forget about That's why ReHLDS and Xash3D still lives. |
It isn't about what the employees want to do, this is a legal issue. The engine is their property, reproducing it is a violation of their trademark. It also contains licensed code and third party dependencies, including Steamworks whose license forbids its inclusion in open source projects. It would cost them money to open source it, license it or allow you to make your own version, so it won't be allowed to happen. If you're lucky they won't shut you down, but that is a risk that you will choose to make. I won't tell you to do so, and i won't do it myself either. |
Does anyone else find it funny that you guys are discussing all this on Valve's github page ? If you're really curious, go read some of the law related to computer crimes. Especially in the US, some of it is so broad and vague that just sneezing near a computer can get you jail time. Reimplementing a closed-source commercial product that's still being sold on the world's most popular game marketplace is a bit different, I'd wager.. |
Yep. People still amaze me... |
You don't understand what you're doing. It's still illegal to do this even if you're not using SDK or reverse engineered code. Plus, you don't know where the GSR code came from. VGUI2 is not a wrapper around VGUI1, it's an entirely different GUI system. It's largely reverse engineered so it's not legal to use. Xash has questionable status as well, some parts may be derived from leaked code, we don't know that for sure but it seems likely. Valve considers it to be illegal. If you don't want to do anything illegal then you have to stop working on this now and remove the repositories containing the code. In any case, you should stop discussing it here. We've established that this will not happen and trying to do it ourselves is illegal, so Valve is well within its rights to lock this discussion. If you continue to discuss it i'll have to lock this issue myself. |
I think, count of word "illegal" here will soon overflow a 32-bit integer.
Meanwhile, reverse engineering is allowed in some countries. US problems is
only US problems. :)
|
That's still illegal. |
The main thing is that he revealed his motive: he needs 'helpers' because there's an absolute deadline on this wacky half life github project. If you're convinced this is all legal, go ask Valve's legal department to stamp it. |
Unpaid Internship: Patsy |
Why do you not develop Openfl/Lime or C# with Half-Life? Because generator can from source into more end of binary like static and all platforms OpenFL / Lime has many platforms like Windows, Linux, MacOS, Android, iOS and more more. Why not we wait longer longer until we have gray hairs. Stop I will kick your butts. If you love Half-Life than you can try to create Haxe OpenFL/Lime or NME etc... It has OpenGL ES3 It works all platforms. Please wake up VALVE SOFTWARE! Please check good platform generators like Haxe or Mono Haxe: Mono: Please supervise that! I argue time because I feel they don't know and force time until very late. If they won't develop than I will create own or I learn more advanced development..... |
We already know they'll say no, i suggest you act accordingly. |
Let's do a thinking exercise for a moment.
What happens next? |
I know this doesn't matter for this discussion because there are other legal matters in question, but are you sure that's true? If my understanding of the SDK Access Agreement is right, you are not allowed to distribute the source code, but you are free to use it wherever you want (be it open source software or anything else). Your open-source software doesn't have to have SteamWorks SDK code in the source tree. |
I suggest some another way of thinking:
As I said before: While you doing it just for fun, no one cares a lot, unless you everytime distract some busy people from Valve. Let's think why GoldSource is great? It's great because it's easy for indie developer to create high-quality game. Why there is no good Source-based indie games? Because it's too complex. If you want to create a game, you maybe don't need GoldSource at all. You need it's game development flow, where you can create quality game by yourself or really small team. Unkle Mike already tried to make an engine with "Goldsource-like" game development flow, but without GS compability. And he went to situation, where he have a game engine without a game itself. That's why he made partial GS compability. [fat-joke]When some current GoldSourceRebuild-ers just born[/fat-joke] P. S. While you all here discuss about legality, some people already completely reverse-engineered GoldSource from debuginfo and NetQuake source. I will not post who are these people, because they have GitHub accounts and they will post their project by themselves, when it will be ready enough. |
https://partner.steamgames.com/doc/sdk/uploading/distributing_opensource It doesn't explicitly cover open source applications that don't have a license, but i would assume that any open source applications cannot contain such code. Maybe i'm wrong about this, but i'd rather be wrong than to get sued. Making your own copy of GoldSource with Steamworks code in it to authenticate could be used to bypass anti-cheat measures, though i would consider mods accessing Steamworks APIs to be legal since Source mods do just that. |
@SamVanheer Warsow is opensource game and it's is intended to have SteamWorks support in Steam release. It's game engine QFusion have some highlights of SteamWorks support(link). Warsow isn't released on Steam yet, because they don't have developers for Steam release. It's sad. |
The key word here is "some". That's because some open-source licenses forbid you from linking to a closed-source object. As far as I know you are allowed to add exceptions to GPL-3.0 that would allow your work and derivatives of your work to link to specific closed-source software. That's what AMXX and SourceMod do. However there are other licenses that would allow you to do it with no additional exceptions, I believe LGPL is one of them. Btw I'm honestly just interested in what actually is allowed and I'm open to discussion, not trying to be a jerk or correct someone as I myself don't precisely know the entirety of this. |
|
@BlackPhrase THANK YOU FOR SHARING FILES. I miss that - Why Valve Software forces me longer time wow. Thanks I will use with Stream I will replace to Haxe or C# I will tell how do I protect again bad hackers. |
As has been said before you should not discuss this here, this is Valve's issue tracker and what you're doing is not permitted by Valve. We've tried long and hard enough, it isn't going to happen. I'm closing this issue now, and i hope you will not discuss this any further on any of Valve's issue trackers. |
@BlackPhrase congrats... |
@BlackPhrase do me a favour: go up to the top of this issue and read the first few posts. Thanks for ruining this thread! (although it was already a waste of time to begin with, I suppose) |
Good night, trolling thread.
26 февр. 2018 г. 8:10 ПП пользователь "aaaaaaaaa" <notifications@github.com>
написал:
… @BlackPhrase <https://github.com/blackphrase> do me a favour: go up to
the top of this issue and read the first few points.
Do you see the difference?
Thanks for ruining this thread! (although it was already a waste of time
to begin with, I suppose)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1712 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADEJgcfKQp_YWnLwl_w42rPky0xJPT1Mks5tYuWMgaJpZM4I74q2>
.
|
Alright, so for all this time since February I've been working on reimplementing the GoldSrc engine using the original GPL Id Tech 2 Engine (NetQuake/QuakeWorld/Quake2). It's still rough and ugly as hell, but partially works. The codebase is fully clean and consists only of GPL (or other open GPL-compatible licenses) code. SDK code is also partially reimplemented using the original code (some pieces were manually retyped). Can't say for sure, but the game code will probably also end up being reimplemented (but it either will be ported Quake (QC progs) code or reimplemented HL Alpha level functionality). I will release it on November 8 this year What will be provided in the initial release:
I doubt that I will be working on it after that, so it would be nice if someone could provide some help with stuff, it would be sad if this thing ends up nowhere after all the effort put in it |
Stop posting in this issue, and stop referencing it elsewhere. |
Let's all review some material to avoid getting taken for a ride by this guy! https://www.merriam-webster.com/dictionary/pied%20piper https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses https://github.com/ValveSoftware/halflife/blob/master/LICENSE https://en.wikipedia.org/wiki/Power_vacuum http://opentranscripts.org/transcript/fascism-fauxpen-source/ Things to note:
This is the type of garbage you encourage by not open-sourcing the engine, and leaving this repo/issue open to rot. |
I can't lock this issue, only people with administrative access to this repository can do that. @kisak-valve and @Nephyrin if possible please lock this issue. |
As suggested by @Stenudd, this is a new issue to cover discussion about engine access and upgrades.
Original discussion here: #1685
So far, the following users have shown interest in providing support for engine access:
@tschumann
@johnstt
@Stenudd
@SamVanheer
To summarize: we would like to request access to the engine so we can provide support to the GoldSource community. This would involve both bug fixes and new features to improve functionality.
I can speak from experience here, given that i used to have access when i was on the Sven Co-op team.
Valve requires the engine to be stored in a secure manner, so if access were given it would require a secure repository. They also require the signing of an NDA, meaning no information found in the engine can be disclosed publicly.
Personally i'd like to see the following issues dealt with:
There's more, but i can't think of it right now.
If you support this endeavor, and/or want to assist in the event that access is provided, please post your thoughts.
If you have any ideas as to what could be done to improve the engine, please post them as well.
The text was updated successfully, but these errors were encountered: