Skip to content

Latest commit

 

History

1,657 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enemy Nations

Introduction

Gameplay videos here (old retail version running on modern OS): https://youtu.be/2frnj2uHqWI https://youtu.be/sWHDBbYF9C4

Enemy Nations Cover

Released in 1996 by Windward Studios, Enemy Nations is an RTS. The premise of the story is that you, along with several other alien races, have discovered a planet to colonize, and now you must all fight each other for the right to be the first to colonize this new planet.

The game was released as freeware in October 2005, and the game and source code was made available for download.

This repo is the revival of that source. The original 32-bit MFC/DirectDraw/WinG code has been ported to a 64-bit SDL2 build that runs natively on Windows, Linux, and macOS.

Just want to play?

Grab a zip from the Releases page. Each release ships three self-contained archives (Windows x64, Linux x64, macOS arm64) with the game, the data file, and all runtime libraries included. Unzip and run.

Project status

What’s done:

  • Native 64-bit builds for Windows (MSVC), Linux (gcc), and macOS Apple Silicon (clang), all from one tree.

  • MFC, DirectDraw, WinG, and the CD requirement are gone. Rendering, audio, video, and all dialogs run on SDL2.

  • Music works on all three platforms.

  • Multiplayer over TCP/UDP (the old IPX code is retired). Players must be mutually reachable: same LAN, bridged VMs, or port forwarding. Cross-NAT play is not supported yet.

  • Old saves still load. Save format compatibility is tracked deliberately, see enations_latest/src/version.h.

Known limitations:

  • The lobby may show remote players as "Human". Races are applied correctly at game start; display-only bug.

  • Loading a multiplayer save requires all peers reachable.

  • A rare worldgen roll can produce an unlandable start region. Re-roll the map.

Building from source

See BUILD.md. Short version: CMake on all three platforms, Visual Studio 2022 on Windows, gcc plus the SDL2 dev packages on Linux, Homebrew SDL2 on macOS.

The game needs the data archive ENations.dat (~516 MB) at runtime. It is not in the repo. The release zips already include it; if you build from source you can take it from a release zip or download it here:

Place it next to the executable. The path is stored in the Game\DataFile setting (Windows registry, or ~/.config/enations/registry.ini on Linux/macOS).

Structure

enations_latest/src

The live game code. This is what builds and ships. Edit here.

enations

Older source snapshots kept for reference. Not built.

windward/wind22

The support library (built as part of the CMake build).

tools/sdl2

Vendored SDL2 + ttf + mixer + glew for the Windows build (Linux/macOS use system packages).

tools/vdmplay

The in-house networking library, ported to TCP/UDP.

src/, tools/

Asset and build tooling from the original release (makeriff, sprite, cdf, and friends). Windows-only, skipped on other platforms.

There are still duplicate files and dead trees throughout the repo. They are kept for history; the build only uses the paths above.

History

The original goal of this fork was to get the 1996 code compiling with minimal changes. That grew into the full port described above. Thanks to Windward Studios for releasing the source, and to Bobbias, whose fork this work started from.

About

Enemy Nations - a city builder + rts from 1996

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages