Conquest is a real-time, multi-player space warfare game that was originally written in RATFOR for the VAX/VMS platform by Jef Poskanzer and Craig Leres in 1982. It was the early predecessor to Netrek.

Forum Thread
  Posts  
Conquest 8.5 (stable) is now available (Games : Conquest (RTS) : Forum : Tactical : Conquest 8.5 (stable) is now available) Locked
Thread Options
Apr 5 2013 Anchor

Source tarball:
Downloads.sourceforge.net

Windows XP/Windows 7 conquestgl precompiled binary zip file:
Downloads.sourceforge.net

Optional musicpak (unpack in ~/.conquest/):
Downloads.sourceforge.net

Mercurial (hg) branch for this release: conquest-8.5

Mercurial (hg) current (possibly unstable) development:
Conq.hg.sourceforge.net

Conquest 8.5 (stable) is now available for your conquering pleasure.

This version has a few minor fixes from the last devel release
(8.4.1i), mainly documentation related, and a stupid malloc/free bug).

It has quite a few major changes from the last stable (8.4.1) release
however :)

Without further ado, here is the HISTORY spewage for this release:

8.5 (stable) 04/20/2010

- A new stable release, at long last.

- Major highlights of this release, compared to the last stable
release (8.4.1 09/13/2008):

- General:

- MAC OSX (Darwin) support. Full sound and hardware accelerated
OpenGL is supported. Note, you will probably need to get SDL
and SDL_mixer, as well as libogg and lib vorbis in order to
build.

- Native Windows XP/Windows 7 support for the OpenGL client
(conquestgl) using the MinGW cross-compiler enviroment. Full
sound and hardware accelerated OpenGL is supported. A zip
file will be available on sourceforge containing a
pre-compiled conquestgl binary, and support files. See
README.Windows (or Conquest\INSTALL.TXT in the ZIP file) for
more information on installtion and use.

- a re-work of packet handling. The original goal was to
eventually support non-blocking socket IO, however some
significant (and incompatible) protocol changes will be
required to do this properly. Next major release will tackle
this.

- rework of texture and color representation internally.

- remove telnet (-t) support from the clients. Nobody runs
telnet conquest games anymore.

- switched to Mercurial (hg) for source code control.

I will 'hg tag' each devel release. For stable releases (like
this one), a branch name will be created instead of a tag.

Current development will always happen at the tip, in the
'default' branch, and may therefore be unstable.

Bug fixes and enhancements made to 8.5 will occur in the
conquest-8.5 branch.

A command like (all on one line):

hg clone -u conquest-8.5 \
Conq.hg.sourceforge.net conquest

can be used to check out the stable branch for version 8.5.
Omit the '-u conquest-8.5' if you want the current state of
development.

- Server fixes:

- fix server bug that would cause vacant ships, when destroyed,
to fail to explode properly, leaving some stationary torps
behind.

- correct a server problem with UDP keepalive packets. During
certain operations (like beaming, bombing, self destruct, etc)
these packets could improperly terminate these activities on
the server, leaving the client to believe these activities
were still in progress, causing great angst in the land.

- Client fixes (primarily the OpenGL client, conquestgl):

- New Orion ship textures (thanks to blender and the fine
contributors at ShareGC.com). See the CREDITS file.

- some changes to work better with wide-screen display formats

- new ship shield textures, both for the icon-ship display and
the main viewer.

- in conquestgl, torps are no longer colored according to their
'danger' level. It's up to you, as the ship's Captain, to
know when a torp may kill you. When in doubt, raise
shields and run like the coward you are. :)

- rework of the icon-ship display:

- now use a luminance variant of the main ship texture as the
ico-ship rather than a seperate texture.

- implement 'lamps' rather than the text (cloaking, repair,
shields, etc)

- make the ico-ship drawing area square to avoid stretching
issues

- use ship's torp texture for the torp-pips

- use ship's phaser texture for the phaser recharge indicator

- fix bug that could cause the use of undefined mouse macros to
improperly terminate certain operations (beaming, bombing,
etc).

- changes from the last devel (8.4.1i) release:

- Fix up some documentation for Windows systems. Conquestgl has
been tested on Windows 7, seems to work great.

- fix up stupidness in handling cInfo.remotehost data (caused
invalid free()'s, depending on options specified).

- Do not declare a crypt prototype on DARWIN systems

- Move 'q' from beginning of line in conquest.man, lintian error
reported by Jonathon (new debian maintainer)

- Remove global.c, instantiate global.h and conf.h within all of
the .c files. Needed by Darwin systems to avoid linker
errors when building conqstrat and conqinit executables.

- Add some icon pngs and a .ico for windows

## The following are the devel release notes for more detail. Use
'hg log -v' on the repository for even more detail if you care.

8.4.1i (devel) 03/27/2010

- unless there is a big problem, a 'stable' official release will be
up next.

- Switch to using Mercurial (hg) for source code control. I totally
love it compared to svn.

- MAC OS X (Darwin) support. Note this support is still a little
fuzzy, in regards to counquest group creation, etc. I do not have
direct access to a Darwin system, so this port was accomplished by
back-and-forth with a friend who does. Once you can get it built,
OpenGL and sound is fully functional.

- Windows (XP) native support via MinGW cross-compiler toolchain :)
See README.Windows for installation instructions (or INSTALL.TXT
if you download the .zip package). Full HW acceleration and
sound. Oh yes.

I will build a binary .zip package for Windows XP systems and make
it available on sourceforge. Only the conquestgl executable and
required config/data files will be provided.

I do not have access to Windows 7, so I have no idea if it would
work on those systems.

The zip file will contain an INSTALL.TXT file for instructions on
installation.

- Allow various GL functions to be able to detect when geometry is
changed so they can compensate.

- Fix problem where using undefined mouse macros could inadvertantly
cancel beaming or bombing.

- Fix problem wereby the doomsday AP beam was being drawn with
length PHASER_DIST rather than DOOMSDAY_DIST.

- add missing contrib/ dir to src dist.

- remove 'telnet' support. None of these servers have been in
operation for years, so there's no need for 'telnet' server hacks.
Remove conquestsh, and conquestsh.man. Update SERVER.TXT and
conquest.man

- change Conquest licensing from Artistic v1 to Artistic v2. Based
on stumbling across:

Linux-archive.org

Really - if any dist has issues with Conquest's license, I can't
do squat about it if I don't know about it.

- correct a server problem with UDP keepalive packets. UDP
keepalive packets are sent to the server by the client on a
periodic basis to convince some firewalls that the UDP link is
still active.

During certain operations (like beaming, bombing, self destruct,
etc) these packets could improperly terminate these activities on
the server, leaving the client to believe these activities were
still in progress.

Now, the lower level packet handling routines filter out these
packets, preventing them from accidentally affecting the game's
state.

- since nWelcome can be called multiple times, init the state in the
Init routine.

- add server name and version to (O)ptions display.

- add '&#xop;tion noyywrap' to the yacc parser. Do not need it, and this
is required for macosx, apparently.

- Remove Unixware specific privilege support.

In the old days, when I was running Conquest on i386/i486 hardware
under Unixware, being able to escalate the drivers process
priority and lock the commonblock into memory was a good win for
performance.

These days, the hardware is so fast, and memory so expansive, it
makes no sense to do this anymore :) Also, I haven't run unixware
in over 10 years, so....

