AI and Game Programming Unreal Tournament Project.

Slides:



Advertisements
Similar presentations
ESafe Reporter V3.0 eSafe Learning and Certification Program February 2007.
Advertisements

JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
Java Script Session1 INTRODUCTION.
Slow Control LHCf Catania Meeting - July 04-06, 2009 Lorenzo Bonechi.
NMD202 Web Scripting Week5. What we will cover today PHPmyAdmin Debugging – using print_r Modifying Data PHP (cont.) 4D Methodology File and IO operations.
Batch Process Overview. Batch Processes 2 What Do You Mean By Batch Processing? Allows for Mass Entry of Data All Processing of the Data Happens Without.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
6/13/20151 CS 160: Lecture 13 Professor John Canny Fall 2004.
Introduction to Java Programming, 4E
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Microsoft Office Illustrated Using Advanced Features.
…the basics….  Windows 7 Professional or Windows 2003/2008 Server  No competing http Services (Tomcat6 will provide web services on server machine)
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Bonrix Track & Trace System A GPS Based Vehicle Tracing System (SMS, GPRS/3G, Offline) Bonrix Software Systems Ahmedabad (INDIA) Website:
Version Control. What is Version Control? Manages file sharing for Concurrent Development Keeps track of changes with Version Control SubVersion (SVN)
DEMONSTRATION FOR SIGMA DATA ACQUISITION MODULES Tempatron Ltd Data Measurements Division Darwin Close Reading RG2 0TB UK T : +44 (0) F :
 2004 Prentice Hall, Inc. All rights reserved. Chapter 25 – Perl and CGI (Common Gateway Interface) Outline 25.1 Introduction 25.2 Perl 25.3 String Processing.
Chapter 6 DOJO TOOLKITS. Objectives Discuss XML DOM Discuss JSON Discuss Ajax Response in XML, HTML, JSON, and Other Data Type.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Students: Nadia Goshmir, Yulia Koretsky Supervisor: Shai Rozenrauch Industrial Project Advanced Tool for Automatic Testing Final Presentation.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
S.W. Ma/CIM/LWL41211/2 Prog. IIA Page 1 HKIVE (Lee Wai Lee Campus) Department of CIM Course : Year 2 Module : Programming IIA Textbook : Introduction.
4.1 JavaScript Introduction
Session 5: Working with MySQL iNET Academy Open Source Web Development.
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
Open Source Server Side Scripting ECA 236 Open Source Server Side Scripting Cookies & Sessions.
CSCI 6962: Server-side Design and Programming Introduction to AJAX.
CSCI 6962: Server-side Design and Programming JDBC Database Programming.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
AQS Web Quick Reference Guide Changing Raw Data Values Using Maintenance 1. From Main Menu, click Maintenance, Sample Values, Raw Data 2. Enter monitor.
JavaScript, Fourth Edition
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
© All rights reserved. U.S International Tech Support
Operating Systems Recitation 9, May 19-20, Iterative server Handle one connection request at a time. Connection requests stored in queue associated.
Chapter 8 Cookies And Security JavaScript, Third Edition.
Module 9: Preparing to Administer a Server. Overview Introduction to Administering a Server Configuring Remote Desktop to Administer a Server Managing.
Introduction to Java Programming with Forte Y. Daniel Liang.

