-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
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
anura: init at 20171110 #31511
anura: init at 20171110 #31511
Conversation
anura is the game engine that powers the games frogatto & argentum age.
For the games you could first create a symlink tree to the engine parts. |
|
||
installPhase = '' | ||
mkdir -p $out/bin | ||
install -p anura $out/bin/anura |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick: install -Dt $out/bin anura
instead of both lines.
install -p anura $out/bin/anura | ||
''; | ||
|
||
src = fetchgit { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fetchFromGitHub
now also has fetchSubmodules
, so it's better to use it instead:
src = fetchFromGitHub {
owner = "anura-engine";
repo = "anura";
rev = "fee247c573005777de9f6eb67debc83988818898";
sha256 = "03j6ld0g8kh5x6d2qna1rrp8jzs587a5zw2qz71w5ryqn8w4jdil";
fetchSubmodules = true;
};
How would I run this game with e.g. UPD: nevermind, it has |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've tested this both with Argentum Age (citadel
) and Frogatto and it doesn't work. This should at least install data/
and modules/
as well as the engine binary, otherwise games can't run.
Currently, this only runs if I fetch anura
from master, copy game files to modules/game-name
in anura
directory, build this derivation and start with result/bin/anura --module=game-name
.
is using stow fine for that ? or do you have sthg else in mind ? @yegortimoshenko sorry my first post was not clear enough. This is only the engine but I do wish to add argentum age to the PR. Frogatto would be a nice addition but I didn't know the data was non free. Maybe it's still available though. |
@teto I was wrong, Frogatto's data is under CC-BY 3.0: https://github.com/frogatto/frogatto/blob/master/LICENSE There are two problems with adding game data into the derivation:
There will probably be more games that use this engine in the future, and we shouldn't have to tweak the derivation when every new game comes out. It's unfortunate that the engine itself doesn't do this already, but this could be solved by writing a wrapper that makes deeply symlinked (to the effect union mounted-like) temporary directory that stacks game engine on top of current working directory, which should be the game data folder. At current form there is no sense in having this derivation at top-level. |
well I fully agree with you, it seems like a stupid limitation to have the game in a submodule. While creating such a wrapper should be easy/ok (especially with stow), I will try to ping upstream if they can't solve it there. |
@yegortimoshenko just to confirm you could play argentumage ? even if it was hackish that would be already good news :) |
@teto I could! I fetched https://github.com/anura-engine/anura, fetched Argentum Age repo into |
I'm only peripherally involved in Frogatto these days, so I'm somewhat posting in ignorance here. Could a simple soft link, like Considerations: If you would like to package the stable frogatto release, version 1.3, it will need an older version of the engine. The current version of Anura is not backwards-compatible that far. I'm not sure if the current development version of Frogatto is 100% playable at the moment. It might not load some levels. Thanks for taking the time to package Anura! ❤️ |
Nix store is read-only, so that is not possible. We can't make any changes to On the other hand, if
As long as Anura is backwards compatible, that should not be an issue: if the game stops working, the Nix package can be updated or an older version of game data can be used. The auto-updater won't work of course, neither would we want it to. |
I don't think I understand. Couldn't you change the modules link before Anura is built? Or can you not change anything the link links to, even though the link links outside the store? eg, "${store}/anura/modules" would be a link to "${writable-user-data}/anura/modules" or something, so nothing in the store would have to change. Then, a user could link "${writable-user-data}/anura/modules/citadel" to "~/Downloads/citadel" if they wanted to. (There are a few people who do the last link already.) |
Upstream doesn't seem to want to fix this, so closing. Feel free to reopen if proper workaround is implemented, but mind that Anura doesn't seem to be particularly vigilant about not breaking reverse compatibility, meaning it's not a game interpreter and perhaps should not be treated as such. |
anura is the game engine that powers 2 great games:
The game engine works, the problem is that games are basically folders in "${anura}/modules" so not sure how to make the game installable without triggering a recompile of anura.
Things done
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)