Download presentation
Presentation is loading. Please wait.
Published byJeffery Dean Modified over 9 years ago
1
COMP 410 & Sky.NET May 2 nd, 2006
2
What is COMP 410? Forming an independent company The customer The planning Learning teamwork
3
Overall Sky.NET Idea Last year’s class: first to make Sky.NET Sky.NET’s world is made up of entities, attributes, behaviors, and rules Dynamically extensible, abstract framework Capable of adding entities, attributes, behaviors, and rules at run time
4
Our Sky.NET Our task: Improve Sky.NET Implement rules framework Faster view / graphics Faster network / server access
5
Our Sky.NET How we split up the tasks: Model, Network, Database, and View groups
6
COMP 410 Any questions about what COMP 410 is?
7
Overall Design
9
Model Simulation IWorldBehavior Database IWorldQueryLambdaIWorldAffectorLambda Behaviors:
10
Model Behaviors: Can take in arbitrary arguments Uses query and affecter lambda to interface with the database Provides common interfaces for working with the database adapter Allows the ability to write different interfaces to perform other behaviors if desired Allows more flexible rules implementations
11
Rules Simulation IWorldBehavior Database IWorldQueryLambdaIWorldAffectorLambda Rules List
12
Model Rules: Rules can permit or block the execution of a behavior Rules can also change the way that behaviors are run through wrapping the behavior, the affecter, or the query They know all of the arguments given to the rule, and are given a direct link to the database, allowing a rule complete information about the world.
13
Model
14
Agents Adapter between Network and Simulation Used by the Client to interact with the Simulation Server Side Automation Client Uploaded User Permissions still in place Client’s discretion to choose how they interact with Simulation Adds flexibility for Client to deploy an A.I. agent
15
Model Any questions about the model?
16
View
17
View – High Level Design Model-View-Controller pattern View handles interaction with user Decouples data from its presentation View acts as a manager of: Media packages Devices Data feeds
18
View – Media Packages Media Packages encapsulate files that can be used to represent an entity or behavior Implemented as zip files with XML manifests Store mapping of keys to media files
19
View - Devices Devices actually present data to the user Implementer can choose which media are relevant for a given device ThreeDimDevice – uses Irrlicht engine to render 3d meshes that represent entities
20
View – Data Feeds Data feed encapsulates a single view of a SkyNet simulation Simulation can make any number of feeds available to user User must consider different feeds when making decisions
21
View – Behavior Parameters Must allow flexibility for behavior implementers Need an abstract way to get user input of a requested type GUI panels are generated dynamically to fulfill the parameters for a given behavior
22
View Any questions about the View?
23
Network
24
High-Level Network Design Flexible framework: supports for multiple clients, servers, clients access behind firewalls, client/server capability on a single machine Scalable framework: low-level network supports Sockets for connections Extensible framework: arbitrary objects transferred, low-level network details insulated from the rest of the program
25
High-Level Network Design
26
Low-Level Network TCP/IP Sockets DummyNetwork loads carried out in another thread development procedure
27
Server-Side Loading and Saving of the State of the World Implemented as a Behavior Easy to understand: SkyNetDataSet schema XML file to specify entity creation Relational structure: Entity, Attribute, AttributeType is expressed structurally and transferred into the Database
28
Loading/Saving to SQL Relational structure mapping: Entity, Attribute, AttributeType, stored in the database
29
Server-Side Loading and Saving of the State of the World Example: ”3C1B97FC-38A5-47c0-A74D- 7DD3471AFEB3” ”Age” ”21”
30
Network Any questions about the network? Any questions about server-side loading and saving of the state of the world?
31
Database
32
Why do we need a database? To store the state of the world To handle a lot of data To act as a file system To facilitate searching for data
33
Database What are we storing in the database? The four basic components of every simulation: Entities and Attributes Behaviors and Rules
34
Database Entities and Attributes Many-to-Many relationship Each entity can have many attributes Each type can appear in the attribute table multiple times
35
Database Behaviors and Rules One-to-Many relationships Behaviors and rules stored as code A rule can affect multiple locations
36
Database IDatabaseAdapter Flexible Portable Store Query Database administrative function
37
Database - Implementation Gentle.NET Object relational mapping No licensing required Database backend flexibility
38
Database - Implementation
39
Database Any questions about the database? Structure Gentle.NET Querying
40
Sky.NET Any questions overall?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.