Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

212 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lance Commander – Battle for the Sphere

A free, non-commercial remake of MechCommander 2 (2001) in Godot 4.7, built on Microsoft's 2006 Shared Source release of the game. You command a lance of up to twelve 'Mechs, plus support vehicles, through the original 24-mission campaign. It has modern graphics, a rewritten simulation and the heat system the original left unfinished.

Mission 2: a lance fighting Bandit Legion infantry, with the tactical officer on comms, sensor rings on the tac map and an enemy tag

Status: work in progress. The campaign loop, combat, AI and world rendering work end to end. Art is still being upgraded, and balance has not been tuned.

What it is

MechCommander 2 was a real-time tactics game: no base building and no resource harvesting, just a small, persistent unit of 'Mechs and MechWarriors carried from mission to mission. Microsoft released its source code, tools and data in 2006 under a non-commercial licence. Lance Commander reads that data (maps, missions, mission scripts, unit stats, pilots, textures and models), converts it with its own tools, and plays it in a new engine.

The remake's code is new. It is written in GDScript from a reading of the original C++, with each rule traced to the original's source in comments and in docs/specs/. Where the original was unfinished, compiled out or inconsistent, the specs say what the remake does instead and why.

Features

Campaign

  • All 24 missions of the original campaign, in order.
  • Briefing: a tactical map with the drop zone and numbered objective markers, objectives with their rewards, the mission text and the tactical officer's notes. It also shows the support powers allowed, the weather and the forces you will meet. The objective target turns in a small view, as in the original, and the operation's briefing video plays there if you have converted it from your own disc.
  • Mech Bay: your hangar, with each 'Mech's pilot, loadout, ratings and a live 3D model. You deploy 'Mechs within the mission's drop weight and the 12-slot cap, assign pilots, and sell or buy 'Mechs.
  • Mech Lab: refit any 'Mech under MechWarrior 5-style rules. Hardpoints, slots and the structure weight are worked out from the stock designs, so every designer 'Mech is legal as it comes. Stripped parts go to stores, and a loadout can be saved as a named variant and applied to another 'Mech of that chassis.
  • Market: the mission's purchase list as offer cards. Each offer has the original's description, ratings, stock loadout and hardpoints, and the panel says whether a purchase joins the lance or goes to the reserve.
  • Pilots: a personnel screen with generated portraits, a short bio, and skill bars showing growth since hire. Each pilot has a service record and a mission log of every mission flown.
  • Paint: one colour scheme for all your units, with presets and patterns.
  • Debrief: objectives met or failed, the state of each lance member and enemy losses by force.
  • Salvage: after a win, every disabled 'Mech on the field, your own included, can be bought back at 80% of its price.
  • MechWarriors keep their skills, specialties and mission records between missions.
Mission briefing: objectives, tactical map with drop zone and markers, briefing text and intel Mech Bay: hangar roster, live 'Mech model, loadout summary and the deployment strip
Briefing Mech Bay
Mech Lab: parts list, the eight locations with hardpoints and slots, and the refit stats Market: offer cards, the Hunchback on the stage and its full detail panel
Mech Lab Market
Pilots: personnel list, a pilot portrait and the résumé with skills, record and mission log Paint scheme panel over the Mech Bay
Pilots Paint

Combat

  • A real-time tactics simulation with selection by click, drag box or unit card. You can move, attack, and capture buildings, hold position, or fire an alpha strike.
  • Heat is back on. The original's heat model was compiled out and unfinished. The remake completes it from the original's own tables, so weapons heat, heat sinks cool, and an overheating 'Mech shuts down.
  • Location-based damage: a per-unit paper doll on the unit card shows armour and internal structure for each location.
  • Weapon effects for each weapon, after the original's: lasers, PPCs, autocannon tracers, missile salvos and flamers, with impacts and wrecks.
  • Bases and turrets: turret forts, gates and sensor towers work as in the original. Capture a control building and its turrets and gates fight for you.
  • Support powers paid for with resource points: air strikes, artillery, sensor probes, scout 'Copters, minelayers, repair trucks and salvage craft.
  • The original mission scripts and AI brains: the remake has its own interpreter for ABL, MechCommander 2's scripting language. It runs the 2001 scripts for every mission's triggers, objectives, reinforcements and unit behaviour.
  • A framed HUD: lance cards, a command panel, a systems monitor, and a tac map that draws sensor rings as the original did and shows only the enemies you have contact with. Hovering over an enemy names it and its force.
  • Comms with subtitles: mission voice-overs and pilot radio lines show the speaker and the line. The subtitles are transcripts of the original's own audio and can be turned off in the pause menu.

Mission 22: a lance assaulting a Liao turret fort, missiles in the air

World

The ground, sky, water and weather are drawn from each mission's own data the way the original drew it, then built on with new detail. Notes on each step and the reasons for it are in docs/terrain-rendering.md.

  • The painted colour map: each mission's baked colour map is drawn unlit, as the original drew it. The sun follows the original's formula, so dynamic shadows fall in line with the painted ones.
  • Ground detail: CC0 detail textures, triplanar grain on steep slopes, and an edge skirt so the map does not end at a cliff.
  • Roads, runways, bridges and cement pads from the original overlay layer, upscaled.
  • Trees: a high-detail forest drawn with MultiMesh, so thousands of trees per map are cheap.
  • Skies and fog: a sky panorama per mission, mission fog colours, depth haze that follows the zoom, and height fog.
  • Water with the mission's own depth colours and the original's animated sparkle.
  • Weather: rain and lightning where the mission's data asks for them.
  • Ground marks: each 'Mech leaves its own footprints, plus impact craters, scorch marks under wrecks, and a wake ring in water.
