Warning: include(../header.inc) [function.include]: failed to open stream: No such file or directory in /var/www/tooraweenah.com/james/darcs/netrek-client-pygame/doc/index.phtml on line 1

Warning: include() [function.include]: Failed opening '../header.inc' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/tooraweenah.com/james/darcs/netrek-client-pygame/doc/index.phtml on line 1
A Netrek client, using pygame
by James Cameron, 2010-03-25

Synopsis

How to begin playing Netrek using only a Python and Pygame software configuration, on any operating system supported by them.

Package is a game client program with images derived from other Netrek clients.

Resources

Screenshots

Splash

A splash screen, containing the name of the game, a license, and a rotating icon. During this time the pygame imagery pipeline is stabilised, and graphical assets are loaded.

What you do: wait.

Servers

A list of available Netrek servers is displayed, discovered on the local area network, or via the internet based metaservers. Against each server is a number of squares corresponding to how many players are on the server.

A pair of white objects are in orbit around each other above the list; when they pass close to each another the metaserver is queried again.

What you do: choose a server and left-click on it to log in, or right-click on it to join the game as a guest mercenary.

Tips

A list of helpful hints, or tips, on how to get started.

What you do: read them, then click on BACK.

Login

A server login screen. Shows the name of the server you have connected to, the server message of the day, and asks you for your name.

What you do: read the message of the day. Type guest and press enter if you do not want your statistics saved, or type a name and password. If someone else has already used your name, you won't be able to use it unless you know their password.

Ship and Race

The ship and race, or team selection screen. Shows ships for each team you can join.

What you do: choose a ship and race by clicking on one of the ships. The ship closest to the centre is the best general ship, called a Cruiser (CA). The others have special improvements and weaknesses. Some ships aren't available on some servers. All ships of the same type are equal regardless of which race or team you choose.

Tactical View

The tactical view. Your ship is in the centre. A ring around your ship shows your shields are up.

Also on this view are:

  • ship warnings, in red on the top of screen,
  • game messages, from the server or other players, in the top half of the screen blended with the background so you are not distracted,
  • a planet Beta Crucis that is not yet scanned, so we don't know what team owns it,
  • your ship in the middle, ship number 8, with two torpedo explosions on the right hand side, with phasers shooting at enemy ship number 3,
  • your torpedos that missed the enemy ship 3 are flying away,
  • the status line, showing Speed 3, Fuel 6193, Damage 73%, Shields 1%, Weapon Temperature 8, and various flags.
What do you: play. Various keyboard keys do various things. See the tips screenshot for more information.

Galactic View

Press enter to swap to the galactic view. Your ship is in the centre of the small white box. The other boxed areas are teams or races. The circles are the planets. In this screenshot, you goal in the game is to take control of the red Romulan team planets.

Also on this view are:

  • the planets have a number above them; this is the number of armies present,
  • the planets have a name below them; the colour shows which team they belong to, and the bright colour means they have more than four armies, therefore they can be bombed or used by their owning team as a source of armies for taking other planets,
  • the other ships show as tiny icons moving about.
What do you: play. All the same keyboard and mouse actions do the same thing, just that you can't see as much detail.

Other Tactical Views

The white burst is a torpedo that has just exploded, it it has caused your damage to exceed 100%, so your ship has started to explode. The coloured ring around your ship is the start of the explosion. The green dots are more torpedos from the enemy that would have hit had you survived.

A short time later, your explosion has engulfed the enemy ship as it expands. This damages the enemy, though not always fatally. Your death is not in vain. You will be returned to the team and ship screen from which you would normally come straight back in with the spacebar. The supply of new ships is endless until your team runs out of planets.

Another three screenshots of a death are below; you have fired a phaser which missed, and the enemy ship number 4 has killed you with a torpedo and a phaser at the same time.

Hacking

Get the source:

sudo aptitude install darcs
darcs get http://james.tooraweenah.com/darcs/netrek-client-pygame/
Read the netrek/__init__.py file and start making interesting changes.

See what you have changed:

darcs diff
Record and send what you have changed:

darcs record
darcs send

Prototype History

This is a change log from a repository that was used before the current respository. It shows how easy it was to create code to do something in Pygame.

Sat Jun 23 23:19:15 EST 2007  quozl@us.netrek.org
  * add team specific planets

Sat Jun 23 21:20:16 EST 2007  quozl@us.netrek.org
  * default to tactical, isolate reference data, cloak, outfit rejig

Sat Jun 23 17:32:34 EST 2007  quozl@us.netrek.org
  * move shields to sprite, identify torps by team

Sat Jun 23 12:56:33 EST 2007  quozl@us.netrek.org
  * add planet flags, pfiredist ring, font cache

Wed Jun 20 23:09:19 EST 2007  quozl@us.netrek.org
  * add tractor and ship lock

Wed Jun 20 22:07:50 EST 2007  quozl@us.netrek.org
  * add --host, time based torpedo explosion timeout, shields

Tue Jun 19 22:41:41 EST 2007  quozl@us.netrek.org
  * simplify mainline, add orion tactical iconography

Tue Jun 19 19:01:27 EST 2007  quozl@us.netrek.org
  * add galactic ship iconography for testing
  	Add 8x8 iconography on galactic for testing, better images expected
  	later on in development.

Tue Jun 19 18:50:00 EST 2007  quozl@us.netrek.org
  * add torp explosions, fix ship ghosting, add det
  	Add torpedo explosions.
  	Fix ship ghosting caused by ships that change direction not position.
  	Add det others and det own keys.
  	Add practice robot call key.
  	Add orbit key.
  	Add slot number over ship on tactical.
  	Split tactical animation into separate sprite groups.

Mon Jun 18 21:48:29 EST 2007  quozl@us.netrek.org
  * add ship explosions

Mon Jun 18 21:10:34 EST 2007  quozl@us.netrek.org
  * add phaser animation

Fri Jun 15 19:37:31 EST 2007  quozl@us.netrek.org
  * add tactical animation of torps

Fri Jun 15 18:59:04 EST 2007  quozl@us.netrek.org
  * tactical or galactic navigation, right click set course

Fri Jun 15 18:37:35 EST 2007  quozl@us.netrek.org
  * class inversion, tactical flight capability
  * split sprite and netrek data into separate classes

Wed Jun 13 22:03:16 EST 2007  quozl@us.netrek.org
  * add metaserver phase

Tue Jun 12 18:39:11 EST 2007  quozl@us.netrek.org
  * add remaining packet types

Mon Jun 11 21:18:45 EST 2007  quozl@us.netrek.org
  * repair, shield, login dialog
  * display modes

Sun Jun 10 21:56:43 EST 2007  quozl@us.netrek.org
  * ideas

Sun Jun 10 14:56:44 EST 2007  quozl@us.netrek.org
  * bomb, beam, cloak

Sat Jun  9 23:18:56 EST 2007  quozl@us.netrek.org
  * oysters open and closed

Sat Jun  9 17:19:30 EST 2007  quozl@us.netrek.org
  * add planet lock and automatic join
  * add license
  * convert to sprite usage

Wed Jun  6 16:55:36 EST 2007  quozl@us.netrek.org
  * scout can fly to rom and ghostbust

Wed Jun  6 14:12:21 EST 2007  quozl@us.netrek.org
  * warp zero flight achieved

Wed Jun  6 12:44:08 EST 2007  quozl@us.netrek.org
  * progress, to team selection point

Tue Jun  5 23:24:49 EST 2007  quozl@us.netrek.org
  * test python client, to login phase

Tue Jun  5 23:16:54 EST 2007  quozl@us.netrek.org
  * test python client

Warning: include(../footer.inc) [function.include]: failed to open stream: No such file or directory in /var/www/tooraweenah.com/james/darcs/netrek-client-pygame/doc/index.phtml on line 305

Warning: include() [function.include]: Failed opening '../footer.inc' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/tooraweenah.com/james/darcs/netrek-client-pygame/doc/index.phtml on line 305