Video Games

Star Trek Voyager: Across the Unknown

Oliver Brown
— This upcoming video may not be available to view yet.

I recently bought Star Trek: Voyager - Across the Unknown, a story-driven survival strategy game developed by Gamexcite and published by Daedalic Entertainment.

In fact, I pre-ordered it. Pre-ordering is something I tend to reserve for things I feel the need to signal support for that might otherwise struggle. I was a big fan of Star Trek in the 90s and early 2000s, and while recent Star Trek has been more of a mixed bag for me, I was excited for a new game based on this era, even if some of that is nostalgia.

It is surprising that anyone would base a game on a TV show that last aired nearly 25 years ago, and probably a bit of a gamble. That said, the last Star Trek: Voyager game I played was Elite Force, which was projected to sell 700,000 units but reportedly only sold around 300,000 worldwide which was considered an underperformance. Across the Unknown has already sold 100,000 units; whether that meets its presumably more modest target I can’t say, but it at least suggests I’m not alone in my nostalgia for this era of Star Trek.

Spoiler warning: The rest of this post contains spoilers for the game (and, in case it matters, Star Trek: Voyager).

Gameplay summary

The game is strongly structured around the major events of the show like the Kazon, the Borg, the Hirogen, the Borg again, which you encounter in order. These can’t be avoided, but how you handle them is up to you. Smaller, less significant events from the show are scattered throughout as optional encounters that you have to seek out.

In terms of feel, it’s a bit like Fallout Shelter (I mean the ship overview even looks like Fallout Shelter). Resource management is the foundation, with the most significant resource being morale. If it gets too low crew will mutiny. You make the decisions, whether to be diplomatic or aggressive, whether to embrace dangerous technologies like Borg research, and the game features roguelike elements, so each run plays out differently, with crew members permanently lost if things go wrong.

Advice to new players: If you leave a sector while someone is off the ship, they will be gone forever. The game technically warns you of this but is a bit understated, and sometimes you may have even missed that someone was off the ship. In my current run I guess I’ll never know what happened to Tom.

The game also covers ship management (repairing and constructing rooms, managing energy and life support), exploration, away missions, and ship-to-ship combat. The combat is a bit basic, but to be honest I think that fits in with the way combat has always worked in the show. In fact it is interesting how much Star Trek games have focused on robust combat mechanics when it was never really like that on-screen.

My thoughts

The introductory mission with the Caretaker is a bit long and a little annoying to play more than once, though you can influence things - including ending the game early by simply using the Caretaker’s array to go home.

Initially it feels like you follow the show’s story very closely, which can feel restrictive. But there is more flexibility than it first appears. You can recruit Seska, recruit a Kazon, lose Chakotay, and end up with zero, one, or more of human Torres, Klingon Torres, and “real” Torres. And of course you get to choose what happens to Tuvix.

The dialogue is not amazing, but somehow quaint. There is generally no voiceover except for the sector introductions by Tim Russ and Robert Duncan McNeill.

The game is hard. There are three difficulties - “Adventure”, “Survival”, and “Years of Hell”. I initially tried “Survival”. I thought it was quite easy and things were going well, until everything fell apart. I’ve since dropped to “Adventure” and I’d recommend it as a first playthrough since it is the best for exploring “what if?” scenarios.

Should you buy it

If you are a fan of Star Trek: Voyager, absolutely. If you are a fan of Star Trek of this era and want more video games based on it, then also absolutely. If you are a fan of Star Trek in general and are at least moderately interested in roguelikes or resource management games, then probably. Otherwise, it’s harder to say. On its own merits, without being based on Star Trek: Voyager, I’m not sure how well it stands up.

If you are a fan of the show, some of the elements are strongly telegraphed. For example, while fighting the Kazon you find out there is a traitor on the ship. If you watched the show you know who it is, and that can’t be changed. You can influence what happens, but you already know who to trust. This continues throughout the game, and many of the optional side missions are even named after the relevant episodes so you can see what is coming. It’s an interesting choice. Part of me wants to see what a playthrough by someone who hasn’t seen every episode several times would look like.

