WolfireGames / overgrowth

Open Source codebase of the game Overgrowth by Wolfire Games LLC
Apache License 2.0
2.5k stars 260 forks source link

The extent of the files being open-sourced #6

Closed alpyen closed 2 years ago

alpyen commented 2 years ago

I wanted to ask what the current plan is on which files/filetypes will be available here in this repository.

While I can understand that for example the textures and artistic works will probably not make it, some other elements like scripts should definitely be included, as it is a core part of the game logic itself and much work of the game is being done outside the engine.

However, it is almost impossible to disconnect scripts from game assets that will not be shipped in this repository. So, what's the way to go then?

Will they remain untouched and people have to resort to buying the game to make use of the scripts as they are? Will they be changed and demos will be provided to show the scripts' functionalities? Will they be not made available at all?

This was just a couple of thoughts I had when thinking about scripts specifically, of course there are other elements like shaders for example. I'd love to hear your thoughts about this.

I know that in the end, this is a choice Wolfire have to make themselves and it will be heavily dependent on the actual vision of this project's goal but as this is a pretty big deal, let's discuss about it.

shinymerlyn commented 2 years ago

Considering scripts and shaders have been released previously with permission granted by David (https://github.com/kavika13/overgrowth-scripts), I think it could make a lot of sense to release at least the latest versions of them in the OGOS repo as well.

There are hard-coded links to graphical assets etc, which I think may be what you were talking about with this quote:

it is almost impossible to disconnect scripts from game assets that will not be shipped in this repository.

Stuff like fallback assets (the fail whale), a few different lazily hard-coded particle effects for blood etc, as well as hard-coded references to some animations in the character scripts.

I think it is possible to identify all missing hard-coded assets, and either remove the hard-coding in some way (e.g. a config header, and/or migrating the schema to data driven files like fields of character XMLs), or bring over just those assets into the repository. Sure, right now they're sitting in a directory with the rest of the data files, but I don't think it's impossible to solve.

There would be a question of where to draw the line, of course - e.g. probably not the level XML files, even though those are hard-coded into menu scripts. Once you get to scripts, the line between "engine" and "content" gets kind of blurry. But it's probably still solvable, if Wolfire doesn't want to release all assets.

autious commented 2 years ago

Thanks for bringing this up, it made me realize i'll have to put some effort into splitting the Data folder up to some degree, if possible.

The plan has so far been to either A: require that users copy in a Data folder into the project from a purchased instance, or B: Have the project automatically find it. But like you're saying, the angelscript and shader files are much more tightly coupled to the engine and should be included.

We also want to keep the bulk of the Data folder out of it to reduce the repo size and remove the need to use LFS, simplifying forks and branches for people.

In any case, we currently do not intend to release the visual assets, animations, levels etc under a licence as liberal as the codebase, we've been burned before by people re-uploading Lugaru unmodified for sale on online stores, which is something we don't want. It might be possible to get permission from Wolfire for some reuse however, we just want you to contact us first before so we can take it on a case-by case basis. But that doesn't mean we might consider making it easier to access the resources.

We just want to make it clear that this is a project to open source the game, for helping modders, developers or aspiring game developers; learning, using in college courses, building upon, taking inspiration from or maybe even building something else. It's not a project to make the game Overgrowth free to play for end users.

lukors commented 2 years ago

I don't think we need to include any of the assets that are hard coded. I personally think we're good as long as it works to compile OGOS and copy over the data from the purchased game.

Scripts and shaders should be included in the open source.

Making the engine more generic seems like a perfect project for interested contributors to solve. :)

lukors commented 2 years ago

I think this is solved, so I'm closing it. Write here if I'm being too hasty! :)