User Tools

Site Tools


en:simulation

Introduction

The challenge in the development of accessible systems is to overcome the various physical, demographic, social or employment barriers.
The desired goal is an appropriate inclusion.

Barrier-free systems shall allow people a self-determined and independent life style regardless of age and functional limitation.

Sustainable models have to be developed to face the demographic, socio-political and economic changes in our society. Future-oriented tasks and occupational area shall be developed.

Prof. Dr.-Döbern Henisch shows exemplary barriers and the aim of the course: to overcome them. These barriers are sometimes even of world economic or political importance. The limited availability of our energy, or the difficulty to implement technology are for example barriers.
Addressing these problems in the past has led to a social change and will also continue to do so.
The economic use of energy resources derive from this example.

Bereits heute wird der CO2-Ausstoß übergeordneter Systeme, wie ganzer Staaten, oder die Wärmeökonomie kleinerer Systeme, wie einzelner Häuser diskutiert.
Already today, the CO2 emissions of entire states, or the heat economy of smaller systems, such as individual houses are discussed.
Other barriers are found in communication, demography, or in the availability, adequacy and actuality of knowledge.

Because of the very large task and the universal problem of those barriers, we have decided to plan the development of a system, which can simulate economic barriers and solutions for experimantal purposes.

The simulation should be able to simulate physical, technical, biological, psychological or economic processes. Therefore the further development of mathematical and physical models is necessary, perhaps with extensions of game theory and rooted in the idea of Socionics.

Our task is to implement a practical and functional simulation. For that purpose we have created a virtual, visual, three-dimensional space.

Below we present our theoretical approach to this simulation and the terms of its representations and interactions.
It is our wish that further simulations are designed with this platform in the future.
Conceivable would be to simulate physical designs up to psychological models, to simulate human communication or human behavior during stress in various environments.

Model Design

The basis for the further development of our model is the gaming and physics engine of the market leader Crytek.

An advantage of this engine is its universality, the availability at our university and the possibility to create enhancements and modifications for it.

The core of the engine is not available at the moment, but there is a wide range of possibilities for getting access to its potential. The engine simulates physical laws in an impressive manner. Physical and technical processes can be shown. For example manipulating or controlling speed, time, gravity, optical conditions such as light and shade but also physical barriers, such as buildings with doors and windows, is possible.

This engine seemed ideal for the reproduction or representation of physical, technical, biological, psychological or economic processes or systems.

The development of mathematical or physical models for simulating barriers and the possibility of their exemplary or practical elimination is a future task.

The investigation of barriers on the basis of this model will be simpler, cheaper and less dangerous than on the original space.

In this model, conditions can be added or varied. With this sophisticated model or with individual components experiments can done to analyze complex and dynamic processes.

In this simulation a real system can be reproduced and modified. It allows the control of physical quantities, such as time, which can't be influenced in real systems. Therefore, operations that need a lot of time in real systems, can be accelerated and vice versa it is possible to slow down very fast processes. This enables efficient measurements.

By changing parameters, a range of possibilities or reactions can be seen.

An intelligent use of simulation implies the developement of appropriate modules for the representation of barriers.

So it is conceivable that in the field of communications, the barriers in the human-human, human-object interaction (such as doorbell, elevator, etc.) or human-system (such as mobile phones, Internet, , etc.) are shown with a mental or psychological module.
Such a module could simulate stress perception, stress response and the ability to interact.

The simulation with the Crytek engine would evolve from a machine-like world to a independently acting simulation.
Already at this point interesting variants of the simulation control are arising: A robot could be supplied with “intelligence” (for acting almost independent) in order to act within a simulation.

On closer examination it is a point that access or modification of “intelligence” can only be done, if the controller is outsourced.

To consistently implement Accessibility to the model, the robot has to act as a kind of avatar within the simulation, while the “intelligence” is moved to an external application.

Project outline

Team

Konstantin Ernst, B. Sc. - ernst@stud.fh-frankfurt.de

Edward Roepke, B. Sc. - roepke@stud.fh-frankfurt.de

Project Objective

The project aim is to create a universal simulation software.
The function of this software is the simulation of the following basic situation:
Participants in the simulated space are acting or can observe.

Possible applications

  • Simulation of acting robots and robot communication.
  • Behavioral simulation of various human characters
    • Simulation of actions
    • Simulation of reactions
  • Simulate stressful situations and psychological perception of humans
  • Technical planning
  • Routingoptimization
  • Equipment options
  • Simulation of light
  • and much more.

Available rooms

  • predefined areas
  • self-defined spaces
  • Dynamically generated spaces (“on the fly”)
  • Generation of room based on plannings by external architecture software

Available Avatars

  • Variable “human” avatars
  • Average people
    • People with extreme anatomical characteristics
    • People with limited motor skills (eg people with walking aids)
    • People with sensory difficulties
    • People with impaired mental abilities
  • Robots

Available expert systems (autonomic acting in the room - "bots")

  • different people
    • average people
    • People with extreme anatomical characteristics
    • People with limited motor skills (eg people with walking aids)
    • People with sensory difficulties
    • People with impaired mental abilities
    • People with an identifiable stress behavior
  • Robots

Different perspectives

  • from the perspective of the actor (First Person View)
  • from the perspective relative to the actor (Third Person View: Looking over your shoulder)
  • Absolute position in a room

Control of the actors in the simulated space

  • independent (expert system - a “bot”)
  • by a user (real human)
  • by a user (computer program)

Options in the room

  • Interaction with the room itself
  • Interact with objects in space
  • Interaction with other participants
  • Adaptation of the room to individual events, such as “housing”, “laboratory”, “office”, “escape routes”
  • Control over the variable “time”
  • Insertion of individual objects
    • active objects (eg Sense-Floor, interactive wardrobe)
    • passive objects (eg wheelchair, other 3D objects)

Inspirations

  • Parallel running BaSys projects

Technical demands on the software

  • access transparency & network transparency
  • (location transparency?)
  • concurrence transparency
  • Performance transparency

Demands on project implementation

  • Continuous, detailed and public available documentation
  • Maintenance of a guide that allows any interested parties to install the current project status and use

Schematic representation

To illustrate, the aim of the project is presented in the following simplified figure.
It shows the main parts of the idea.

Legend

Reference point Description
A The software simulates a space similar to a modern computer game
B A user can connect to and interact within the simulated space with a computer (client) from anywhere in the world
C With a clearly defined interface, software developers will be given the opportunity to develop software that accesses in and interacts with the simulated space independently without the help of a user
D The simulated space is designed to allow multiple users and computers to move and influence each other simultaneously
E The presence in the simulated space can be a human avatar. There are serveral characters possible
F Avatars does not only include human models, also robots and custom models are possible
G The representation in the simulated space is not limited to one model per user/program. There are predefined expert systems with different characters available that can be moved or move independently in space
H The user can join the simulated space as a observer
I All access to the simulated space, whether by human or program is done through a standard interface

Free of barriers - Accessibility

Accessibility is the principle and goal of all BaSys projects.
So we have assigned the accessibility to the top priority of this project.
To implement the concept of accessibility, we concentrate on two perspectives:

  • On the project itself, whose goal is to develop a software
  • The result of the project, meaning the software itself


In these two points, the principle of accessibility is implemented in different ways. These are explained in more detail in the following two chapters.

Accessibility in the project

Three concepts which ensure accessibility to this project:

  • Accessibility
  • Transparency
  • Multilingualism

In order to be able to offer every person the opportunity to understand the project development and all development steps easily, or even enter into the project, all progresses, experiences and knowledges are documented and are available in this wiki.
This manual is intended to visitors from all disciplines and is not limited to members of the department of computer science. It is a challenge to present a complex and computer science oriented project to people without prior deep knowledge in a comprehensible manner. Therefore the project team asks for criticism and inspiration.
To eliminate another barrier that documentation is maintained in German and English.

Accessibility in the outcome of the project

For software development there are also proven techniques to enforce accessibility:

These Points are concepts from computer science and very technical. For detailed descriptions and more information these keywords are linked to articles from Wikipedia.
All of the listed forms of transparency have been included in the concept of the software. A detailed description of the precise implementation will follow.

Interdisciplinarity

“Barrierefreie Systeme” is an interdisciplinary study program and represents a composite of three subject-specific masters who cooperate in a common project with a joint research program. We develop sustainable models to face the demographic, socio-political and economic changes in our society.
The presented project has just been started and is currently composed with students of the computer science department.
We cordially invite everyone to participate in this project.

We would like to take this opportunity and say thank you to all students (especially from the disciplines of architecture, nursing and social work). Only with their support and inspiration, the project goal and the related concept could be formed correctly.
THANK YOU!

Procedure

Process Model

A process model is an instruction for a project. It is dividing and describing it in a variety of structured phases. It presents sequences for organizing and implementing the project.

