Sound for Interaction class 11
Streaming 1
Internet
TCP/IP Transmission Control Protocol over Internet Protocol
The de facto standard Ethernet protocols incorporated into 4.2BSD Unix. TCP/IP was developed by DARPA for inter networking and encompasses both network layer and transport layer protocols. While TCP and IP specify two protocols at specific protocol layers, TCP/IP is often used to refer to the entire DoD protocol suite based upon these, including telnet, FTP, UDP and RDP.
- IP - get packets from one place to another
- TCP - sessions/gaurentee delivery etc...
- UDP - simple but unreliable datagram services...
- RTSP - simple but unreliable datagram services...
TCP/IP Layers http://www.uga.edu/~ucns/lans/tcpipsem/
(OSI-RM, OSI Reference Model, seven layer model) A model of network architecture and a suite of protocols (a protocol stack) to implement it, developed by ISO in 1978 as a framework for international standards in heterogeneous computer network architecture.
The OSI architecture is split between seven layers, from lowest to highest: 1 physical layer, 2 data link layer, 3 network layer, 4 transport layer, 5 session layer, 6 presentation layer, 7 application layer.
Each layer uses the layer immediately below it and provides a service to the layer above. In some implementations a layer may itself be composed of sub-layers.
OSI is the umbrella name for a series of non-proprietary protocols and specifications, comprising, among others, the OSI Reference Model, ASN.1 (Abstract Syntax Notation 1), BER (Basic Encoding Rules), CMIP and CMIS (Common Management Information Protocol and Services), X.400 (Message Handling System, or MHS), X.500 (Directory Service), Z39.50 (search and retrieval protocol used by WAIS), and many others. Quite apart from it's actual application to real protocols, it also serves as a useful teaching model.
URI - Universal Resource Identifier http://www.ietf.org/rfc/rfc2396.txt http://www.faqs.org/rfcs/rfc2396.html
Http URI Protcol Host Port Path File Fragment identifier Querystring http:// info.cern.ch :8000 /imaginary/test/ file.html #link ?test=yes server admin
XNA
The Game class in XNA has many default methods tha tare used to help define a structure for the game. Most XNA Game Components will inherit from this class
Game Methods
- XNA's base class.
Constructor()
- Instantiates objects from classes. New instances of a class are created with the keyword new.
Initialize()
- Initializes all variables. Assigns static variables a value.
LoadGraphicsContent()
- Loads code and images to the memory of the graphics card.
UnloadGraphicsContent()
- Clear the memory of the graphics card.
Game loop
Update()
- Updates game logic – Move, input, score, network, sound. Guarenteed to be called on every iteration
Draw()
- Draws to the screen - May not be called every loop. Should be short and exit quickly
Default Game Class
#region Using Statements
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
#endregion
namespace WindowsGameDemo
{
/// <summary>
/// This is the main type for your game
/// </summary>
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
ContentManager content;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(Services);
}
/// <summary>
/// Allows the game to perform any initialization it needs to before starting to run.
/// This is where it can query for any required services and load any non-graphic
/// related content. Calling base.Initialize will enumerate through any components
/// and initialize them as well.
/// </summary>
protected override void Initialize()
{
// TODO: Add your initialization logic here
base.Initialize();
}
/// <summary>
/// Load your graphics content. If loadAllContent is true, you should
/// load content from both ResourceManagementMode pools. Otherwise, just
/// load ResourceManagementMode.Manual content.
/// </summary>
/// <param name="loadAllContent">Which type of content to load.</param>
protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
// TODO: Load any ResourceManagementMode.Automatic content
}
// TODO: Load any ResourceManagementMode.Manual content
}
/// <summary>
/// Unload your graphics content. If unloadAllContent is true, you should
/// unload content from both ResourceManagementMode pools. Otherwise, just
/// unload ResourceManagementMode.Manual content. Manual content will get
/// Disposed by the GraphicsDevice during a Reset.
/// </summary>
/// <param name="unloadAllContent">Which type of content to unload.</param>
protected override void UnloadGraphicsContent(bool unloadAllContent)
{
if (unloadAllContent)
{
// TODO: Unload any ResourceManagementMode.Automatic content
content.Unload();
}
// TODO: Unload any ResourceManagementMode.Manual content
}
/// <summary>
/// Allows the game to run logic such as updating the world,
/// checking for collisions, gathering input and playing audio.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
base.Update(gameTime);
}
/// <summary>
/// This is called when the game should draw itself.
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
base.Draw(gameTime);
}
}
}