Coder Social home page Coder Social logo

Auto Pickup (as submitted to the workshop) overwrites gameinit.lua and is incompatible with other init-modifying addons about vscripts HOT 3 CLOSED

samisalreadytaken avatar samisalreadytaken commented on September 26, 2024
Auto Pickup (as submitted to the workshop) overwrites gameinit.lua and is incompatible with other init-modifying addons

from vscripts.

Comments (3)

samisalreadytaken avatar samisalreadytaken commented on September 26, 2024

https://steamcommunity.com/sharedfiles/filedetails/?id=2187633818

The very idea of having a workshop submission as a mandatory dependancy, forcing developers to use an arbitrary "/mods/init/" directory for no reason is restrictive, not scalable.

Apart from these ridiculous aspects of it, it also includes completely unnecessary files, convars and global functions that the user should have full control over. Things that should only be available for the developer, and not visible to the end user. Ever heard of libraries..? It may even look like it's doing something to someone that doesn't know any better.

Also considering how the "scripting" channel on that Discord server consists only of beginners, I would rather not take their word for anything.

I'm closing this issue because I am never going to add a random dysfunctional addon as a dependency.

from vscripts.

PeterSHollander avatar PeterSHollander commented on September 26, 2024

I would argue that forcing developers to conform to the same standard in their own code base (arbitrarily placing the addon's init file in the base vscripts folder) is just as restrictive. And if that agreed upon standard has to change in the future, there is no guarantee that all implementations will support such a change, and then you're back to square one where game/gameinit.lua is being overwritten by conflicting standards. Having a dependency, on the contrary, is able to evolve over time from one centralized location.

Adding dependencies to workshop submissions is quite easy, and the user is notified upon downloading your addon if they do not already possess said dependencies; it is difficult for a user to mess that process up. I am sorry that our effort to future-proof this sort of standardization is frustrating to you.

from vscripts.

samisalreadytaken avatar samisalreadytaken commented on September 26, 2024

if that agreed upon standard has to change in the future, there is no guarantee that all implementations will support such a change
Having a dependency, on the contrary, is able to evolve over time

Having a "standard" that is auto-updated without the consent or knowledge of the developer itself creates compatibility issues.

There is a reason why libraries and standards versioned. A change (which would never happen in this case because there is no functionality to change) would ruin all that depend on a centralised and auto-updated system. Can you imagine a forced system-breaking change in software/hardware without the developers knowing, while it is in use? All (major) updates should require the developers manually adjusting their work to the changes.

placing the addon's init file in the base vscripts folder) is just as restrictive.

Developers are free to work in any directory under the root. Why would having the base initialiser, which subsequently would run other custom files, in the root directory where the user can see at all times be restrictive? There is no logic to having a "/mods/init/" folder. The root is where no files exist other than their own; so why hide the initialiser under 2 folders? As far as I know such structure and wording does not exist in Source either.

Having a mandatory workshop dependency for all addons is needless clutter and confusion for the end user, and practically free advertisement for you.

I stand by what I said in the guide. The developer should be in full control of everything, the initialiser script should be in the root and not under arbitrary directories, the global initialiser should be created and placed by the developer, not used as a workshop dependancy.

from vscripts.

Related Issues (2)

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.