Posted this on my
patreon, figured I'd post it here as well.
(click to embiggen)
First playtest of STURNVULF mission script
2019-08-16 -- Tonight at HackRVA in Richmond, VA, I and a few other people tried a play test session of the new STURNVULF mission script, which has an interactive-fiction-like element as part of it, similar to old Infocom games like Zork. In this mission, your crew is informed of a ship called the STURNVULF's last known position, and that a previous rescue ship sent to the aid of the STURNVULF was destroyed, probably by Zarkons, but not before landing a rescue robot on the STURNVULF.
You fly your ship out and locate the STURNVULF, and can command the rescue robot via COMMS in the usual interactive-fiction manner to try to figure out what's going on. There are survivors to rescue and planted bombs to deal with.
The playtesting mostly went alright, with no outright crashes or lockups of the system per se, but not without a few hiccups. Overall I was satisfied with the near lack of bugs, especially since I made 23 commits related to the STURNVULF mission today, right up until a couple hours before we began playtesting, and many more in the days leading up to now. But there were a few bugs and tweaks needed.
The gist of the mission is that while COMMS is busy wrangling the remote robot aboard the STURNVULF, Zarkons periodically appear to harrass the rest of your crew.
It soon became apparent that the frequency of Zarkons appearing was too great, and within short order, the ship was spinning around helplessly with badly damaged maneuvering. Giving the ship 1000 missiles and greatly decreasing the frequency of Zarkon appearances made the crew's job manageable enough that COMMS could make progress while the rest of the crew could wrangle the Zarkons without too much drama. This worked pretty well for the most part.
However, it took COMMS quite a long time to work through the little adventure I had set for them. In fact it took long enough that we ran out of fuel twice, and had to call a Mantis tow ship twice to be towed in for fuel and general repairs. This interrupts COMMS adventure, because you must be nearby the STURNVULF for the robot to receive your communications. And the first time we tried calling the tow ship, none were around, so I had to go into the Demon screen and add in a Mantis tow ship so that we could summon it again. After that summoning the tow ship worked flawlessly.
So that's all fine, more or less, but the pacing was perhaps a little slower and longer-running than would be ideal. There was a bit of "guess the verb" or "guess the noun" or "guess the phrasing" happening with the adventure game as well. This is probably to be expected given the whole thing is a bunch of Lua script I threw together in the last 2 weeks. I have significantly leveled up in my Lua programming abilities over the last 2 weeks as a result of this, so that's nice.
There were some (justified) complaints about the NAV screen, esp. about the SCIENCE Arrow, and how it's difficult to tell if it's point towards you or away from you. Having played with it a lot myself, I suppose I'm accustomed to it and can figure it out quite easily, but for people that are new to it, or who have not played the game in a few months, visually it can be pretty ambiguous and confusing. Need to think about how to improve that without making it too ugly.
There were at least two outright bugs in the script. 1) at some point (maybe 2 hours(!) into the mission) we got a "comparing number with nil" error. I have the log file on my laptop, I don't remember the precise line. I think it was in add_zarkons(), probably zarkon was nil unexpectedly. 2) The script creates a custom button on the SCIENCE screen, ("TRANSPORTER") used to beam survivors off the STURNVULF. At some point, this button disappeared, making it impossible to transport any more survivors off the STURNVULF. I think it may be after we docked with a starbase for refuelling, perhaps that clears the custom buttons. I will need to look into that.
Replayability of the mission is probably not very good, as once you've figured out all the little puzzles in the little adventure game, the novelty of them is gone, and it becomes much less interesting. So creating this type of mission script is *very* high effort (especially this first one of this type, subsequent ones would be easier as much of it is abstracted and generalized ... by which I mean all the stuff in share/snis/luascripts/MISSIONS/lib/interactive-fiction.lua) for very low replayability. But, I will say it did give a feeling of a much more detailed context about what the mission was about. It was much more of a proper Star Trek like feeling to have this little robot being directed by COMMS rummaging around on the disabled ship trying to figure out what happened while the rest of the crew fights off the Zarkons, rather than just the usual "go over there and blow those guys up for no very real reason" type of mission.
The (natural and expected) slowness of COMMS figuring out the little adventure game was to some degree at odds with the desired pacing of the rest of the crew. I tried to throw COMMS up on the MAIN VIEW and the rest of the crew could enjoy what was going on there between Zarkon encounters, but the Zarkon encounters were distracting enough that the unfolding story was hard to follow very closely. After I adjusted the Zarkon encounter frequency to be low enough, there were many instances between encounters when the crew would become distracted and then be caught off guard by the next encounter.
Overall, I'd say the idea of putting interactive-fiction into COMMS was a qualified success -- very good for COMMS, maybe not quite perfect for the rest of the crew, the pacing needs work, and the mission becomes too long for the rest of the crew.
There were some problems compiling the game on SuSE leap 15.1. 1) Needed to install pkg-config and pkg-config_files. 2) Needed to set pkg-config-path environment variable (to what? Need to find this out.) 3) All references to lua 5.2 needed to be changed to lua 5.3. Note, we only compiled snis_client (via "make bin/snis_client") which shouldn't need lua at all. I don't know if the differences between lua 5.3 and lua 5.2 are significant enough to break things. I normally use lua 5.2 on my systems.
If you would like to try the little COMMS adventure from the terminal without the whole surrounding SNIS infrastructure, you can run "lua share/snis/luascripts/MISSIONS/STURNVULF.LUA There will be some slight differences in how the transporting of survivors works, and the "win condition" doesn't really trigger in this stand alone mode, but if you just want to play with the little adventure game by itself, you can.
BTW, the tweaks I made to missiles and to the zarkon encounter frequency have not been committed to github, so the STURNVULF mission that's in github right now will be a *very* tough (read: impossibly tough) mission. I'll probably work on updating it in the next few days.
Here is a
list of issues created as a result of this play testing session.