Suggestions for improvements

It would be nice if the player could control the ship right from the start while trying to find Chakotay and the Maquis. Some mechanics could remain locked, but it could be a good way to tease the player with what they can achieve by briefly showing them a fully functioning Voyager.

The away team mechanics are pretty cool but there aren’t enough missions. It would be good to see more of them, and perhaps with a bit more secrecy - currently you can see all the required specialties before starting a mission, which makes things a little too gameable. There’s also an opportunity to introduce random events during missions. The Star Trek CCG is structured around missions and dilemmas, where dilemmas represent generic1 things that could go wrong on a mission that the crew have to deal with. Something like that could work well here. Similarly, most space locations are just random resource gathering, and it would be interesting to see some kind of minigame introduced there too.

More randomness in general would be welcome. My ideal would be the ability to choose how closely the story matches the show when starting a run: what if Seska isn’t the traitor, or the crew encounter the Hirogen before the Kazon, or some entirely original events are introduced? On a similar note, playing with different ships could be interesting. Some suggestions I’ve seen are a harder mode based on the U.S.S. Equinox or Defiant-class, or an easier mode in a Galaxy-class ship. Probably beyond scope for a DLC, but someone suggested a version based on navigating the Delphic Expanse from season 3 of Enterprise, which I’d happily play.


  1. Okay, most of them aren’t generic and some care would be needed to not introduce some absurdity. Finding out the universe only has seventy trillion years left and working out what you should do about it, while trying to retake Voyager from the Kazon, would be weird. ↩︎

DirPlayer 0.4.1 released

Oliver Brown
— This upcoming video may not be available to view yet.
Supremacy title screen rendered in DirPlayer 0.4.1

DirPlayer 0.4.1 has been released. The headline changes are hardware-accelerated graphics, major performance improvements, and custom font parsing and rendering.

That last one is particularly relevant to Supremacy, as the previous version had broken fonts. I’ve updated the JS polyfill on the Supremacy page to the latest version, and the game does look noticeably better as a result. Most of the fonts now render properly, and all of the buttons are readable.

Unfortunately, it still isn’t quite playable. The runtime error that stops progress is still there, but it seems simple enough I may try to fix it myself. Which means learning some Rust…

Supremacy added to Flashpoint

Oliver Brown
— This upcoming video may not be available to view yet.

Back in January I wrote about Flashpoint Archive and my intention to get my old Shockwave and Silverlight games added to it.

Supremacy has now been added to Flashpoint.

Supremacy is a Risk-style turn-based strategy game I wrote in Macromedia Director and originally released in 2001. It supports both single player (against AI opponents) and local multiplayer.

You can find it in Flashpoint under the name “Supremacy”.

If you have Flashpoint installed, give it a try.

DirPlayer: A Shockwave emulator for modern browsers

Oliver Brown
— This upcoming video may not be available to view yet.

I recently posted about Flashpoint Archive, a way to play old Shockwave (and other) content. I have just discovered another option DirPlayer.

What is DirPlayer?

DirPlayer is written in Rust and compiled to WebAssembly and is available two different ways:

  • As an extension from the Chrome Web Store. This is useful for visiting any old or archived sites and just automatically loading the Shockwave content.

  • As a single JS polyfill. This allows people hosting the content on pages they can still edit to make their Shockwave content available to any modern browser.

Current status

At time of writing, version 0.3, has just been released. I’ve tried Supremacy in it. There is good news, and bad news.

The good news is the game launches. The fonts don’t work properly, and some buttons do not have colours making them hard to read, but you can actually start a game. Sadly, there is then a runtime error.

But I’ve decided to add Supremacy back on to the site in its original location and included the DirPlayer polyfill, which I hope to keep updated as development continues.

Supremacy - Shockwave game

Oliver Brown
— This upcoming video may not be available to view yet.

I started programming from a young age. One of the earliest programming projects I worked on that I was pleased with was a version of Risk called “Supremacy”.

Interacting with this video is done so under the Terms of Service of YouTube
View this video directly on YouTube

