The Almonaster Project SourceForge Logo

Table of Contents

Status

Links

Introduction

Almonaster is a turn-based multi-player war game that runs on the World Wide Web using form submissions as user input. No downloads, JScript, Java or ActiveX controls are required. If you are reading this page and your browser can post forms, then you can play.

Almonaster was inspired by a long line of strategy games, particularly T&E Software's Daiva series, which were programmed for the MSX2 computer. If you have an MSX2 emulator, you can run the 1986 game Daiva story V, which was way ahead of its time.

The design of Almonaster was also heavily influenced by the popular online game Stellar Crisis, and the look and feel of Almonaster has been designed to be familiar and usable by those who are familiar with Stellar Crisis 2.8x. Stellar Crisis resources that may be useful for a better understanding of Almonaster culture and gameplay include:

No source code from Stellar Crisis or from any other program was used create Almonaster. The graphical elements common to both games are either in the public domain or permission was obtained from the authors to make use of them. Many of the fundamental elements of Almonaster can be found in classic war games such as Risk or Stellar Conquest. Others, such as the ship types and attributes, are attributable to Sylvan Clebsch's Stellar Crisis. It is not the intention of the authors of Almonaster to portray these ideas as their own.

Almonaster is free software, released under the GNU Public License. In addition to the privileges and restrictions imposed by the GPL, there are two additional clauses that apply to the use of Almonaster and any derivative works:

If a server is found to be violating these principles, please notify the current maintainer of the matter.

Architecture

Almonaster is a page-source plug-in for the Alájar web server. This means that the Almonaster game code registers itself as the recipient of HTTP requests that come with a certain URI (Uniform Resource Identifier). For example, a typical configuration of Alájar would delegate HTTP requests for anything under http://www.server.com/almonaster/ to the Almonaster page-source; the page-source would respond by supplying HTML code to return to the client.

Almonaster itself is based on a modular design that incorporates the following components:

  1. The page source module implements Alájar's event-driven interface.
  2. Webpage modules implement the functionality of the different game pages.
  3. The GameEngine module controls the rules of the game and serves information to the web pages.
  4. The Database module stores data for each player and provides data caching to ensure responsive performance.

This is an ASCII art flow-chart of the modules:

HTTP clients ----------------> Alájar <----------------- HTTP clients

|

Almonaster page source

/ | \

Webpage Modules

|

GameEngine

|

Database

From a high-level point of view, the system operates as follows:

  1. A form submission is received by Alájar, which determines the appropriate page-source recipient by decoding the URI from the HTTP headers.
  2. If the recipient is Almonaster, information about the request is sent to the page-source, which determines which page the client is interacting with by examining the form values contained in the request.
  3. Once this is determined, code that "scripts" the correct page is called.  The game engine is queried for specific information needed to construct the page;  the database is called in order to read or write game or empire-specific information.
  4. When the page creation process has completed, a response is sent back to Alájar in HTML form for transmission to the client.

Compatibility

Almonaster has been successfully tested on the following server-side platforms:

Almonaster does not support Windows 9x/ME on the server side.

Client requirements

Almonaster clients require an internet connection and a forms-capable browser, specifically one that supports the POST method. This would include practically any modern browser: Internet Explorer, Netscape Navigator, Opera, Lynx and many others qualify as such.

Server requirements

Minimal system requirements for an Almonaster server will look something like this:

Almonaster is sufficiently lightweight that it could probably be used as a personal game server, perhaps even over a dial-up connection.

Please note that the requirements listed above are only for the server:  many people seem to read this section too quickly and for some reason assume that you need NT and lots of RAM just to play. The truth is just the opposite, of course: all you need is a browser, so you can play Almonaster from AmigaOS with IBrowse or from a 386 running Netscape 2.0.

Installation

The installation procedure is as follows:

  1. Make sure you have TCP/IP properly installed and running on your computer. On some versions of Windows you can't use TCP/IP at all unless you have an ethernet card or a loopback adapter installed or you have an active dial-up connection to the internet.
  2. Unzip the binary distribution into the directory of your choice.  Make sure that both long file names and directory locations are preserved
  3. Change the settings of your choice in alajar.conf and config/*.conf.  Each parameter is commented in its respective file. The defaults, however, should work fine for simple use (note: admin.conf contains a default admin password that you'll want to change immediately)
  4. Run alajar.exe from a command prompt
  5. To shut the server down, log into http://localhost/admin/ with the username and password from admin.conf, or type ctrl-c in Alájar's console window
  6. Once everything is up and running, using SSL is highly recommended.

If you want to run Alájar as a system service, open a command prompt and run "alajarsvc.exe -install" to install the service. Then use the control panel to set the service to automatic and start it up.

After this, connecting to http://localhost/ or http://127.0.0.1/ in any web browser should give you the Almonaster login screen.  You can change the server's port number in the Alajar.conf file.

Information on configuring Alájar can be found here.

The default empire with administrative privileges is:
Login:  root
Password:  neil:young

Please report any problems with this installation procedure to the current maintainer.

Compilation

Both Alájar and Almonaster are compiled and tested with Visual C++ on Windows XP. The code is generally platform independent, although for advanced functionality such as threading and synchronization it makes use of a set of libraries called Osal (Operating System Abstraction Libraries). Because of this coding strategy, ports to other OSes are relatively simple, since they only require a port of the Osal libraries. The source distribution contains a Linux port that was created by Austin Che.

If you are interested in improving the existing ports or working on new ones, please contact the current maintainer.

If you are going to compile Almonaster on your system, you can unzip the source distribution into a directory on your computer and start building the projects. The build order you want to use is the following:

  1. Osal
  2. AlajarDll
  3. Alajar
  4. AlajarSvc
  5. Database
  6. OldDatabase
  7. Admin
  8. Almonaster
  9. AlmonasterHook
  10. Asfpp
  11. DBConv

Release binaries and libs will go into \Release, debug binaries into \Alajar, include files and debug libs into \Include

Osal.dll
Alajar.dll
Alajar.exe
AlajarSvc.exe
Database.dll

OldDatabase.dll
Asfpp.exe
DBConv.exe
PageSources\Almonaster.dll
PageSources\AlmonasterHook.dll
PageSources\Admin.dll

Graphics

If you enjoy graphical design, then you are welcome to submit icons or themes for the game. Icons are 40x40 transparent gif's, some examples of which can be found here. Note that submitted themes do not have to be complete, although it would be nice if they were. In particular, creating all the buttons is a significant task.

Each theme contains the following elements:

All gif's used for both icons and themes should be in Gif'89 transparent format. Existing themes can be found in the main distribution.

Legal issues

Many of the fundamental elements of Almonaster can be found in classic war games such as Risk, Stellar Conquest or Daiva. Others, such as the ship types, are attributable to Sylvan Clebsch's Stellar Crisis. It is not my intention to portray these ideas as my own.

It should be made clear that no source code from Stellar Crisis or from any other software project was used create Almonaster.

Almonaster is released under the GNU Public License. In addition to the privileges and restrictions imposed by the GPL, there are two additional clauses that apply to the use of Almonaster and its any derivative works:

Reactions

"This is great work. You are, indeed, the man."
- The Saucer People

"I'd just like to say that I think that Almonaster is really cool."
- Conor Cary

"there is even a freakin chatroom...im dropping out of school"
- GW

"It is pretty cool."
- Sam Rihawi

"Looks to be a lot of fun and some of the major problems with SC have been addressed beautifully. I cannot tell you the number of times I have wanted to terraform for a newbie ally or even an experienced one or vice versa"
- Allen Thomas

"Almonaster has the potential to become my favorite version of SC"
- Feste

"I find your chatroom to be about a billion times better then any other stellar crisis room. my hat goes off to you"
- Jim Swanson

"Congratulations on this game. Great stuff. I like the new features and game types a lot, and also the feature to download the schemes to reduce the online load."
- Morgan

"Just let me start by saying GREAT STUFF!!!! I LOVE IT!!!"
- Danny Turrin

"I am very impressed with what you've created. I've played SC off and on since early 1996 and recently discovered Almonaster. The interface changes you've made are so useful and intuitive that I constantly wonder that they weren't always there. Well done."
- Brian Becker

"I'd like to tell you how much I like this version of SC. It has everything I've been looking for since I started played this game 5 years ago. Great work."
- Jonathan Tremblay

"Love it Max. Playing this server is like getting behind the wheel of a sports car."
- Denton Troy