GithubHelp home page GithubHelp logo

spiffcode / hostile-takeover Goto Github PK

View Code? Open in Web Editor NEW
182.0 32.0 52.0 116.15 MB

Open Source Real Time Strategy game based on Warfare Incorporated

License: Other

C# 15.22% Shell 0.12% C++ 33.71% C 41.04% Puppet 0.01% JavaScript 0.01% Objective-C 0.78% Objective-C++ 2.34% Python 2.31% CSS 0.01% Batchfile 0.07% Pascal 0.69% Makefile 1.33% HTML 1.10% CMake 0.35% Perl 0.05% Java 0.87%

hostile-takeover's Introduction

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.

Legal Stuff

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

macOS and iOS Ports:

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

Android Port:

Building the Hostile Takeover Executable

iPhone Port:

  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.

SDL macOS and iOS Ports:

  • Within Xcode, open game/sdl/htsdl.xcodeproj.
  • Select a Build Configuration via Edit Scheme...Info
    • Debug (default) for development, has extra runtime cheacks and displays "DEV BUILD" and date on the game startup screen.
    • Release W/o extra runtime checks and displays game database version number on the game startup screen.
  • Select a Build Target:
    • HT - Desktop for building for macOS.
    • HT Mobile for building for iOS device or iOS simulator.
  • Build, and run on your target device!

Android Port:

  • Set desired app ABI in game/sdl/android/jni/Application.mk (default ABI is: all).
  • Add your NDK path to your environment variables export PATH=$PATH:[YOUR NDK PATH].
  • cd game/sdl/android.
  • For debug build: ndk-build. For release build: ndk-build REL=1.
  • Import the project into Eclipse if you have not already done so.
    • File > New > Other... > Android Project from Existing Code
    • Browse to the HT project at game/sdl/android and click finish.
  • Build and run!
    • To run on connected device in Eclipse: Hostile Takeover > Run As > Android Application
    • To build an .apk in Eclipse: File > Export... > Export Android Application > Hostile Takeover > Developer Keystore > Finish

Linux Port (WIP)

  • Run game/sdl/linux/install.sh to create the necessary directories and install the necessary packages.
  • cd game/sdl/linux/ and make or make REL=1.

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 ../game
    • ../bin/markversion.exe 1 htdata832.pdb "+++VERSION+++" 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.

hostile-takeover's People

Contributors

darrinm avatar n104 avatar scottlu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hostile-takeover's Issues

What is this

What this?
Is a Warfare inc. map?
How and where i can download?
(This randomly appeared)

Problems running

I can't seem to figure out how to run this. I am running windows 10 and don't see an option for windows in the "README" file.

Game does not compile on Linux out of the box for several reasons

First of all, you hardcode "g++-5" in game/sdl/linux/makefile
To continue compilation I had to remove -5 from several places on top of the make file so that executable is just "g++".

Then build has stopped because of missing #include <stdio.h> in several files:
game/httppackinfomanager.cpp with error: 'fopen' was not declared in this scope
game/httppackmanager.cpp:54:51: error: 'fopen' was not declared in this scope
mpshared/packinfomanager.cpp:43:54: error: 'fopen' was not declared in this scope
mpshared/indexloader.cpp:12:38: error: 'fopen' was not declared in this scope

Next problem was:

../../gameform.cpp:4:30: fatal error: game/Multiplayer.h: No such file or directory
compilation terminated.
../../Multiplayer.cpp:2:30: fatal error: game/Multiplayer.h: No such file or directory
compilation terminated.
In fact this file does not exist, however file game/multiplayer.h does. So changing this two files to multiplayer.h did work.

After those five files the game compile successfully.

Another problem is with file game/sdl/linux/install.sh
It uses if ! dpkg -l | grep libsdl2-dev > /dev/null ; then
This line which would only work in distributions based on deb packages, such as Debian and Ubuntu but not in other distributions. I think it's better to say that SDL2 is required for building and recommend to install this two packages: libsdl2-dev libcurl4-openssl-dev in your readme file

(though in my distribution -dev packages are not separated from main packages)

How about the server?

I've downloaded the android version and tried the game, and it's fine:) But Multiplayer mode is not working for me. I don't know if it's a network problem(I'm in China, Chinese network has a firewall which blocks google,fb and something else xD) or ur server has down. So why not let players ourselves to create our own servers? This would actually make this okd game live longer.

Graphic output and touch input on wrong place

Hey!

I was happy to find the source code of this game here. But when I tried to run the game in the simulator, the game wasn't displayed at the right position. And even the "input field" isn't correct. I mean the coordinates of the touch event are interpreted wrong.
In this image I marked the position where I have to touch to get the play- and option button ressed, so you can see what I mean:
error
(The white boxes aren't exact in size and position, but close enough)

I'm using the newes Xcode 6.3 (6D570), but didn't change anything. Just downloaded and run.

Did I do something wrong? Or is this a bug?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.