Haven/Teodric Q & A

Teodric Abstract: This is the Questions and Answers document related to the Haven project and to my views and opinions in various issues related to it.

Availability: Public

Contents

The topic for this document relates to both the Haven project and to myself.

Introduction

This is the Questions and Answers document. In another context it might have been called the FAQ, but as it's more a matter of stating a position than anything frequently asked, the "FAQ" name seemed a bit pretentious.

Sections

Q & A

Downloads

Are there any games to download? Demos?

No, there is nothing to download at this time.

When will there be anything to download?

Possibly not for a very long time, unless you like watching some test applications (which can be amusing but are not games or finished products). Test applications are made because I want to test some feature or idea, not to make interesting or attractive products.

It could be years before any games come out of this project - it could also never happen.

Is this all there is? Are these documents all you have, and why are you putting them on the web?

If you're seeing this on the web, you are reading the public version of the documents. In the public version, many documents are cut or reduced. The internal version also contains many documents that are not present at all in the public version. The reasons for this are firstly that many of the documents are very early drafts that there is very little point in showing others and secondly that many documents contain details or information that I simply do not wish to share at this time. The latter is especially true for the many technical documents that I choose to withhold.
In short, there is much more, but this is not a commercial project. If any of the information here is useful to you, just take it for what it is. If not, I'm sorry but this is all I can offer right now.

The Haven Project

What does the name Haven mean?

Nothing. It used to be a working name for one of my early projects and kind of stuck. I have used other working names, but none seemed better than Haven.

Who is behind the Haven project?

I (Olof Ekström) created the Haven project. Some of the resources used by the project come from my company (Extro System, a private venture. This company is the basis for my ordinary professional work as a software (programming) consultant) and some of what the project creates will be kept by the company until the project has some economic structure of its own.

What will the economic structure for the project be like? Will there be a company?

I don't know. First of all, as long as it's only me doing 99% of the work, should some economically viable product come out of course I would commercialize it in a company of my own (my present company or more likely a new one).

However, it is my intention to reward anyone who makes any significant contribution, should I ever find myself able to do so. This is intentionally not a binding statement and may not be enough to calm anyone who fears being cheated of their dreams. If you have ideas for how to safeguard the interests of participants in a project before it is finalized, please read the Cooperation Concept and let me know what you think would improve on it.

Why do you do this?

I do this because I love it. I cannot stop doing it. I must create and I must dream of what could be built and I must try to build it. The journey is the reward, or at least a large part of it. See the Credo for more information.

Wouldn't it be easier to just get a job in the computer game industry and work upwards?

Yes, probably, and I am looking into following this route as well. But my dream is not to build another skinner box or another RTS rip-off or another anything. My greatest chance of getting a job creating games would be as a programmer, either in tools, server or client programming - I have roughly equivalent skill levels in most areas involved (excepting AI, audio and some other less relevant areas). I have no content media (graphics, 3D, audio) creation skills. I have nothing to show for creative skills in narrative or game mechanics. The road to actually having influence in the areas that really interest me would be very long and, to me, perhaps boring.

So I choose to work toward my own set of goals  in whatever time and with whatever resources I have available.

Game Design

Who is this for? Who should benefit in the end?

The project has goals that apply to the type of product on two levels. First, it aims to create games that are different from games produced so far. The main enabler is to create a framework that does not consist simply of some statistics engine, but allows more of a general simulation of a very free-form universe. Simple rule based games can still be leveraged, they just aren't the end of the story.

Second, the project aims to create a new type of shared content creation system. In this area a lot needs to be decided still - the goal is to search for some future paths for digital media.

What sort of products does this project aim to create?

In the first place, games. Games that are more than time diversion, games that are made to be creative tools in the hands of the users, games that serve as shared creation tools.

Along the way, the project may result in other things more reminiscent of typical games. This is coincidental.

The Capture the Flag Design Case

What sort of game is this?

A 3D first person shooter designed for online team combat.

What is the status of the project?

