Halo: The Master Chief Collection
Help us shape the future of the Vortex mod manager by taking our survey
0 of 0

File information

Last updated

Original upload

Created by

DavidJCobb

Uploaded by

DavidJCobb

Virus scan

Safe to use

About this mod

Halo Chess+ is an enhanced version of the official Halo Chess gametype.

Permissions and credits
Changelogs
Halo Chess+

Halo Chess+ is an enhanced version of the official Halo Chess gametype, with new options and features.


New features
Halo Chess+ features a fully functional check and checkmate system, allowing you to win matches without having to rely on honor rules. It also features a number of enhanced features:

Team play: In the original gametype, only one player on each team would get to play. In Halo Chess+, each player on a team gets to take turns working the board.

UI improvements: If one of your pieces has no legal moves, then its waypoint will be dimmed, so you can tell at a glance which of your pieces can actually be moved.

Draw conditions: Halo Chess+ can detect several kinds of draws and end the match, including stalemates and insufficient materials. There is also a configurable turn limit.

More options: Set the species for each team.


How to install
You need to copy the *.bin file into your saved game variants folder, which is located here (the exact path varies depending on your internal XUID, or Xbox User ID):

%APPDATA%\..\LocalLow\MCC\LocalFiles\<YOUR_XUID_HERE>\HaloReach\GameType

If that folder does not exist, try saving a game variant or map variant in-game so that the folder is generated. When adding new files, note that the Master Chief Collection only checks this folder once, when you click through the title screen ("Press [Enter]"). If you add files to this folder after that moment, you will need to fully close and restart the game in order for those files to appear in-game.

A map variant has also been provided in the files section; alternatively, you can use find the original map variant for Halo Chess, a Forge World variant named "s0 b0r3d" available on the File Share of DeepBlue6969.


How does it work?
Halo: Reach uses a new scripting language for its gametypes, called "Megalo." However, when we talk about Megalo, there are two things we can talk about: the scripting language that Bungie uses to write Megalo code, and the compiled "bytecode" that the game engine actually uses. It turns out that the bytecode is much more flexible than the actual language that it was designed to support.

Very little is known about the original Megalo scripting language; no one outside of Bungie and 343 Industries has ever even seen it. However, Bungie's past statements indicate that it's very similar to BASIC, and it has no for loops (for-each loops don't count), function calls, or other fancy jumps. This makes the language easy to program, but also makes it very limited. The bytecode, however, does support function calls. Nested blocks of code are compiled as disconnected units that "call" each other, and this same mechanism can be used to implement user-defined functions. This makes it possible to design a new scripting language that compiles to the same bytecode, but that has full support for functions, and doing so would mean that you have a lot more to work with than Bungie did.

Functions make it significantly easier to check a piece's valid moves, and that makes everything else easier: determining whether a player is in check; determining whether a player is in checkmate; determining or not moving a given piece would expose your king to an enemy and put yourself in check; determining whether a piece has any valid moves... When you have a single function that you can call whenever you want (even multiple times per frame), without having to keep track of things across multiple frames, things get so much simpler.

As such, Halo Chess+ was rebuilt entirely from scratch, instead of just being an edited and enhanced copy of Bungie's original code.


Additional notes

Halo Chess+ was created using ReachVariantTool. The script source code is in the downloads section.