I’m liking it a lot. I’ve never finished Bioshock, but I’ve played a few hours of it, so it may not be a fair comparison, but the environment feels bigger and more convoluted, everything is less linear. It’s more similar to Prey than Bioshock.
Also, the progression of the player is based on gadgets and weapons, there are no powers to level up by using points.
And with Baldur’s Gate I’m playing a thief which a master on almost every skill, but not the best in combat jajajaja.
The behaviour you mention is from npm install, which will put the same exact version from the package-lock.json, if present. If not it will act as an npm update.
npm update will always update, and rewrite the package-lock.json file with the latest version available that complies with the restrictions defined on the package.json.
I may be wrong but, I think the difference may be that python only has the behaviour that package-lock.json offer, but not the package.json, which allows the developer to put constraints on which is the max/min version allowed to install.