Skip to content

Commit

Permalink
Neworigins ruleset
Browse files Browse the repository at this point in the history
  • Loading branch information
artyomtrityak committed Jul 18, 2019
1 parent da4f2b5 commit dec12a5
Show file tree
Hide file tree
Showing 15 changed files with 11,230 additions and 37 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,16 @@
.DS_Store
obj
basic/basic
standard/obj
standard/standard
arcadia/obj
arcadia/arcadia
fracas/obj
fracas/fracas
kingdoms/obj
kingdoms/kingdoms
havilah/obj
havilah/havilah
neworigins/obj
neworigins/neworigins

65 changes: 42 additions & 23 deletions GAMEMASTER → GAMEMASTER.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Atlantis Gamemaster's Guide
# Atlantis Gamemaster's Guide

This document describes how to compile, setup, modify and run a game of
Atlantis.
Expand All @@ -12,7 +12,7 @@ Thanks to: JT Traub, "Mr. Mistofeles", "Draig" and "Iyhael" for their
valuable feedback.


Table of Contents
## Table of Contents

1. Obtaining a copy of Atlantis

Expand All @@ -39,7 +39,7 @@ Table of Contents
6.5 Special: Fractal Generation


1. Obtaining a copy of Atlantis
## 1. Obtaining a copy of Atlantis

There are two options if you want to get a copy of Atlantis: the first
is to download a release tarball from yahoo groups at
Expand All @@ -52,9 +52,9 @@ sources:

git clone https://github.com/Atlantis-PBEM/Atlantis.git

2. Compiling Atlantis
## 2. Compiling Atlantis

2.1 Unix
### 2.1 Unix

A makefile is included for compilation on Unix, using the GNU gcc
compiler. You can get more information about the GNU compiler at
Expand All @@ -78,7 +78,7 @@ remove object files, for reasons of disk space, perhaps) you can use
'make <gamedir>-clean' or 'make GAME=gamedir clean'


2.1.1 A sample compile under UNIX
### 2.1.1 A sample compile under UNIX

[steve@kudzu atlantis]$ make havilah
make GAME=havilah
Expand Down Expand Up @@ -109,7 +109,7 @@ obj/unit.o
make[1]: Leaving directory `/home/steve/atlantis'


2.2 Windows (copied directly from the old guide)
### 2.2 Windows (copied directly from the old guide)

I am now using the GNU gcc compiler on Windows as well. This has the
advantage that I can use it on both Unix and Windows, and as an added
Expand Down Expand Up @@ -259,7 +259,7 @@ for single user, but it is an excellent way to test out any changes that
you may have made to your rules files.


2.3 The gory details (for advanced users, or the terminally curious)
### 2.3 The gory details (for advanced users, or the terminally curious)

Atlantis is a standard C++ program, and is deliberately written with no
UI or other platform specific features. It does not handle email,
Expand All @@ -276,7 +276,7 @@ the rule set specific files; the common Atlantis engine files live in
the main directory.


3. Running a Game of Atlantis
## 3. Running a Game of Atlantis

The Atlantis program is actually very simple in terms of input and
output. It takes a set of files as input, runs the turn, and writes out
Expand All @@ -298,7 +298,7 @@ based version of Atlantis is available at <http://grelth.army-of-
darkness.it/>


3.1 Running a game of Atlantis by hand (the hard way)
### 3.1 Running a game of Atlantis by hand (the hard way)

I'll give this as a list of commented UNIX commands. The Windows
commands are very similar: move instead of mv, copy instead of cp, etc.
Expand All @@ -308,10 +308,12 @@ directory, to avoid it being cluttered up with random files. Assuming
that you want to run a havilah variant, and you're in the havilah
directory:

```
bash-2.04$ mkdir ../../mygame
bash-2.04$ cp havilah ../../mygame
bash-2.04$ cd ../../mygame
bash-2.04$ ./havilah new
```

At this point, you'll be asked how big the map should be. For a first
test game, you'll probably want a 16x16 world:
Expand All @@ -330,15 +332,19 @@ test game, you'll probably want a 16x16 world:
So, what have you got now? You should have the game info for your new
game, stored in game.out, and the player info, stored in players.out.

```
bash-2.04$ ls
game.out havilah names.out players.out
game.out havilah names.out players.out`
```

In order to run our first turn, we need to do two things: feed havilah
the game and players file, and add ourselves as a player. First, the
easy part:

```
mv game.out game.in
mv players.out players.in
```

Atlantis will automatically read game.in and players.in when it runs.
Now for the second bit. Edit the players.in file with your favorite text
Expand Down Expand Up @@ -381,6 +387,7 @@ tidier.
Now when the game runs, it'll add you (well, me in this example) to the
game. Let's run it and see what happens:

```
bash-2.04$ ./havilah run
Atlantis Engine Version: 5.1.0
Havilah, Version: 1.0.0 (beta)
Expand All @@ -396,44 +403,54 @@ game. Let's run it and see what happens:
Running the Turn...
Running FIND Orders...
Etcetera...
```

Now if you look in the directory, you should see the following:

```
bash-2.04$ ls
game.in havilah players.in report.1 template.3
game.out names.out players.out report.3 times.<some number>
```

The game has updated the world, and stored it in game.out and players.
out. If you look at report.3, you should see your turn:

```
bash-2.04$ more report.3
Atlantis Report For:
Anthony (3) (War 1, Trade 1, Magic 1)
January, Year 1
```

If you want to submit orders for your first turn, you'd leave your
orders in a file called orders.3 in the directory, and follow similar
steps to the ones you just did to run your first turn. Move game.in,
players.in and any report files out of the way:

```
mkdir 0
mv game.in players.in report.* 0
```

And then do exactly what you did previously:

```
mv game.out game.in
mv players.out players.in
./havilah run
```

In later turns, you'll want to move old orders out of the way too.


3.2 Running a game the easy way (with scripts)
### 3.2 Running a game the easy way (with scripts)

Of course, this all gets very tedious, especially when running a game of
more than four or five people. There are a number of scripts that can
help you out. In it's simplest form, a script will look like this:

```
#!/bin/bash
#The argument tells you what turn is running
gameturn=$1
Expand All @@ -446,9 +463,11 @@ help you out. In it's simplest form, a script will look like this:
./havilah run
mv orders.* $gameturn
```

under windows, this script will look more like (this is untested):

```
set ARGUMENT=%1
mkdir %ARGUMENT%
Expand All @@ -459,6 +478,7 @@ set ARGUMENT=%1
./havilah run
move orders.* %ARGUMENT%
```

These scripts will help you run turns by hand, by automating the tedious
moving and copying of files. Just run it as ./runturn <gameturn> (after
Expand All @@ -476,7 +496,7 @@ will do a better job of it too, so you should ask them if you are in any
doubt.


4. A GM's 'Code of Conduct'
## 4. A GM's 'Code of Conduct'

Here is a list of things you should consider before running a game:
[thanks to Antony Briggs for posting this on atlantisdev]
Expand Down Expand Up @@ -574,7 +594,7 @@ rerun, the subject line of everything that you send out should clearly
state that it is a rerun, so that players don't get confused.


5. Altering game rules
## 5. Altering game rules

There may come a time when you ask yourself "Why do War factions get so
much darned silver?" or "Why are Balrogs so darned powerful?" In this
Expand Down Expand Up @@ -669,7 +689,7 @@ Adding the new gamedefs in will make you happy again ;)



6. World Creation Guide
## 6. World Creation Guide

The following is not a technical guide but a description of the options
involved in Atlantis world creation. None of the information here is
Expand All @@ -688,7 +708,7 @@ will be created as 'report.1' in the atlantis directory - it's an omniscient
turn report.


6.1. Basics: world size, land mass and levels
### 6.1. Basics: world size, land mass and levels

The most important consideration for any game is world size as this will
determine the number of players that can comfortably join a game and the
Expand All @@ -698,12 +718,12 @@ The amount of land hexes per player will give you a good indication whether
your game is too large or too small. You are prompted for the width and
height of the world when you run the program to generate a new world.

# of surface hexes = width * (height / 2)
`# of surface hexes = width * (height / 2)`

The gamedef OCEAN_PERCENT is a rough estimate of how much of these will be
land mass:

# of surface land hexes = width * (height / 2) * OCEAN_PERCENT / 100
`# of surface land hexes = width * (height / 2) * OCEAN_PERCENT / 100`

For instance with a default OCEAN_PERCENT of 60, a 128 x 128 map will have
8192 surface hexes and about 4915 land hexes. In standard Atlantis, a faction
Expand All @@ -726,7 +746,7 @@ there's more than one - that will be 1/2 size), and the Abyss is just
a tiny area with a Black Keep for the standard victory conditions.


6.2. Land Mass Distribution
### 6.2. Land Mass Distribution

The distribution of land mass determines whether players will be able to
expand on a large continental mass and how important ships and sailing
Expand Down Expand Up @@ -781,7 +801,7 @@ is emphasised. Especially if PREVENT_SAIL_THROUGH is enabled it is
suggested that this gamedef is used as well.


6.3. Terrain Distribution
### 6.3. Terrain Distribution

Terrain distribution is probably more a matter of style and flavor than
the aspects discussed in previous chapters. It can become a matter of
Expand Down Expand Up @@ -855,7 +875,7 @@ The value of ODD_TERRAIN is the chance that this happens, per hex, in
be the same as that of the surrounding hexes.


6.4 Towns and Races
### 6.4 Towns and Races

Towns are always a focus of economic activities in Atlantis and are
strategically important locations. The number and placement of towns
Expand Down Expand Up @@ -918,7 +938,7 @@ will spread over a wider area. Seafaring races can also spread across
ocean hexes, so that nearby islands often have the same race type.


6.5. Special: Fractal Generation
### 6.5. Special: Fractal Generation

This chapter addresses the code developments for an alternate world
creation mechanism that is used by the Kingdoms gameset. The
Expand Down Expand Up @@ -983,4 +1003,3 @@ so you'll just find a different name for each region.
The author of fractal world generation, Jan Rietema, would be
grateful for your comments and suggestions and can be contacted at
<[email protected]>.

26 changes: 18 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# This is the makefile for Atlantis 4.0
# This is the makefile for Atlantis 5.0
#
# Copyright 1998 by Geoff Dunbar
# MODIFICATIONS
# Date Person Comments
# ---- ------ --------
# 2000/MAR/14 Davis Kulis Added the template code.
# 2004/MAR/29 Jan Rietema Added/modified the gamesets
# Date Person Comments
# ---- ------ --------
# 2000/MAR/14 Davis Kulis Added the template code.
# 2004/MAR/29 Jan Rietema Added/modified the gamesets
# 2019/JUL/15 Artem Trytiak Added neworigins gameset

GAME ?= standard

Expand All @@ -27,7 +28,7 @@ OBJECTS = $(patsubst %.o,$(GAME)/obj/%.o,$(RULESET_OBJECTS)) \
$(GAME)-m: objdir $(OBJECTS)
$(CPLUS) $(CFLAGS) -o $(GAME)/$(GAME) $(OBJECTS)

all: basic standard fracas kingdoms havilah
all: basic standard fracas kingdoms havilah neworigins

arcadia: FORCE
$(MAKE) GAME=arcadia
Expand All @@ -47,11 +48,14 @@ fracas: FORCE
havilah: FORCE
$(MAKE) GAME=havilah

neworigins: FORCE
$(MAKE) GAME=neworigins

$(GAME)/$(GAME): FORCE
$(MAKE) GAME=$(GAME)

all-clean: basic-clean standard-clean fracas-clean kingdoms-clean \
havilah-clean
havilah-clean neworigins-clean

arcadia-clean:
$(MAKE) GAME=arcadia clean
Expand All @@ -71,6 +75,9 @@ kingdoms-clean:
havilah-clean:
$(MAKE) GAME=havilah clean

neworigins-clean:
$(MAKE) GAME=neworigins clean

clean:
rm -f $(OBJECTS)
if [ -d obj ]; then rmdir obj; fi
Expand All @@ -79,7 +86,7 @@ clean:
rm -f $(GAME)/$(GAME)

all-rules: basic-rules standard-rules fracas-rules kingdoms-rules \
havilah-rules
havilah-rules neworigins-rules

arcadia-rules:
$(MAKE) GAME=arcadia rules
Expand All @@ -99,6 +106,9 @@ kingdoms-rules:
havilah-rules:
$(MAKE) GAME=havilah rules

neworigins-rules:
$(MAKE) GAME=neworigins rules

rules: $(GAME)/$(GAME)
(cd $(GAME); \
./$(GAME) genrules $(GAME)_intro.html $(GAME).css html/$(GAME).html \
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
##Atlantis Source Code README
# Atlantis PBEM Source Code
[![Build Status](https://travis-ci.org/Atlantis-PBEM/Atlantis.svg?branch=master)](https://travis-ci.org/Atlantis-PBEM)

Copyright 1998-2001 Geoff Dunbar

This distribution of the Atlantis source code purposefully comes with
only this file as documentation. Please visit the Atlantis Project Home
Page (https://github.com/Atlantis-PBEM/Atlantis) for full documentation.
only this file as documentation. Please visit the Atlantis Project Gamemaster
Guide (https://github.com/Atlantis-PBEM/Atlantis/blob/master/GAMEMASTER.md) for full documentation.


The Atlantis source code is released under the terms of the file
LICENSE.txt, which should be in the same directory as this file. If the
LICENSE, which should be in the same directory as this file. If the
license file is not present, please delete the source code, and retrieve the
official release from the Atlantis Development Egroup at
http://groups.yahoo.com/group/atlantisdev/
Loading

0 comments on commit dec12a5

Please sign in to comment.