Pyskool

A remake of
Skool Daze and Back to Skool

Avoiding the void

Pyskool 1.3 has been released. As usual, copies are available from the download page, the Python Package Index, or GitHub.

Yes, despite numerous reports to the contrary (possibly), Pyskool is not dead. It just needed a decade off to go and find itself, or something like that. And now I’m glad to report that it’s back, and it has found itself to be seriously out of date. Which is where this new release comes in.

Most important of all, support for Python 2.7 (which reached End of Life on 1st January 2020) has been dropped: Python 3 (for which support was added in version 1.2) is now a minimum requirement. Gone also is support for Pygame 1.x, coinciding with the addition of explicit support for Pygame version 2 - which, it turns out, is not entirely backwards-compatible with version 1.

Those changes aside, this new release does continue the now well-established tradition of including no new features. There are several bug fixes, though. Most notably, the bug that could send a character to a negative x-coordinate (i.e. into the inescapable void beyond the left edge of the visible play area) has been squashed. Less notably, Einstein now responds to Mr Rockitt’s questions in Ezad Looks without missing out the word ‘is’.

Anyway, for full details on all the fixes and minor changes in this release, consult the changelog. After that, I encourage you to take this opportunity to download and play Pyskool while it’s in this rare, up-to-date and working state. And cheerio until 2036, when - if I still have my wits about me - I might be releasing version 1.4 to provide compatibility with Python 3.25 and Pygame 3.

Eat in and take away

autowrap

Pyskool 1.2.1 has been released. As usual, copies are available from the download page and also from PyPI.

This is a maintenance release with - wait for it, wait for it! - no new features. With that déjà vu-inducing admission out of the way, let’s get on to what’s actually changed in the 16 or so months since 1.2 was released.

First, when Eric is writing on a blackboard, the text will now automatically wrap from the first line to the second. The fact that this was previously not the case was also known as bug 582343 or issue 3. However, unlike the original games, the text still does not wrap from the second line back to the first. We may have to wait another six years (perhaps more) for that to be “fixed”.

Next, two missing verbs - ATE and KIDNAPPED - have finally been added to the [AssemblyMessages] section for Back to Skool. Why they were missed out to begin with remains a mystery. My best guess is that it happened because ATE and KIDNAPPED are not contiguous with the other verbs in memory in the original game, so I overlooked them. If you have any better ideas, feel free to comment.

Finally, the worldofspectrum.org URLs in images.ini have been updated (from ftp to http). This shouldn’t have caused any problems because images.ini contains secondary URLs pointing at tzxvault.org, but still, a broken link is a broken link.

So there it is. Take Pyskool 1.2.1 for a spin today and see how many assemblies you have to sit through before Mr Wacker puts you all in detention because someone ate or kidnapped the caretaker’s budgie.

No quit

Hang Pyskool?

Continuing the theme of new versions without new features, I hereby present Pyskool 1.2. Get your copy from the download page or from PyPI.

1.2 does contain a bug fix, though. In 1.1.1 and 1.1.2, if you press Escape while Eric is writing on a blackboard, the quit menu appears but does not respond to keypresses, leaving you unable to select ‘Yes’ and actually quit. To make things worse, in this situation even the window close button doesn’t work. So here comes 1.2 to the rescue: the quit menu now responds to keypresses when Eric is writing on a blackboard. In addition, the Insert (screenshot), F2 (save), F6 (load), F11 (toggle full-screen mode) and F12 (menu) keys also now work when Eric is writing on a blackboard. I think we can all agree that the fact that Eric has a piece of chalk in his hand should not interfere with the ability to take a screenshot or bring up the game menu.

The only other significant change that 1.2 brings is support for Python 3: Pyskool now passes the test plan when run with Python 3.4. However, I wish you luck in finding a version of Pygame compiled for Python 3. I used the python3-pygame package in the Debian experimental distribution, but at the time of writing there are no officially approved downloads on pygame.org for Python 3. Not to worry, though: Pyskool will continue to work with Python 2.7 for a good while yet.