There are different process models. We organize the implementation with the process model named Scrum.

Modding

There are two different approaches to the creation of the required software. The first option would be to start the development process at zero and start from scratch. The other option would be to build on the existing software, meaning the computer game “Crysis”. The provided software environment and documentation on the game disc is primarily aimed to developers who wish to do “modding”. This means the extension or modification of the existing computer game. Building on the existing game, the individual components can be adjusted step by step to your own needs. Information, help and discussions on the Internet are devoted exclusively to the subject of modding.
To reach the desired software the team has decided to begin with “modding”.
This has the effect that the first steps initially strongly reminiscent of the computer game “Crysis”. This effect disappears with continuing development successes.

Benefits of using the CryEngine

Some of the targeted applications can already be implemented with the existing software.
By using the CryEngine former unprecedented developments are possible:

  • Unrivaled realistic models of buildings and nature can be walked through in “real time” (opposed to traditional software, which creates a video tour of a pre-defined route). At the same time light, which especially in the field of architecture plays an important role, is represented nearly perfect.
  • A major difference of the planned software, in contrast to competing products, is the possibility of the CryEngine to build robots and people with individual appearances, characteristics and behavior that are interacting in “real time” in a virtual world.

Versions of the CryEngine

The University of Applied Sciences, Frankfurt am Main, has the privilege of using the latest, best, yet unpublished physics and game engine “CryEngine 3”. That makes a huge lead.
Within the Project the previous version of this engine is beeing used at the beginning. This should be substantiated in a brief explanation.
The engine of Crytek is certainly a sophisticated and very powerful program. The company Crytek supports the Fachhochschule Frankfurt am Main with a comprehensive and well structured documentation and personal support. The contact with the CryEngine is new for all project members. The team has to becom familiar with the basics of the operation and the handling of the CryEnginge. To make this time-consuming work in a efficient way, the project team discussed the possibility to first work with the previous version. Below the advantages and disadvantages of both versions are listed. This allows the reader to follow the decision in the “analysis”.
We will conclude the chapter with a view that describes when and how the project will change to the current version of the engine.

CryEngine 2

Advantages:

  • CryEngine 2 can easily be optained by everyone.
  • CryEngine 2 is freely installable on any computer
  • The first two points have led many amateur developers to work with the engine. Those have exchanged their knowlegse in public Internet forums.
  • Extensive volume of documentation, tutorials, downloads, work of amateur developers is freely available on the Internet
  • CryEngine 2 has been optimized with several patches, so that it is correctly working on average computers. This allows a stress-free work at any location.


Disadvantages:

  • not the current newest graphics
  • not the most actual implementation of physics
  • possible differences in program structure in detail

CryEngine 3

Advantages:

  • improved graphics
  • improved implementation of the laws of physics
  • improved Artificial Intelligence (official name of the automated characters in the game, the term “intelligence” is disputed)


Disadvantages:

  • At the time of writing this chapter, the CryEngine 3 was installed on two powerful computers in the BaSys-laboritory at the university in Frankfurt am Main. To working on the Engine personal presence is required.
  • Currently, it is not allowed to install the CryEngine 3 on the personal computers of the students.
  • Currently, it is not possible to access the computers in the BaSys laboratory with a remote connection.
  • Because of the allure of the engine to computer scientist, the two seats in the BaSys laboratory are in high demand (and usually busy).
  • The volume of the discussions in forums based on the CryEngine 3 tends to zero.
  • Installation and operation require high performance computers

Comparison

This list of advantages and disadvantages is made without quantifying. However, it should be accented that of course it's not enough to compare the number of individual list items to make a decision. The following consideration shows, however, what priorities are set by the team.
The main differences between the two versions lie in the quality of the graphical representation and the implementation of the rules of physics.
At the beginning of the project basic groundwork is in the foreground. For this the aesthetics of the design is irrelevant. More important is the possibility to work with the engine at home. First thing to do is to get an overview of the rough structure, the connections and interfaces of the engine. These are same in both versions. The knowledge which can be derived from dealing with version 2, can thus later be used with version 3. The project should already be converted to version 3 when technical differences would have a affect.
Because of the fact that the engine from Crytek is new for all team members, many beginner questions are expected. Many of those problems occurred by another developer in the past while working with Version 2. To almost every issue, there are several discussions in the public forums (see “Links” - “Forums”). This allows fast solutions and effective learning during dealing with the engine. The descision derives from this comparison results: The project will first be build on CryEngine 2.