Planning.

What is this design case about? What does it demonstrate?

The primary concern for this design case relates to networking and trying out some game play ideas. Other issues of interest include user interface elements and command and communication structure. Network latency and quality is also of interest. Servers focus on physics modelling and simulation.

There will be no support tools specifically built, but rather it will use formats available in the public domain. Reuse of data is possible but not a requirement nor a key point.

Is this design case aimed to be a releasable product?

No.

Is there a download?

No.

The Children of the Prophecy Design Case

What sort of game is this?

This is a online persistent, massively multiplayer concept with a medieval/fantasy theme.

What is the status of the project?

Planning.

What is this design case about? What does it demonstrate?

The primary concern for this design case relates to server structure and GUI features. It is also a test bed for AI and some game contructs or demands endemic to persistent MMO worlds such as server performance, quality and robustness.

Is this design case aimed to be a releasable product?

No. It has the potential to evolve into one, but it is not a priority.

Is there a download?

No.

Technology Demo Design Case

What sort of game is this?

This is not a game at all. It's a test bed for technical features. (Gameplay features typically belong in the game designs)

What is the status of the project?

Planning.

What is this design case about? What does it demonstrate?

All types of tools and technology that relates to any aspect of the project as a whole may be touched upon by this project.

Is this design case aimed to be a releasable product?

No.

Is there a download?

No.

Hnefatafl

What sort of game is this?

This is a two player board game in the same genre as chess or othello. It is based on a board game played in Northern Europe around 1000 years ago.

What is the status of the project?

Structure, basic code outlining.

What is this design case about? What does it demonstrate?

Simple communication, simple 3D rendering, simple rule implementation in the Haven structure.

Is this design case aimed to be a releasable product?

In the sense of commercially available boxed game, no. It may be released as a lower rated ("second class") game for free or at a low price, but this is not a priority.

Is there a download?

No.

Other Design Cases

Fudd : What sort of project is this?

Fudd is a MUD implementation on top of the Haven framework. It is not intended as a standalone project but as a milestone and proof of concept for the Children of the Prophecy design case .
TykeWorld : What sort of project is this?
TykeWorld is a technology exploration project, aimed primarily at DirectX graphics (Direct3D). The application is a RTS/Sim-like game in 3D.
MultiMode : What sort of project is this?
MultiMode is a draft for a flight/combat simulator/racer with several play styles and a vehicle building component. The focus of the project is exploring the concept and trying out solutions to flight simulation and multiplayer challenges.

The Haven Project Public Documents

What documents are free? How may I use them?

The publication status of each document should be stated in the header and footer. All public documents are free to use, with only republication and sale prohibited. All rights in the published material is reserved by the author. All documents are copyrighted.

Should you get access to a non-public document, I would appreciate if you let me know where it came from.

The Haven Toolset

What are the components of the Toolset?

The toolset consists of technologies - not to be confused with the tools, which are actual pieces of software. The components of the toolset may actually be pieces of software (as in the case of specific server systems) but more likely they are subsystems or architecture aspects permeating the entire system.

The components of the toolset include: a rule building and execution engine, a communication engine with encryption and compression layers, a storage system and a flexible plug in system for specific servers. It also includes GUI libraries.

Status of the Toolset

What is the status of the toolset?

Server:

Rules Engine: Fundamental implementation stage

Account Engine: Fundamental implementation stage

Plug in controllers, AI: Planning

Network layer: Fundamental implementation stage

Network compression layer: Design stage

Network encryption layer: Design stage

Development architecture: Fundamental implementation stage

External services layer: Planning, Design and Fundamental implementation stages - this includes many services and types of services not published

Client:

User interface libraries: Fundamental implementation stage

Network layer: Fundamental implementation stage

Network compression layer: Design stage

Network encryption layer: Design stage

Installation maintenance services: Design stage

The Haven Tools

What are the Tools?

The tools are designer tools to be used when implementing actual end user applications and content for them. They include editors and tools for nearly all aspects of software construction beyond base tools.