- Remove terminfo src files (ti/*) from the source distribution.

While these files will still be available in the source code repo,
they will no longer be supplied in the src distribution tarballs.

- get rid of portable snprintf implementation - used as a fallback
if the target OS does not support it. All target OS's do support
it, and the fallback implementation could not handle floats
without crapping on itself anyway.

- Get rid of localhost data and checks. Totally uneccessary. Buh
bye.

- Fix a memory leak when dealing with cInfo.remotehost

- Under windows, default to -m if no server (-s) explicitly
specified.

- Fix up the 'CLIENTID' (client type) stuff. Differentiate between
'Unix' and 'Windows' systems.

- Add check for gzipped .cqr files and no LIBZ support. Emit a more
useful error if you attempt to replay a compressed game recording
(.cqr) but your client was not built with libz support.

- Add sdl.m4 and libtool.m4 autoconf files in m4/, in case the
target build system does not have it

- Update several of the autoconf scripts (ltmain.sh, yylwrap, etc)
to more current versions.

- Use CONQUEST_NAME for the Window title (GL client)

- On Windows(MINGW), use $APPDATA/Conquest to store per-user
settings and config.

- Provide a mechanism when running under windows to locate the
various files conquesgl needs to run (etc/, img/, sound/)

Under Windows, CONQETC/CONQSHARE don't really mean much. So, we
add a new funtion, utGetPATH() that will attempt to locate the
various directories conquestgl needs at runtime. These are: etc/
(for global configuration), img/ (for textures) and sound/ (for
the sound files).

First, if there is an env variable CONQUEST_ROOT set to some path,
this will be used to find the other directories.

If this env var is not present, then the 'standard' Windows
O;MMONPROGRAMFILES%/Conquest/ will be used to locate these
directories.

Otherwise we will default to /Conquest.

For example, if you download a conquestgl .zip file, and unpack it
under C:\ , you will want to set CONQUEST_ROOT equal to
"C:\Conquest", and add "C:\Conquest\bin" to your Path, and all
will be well.

- Add a makewinzippkg script for building the windows binary zip
package, add the DLL's neccessary for packaging under windows
(windlls/).

- a variety of other misc stuff. See 'hg log' (if you have the hg
repo cloned) for any missing details.

8.4.1d (devel) 10/01/2009

- a devel release, some highlights:

- fix server bug that would cause vacant ships, when destroyed, to
fail to explode properly, leaving some stationary torps behind.

- Visible changes:

- some changes to work better with wide-screen display formats

- new orion ship textures (yay!)

- rework (centering, shrinking, etc) all of the ship textures, and
fixing a couple of issues with some of the planet textures.

- new ship shield textures (both for the icon-ship display and the
main viewer).

- in conquestgl, torps are no longer colored according to their
'danger' level.

- rework of the icon-ship display:

- now use a luminance variant of the main ship texture as the
ico-ship rather than a seperate texture.

- implement 'lamps' rather than the text (cloaking, repair,
shields, etc)

- make the ico-ship drawing area square to avoid stretching
issues

- use actual ship's torp texture for the torp-pips

- use ship's phaser texture for the phaser recharge indicator

- non-visible changes

- rework of texture and color representation in conquestgl

- rework of the packet handling functions.

8.4.1a-c (devel) unreleased versions prior to 8.4.1d

- prevent cores if NULL passed to ibufPut()

- allow conquest to build if GL/glut is not available. Of course,
you only get the currses client...

- cleanup packet handling API in packet.[hc]:

- get rid of the need to specify the socket fd(s) to the pkt*()
routines.

- get rid of the 'direction' (TOSERVER/FROMSERVER/etc) arguments
to the pkt*() functions - not needed anymore.

- rework the packet handling to use the new ringbuffers in
preparation for non-blocking socket io.

- New textures for Orion Scouts, Destroyers, and Cruisers.

The .blend files used to create these textures are in the src repo
in img/src/blender/ . See the README for more details. These
files will not be made a part of a Conquest src release since they
are large, and it's unlikely a 'regular' user would want to mess
with them. They are available in the src tree via svn though.

The new textures were created by using freely available meshes
from ShareCG.com, and importing them (as best I could) into
blender, painting/texturing/lighting them, then rendering the
'scene' to create a texture for Conquest.

I'd love to do this for all of the ships in Conquest, as it looks
really nice. Maybe someday if Conquest ever goes 3D then these
models would be used as the ships themselves :)

- While adding the new ship textures, decided to redo texture
mapping so that it is consistant within Conquest without various
hacks. As a result, all textures have been modified:

- Always force the TGA origin to be in the Lower left.
Previously it was the upper right. In gimp, if saving a
texture, just make sure you specify 'Origin in lower left'
when saving. Texture mapping code in Conquest will always
assume this from now on.

- 0 degrees is 'east' in conquest, so now it is this way in the
textures too. All textures rotated 90 deg so that the
'front' of an object always points east, rather than north
like it used to.

- Enemy ship box now draws the alert box at the ship's depth plane to
avoid perspective issues.

- CQI Textures can now be loaded as a luminance texture by
specifying

luminance "yes"

in the texture definition.

This allows a grey scale (luminance) image to be created based on
an RGB[A] texture. These greyscale images are now used to
generate textures for all of the ico-ship displays in the hud.
Therefore, the seperate ico-ship textures (12) have been removed.
This looks alot nicer as well as not requiring the creation of
extra textures when adding a new ship texture :)

- drawLineBox now supports a Z component.

- drawTexQuad now can properly support both perspective and
orthographic projections with regard to proper texture coordinate
mapping.

- fix up the icon-ship area so that the icon ship is always drawn within
a square to prevent 'stretching' issues.

- do not color torps according to their 'danger' level (green,
yellow, red) anymore, instead just use whatever the torp texure
provides. It's up to you, as the ships captain, to know whether
an approaching torp is dangerous or not. When in doubt, raise
shields. :)

- in line with above, add some 'purple-ness' to the orion torps
(instead of pure white). The Orions really dig purple.

- make GLColor_t a union, containing both the individual color
components and a vector pointing toward them, suitable for use
with glColor*v() calls.

- make getLocalhost() more informative during failures.

- switch to using a new GLTexture_t definition in as many places as
possible, rather than keeping copies of colors, texture id's, etc
in various structs (GLShips, GLPlanets, etc).

This simplifies a variety of things, in addition to being more
readable and wasting less memory.

- remove as many hardcoded glColor*() calls by always using the
texture's color specification. CQI will now warn when a texture
is defined that is missing a color specification. Since it will
be black and transparent, it might be somewhat hard to see :)

- to avoid potential NULL pointer dereferences, create a 'default'
checkerboard texture to use in certain cases where a texture
*must* be present, like ships.

- use the new GLTEX_ID and GLTEX_COLOR helpers whereever possible.

- GLShips, GLPlanets, and Doomsday now use GLTexture pointers rather
than copies of texid's and colors.

- color specifications added to all texture definitions in
texturesrc that were missing them.

- add new 'lamp' textures (for the ico-ship area) and relevant code.
Think of the lamps as a 'check engine' light on your car :)

Lamps are displayed for hull, shields, engine temp, weapon temp,
and fuel - should they experience a condition you should know
about (critical/failure).

- clean up the CRIT defines and use them rather than hardcoding the
relevant thresholds in the code.

- remove cqsEffectPlayTracked() and move it's functionality into
cqsEffectPlay - there's no point in having two play functions that
are virtually identical.

- modify drawTexQuad so that textures can be mapped rotated 90
degrees from their normal mapping.

- clean up the classd (mars), uranus, and luna textures (shrink if
neccessary so as not to affect texture border, remove 'slutty'
pixels :)

- rewrite drawTexBoxCentered to use drawTexQuad

- re-order drawTexQuad to use x, y, and z as the first 3 args. Use
GL_QUADS rather than GL_POLYGON

- fix up some utLog error messages that could core if ever called :(

- add a seperate blinkerQue for blinker animdefs and set them up in
blinker.[hc]. Blinkers can be used in a variety of places in
conquestgl, so no need to confine them to the CP and PlayB nodes
via GL.c. They are initted as part of graphicsInit(), after CQI
has loaded all of the textures and animdefs, so they can now be
used in any node without 'headaches' or special code - just
include blinker.h and have fun.

- get rid of TEX_HUD_ITORPIN, not used anywhere.

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.