Open Source Real Time Strategy game based on Warfare Incorporated
Go to file
Nathan Fulton d926ef0bbe Prevent SDL from rendering when app is backgrounded
On some platforms, the game will crash if SDL attempts to render to the
screen/window while the game is backgrounded. To prevent this, stop
rendering when the game enters a background state and resume rendering
when the game enters a foreground state.
2016-08-24 16:20:31 -04:00
acrunch initial commit 2014-07-06 17:47:28 -07:00
aed initial commit 2014-07-06 17:47:28 -07:00
amx2zamx initial commit 2014-07-06 17:47:28 -07:00
ani2amx initial commit 2014-07-06 17:47:28 -07:00
AniMax initial commit 2014-07-06 17:47:28 -07:00
archive initial commit 2014-07-06 17:47:28 -07:00
assets initial commit 2014-07-06 17:47:28 -07:00
base Create main thread via host 2016-08-24 16:20:31 -04:00
bcr2 initial commit 2014-07-06 17:47:28 -07:00
bcrunch initial commit 2014-07-06 17:47:28 -07:00
bin Make data assets buildable on Linux 2016-01-21 19:06:42 -08:00
BmpProof initial commit 2014-07-06 17:47:28 -07:00
bscale initial commit 2014-07-06 17:47:28 -07:00
data Make data assets buildable on Linux 2016-01-21 19:06:42 -08:00
drmutil initial commit 2014-07-06 17:47:28 -07:00
game Prevent SDL from rendering when app is backgrounded 2016-08-24 16:20:31 -04:00
inc Fix observed DEBUG build crash in assert handling 2016-01-26 12:08:47 -08:00
inicrunch Make data assets buildable on Linux 2016-01-21 19:06:42 -08:00
legacy initial commit 2014-07-06 17:47:28 -07:00
m initial commit 2014-07-06 17:47:28 -07:00
MarkVersion initial commit 2014-07-06 17:47:28 -07:00
mpshared Add -Wno-invalid-pp-token -Wno-trigraphs to data preprocess step 2016-01-20 22:53:13 -08:00
packpdb2 initial commit 2014-07-06 17:47:28 -07:00
pal2act initial commit 2014-07-06 17:47:28 -07:00
palbin initial commit 2014-07-06 17:47:28 -07:00
paltool initial commit 2014-07-06 17:47:28 -07:00
Schemer initial commit 2014-07-06 17:47:28 -07:00
server Create main thread via host 2016-08-24 16:20:31 -04:00
shadowmap initial commit 2014-07-06 17:47:28 -07:00
SpiffLib initial commit 2014-07-06 17:47:28 -07:00
stats Fix use of 'json' instead of 'j' 2016-01-01 22:49:14 -08:00
StringTable initial commit 2014-07-06 17:47:28 -07:00
syncerror initial commit 2014-07-06 17:47:28 -07:00
TemplateExtractor initial commit 2014-07-06 17:47:28 -07:00
texpack initial commit 2014-07-06 17:47:28 -07:00
utilities initial commit 2014-07-06 17:47:28 -07:00
wavcrunch initial commit 2014-07-06 17:47:28 -07:00
yajl Use scanf and printf compile time format string type checking; fix 64 bit bugs 2016-01-10 13:14:36 -08:00
.gitignore initial commit 2014-07-06 17:47:28 -07:00
LICENSE.txt initial commit 2014-07-06 17:47:28 -07:00
README.md initial commit 2014-07-06 17:47:28 -07:00

About

Hostile Takeover is the open source release of the wildly popular mobile Real Time Strategy game Warfare Incorporated. Warfare Incorporated's developers, grateful for all the contributions of the open source community, are delighted to give something back.

Hostile Takeover and Warfare Incorporated are registered trademarks of Spiffcode, Inc the developers of Warfare Incorporated. Hostile Takeover is copyrighted 2004-2014 by Spiffcode, Inc. The Hostile Takeover source code is made available under the BSD open source license.

Building

Prerequisites

  • Mac OS X
  • Xcode 5 (or later) with Command Line Tools installed
    • Install Command Line Tools from Xcode Preferences... Downloads.

Building the Hostile Takeover Executable

  1. Within Xcode, open game/wi.xcodeproj.
  • Select a Build Configuration via Edit Scheme...Info
    • Debug (default). Has extra runtime checks and is typically used during development. Displays "DEV BUILD" and date on Hostile Takeover startup screen. The Debug version requires a local server to be running for multiplayer testing.
    • Release. W/o extra runtime checks. Displays date on Hostile Takeover startup screen.
    • Distribution. Same as Release but displays game database version number on Hostile Takeover startup screen.
    • Distribution-Store. Same as Distribution but is signed with a necessary key for redistribution in the iTunes App Store. NOTE: You'll have to get your own key if you want to distribute through the App Store.
    • Adhoc. ???
  • Build and run!
    • On your device or in the iOS Simulator.

Building the Hostile Takeover Data File

The Hostile Takeover iOS executable incorporates a data file, htdata832.pdb, which includes all the art, audio, and levels for the game. A prebuilt version of this data file is already in the source tree so you don't need to build it unless you are modifying assets it contains.

Originally all of Hostile Takeover was developed on Windows using Windows tools like Visual Studio and C#. To build the data file on the Mac, the cross platform Mono framework is used.

  1. Install the Mono runtime environment.
  • cd data
  • make IPHONE=1 MULTIPLAYER=1 clean all
    • some harmless warnings will be displayed
  • Mark the data file with a version number.
    • cd ..
    • bin/markversion 1.6

Building and running the Hostile Takeover Multiplayer Server

Hostile Takeover supports single player and multiplayer play. Multiplayer is supported by two server components: a TCP based game server located in the server directory, and an HTTP based server located in the stats directory used for accounts, leaderboard, game history and game stats.

  1. The game server is a command line server which builds can be built and run on OSX or Linux. The game server is does not (currently) build and run on Windows. The production server environment is expected to be Linux based.
  • cd server
  • make REL=1 clean all (for a release build)
  • make clean all (for a debug build)

Please refer to the README.txt in the server directory for more detailed information on how to run the server environment in development and production.

Tools

The bin directory contains many command line tools used to build the htdata file. There are also GUI tools for editing maps (M) and animations (AniMax).

The GUI tools have primarily been used on Windows and are best described as 'flaky' on the Mac. If you want to give level editing a try on a Mac:

  1. mono bin/m.exe

See Building the Hostile Takeover Data File for instructions on how to rebuild the data file after making changes to any level, image, sound files or other game assets.