Re: [ADMIN] Important Announcement

From: Daniel A. Koepke (dkoepke@hadron.ea.com)
Date: 04/01/00


On Sat, 1 Apr 2000, Alex wrote:

> After six weeks of discussion, the two groups have finally come to an
> agreement for the new game project.  Unfortunately, this will mean that
> the CircleMUD project will soon be coming to an end, and we will be
> looking for members of the CircleMUD community who are interested and
> willing to take over the plethora of code and support needs of the system.

It should be mentioned, of course, that any and all applicants will need
to take over the as-of-yet incomplete CircleMUD 4.0 branch (I'd be rather
pissed if you decided to scrap it) that we've been piecing together _in
addition_ to the 3.0 branch.  I only mention this because it sets a fairly
high standard for potential new developers.  It is highly recommended that
you have some familiarity with:

    Object-oriented design techniques and UML.

    Relational database systems, such as MySQL.

    Perl, Python, INTERCAL, C++, and Java.

    Flex and Bison and Optimizing Byte-Code Compilers.

    Connectionless UDP networking, with precise traffic control so as not
    to flood the user with sends, resends, etc.  (This is for the client
    architecture.)

    ELF dynamically loadable shared object libraries and Win32 DLLs.

    Multi-threading (pthreads and Win32 threads).

Naturally, you won't need all of this to be considered and its not all for
the 4.0 server.  You only need to know Java and INTERCAL for the client
architecture, since it needed to be cross-platform.  There's some
foundations there for a primitive 3D graphical interface implemented in
the client, but the furthest we got with a playable design is with static
2D images (in the vein of Myst or Riven).  Python is used as the internal
scripting language, and we opted for building our own cross-platform build
system with Perl to replace Makefiles (since automake/autoconf are only
portable as far as UNIX is concerned).  So that's why you'll need to know
those.  The actual main part of the server is written in C++ using the
Standard Template Library.  Familiarity with the STL is an absolute _must_
since you'll find constructs like this,

  --8< snip from cm4/src/netFE/ioManager.h >8--
  class ioManager {
      .
      .
      .
  private:
      struct Managed {
          ioMonitor* mon;
          ManagedFlags flags;
      };
      typedef list<Managed> ManagedList;
      typedef map<SocketFD, ManagedList> ManagedMap;
      ManagedMap _managed;
      ThreadPool _io_threads;
  };

where you'll need to know how to add and remove instances of derivitives
of the ioMonitor class, and how to use the map to lookup specific socket
file descriptors.  From there, the ioManager should grab a thread from
_io_threads, which is basically a locking queue containing a definable
number of threads which are passed the specific ioMonitor and what tasks
to perform when the poll() system call (note that CircleMUD 4.0 no longer
uses select(), since we were aiming at supporting several thousand users
and George's stress testing [included in cm4/src/utils/gg/stress.pl]
demonstrated that poll() was the only way to achieve high performance and
the vast scalability that was one of the original goals of the project)
returns an array of pollfd structs.  More information on these things are
available through private correspondence, since the idea isn't to discuss
and release the entire 4.0 source tree, yet.

Indeed, there's a big stipulation with receiving the 4.0 source tree.
YOU CANNOT RELEASE IT OR ANY PART OF IT UNTIL YOU COMPLETE THE 3.0 BRANCH.
Sorry, but we think that supporting the current userbase is just as
important as introducing new technology, and because of a lot of the
higher tech stuff, 4.0 will not be an option for many users (i.e., VMS,
Amiga, Macintosh users [although OS X users should be able to get on the
bandwagon]).

To all potential new developers: please allow us some time for
deliberation, too, as the design of the infrastructure of Hadron is taking
up a lot of our time, in addition to getting used to living together at
the new Hadron Developer Bunker.  You'd think EA could put up some more
dough to get us each a nice apartment, since we all had to relocate, but
instead they gave us a studio almost completely barren of any furniture.
Anyway, if (_when_) Hadron takes off, well, let's just say that we'll be
able to each afford our very _own_ studio apartments!  But, can't say much
more about Hadron, other than it will be around some time 3rd or 4th
quarter next year and kicking major ass.  Raph Koster, of LegendMUD and
Ultima Online fame, left UO a few months ago when word of Hadron started
spreading through the industry.  Check it for yourself, we've got the boys
at Origin running...

BTW, thank you all for all of the kind wishes you've been sending us since
the EA memo discussing our contract negotiations was leaked two weeks ago
(frankly, and not to insult anyone, I was rather surprised so many of you
read the trade papers considering you're mostly amateur game developers).
I've been looking over the handful of applications we've received so far,
and I must say that I'm quite pleased thus far with the turnout.  There
are, of course, some clear leaders in the hunt for these elusive, limited
positions.  Mainly, the taking over of Jeremy's Grand Poobah position.  I
would greatly appreciate if you DO NOT REQUEST particular positions, such
as Jeremy's or George's or Alex's, but instead just list your
qualifcations.  Not to be rude, but we're more concerned with what
positions we think you can fill, rather than what position you want to
fill.

ObHadronDevelopers:

I'm at the offices, if you're wondering where I went off to this morning,
to hookup the e-mail accounts.  I was going to go grocery shopping later,
today, too, unless one of you picks it up.  The list is under the
sunflower magnet on the left side of the fridge, facing the sink.  I
forgot to include the suckers on the list, since I need them to help me
with quitting smoking, so if someone else does the shopping, I'd
appreciate if you pick-up some lollipops -- DO NOT BUY TOOTSIE ROLL POPS.
I hate them.

Anyway, this is the first test of posting remotely through the Slackware
7.0 gateway at home (so don't be alarmed George if it looks like someone
snuck through the firewall -- 'tis me) to the Hadron servers.  If you want
me to hook-up your accounts, just call my extension at the office.  I
wrote it on the white board on the fridge in case you've forgotten all
ready.  And, Alex, please leave the freezer door shut.  I know you
Canadians are used to near-freezing temp., but I'm not going to pay for
the damn electricity bill if you're going to be driving it up like that...


Daniel A. Koepke
Network Systems Programmer
Electronic Arts, Inc.


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 04/10/01 PDT