The project uses compilers (gcc and Microsoft Visual Studio) and similar tools for common tasks. Tasks that are more specific to the toolset and the project are eligible for having their own tools. It's unlikely that a 3D modeling application will be built from scratch, but it's possible that a framework for one will be built to achieve something commercial applications can't do. In that case it's likely that that application will use file formats and specifications of whatever commercial applications are used.

The same is true regarding aspects of the toolset - the implementation of a 3D rendering engine is a huge task that does not really add any great to potential to excel. With this in mind, the architecture of the toolset is made to easily support alternative renderers. This concept is common to many similar aspects or the architecture.

One tool in particular may be of interest to developers outside the project - the designer's modeling tool tentatively called " A1 Modeller ", with a lot of generic diagram functionality (including UML models, standard object oriented diagram vocabulary, design pattern catalogs, database diagramming, generic flowcharts and user defined symbols) is being developed with intention to release as a free or shareware tool. The most obvious functions that will not be in the tool are code generation/round-trip engineering and RAD development/4G capabilities. Vague plans exist for department cooperation support with database-supported shared models. The exact terms for release are not decided. The tool is under development (in implementation phase). The initial version will be a win32 version targetted for Windows 2000. Other versions are undecided.

What is the status of the tools?

Planning and Design stages.

Opinions and Issues

Opinion on ownership in player-created data (or creation assisted by players ) in online games. [Blacksnow etc]

The online games industry depends on retaining the ownership of the data that is part of their games. This is not said to argue the point, it's just a note. Its implications are far-reaching though, and worth considering before entering the debate.

All online games I have seen have had some sort of EULA (end user license agreement) which explicitly forbid reselling in-game items to anyone outside the game's context. For me, that sort of agreement, which the customer must agree to before playing (usually before each playing session) is enough.

Most people who make a real effort to defend their right to sell things from an online game in spite of the EULA belong in one or more of the following three groups,

As far as I know, only the US has the type of "you cannot forbid me" approach to resale. The basic flaw of this reasoning in this context is that the right to resell is not valid inside a privately defined setting. The inside of a commercial online computer game is definitely one such private setting. Further, it is only valid if the item being sold is already the property of the seller.

The bits that make up the character are there because the operator of the game allows them to be there. Trying to argue the customer has any right to them beyond the permissions stated in the EULA is neither good for the customer or the industry. Consider for an instance if US courts ruled that players own their characters and items and must be allowed to trade in them. In that case, all games operating inside the US will immediately be liable to maintain the game running perpetually, as shutting them down will mean destruction of someone else's property (and any cop-out to avoiding that is just that - a cop-out. This is a good symptom that the setting of the game is really a private setting and must be governed by the operator of the game and noone else). The number of games run from the US would dwindle immediately and possibly the number of games sold in the US too.

This argument takes a lot of explaining to tackle. At the heart of the matter is intent and expectation. There is no way anyone would be paying anyone else for just sitting around in the game (deliberately simplifying and leaving some weird situtations out here - they really boil down to flawed designs and are characteristic of games that will die out). The buyer expects an item or other gain, the seller implies that such item or gain is included in the bargain. Therefore, more than time is being sold.
This is patently false and an outright lie. Competition by professionals over valued items definitely hurts those who try to acquire them within the rules of the games. Whether the owner of the game is hurt by the trafficking of in-game items etc is mostly to be decided by that owner. Ample argument for that they may consider it so is the previous sentence. That there could be made assumptions that items and so on become easier to come by by professionals harvesting them is not relevant - first, it's enough that one customer feels hurt for the argument to fall, second this is clearly a case where this behaviour breaks the intended functionality of the game (rate of items entering the game and so on).

All commercial games (as far as I know) realize that the commerce in in-game items and accounts is costing them real money in the areas of customer support. This is beyond any argument whatsoever.

A game where trading in in-game items outside the game is permissible is certainly possible to design. Of interest is Project Entropia, which establishes the trading in real-world cash for accomplishments inside the game. It will be interesting to see where that project ends up. It is easy to sketch a game where players can just whip out their credit card and instantly acquire all the items they want - in such a game, most of the above points would fail.

In the case of Blacksnow specifically, it should be noted that they evidently use any bugs or exploits they can find in order to attain what they sell. Further, it seems they conduct their online sales in spite of (several of their members/employees) being prohibited by the FTC due to online scams. (For reference, documents with information relevant to these points have been linked on for instance Player2player and UnknownPlayer).

Additional note: Apparently, the lawyers representing BSI withdrew from the case after BSI failed to pay them and BSI representatives made themselves unavailable. The court rules that Mythic's EULA was valid - this is an important decision, as it sets precedence for online games visavis ownership of the game data. Links to documents and scanned court proceedings are available at UnknownPlayer (one article , links to others at end) - the scanned documents are at http://www.unknownplayer.com/blacksnowcourt.html .

Online games and the future
It seems these days, every game has online play and the games that are in the MMO-persistent field represent a growing portion of the number of games as a whole. All consoles (Nintendo GameCube, Sony Playstation 2, Microsoft XBox) are being fitted with online capabilities. The distinction between platforms is blurred as developers try to cover as many of them as possible, from PCs to cellular phones (and no doubt soon, watches and refridgerators). So, is online games the only way ahead?

I think it will be pretty much a basic requirement of games in the future, to be able to play online and across platforms. Platform specific games will become more of a niche, and so will games without ability to play with or against other human players. The persistence quality is yet another thing that draws and keeps players. Players actually building something (a character) in a place where others can see it means gaming gets more value.

Other games will not die out or disappear. But yes, online and persistent, that is indeed the way to go.

Roleplaying, roleplaying games, immersion, "depth" and "quality"

This is a recurring issue in game design, especially in online games. Typically, "achievement" is set against "roleplaying", and there is always confusion over what is "good" or "better" and what is "deeper". See for instance this thread on MUD-Dev (" Building a 'deeper' MMOG " (http://www.kanga.nu/archives/MUD-Dev-L/2002Q2/msg01265.php) - the discussion is split into several threads).
I'd like to clarify my position in this matter a bit.
First, if one considers typical "games" I believe that they are simpler , less complicated, than games which add another dimension (such as roleplaying). "Simpler" does not equal "less value". Chess is a very simple game and it has proven its value over centuries in spite of its complete lack of roleplaying support.
In considering the challenges of game design, a game lacking roleplaying aspects is, to me, less fruitful. Many different game types exist which lack this and some are very successful. Simulators and shooters for instance both often have a very good immersive quality.
So why do I consider constructing games with a roleplaying component a more rewarding exercise? The addition of a roleplaying component offers freedom. Freedom to mold the storyline, to explore different outcomes in a deeper, more creative fashion than simple turning of pages - it's more immersive and most of all, it's gives more opportunity for active participation. It's being part of the performance to a greater degree instead of being the audience to a greater degree - note that I am talking about the storyline and narrative here, a WarCraft player is certainly "active" and "participating", but there's no involvement in the story.
The bottom line is that giving players an active part in controlling the narrative enables more complex creations.
The same is true of multiplayer vs single player games. Where a single player game ends, the player is left with whatever replay and exploration value the game has. In a multiplayer game, the pre-fabricated plot is only a backdrop. The other players are the main content and virtually inexhaustible. (That is just one extreme of course - it's perfectly possible to construct a multiplayer game where the players are nothing more than slower automatic opponents and have no bearing on the plot whatsoever. Such a game isn't inherently less valuable, just note that such a game design has declined to take advantage of some of the possibilities available.)
Enabling and taking advantage of a deeper and more complex plot construct and of the possibilities of online multiplayer environments is at the heart of all the work in the Haven project.
Roleplaying and achievement oriented players and experiences - I am not against achievement oriented players or environments promoting or rewarding them. In order to focus on the depth of the narrative however, I usually avoid encouraging such play. That is why wherever applicable, my creations will have no numbers or points but descriptive terms or unlabeled meters (you won't find a hit point number in a character information screen for instance, unless it's a draft for something technical). I fully recognize the power of competition, but discussion of such constructs should be left to specific application contexts, not framework or narrative discussions.

Free Software

Is Haven an open source project? Is it free software?

No. Haven is neither "open" nor is it "free". While I sympathize with many of the ideals and beliefs of the free software movement, and continually use it's creations, I do not wish to give away what I have created until I see that some good can come out of it. At this time, I don't see this. Specifically, parts of the client cannot be made open source software unless certain issues are resolved (this relates to client and account security). Unless the client can be made free and open, there is no sense in making server technology free or open. Secondly, the project is at this stage about systems construction and tools. The logical way for someone to make profit from sharing code is by competing by selling services or content. Until the technology created within the project is actually used to create income, there is no business case for selling services or content.

I hope to someday be able to make some sort of contribution to all the free software heroes out there and say my thanks in public, perhaps by giving the world some contribution to the growing pool of free software. Until then, my support will be in pledge only.

Is Haven based on open source code or free software?

To a limited extent, yes. Nearly all code in Haven Windows platform applications is based on code and information made publicly or commercially available by Microsoft. Some shared components use open source or free software (in accordance with the license under which it was released). Some components use freely available code from other sources, such as file formats and related code for using them. Some components make use of samples and tutorials made available by various sources on the internet or in press, such usage should be in line with the license  under which the code was released and should be documented in the source and mentioned in credits.

The server systems in the Haven project are based almost entirely on free software, again in accordance with appropriate licenses. All server systems are built to run on free software platforms, including software from the Debian GNU/Linux , PostgreSQL , PHP and Apache projects.

For more information about free software, see the home pages of GNU .

Hardware and Software Platforms

What operating system does Haven run on?

None at this time. Development is directed at game clients and some game creation tools on Microsoft Windows platforms, and game creation tools and server architecture on Debian GNU/Linux, Red Hat Linux and related platforms.

There is no intention at this time to create customer client applications for free, open source platforms.

What does Haven use for rendering? Does it support this or that hardware?

The Windows clients and tools will support anything that is supported by DirectX (possibly with the exception of communication devices, where IP protocols over basic interfaces of sufficient bandwidth will be supported as far as possible but DirectPlay and related DirectX interfaces are not used).

Some work is being done to incorporate OpenGL support, but this is not a critical feature.

Software Methodology

Is Haven object oriented?

Yes. Every component of the architecture is object oriented. It is written in C++ (with a few exceptions as necessary by nature of application). The use of C++ is limited to the most widely used features, in order for the code to remain bug free rather than to demonstrate language or design features.

Does Haven use [insert fancy technical term]? Does Haven implement [insert glitzy technical feature]?

Probably not. Haven uses very little in the way of ultra advanced tools. First of all, the project is forced to use tools that are either free or nearly so and widely available and known. Second, no tool or technology is used for the sake of itself.

Except for the use of C++ and basic object oriented practices, very little fancy technologies or techniques are used. Most of the technical solutions have been around in some form for many years.

That said, the very reason for the project is to move the boundaries for game design. The project is very focused on invention and new ideas for quality and creativity in entertainment software design.

Things like high-end, advanced graphical effects are run-of-the-mill among the churn companies. They do it better than I can hope to, and with absolutely no other motivation but to list features on the box and be on the lists of who uses what - I have no interest in such a contest, not do I see any real value in it. The progress in this area is as inevitable as it is dull.

Copyright Notes, Author Credits and Additional Information

This text was written in its entirety by Olof Ekström. For more information about the author of this page, see Olof Ekström's personal information in the Project Profiles document.

Copyright © 2001-2002 Olof Ekström/Extro System. All rights reserved.

Bälinge/Uppsala, Sweden, July 2001-June 2002