A real-time multi-player space warfare game, originally written in RATFOR for VAX/VMS, but updated for the 21st century.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib Add a gawk script from 'matt' which will periodically check the Jun 28, 2009
docs update version and HISTORY for 9.0.1 release Nov 25, 2018
html Remove ability to make client recordings May 16, 2018
icon A first stab at moving the source files into a src/ subdirectory Jan 28, 2018
img Add a couple of new class M (habitable) textures and spread around Feb 2, 2018
initfiles Implement the shiptypes protocol May 10, 2018
man Remove ability to make client recordings May 16, 2018
meta-cgi meta-cgi: update the conqserv.tmpl template file Apr 21, 2018
music merge (654:687) of the Sound branch ( conquest-8.2+sound ) into the main Nov 27, 2006
robot-rules robot-rules: minor cleanup and formatting fixes Jan 29, 2018
sound - 8.2b devel release Jun 4, 2007
src version: bump version to 9.0.1a (devel) Jan 3, 2019
systemd systemd startup: use the simple model rather than forking Dec 23, 2018
utils More documentation re-arranging Jan 27, 2018
.gitignore Get rid of config.h.in, it's autogenerated, add to .gitignore Jan 28, 2018
LICENSE.txt Remove extraneous text from LICENSE, rename to LICENSE.txt Jan 28, 2018
Makefile.am A first stab at moving the source files into a src/ subdirectory Jan 28, 2018
README.md README.md: Correct mispelled name Jun 20, 2018
autogen.sh autoconf: remove the generated autoconf files. Feb 22, 2017
configure.ac utSafeCToI: create a std::string variant, fixup users May 2, 2018

README.md

conquest

Conquest is a top-down, real time space warfare game. It was originally written in RATFOR for the VAX/VMS system in 1983 by Jef Poskanzer and Craig Leres.

I spent incredible amounts of time playing this game with my friends in the terminal labs at college, and when I actually had a multi-user system running at home (Unixware) I decided to try and translate/port the code to C in Unix. This was in the early to mid 1990's.

Of course, over the years many things have changed. Today, Conquest is a true client/server game. The client uses freeglut, SDL 1.2 (for sound) and OpenGL. It uses C++11 to build, though for now it's "C software with some C++ containers and constructs".

The curses client is no longer provided.

License

Conquest is released under the MIT License.

Playing the game

Conquest is a client that must connect over a network to a conquestd server. By default, if all requirements are met, both the client and server will be built. To start the client and connect to a server, run:

conquest

By default, when running conquest without options, conquest will query the meta-server at conquest.radscan.com to get a list of currently available servers. Pick one, login, and play.

Alternatively, you can specify a specific server with the "-s" option:

conquest -s localhost:1701

The port number is optional, and will default to 1701.

You can get a list of the currently active servers via your web browser by going to https://radscan.com/cgi-bin/conqmeta.pl

The goal of the game

The goal of the game is to conquer the Universe by bombing planets, placing your team's armies on them and fighting off any ships that want to ruin your day. When all of the core planets have been taken by your team, the game is reset to start the carnage all over again.

Build Requirements

To build and run Conquest, you will need:

  • automake/autoconf/libtool - The whole autoconf system.
  • X11 development headers and libraries (all of them)
  • OpenGL development headers and libraries. Conquest uses OpenGL version 1.x.
  • glut/freeglut development headers and libraries
  • SDL 1.2 and SDL_mixer 1.2, if you want sound (you do).
  • g++ 4.9 or better, or clang++ 3.4 or better

On an Ubuntu system (tested with Kubuntu 17.10), the following should install the required packages to build the server and client:

sudo apt-get install build-essential autoconf automake libtool \
     libsdl1.2-dev libsdl-mixer1.2-dev ncurses-dev bison flex \
     freeglut3-dev libxi-dev libxmu-dev

Conquest supports Linux systems and has also been tested on MAC OSX with the ports collection. I currently develop on Kubuntu 16.04.

In the past, other Unix systems were supported like the BSD's (FreeBSD, OpenBSD, etc) as will as Digital Unix for Alpha processors, and Sun/Oracle Solaris.

These have not been tested in a while, so if there are problems, please feel free to send patches. If they still work, I'd love to know.

The last release of conquest in 2010 also supported the conquest client (only) on MS Windows systems (XP and Windows 7) using MinGW. This has also not been tested in a while, but I plan to support this again later.

Building Conquest

First, create the conquest group:

sudo groupadd conquest

Conquest requires it's own group to prevent cheating or interference with the game data.

Then:

sh ./autogen.sh
./configure
make
sudo make install

Mailing List

There is a low volume mailing list for Conquest. You can subscribe here.

IRC Channel

There is an IRC channel for Conquest on chat.freenode.net, channel: #conquest

Further information

  • The Conquest Guide. This document gives you some more information on Conquest and explains how to play it (bomb planets, fight robot ships, etc). It also provides information on navigation and other things you might want to know.

  • A Conquest player put up this Strategy Guide some years ago. While a little dated, it still has some good information for new players.

  • The HISTORY file. This document gives an overview of changes between releases.

  • The Server Guide has instructions for those wanting to run their own Conquest servers.

  • Marisa Giancarla has setup a Conquest Gameplayers Club Community Page for players and operators who wish to participate. Also available are tools to help potential server operators who are not familiar with the Linux/Unix command line.

  • The CQI Parser Documentation provides information on the format and types of files the Conquest server and client uses to configure itself. The Universe (planets, etc), textures, animations, and sound information are all handled by this parser. This is primarily of interest to those wanting to run a server with a modified Universe.

Some screenshots

NOTE: Some of these were taken using the recordings of actual game play. At some point I'll update them to a more recent version of Conquest, but you should get the idea.

Short Range View

Short Range View

Long Range View

Long Range View

A little war

A little war

A mad robot

A mad robot

The Doomsday Machine

The Doomsday Machine