Conversion of CryEngine 2 on CryEngine3

The CryEngine 2, and most of the development components are easily optainable: they are provided in the game “Crysis”, with the intention to give the purchaser it possibility of own developments or moddings. So it is possible for anyone to start quickly.
Crytek plans to release the game “Crysis 2”, which is based on the CryEngine 3, mid-year 2011. It is likely that there are all the development tools included on the game disc again. This would allow the easy conversion of the project to the CryEngine 3.

Project History

In the next chapter implementation, the current state of the project is described.
As this chapter and all the following ones are results oriented the chronological aspect is missing. Therefore all the development steps will be recorded in the following list.

  • Semester 1
    • History
      • 2010 - Week 44: Start of the project and the start of the orientation phase
      • 2010 - Week 46: Initial target_definition
      • 2010 - Week 48: First realization of a general interface concept
        (see Figure 1: Schematic representation of the software - Mark “I”) in consideration of the concepts of network and concurrence transparency (see chapter Accessibility in the outcome of the project to ensure accessibility.
      • 2010 - Week 50: Technical base: creating an own card. Setting up a server. Local implementation of the developed client-server concept using the network interface (network transparency).
      • 2011 - Week 2: First version of project documentation in German
    • Summary
      • This semester, the foundation stone was laid for the project. As a guest students at the meetings of other project groups, we collected inspirations, which together with our own ideas, formed the project goal. Together with fellow students and teachers we saw the importance of accessibility and put it as the highest goal for the project results and also for the project implementation itself. Every aspect of our concept has been repeatedly considered from the perspective of accessibility.
        We realized that each step in the development process of the project has to be planned in advance and must be validated in retrospect, to be able to actually ensure accessibility.
        The elements of transparency, accessibility and multilingualism in the project implementation will be ensured by continuous documentation.
        Experimentally, we have tested the implementation of single points and ideas to scale the possibility and presented it afterwards. This will be discussed in more detail in the following chapters.

Implementation

In this chapter, the current status of the project is described. The project is still at an early stage of development. Only a part of the described project goals has been implemented. The technical base has already been created and it is always considered to maintain this. This allows everyone to see the current status of the project implementation, and to try it by itself.
The following description enables any interested party to set up the software project itself, and to start to work with.

Setting up the software environment

The following table represents a collection of software components. You can see what components are required or recommended to use each application (server, client, developer). There is also a brief description of each item and a source. The following chapters assume that this software is installed.

Eintrag Software Server Client Entwickler Beschreibung Quelle
1 Crysis x x x The computer game “Crysis Amazon Shop
2 Crysis Patch 1.2 x x x Recommended Game-Patch download
3 Crysis Patch 1.2.1 x x x Recommended Game-Patch download
4 Crysis Dedicated Server Package v1.4 x Allows you to set up a server download (incl. Server Documentation)
5 CryEngine 2 Sandbox 2 x Creation of landscapes and FlowGraphes On Game-DVD (see “Crysis”)
6 ModSDK 1.2 x Development-kit download


Note
It is recommended not to install the software in the default program directory “C:\Programme” or “C:\Program Files”. This can lead to write problems with the operating system. We recommend to install the software in the directory “C:\Crytek\Crysis”.
The following documentation we assume this installation path.

Setting up a server

Once the needed software components as described in section Setting up the software environment are downloaded, unpacked and installed, the server can be prepared for use. This is done according to the following steps:

Configure server settings

The settings are configured by editing various configuration files. The files and the setting options are described in the server documentation. This documentation is located in the downloaded archive, which contains the server installation files.
Alternatively, the pre-defined configuration files from the project team can be used. These must be downloaded and copied in the root directory: (eg “C:\Crytek\Crysis\”). An archive of pre-defined configuration files is available for download here: Server_Konfigurationsdateien.zip

Import map

The game Crysis brings a wide range of maps. The project team has designed a custom map. This map is intentionally minimalistic. It contains only content that is absolutely necessary. It is functional, contains all the previous requirements and can serve as a basis of your own blueprint. The card must be downloaded, unzipped and copied in the directory in which the Powerstruggle-multiplayer-maps are stored. Eg “C:\Crytek\Crysis\Game\Levels\Multiplayer\PS\”. It is soon available for download.

Starting the server

The server is started by executing the file “startup.bat” (in the Crysis root directory, eg “C:\Crytek\Crysis\startup.bat”). This is done by double-clicking the file.
It openes 2 windows with black background. Here, the startup of the server can be observed. In case of problems the displayed protocol can be used to identify failures. Loading takes about 20 seconds. Afterwards, clients can connect to the server.

Configuration of a client

After the required software components have been installed, the right map has to be copied into the file system of the game. Map and destination paths are identical to those of the server (see previous heading)

Connecting Client - Server

To build a connection between the client and server, first the following conditions must be fulfilled:

  • The server was set up
  • The server was started
  • The client has been configured
  • Client and server are within the same network

Are these conditions met, a connection can be established with the following steps:

  • The client is started by executing the game Crysis. (Videos at the beginning can be skiped by pressing the space bar)
  • Following points have to be selected from the menu: “Multiplayer” - “Local Area Network”
  • If there is a entry CySys in the list “All Servers” doubleclick it with the mouse. The connection is now established. When the connection is established further instructions for the participation are shown.
  • If there is NO entry Crysys in the list “All Servers”, click the “Connect to IP” button. You can now connect to the server by entering and confirming the IP of the server. The connection is now established. When the connection is established further instructions for the participation are shown.

Dealing with the engine - Interfaces

The CryEngine 2 gives the developer various interfaces for modifications and new developments. The six main interfaces are listed below:

Sandbox 2

Sandbox 2 is a standalone program that is included on the game disc from Crysis. With the program it is easily possible to create three-dimensional maps (worlds) via a graphical interface. These can be freely designed and derive in multiple forms. So it is possible to create both a jungle and a hospital as a 3D map.
These maps will later form the environment for the clients avatars.
Tutorial - Creating a Basic Level with the Sandbox 2

Lua

Lua is an imperative and extensible scripting language for embedding in programs to develop and maintain them easier.
Lua programs are usually platform-independent and are translated into bytecode before execution. Although you can write independent programs with Lua, it is primarily designed as an embedded scripting language for other programs.
In the CryEngine 2, the developer can control different objects, also called “entities” with Lua scipts. for example the behavior of intelligent agents in the game (eg computer opponents) are described in Lua.
Official Lua Homepage
Documentation and tutorial collection CryEngine2 and Lua

C++

C++ is a high-level programming language.
In the CryEnigne 2, it is possible to implement powerful extensions with C++.
Documentation and tutorial collection CryEngine2 and C++

Flograph

Flowgraphs provide a “visual scripting”. On a graphical level the developer is given the opportunity to link events and actions (nodes) to each other. For this purpose a wide range of events, logic modules and actions that can be linked with drag and drop, are available.

Hierzu stehen eine große Auswahl an Ereignissen, logischen Bausteinen und Aktionen bereit, die per Drag & Drop verknüpft werden können.
Sample Flowgraph
Flowgraph Guide
Flowgraph Nodes

Flash ActionScript

ActionScript is an event-oriented programming language. Developers can use ActionScript to implement HUDs (Head Up Display)
Documentation and tutorial collection CryEngine2 and ActionScript

XML

XML is a markup language for representing hierarchically structured data.
In the CryEngine2 the properties of weapons and vehicles are described in XML and can easily be modified. They help to control the entities.
Compared with Lua: While within Lua scripts the behavior of entities is defined, XML describes the character.
XML parameter list
Documentation and tutorial collection CryEngine2 and XML

Glossar

See also DIN 19226

Simulation
Simulation can be defined as a collective term for the representation or reproduction of physical, technical, biological, psychological or economic processes. Or the representation of systems by mathematical or physical models. The investigation of the model is easier, cheaper and less dangerous than that of the original. The results can be used to draw conclusions about the properties of the original object.

System
A system is a corresponding arrangement of structures, given in a context.

System parameters
The system parameters are variables whose values describe the behavior of the system at a given structure.

Model
Illustration of a system or process (all the events) in a mostly easier conceptual or representational system.

Modeling
Process of arranging the knowledge of a system of knowledge

Links

The content of the links listed below, are tested positively by at least one team member.
There are 2 public portals, which include forums and provide comprehensive information. On most questions it was our first place to go:
Ctrytek's official modding portal
Portal "Crysis-HQ"


Tutorials
Creating a Basic Level with the Sandbox-Editor
Construction of a building, texturing
Tutorial collection of "Crysis-HQ"


Help


Documentation
Documentation Scripting/Coding


Forum
Forum by Crytek's official modding Portal
Forum "Crysis-HQ"


Downloads

en/simulation.txt · Last modified: 2014/11/24 12:37 (external edit)