I’m looking for volunteers to give it a whirl, please. You’ll need Python 3.8 or higher (instructions are given in the README). It takes no more than a few minutes to reach the shortest ending.
It’s a major rewrite since the debugging from last time. Should be a much improved experience.
Tea and Sympathy is the demo/teaching example for the Balladeer library, of which more news soon.
Balladeer is 100% Free software.
Game logic is Python code.
Dialogue lives in separate screenplay files.
Balladeer renders your story in pure HTML5 and CSS3. No Javascript is necessary.
Host web-mode for the browser experience or play old-school in a terminal.
I’m going to create a number of blog articles (maybe even videos) to act as tutorials. We should see some decent progress in that direction before Christmas. All the best!
V:\sw\tundish\balladeer>v:\sw\tundish\balladeer\Scripts\pip install -U pip wheel
Collecting pip
Downloading pip-21.3.1-py3-none-any.whl (1.7 MB)
|████████████████████████████████| 1.7 MB 595 kB/s
Collecting wheel
Downloading wheel-0.37.0-py2.py3-none-any.whl (35 kB)
Installing collected packages: pip, wheel
Attempting uninstall: pip
Found existing installation: pip 20.2.3
Uninstalling pip-20.2.3:
ERROR: Could not install packages due to an EnvironmentError: [WinError 32] The process cannot access the file because it is being used by another process: '\\\\starfish\\public\\files\\sw\\tundish\\balladeer\\scripts\\pip.exe'
Consider using the `--user` option or check the permissions.
V:\sw\tundish\balladeer>v:\sw\tundish\balladeer\Scripts\pip install -U pip wheel
Traceback (most recent call last):
File "D:\python3\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\python3\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "v:\sw\tundish\balladeer\Scripts\pip.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'pip'
The bit about setting up a Python environment was a curve ball. Basically, if you’ve got python installed, then you just pip install thing, otherwise it doesn’t work.
Python is full of this not-working behaviour. I’ve yet to find out if there’s a portable deployable python runtime. So far, not found it. portablepython is no longer supported and Winpython is meant to be portable, but it depends on a bunch of environment variables, which of course won’t be there on another person’s machine. Also winpython is full of DLLs. Why isn’t it static?? I can’t find a win static python build either. It’s like they don’t want it to work!
I’ve mostly abandoned all hope with python, because of just these sorts of issues.
Anyway,
I have the “tea” game running. Nicely presented in the browser, but i keep being punished for typing the wrong thing, having to wait while the same messages repeat themselves again and again…
Yes, this is something not everyone enjoys .
This game is a demo, and its purpose is to show off the capabilities of Balladeer. Hence flaunting the text animation, etc.
An author can choose the timing of text animation (or switch it off altogether).
I tried playing the game, it’s a bit weird. But i guess that’s the design. I was surprised that inspect X is needed when look at X, look X, examine X, x X didn’t work?
Also, i think it should make you aware when it doesn’t understand. So, for example, typing random letters, doesn’t complain, but instead ignores you.
Then you are a flinty-eyed top-tier adventurer
Thanks for spending time with this project.
I admit I haven’t been testing so much the terminal mode, which is more akin to the traditional IF experience.
If you have any recommendations there, I’d gladly incorporate them into the next release.
You might want to consider doing a standalone release for Windows, since Python is such a pain on that platform. I’ve had good luck using the somewhat misleadingly named PyInstaller to do that.
Yes, the instructions for Tea and Sympathy take pains to walk a Windows user through the process. If they don’t work for you, please let me know and I will try to fix them.
But I also think that a tide is turning, and that many enthusiasts will embrace small Linux platforms like Raspberry Pi, etc.
Then many things which were blamed on Python will be seen as faults with Windows.
The Zipapp method also looks promising (you run the app from the downloaded zip file).
But in my tests it hasn’t always worked properly. So I’m not recommending that yet but I’m hopeful for the future
Another update on Balladeer before a jam which is likely to keep me quiet for 3 weeks or so.
The code repository now has several examples which take you from Hello World to a fully working web application.
The development blog walks you through these. There’s also an article explaining the architecture of the framework itself.
The demo game, Tea and Sympathy is now at version 0.16.0, with full instructions on how to run it.
For the moment, there is one server online for anyone who is just curious to play.
Another update; there is a new example in the Balladeer repository, designed to demonstrate the enormous potential of approaching IF design from a web-native perspective.
This is a complete example of a Balladeer story which accepts text commands in the browser.
It also provides API endpoints to service a Javascript frontent.
The JS components create a graphical diorama, with extra product detail when the user
mouses over a game object.
The main focus of this demo is a JS implementation of a ‘typeahead’ prompt for user text input.
Here is a screenshot of 'Ten Green Bottles`, a traditional song crafted as Interactive Fiction in a Balladeer style:
I think running this example represents the sort of hurdle a prospective adopter would need to navigate on his own, as a sort of qualification step into the framework.
If there’s anything lacking in the documentation which stops you getting there, that’s definitely on me to fix. So please let me know if you run into any problems.
I’m intending to put together some tutorial videos soon. It’s hard to commit to a timescale because there’s a lot I need to learn myself on how to present and produce, etc. But my current target for that is August this year.
Just discovered this language, I’ve been looking for a Python-based interactive fiction system. The approach taken is very different from what I’ve been used to and I can tell it’ll take a long time to wrap my head around, but it seems like a very powerful system potentially. I look forward to seeing how this evolves.