An Introduction to Front-end Web Development Tom Perkins.
ASP.NET The Clock Project. The ASP.NET Clock Project The ASP.NET Clock Project is the topic of Chapter 23. By completing the clock project, you will learn.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
A Brief Documentation.  Provides basic information about connection, server, and client.
Guide to Linux Installation and Administration, 2e1 Chapter 11 Using Advanced Administration Techniques.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Bookstore Application: Middle Tier Introducing Code-Behind Files, Session State.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Introduction to Java Programming. 2 Chapter 1 Introduction to Java and Forte F What Is Java? F Getting Started With Java Programming –Create, Compile.
Debugging tools in Flash CIS 126. Debugging Flash provides several tools for testing ActionScript in your SWF files. –The Debugger, lets you find errors.
Institute for the Protection and Security of the Citizen HAZAS – Hazard Assessment ECCAIRS Technical Course Provided by the Joint Research Centre - Ispra.
JavaScript, Sixth Edition Chapter 11 Updating Web Pages with Ajax.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Introduction to ASP.NET, Second Edition2 Chapter Objectives.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Introduction to Java Programming, 4E Y. Daniel Liang.
ASP.NET Programming with C# and SQL Server First Edition
Module 9: Preparing to Administer a Server
Content: shared objects
Bomgar Remote support software
CIS16 Application Development Programming with Visual Basic
Configuration Of A Pull Network.
Module 9: Preparing to Administer a Server
Chengyu Sun California State University, Los Angeles
A Scripting Server for Domain Automation Tasks
C++ Final Presentation.
Presentation transcript:

AI and Game Programming Unreal Tournament Project

Introduction UT is a FPS The competition Domination mode Domination points Teams of 3 bots First team to 100 points wins

Getting Started Installation: UT standalone server GameBots ActiveTcl TclViz JBuilder Foundation Javabots JRE v1.5.0_05 Misc.

Running an Experiment 1. Start the server 2. Start the vis. tool 3. Start Javabot

Creating a Bot Copy your BotTemplate.java to the directory: C:/…/jbproject/javabot/src/edu/lu Change the file name to.java Start JBuilder Foundation Open the Javabot project (javabot.ipx) Select the package edu.lu If.java does not appear, refresh the project Edit the template Rebuild the project

UT Basics All units are absolute UT units – no bearing to real world units Bot’s collision cylinder: 39 units tall with a radius of 17 units Full rotation: Radians: (UT_Rotation_Amt / 65535) * 2π Locations and Orientations x,y,z pitch, yaw, roll up and down, side to side, cartwheel

Server Messages Format: MSG_TYP {ATTRIB_TYP ATTRIB_VAL} {…} Ex. DOM {Id 1} {Location 23,43,13} {Controller 1} Attribute values returned as strings 2 Types of Messages Synchronous Asynchronous

Server Messages cont. Synchronous Messages: Sent in batches at regular intervals First message is type BEG, last is type END Constitute one atomic game state Ex. Visual updates, bot status reports Asynchronous Messages: Single messages, generated as events occur Cannot arrive during sync. message block Ex. Took damage, picked up a weapon

Client Commands Use same format as server messages Commands have persistent effects Ex. Start shooting, keep shooting until a stop shooting command is sent

Programming 2 Tasks, 2 Threads Message handling FSM Message Handling – two functions receivedSyncMessage() receivedAsyncMessage() FSM – one function runner.run()

Programming cont. Multithreaded: One thread handles messages One thread handles the FSM (runner) May need to use semaphores (synchronized) to avoid race conditions and such protected Object stateLock = new Object(); someMethod() { … synchronized (stateLock) { // shared variable manipulation }

Programming cont. Handling messages: Message m; String type, value; type = m.getType(); switch(type) {…} value = m.getProperty(PROP_ID);

Programming cont. Most commands can be sent with existing function calls (ie. runTo(x,y,z) Manually sending commands: Properties props; props.setProperty(ATTRIB_TYP,ATTRIB_VAL); client.sendMessage(MSG_TYP, props);

Random helpful info. edu.isi.gamebots.client.GamebotConstants, contains definitions of all the constants for MSG_TYP, and ATTRIB_TYP Use log() to print to the Javabot text area Note: change enableLog to false before submitting your final bot (or manually delete all your log() calls)

Server Adminstration You can set server settings and monitor your server through a web browser. After starting the server open a browser and connect to: :8888/Administer Username: Admin Password: Admin

Random helpful info. Sync. message blocks contain DOM messages Contain the coordinates of a domination pt. Tells who controls the domination pt. Use getPath(x,y,z) to get directions to a DOM pt. IMPORTANT: must tell the javabot client about your bot! Open edu.isi.gamebots.client.BotRunnerApp Locate the knownBots data structure Add the full name of your bot to the array