Mission 1: the abandoned airfield on a chain of islands Mission 16: pine forest and hill roads toward a Davion base
Mission 1: the abandoned airfield Mission 16: forest and hills
Mission 18: the town of Bannikburg Mission 6: a walled base on frozen ground
Mission 18: Bannikburg Mission 6: base defence
Mission 10: rain over the hills Mission 14: autumn woods under a hazy sky
Mission 10: rain Mission 14: autumn

HD art

The original's models are low-polygon, with 128-pixel textures. The remake replaces them, keeps the originals as a fallback, and records the provenance of every asset (see docs/art-provenance.md).

  • 'Mechs: 30 HD 'Mechs. Most are adapted from 3D-printable miniatures shared under Creative Commons licences. Each sculpt is rigged onto the original 'Mech's skeleton, so it walks, turns its torso and dies with the original animations.
  • Vehicles: 28 HD vehicles, copters and infantry, adapted the same way, with turrets mounted on the original's turret joints.
  • Paint: enemy and allied units wear their mission's three-channel team colours. Your own units wear the scheme chosen in the Mech Bay.
  • Buildings:
    • The original's buildings keep their geometry. Their textures are upscaled 4x with RealESRGAN.
    • Common buildings are being rebuilt as new parametric CAD models.

HD 'Mechs: Atlas, MadCat, Bushwacker, Vulture, Anubis, Highlander, Catapult and Zeus

HD vehicles: Partisan, Storm, Drillson, Monsoon, Mobile HQ and LRM carrier

Getting started

You need Godot 4.7 and Python 3. The converted game data in game/data/ and the converted assets are in the repository, so the game runs from a fresh clone:

godot --path game

The first launch imports the assets, which takes a few minutes.

Controls:

Input Action
Left-click, drag, or a unit card Select units
Right-click Move, attack a unit or building, or capture
H Hold position
F Alpha strike
WASD, Q/E, mouse wheel Pan, rotate and zoom the camera
Click the minimap Pan there
Esc Pause menu (HUD scale, subtitles)

To regenerate the data from the source release, put the release in reference/mc2-source/ (it is gitignored) and run the converters:

python3 -I tools/convert/convert_all.py               # regenerate game/data
python3 -I -m unittest discover -s tools/convert      # converter tests
tools/run_tests.sh                                    # Godot tests (gdUnit4)

Layout

  • game/: the Godot project.
    • scripts/sim/: the headless rules (combat, heat, units, pilots, objectives).
    • scripts/abl/: the ABL interpreter.
    • scripts/flow/ and scripts/ui/: the campaign screens.
    • scripts/world/: rendering, camera, input and audio.
    • scripts/data/game_data.gd: the data loader.
  • tools/convert/: Python converters, standard library only, from the source release to JSON and glTF.
  • tools/art/: the HD art pipeline: sculpt rigging, vehicle assembly, texture upscaling, decals, trees, credits and provenance.
  • tools/cad/: parametric CAD scripts for the rebuilt buildings.
  • docs/:
    • the feasibility study and plan (feasibility.md);
    • the rules specs (specs/);
    • the rendering notes and art provenance;
    • screenshots.
  • reference/ (gitignored): the source release and alariq's port, treated as read-only and untrusted.

Licence ground rules

  • Never commercial. No sales, paid access, or payment-gated builds.
  • Branding: no "MechCommander" or "BattleTech" in the title, logo or branding.
  • Original-derived data (game/data/, converted assets) stays under Microsoft's Shared Source Limited Permissive License: see docs/MC2-SOURCE-EULA.md. Its notices must be kept.
  • Our own code is written fresh from reading the reference code, not copied.
  • New art of BattleTech designs depends on fan-project tolerance from the IP holders.
  • Adapted models keep their creators' Creative Commons licences (below).

Disclaimer

This is an unofficial, non-commercial fan project. It is not affiliated with, endorsed by, or sponsored by Microsoft, Topps, Catalyst Game Labs, or any holder of the MechCommander or BattleTech rights. MechCommander is a trademark of Microsoft Corporation; BattleTech and the 'Mech designs are trademarks of their respective owners. Data and assets derived from the 2006 Shared Source release are used under, and remain subject to, the licence in docs/MC2-SOURCE-EULA.md, including its non-commercial terms and notices. No content from the retail game disc is included in this repository. If you hold rights in this material and want something removed, open an issue.

Third-party assets

Many HD mech, vehicle and copter models are adapted from 3D-printable miniatures shared under Creative Commons licences (CC BY, CC BY-SA, CC BY-NC, CC BY-NC-SA 4.0); each adapted mesh is shared under its original's licence. The creator, source, licence and changes for each are in game/assets/<mechs|vehicles>/<asset>_hd.LICENSE.md. All credits: CREDITS.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages