Date: 1994-07-07
From: Paul
Subject: Alexander

Has the tape made an appearance yet? Turnaround shouldn't be much of a problem after all, as my trip back East has been postponed for at least a week.

Here's a brief follow-up report on Empire Deluxe (hereinafter referred to as ED): Each city is named at the start of the game. Each friendly piece is named also, when it is created. ED has an unreadable database of names, with different collections for cities and each piece type (discovered through ResEdit). Any name may be changed at any time. I find this whole naming area charming but essentially useless. Still, I recommend we mimic EDs functionality. And naming may actually have some value when we get around to the programming language.

The game itself has three versions: basic, standard, and advanced; but no levels. Standard and Advanced add pieces and complexity. So far my play has consisted of three or four complete Basic games, and I've won every one. In Basic, the whole map and all pieces are visible to the player, but I believe this behavior changes in the other versions.

Relative to the above, here's an interesting command description from the "Orders" menu, described in the manual:

Explore [X] - A unit issued this command will immediately begin exploring any unexplored terrain it can get to. It will move in a manner that will maximize the amount of terrain it can explore. If there is no unexplored terrain within reach, or at least a reasonable number of turns away, the unit will disregard this order. Land units that pass near neutral cities while exploring will ask for new orders.

For completeness, here is the entire "Orders" menu:

  • Move To [T]
  • Patrol [P] Patrols can have up to four legs. "If a Carrier is used in the patrol path, the path will move with the Carrier."
  • Go Home [H] "Home", in this context, is the nearest friendly city.
  • Explore [X]
  • Escort Ship [E]
  • Sentry [S] This is equivalent to SCs "Sleep", but is much better named.
  • Load Ship [L]
  • Unload Ship [U]
  • Clear Orders [INSERT]
  • Skip Move [SPACE]
  • Disband Unit [DELETE]
The game remembers my name and rank from game to game, and provides occasional promotions. Not knowing this, I identified myself to it as "General P", and later found my complete title (after promotions) to be Lieutenant (j.g.) General P!

There are far too many other interesting capabilities in the game to mention them all here. Instead, I highlight a couple, just to pique your interest:

Production Map [ P] ... the icons for all units will disappear from the map and cities will appear as the icons for the type of unit they are currently producing. Placing the cursor over a city will reveal the city's name, the unit type being produced and the number of turns remaining to produce it...

Paths Mode [F8] - Entering Path mode allows you to set up various paths from one city or Airbase to another location... You will be asked if you want the path to apply to land units, air units, sea units, or any combination of these...

My tape review of the game was pretty negative, and certainly there are mediocre elements to the user interface. But I'm now learning that there are some aspects of the game that will definitely be of interest to us. You need to check this out!

Also, I see from an advertisement on the last page of the manual that there is a book we need: "Empire Deluxe: The Official Strategy Guide". This contains stuff like "Insights into the logistics of proper troop movement...", "Lessons and applications of the Nine Principles of War", "Secrets of waging economic warfare...", etc.


And a related current event of note: I've recently spent some time working on Alexander! Current status: a small subset of scrolling is limping along (more on this below). Resizing seems to be working in the simplest cases, although I don't expect combination resizing/scrolling events to function at all yet. And I've stomped a few annoying long-lived off-by-one display problems. Did you ever notice that the scroll bars were short by one pixel (I didn't, until yesterday)? That the scrolling area was one pixel narrower than the display area? Some of these bugs are getting addressed.

My current major problem has to do with compatibility between certain toolbox routines (Pascal-based) and some of my C++ code. What I call "dynamic scrolling", which is what you get when you hold down the mouse button on an up- or down-arrow in the scroll bar, is implemented through a "call-back" routine: One of my routines calls a toolbox routine, which in turn calls another of my routines repeatedly until the mouse button is released. I knew how to make this work in C, but the trick seems to be different in C++. So instead I'm focusing on the "non-dynamic scrolling"; that is, the scrolling you get when you hold down and drag the thumb. This isn't implemented through call-backs, so the calling is easy. Of course scrolling like this only gets highly annoying, so eventually I'll have to figure out call-backs.

Enough for now,