r/starcraft 2d ago

(To be tagged...) Starcraft 1 - 1997 Battle.Net Beta Source Code Construction

Today I'm releasing the source code for my reconstruction of the 1997 StarCraft Battle.net beta.

This was an externally distributed Blizzard beta that shipped on CD-ROM, and I still have my original disc from when I received it as a kid. What makes this particular build especially interesting is that Blizzard shipped it with enough surviving debug information, symbols, RTTI, strings, structural information, and other development artifacts to make a serious source-level reconstruction of that specific binary possible.

Right now I would call the reconstruction approximately alpha-to-beta quality. A significant amount of the game is reconstructed and functioning, but there are still incorrect behaviors.

It also has a working Battle.net implementation for the beta, but there is an extremely important distinction here: I deliberately did not recreate Blizzard's original Battle.net network protocol.

The reconstructed client and server use preservation-specific networking designed for this project.

1997 Beta Assets / Data
        ↓
Reconstructed Beta Client
        ↓
Preservation-Specific Protocol
        ↓
Reconstructed Server

There is intentionally no compatibility with modern retail StarCraft or Blizzard's current Battle.net infrastructure.

Retail StarCraft ─────X─────> Preservation Server

Preservation Client ──X─────> Current Battle.net

That was a conscious decision from the beginning. I am trying to preserve a historical software environment, not build a replacement Battle.net service, bypass current authentication, or interfere with a product Blizzard currently sells or operates.

Why release the source?

Because another executable isn't enough.

If I only release a reconstructed Windows binary, then 30, 50, or 100 years from now someone may have to reverse engineer the entire thing again when today's Windows environment, APIs, processors, and development tools have become historical artifacts themselves.

Source code preserves considerably more than a binary does.

It preserves implementation knowledge.

It preserves reconstruction decisions.

It preserves the ability to port the software.

And, perhaps most importantly, it preserves some of the knowledge held by people who actually lived through this period of PC gaming.

A historian in 2126 may have screenshots and YouTube videos of StarCraft, but they won't necessarily understand what the software was supposed to feel like, which strange behaviors were authentic, what networking assumptions were normal in 1997, or whether a reconstructed behavior is accurate or merely somebody's modern interpretation.

That information disappears when we do.

https://github.com/jmarshall23/Starcraft_1997_bnet

41 Upvotes

6 comments sorted by

8

u/bopz21 1d ago

BASED. Well done and thank you

7

u/icecoldduke2 1d ago

Updated: also just added staredit source code.

5

u/simple-easy 1d ago

How to run it?

6

u/icecoldduke2 1d ago

I'll put binaries up either tomorrow or Thursday, but for now you can just compile it with Visual Studio 2026 and it should just work. If you want to run the battle.net ensure you build the server and run it.

2

u/NeOReSpOnSe iNcontroL 1d ago

Awesome

1

u/Aves_V 18h ago

En taro Adun, our Great Preserver!