Shockwave was a technology created by Macromedia as a sort of companion/competitor/successor to the then ubiquitous Flash1.

Back in late 2000, I managed to get access to Macromedia Director1, the authoring software, and started playing around with it.

This was back when I was learning much of my programming from books (there was less available on the internet then). So I bought “Advanced Lingo for Games” by Gary Rosenzweig (Lingo being a bespoke programming language created just for Director).

Both Director and Advanced Lingo for Games are available on the Internet Archive now.

Supremacy is heavily based on the “Strategy Game” code sample included with that book. So much so, that the “Copyright © 2001 Oliver Brown” with no attribution makes me cringe a little now. So now is as good a time as any to thank Gary Rosenzweig for writing the book (and the code). I did eventually take it further, but that is for another post.

I made the game available on a website called “Shocklive!” on March 14, 2001 (and apparently released an update on March 18 with “no known bugs and better AI”).

Shocklive! as of May 17, 2001.

Today, the game has been submitted to the Flashpoint Archive and should be available soon.

Random trivia

Since it has been almost 25 years since I worked on the game, my memory has gaps. But I do still have the source code, so here are some things I can either remember or have worked out.

The name

Early in development I called it “Domination”, which is why the main file for the game is called dom.dcr.

Risk mechanics

It really is a bare bones version of Risk (mostly because it was designed as a programming tutorial and at best as a jumping off point to do more).

It has the original 42 countries from Risk, and uses the base rule: reinforcements equal to a third of your country count. It does not have continent bonuses however. This makes it much harder to snowball and as a result games tend to take longer (see the video).

It also does not use dice - every battle just gives attackers and defenders an even chance to win. This, combined with the fact that it also has no cards further lengthens games.

The computer player names

The default computer players are named after famous fictional AIs:

  • Deep Thought - The super computer from the Hitchhiker’s Guide to the Galaxy that determined the Answer to The Ultimate Question of Life, the Universe, and Everything was 42, and which went on to design an even more powerful computer, the Earth.
  • Orac - A sophisticated artificial intelligence from the British sci-fi TV series Blake’s 7.
  • Ziggy - The super hybrid computer from the sci-fi TV show Quantum Leap that runs Project Quantum Leap.
  • Zen - The master control computer of the Liberator, also from Blake’s 7.
  • Hal - The artificial intelligence and main antagonist in 2001: A Space Odyssey.
  • K-9 - The robot dog that was a companion in Doctor Who.

Title background

The background image is a Vietnamese girl holding an AK-47. I believe I sourced it from somewhere implying the girl was undergoing training to be part of some militia or military.

I still have the original copy and when I did a reverse image search I found it, with the description:

a Vietnamese high school girl practises taking aim with an AK-47 assault rifle during military training for students in Hanoi September 8 2000 high school and university students in communist ruled Vietnam take part in such training every year as part of a national defence programme"

Fonts

The main title font is Romulan Eagle. It sounds Star Trek based (which definitely makes sense with my interests at the time) but I honestly cannot remember anything about it. I have no idea where I found it. Possibly from the internet, possibly from a CD (CDs full of fonts were popular then).

The body font is Tahoma a standard Microsoft font which was apparently the standard screen font for Windows XP.

Also included in the project for some reason is Monaco, a font by Apple that was standard on Macs at the time. Which is a bit odd since I was using Windows at home and Acorn Computers at school.

Galaxia branding

Some time after the initial release, I added the message “Brought to you by Galaxia”. Galaxia is another game I developed (from which I got the online name I’ve been using ever since - GalaxiaGuy). I was working on a new version of Galaxia (which I tried a few times) when I first started this blog. The old Galaxia posts are still available.

Life on this blog

In fact, the game was available for a while directly on this blog. Sadly, this is no longer the case.

Screenshots

Some in game screenshots:

Opening in the project in Macromedia Director on a Windows XP VM:


  1. All the links say “Adobe”. It was Macromedia at the time. It shall live forever in my heart as “Macromedia”. ↩︎ ↩︎

Flashpoint Archive

Oliver Brown
— This upcoming video may not be available to view yet.

I’ve just found out about Flashpoint Archive, an application for playing old content created using Flash, as well as other obsolete browser technologies.

Interacting with this video is done so under the Terms of Service of YouTube
View this video directly on YouTube

The core functionality is provided by sandboxed versions of the plugins that run the content, a proxy server for games that need to believe they are run over the internet, and a launcher allowing you to browse and launch content - all wrapped up in a neat package.

And for the true archivists, there is a version that embeds all the content for download that, at the time of writing, is 2.28TB.

I’m interested in this for a couple of reasons.

Firstly, the preservation of history. I would like everything we create as a culture to remain available in some way (which is why I also support the Wayback Machine and the Internet Archive). I’m also of the right age that much of this was some of the most popular content available on the internet when I started using it.

But also, I myself have some stuff I’ve produced that is hard to access in modern browsers. Specifically, some Shockwave and Silverlight games.

So, for the near future I’m going to do what I can to get my games added to the archive.

Stop killing games European Citizens' Initiative

Oliver Brown
— This upcoming video may not be available to view yet.

Stop Killing Games

The people behind StopKillingGames.com have launched a European Citizens’ Initiative as part of their cause.

This is essentially a petition that if sufficiently supported, would require an official response from the European Commission. Based on the reasons in my previous post, I urge all EU citizens to sign.

At the time of writing, it has reached 355,503 of the 1,000,000 required signatures, and a minimum threshold in 6 out of 7 countries. It must reach its target by 31 July 2025.

Stop killing games

Oliver Brown
— This upcoming video may not be available to view yet.

You have missed your chance to play The Crew

A new campaign has started to try and preserve video games that become unplayable when the developer and/or publisher no longer wishes to support them.

This post is mostly a collection of random commentary on games that I have tried to order as coherently as possible.

For a more succinct description of the problem and what you can do to support, visit StopKillingGames.com.

Growing up with games

This is a topic that I feel strongly about. I grew up playing video games. The first games I remember playing were on a Commodore 64. The first that were my own were on a Nintendo GameBoy and Sega Master System. Since then I’ve owned many consoles and computers. I’ve owned a few that were essentially “before my time” like an Atari 2600. In fact I first got into programming on a Sinclair ZX Spectrum.

This means I have a lot of memories playing video games, and for most of that time I knew that those games would remain playable indefinitely. The reality of hardware degradation means that for practical purposes most people would have to resort to emulation, but in theory someone who owned the original game would always be able to play it.

That is no longer the case for many modern games.

New games

There are some games that fundamentally require server resources to run. For some those those can be run by individuals - many early MMOs like Ultima Online have private servers for instance. Others like EVE Online might never be reasonable to run locally. And despite the fact that I would like these to remain playable indefinitely, these are not really the games that concern me the most.

Live service games

The games for which this is a problem is live service games, especially ones with a significant single player component. I think if a practical solution is to be found, then the “single player” aspect is going to have to be important - after all a mostly multiplayer live service game is pretty close to an MMO.

One sticking point is disagreement between the people running the game and the people playing the game what kind of game it is. Both Diablo III* and Diablo IV require an online connection to play, and the latter certainly adds quite a lot of content that only really works online. But a large number of players, including myself, only play it solo. But I have also played both Star Trek Online and Elder Scrolls Online (which are definitely MMOs) predominantly alone.

* Interestingly, Diablo III on console did not require an online connection. The result was hacked save files, which meant choosing to play with strangers online was awkward. But playing alone was fine.

Ubisoft and The Crew

This issue has come to prominence recently after Ubisoft decided to shut down The Crew. This is not a game I have played but it sounds like it falls to the sticking point I mention above. A lot of the game is based around being online and playing with others, but not all of it.

Ubisoft are making the opinion of the problem quite clear though, apparently taking things a step further and revoking digital licenses. This seems like a crazy move - I can imagine people making well reasoned arguments about companies not having to put resources into supporting games, but that doesn’t really hold any water when considering removing all access to people with digital games.

What to do

StopKillingGames.com is probably the bast place to go for information on how you can help. I would also suggest being as selective as you are able in the developers and publishers you support. For me, I personally spend more time playing single player indie games which generally don’t have this problem (being the digital license issue).

My games

For my own games (currently this means Tic-Tac-Toe Collection but I intend it to apply to anything else I ever make) I will always follow the principle of not requiring an online connection unnecessarily. That means that core functionality should not require it at all, and any features that do require it should not impact the rest of the game.

I have accidentally proven this a few times by managing online resources badly and allowing services to go offline. The game continued to work fine.

Elo rating for ad hoc teams

Oliver Brown
— This upcoming video may not be available to view yet.

One final feature my expanded Elo rating needs (or at least the last I can think of) is the ability to deal with ad hoc teams.

By “ad hoc teams”, I mean teams of individual players with their own ratings that are on the same team for a specific game, but don’t generally stay as a team (established teams that always play together should be treated as their own “players” with their own rating).

This is not a common requirement, but the specific use case I had was an office ping pong table. Some times people would play singles and some times they would play doubles, but with no really established teams.

Necessary features

Firstly, the two key ratings operations need to work:

  • Estimate the result of an unplayed game
  • Updating ratings after an actual result

And all the existing features should be supported:

  • Two or more teams
  • Unfair games
  • Ties

Additionally, it should support teams of arbitrary (and mixed) sizes, including teams of size one. This brings us to one of our first less-obvious requirements - since this is expanding an existing system, it should be compatible with the existing system where it overlaps. So the following additional requirement makes sense:

  • Teams of one should give the same result as just using individuals

Simple solution

Just like with unfair games in which an adjusted rating is calculated first, and then used in the rest of the algorithm, and adjusted rating should be calculated for a team. This would trivially allow all the existing features to just work.

The most obvious way to calculate such a rating would be a simple arithmetic mean of all the players. This would definitely support our key requirement, but would it produce meaningful results?

At this point I think simplicity has to win out over sophistication. The most general solution would allow players to be weighted on each team (perhaps different roles in a team have different impacts on the result) but I think those situations are more likely to be handled with a per team rating.

Elo rating for unfair games

Oliver Brown
— This upcoming video may not be available to view yet.

In my previous post, I described an extension to Elo that could handle multiple players. The next restriction to overcome is that Elo assumed players of equal skill have an equal chance of winning.

In most games, players don’t actually have an equal chance of winning a single game. Chess overcomes this by having a match consist of several individual games with players switching who goes first. This is a good solution for two player games but gets awkward for multiplayer games. It is also inconvenient if having a multi-game match is undesirable for any reason.

Adjusted rating

Elo is fundamentally designed to handle players of different skill levels and produce a probability of them winning. The approach is therefore to determine an adjusted rating for someone such that the probability of winning is as desired.

The formula to work out an Elo expected score is:

E = 1 1 + 10 R 400

In our case we have an expected score (the win probability) and want to work out a rating difference, so we can just rearrange to get:

R = 400 × log 10 1 E - 1

We then subtract this adjustment from the player’s actual rating to get their effective rating to use in the rest of the Elo calculations.

The reason we subtract it is that for players A and B, the rating difference is calculated as RB - RA which is the opposite way round to what we want.

Here are the rating adjustments for some sample win probabilities:

Win probability Rating adjustment
0.01 -798
0.10 -382
0.25 -191
0.49 -7
0.50 0
0.51 +7
0.75 +191
0.90 +382
0.99 +798

If you try to calculate the adjustment for a win probability of 0 or 1, you get -∞ and +∞ respectively.

This means, for example, if you beat someone of an equal rating at a game you only have a 10% chance of winning, it’s the same as beating someone rated 382 points higher at a fair game.

Putting it all together

After explaining the theory of how to expand an Elo rating to support all the variations in Tic-tac-toe Collection, it’s time to put it into practice.

While writing this I’ve also been working on an implementation.

As well as adding it to Tic-tac-toe Collection, I’m planning on creating some kind of site and/or app just to work out Elo ratings for various results (and hopefully even to maintain ratings for players in any kind of competition you might want to run).