Adam Miles. Transport Tycoon Deluxe (TTD): Written by Chris Sawyer for Microprose in 1994. Written almost entirely in Assembly language. Designed for.

Slides:



Advertisements
Similar presentations
General Pathfinding: Tables and Navigation Jeremy Christman.
Advertisements

Adam Miles.  Transport Tycoon Deluxe (TTD):  Written by Chris Sawyer for Microprose in  Written almost entirely in Assembly language.  Designed.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Graphics Pipeline.
Soul Envoy Final Year Project 22nd April 2006 By Zhu Jinhao.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
CGS 1060 Introduction to MicroComputer Usage Chapter 1 Windows 7
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Prof. Bodik CS 164 Lecture 171 Register Allocation Lecture 19.
Status – Week 231 Victor Moya. Summary Primitive Assembly Primitive Assembly Clipping triangle rejection. Clipping triangle rejection. Rasterization.
Register Allocation (via graph coloring)
Register Allocation (via graph coloring). Lecture Outline Memory Hierarchy Management Register Allocation –Register interference graph –Graph coloring.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Chapter 10 Creating 3D Objects. Objectives Extrude objects Revolve objects Manipulate surface shading and lighting Map artwork to 3D objects Work with.
Sprite Batching and Texture Atlases Randy Gaul. Overview Batches Sending data to GPU Texture atlases Premultiplied alpha Note: Discussion on slides is.
Perspective, Scene Design, and Basic Animation
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Week 1 - Friday.  What did we talk about last time?  C#  SharpDX.
Getting started © juhanita2015.
Modeling and Animation with 3DS MAX R 3.1 Graphics Lab. Korea Univ. Reference URL :
Welcome to DEP’s GIS Workshop Series Workshop 6 Using the ArcMap Pictometry Extension 1.
CIS 205—Web Design & Development Flash Chapter 1 Getting Started with Adobe Flash CS3.
CSE 381 – Advanced Game Programming Basic 3D Graphics
4.7. I NSTANCING Introduction to geometry instancing.
3D Objects Subject:T0934 / Multimedia Programming Foundation Session:12 Tahun:2009 Versi:1/0.
Jonathan M Chye Technical Supervisor : Mr Matthew Bett 2010.
TERRAIN SET09115 Intro to Graphics Programming. Breakdown  Basics  What do we mean by terrain?  How terrain rendering works  Generating terrain 
Sketchup Tutorial Designing for Construction. The Parts of a Wall.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Creating a Logo – Lesson 3 1 Creating a Logo Lesson 3.
Representing and Using Graphs
> 1 Diagrams in Word Faculty of Health Alan Grace.
Review IMGD Engine Architecture Types Broadly, what are the two architecture types discussed for game engines? What are the differences?
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Z-Town Technical Details Ben Trivett, Drew Switzer, Cameron Jett, Ryan Southard Department of Computer Science and Engineering The Ohio State University.
Computer Graphics Using Direct 3D Introduction. 2 What are we doing here? Simply, learning how to make the computer draw.
Computer Graphics Bitmaps & Sprites CO2409 Computer Graphics Week 3.
Resizing Images CS 268. Where to start? Pictures (of course)  Need to down size them for the web.  Pictures taken with a 10 mega pixel camera are usually.
2 COEN Computer Graphics I Evening’s Goals n Discuss application bottleneck determination n Discuss various optimizations for making programs execute.
Hierarchical Penumbra Casting Samuli Laine Timo Aila Helsinki University of Technology Hybrid Graphics, Ltd.
Random Map Generation and Transport Unit AI for Strategy Games By Russell Kuchar.
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
Sky Boxes and Vector Math 2 Course Information CVG: Programming 4 My Name: Mark Walsh Website:
Basic Perspective Projection Watt Section 5.2, some typos Define a focal distance, d, and shift the origin to be at that distance (note d is negative)
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
Ray Tracing using Programmable Graphics Hardware
Edison Gao 主讲人:高原. GameFinal A Next-Gen 3D Game Engine Edison Gao.
9-2 Reflections Objective: To find reflection images of figures.
© 2011 Delmar, Cengage Learning Chapter 10 Creating 3D Objects.
Awesome Jungle Group Three: Antti Knutas Li Aoke Jifeng Xing.
Graphics, Modeling, and Textures Computer Game Design and Development.
Chapter 6 Introduction to Hexa – Workshop 1 2D Pipe Junction
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Scene Manager Creates and places movable objects like lights and cameras so as to access them efficiently, e.g. for rendering. Loads and assembles world.
3B Reflections 9-2 in textbook
Ogre Overview.
Perspective, Scene Design, and Basic Animation
Selection, cropping, Rotation & layers.
Software Rasterization
CSE 381 – Advanced Game Programming Terrain
Mike Burnham CS 470 Final Presentation
Decision Maths Dijkstra’s Algorithm.
UMBC Graphics for Games
Tank Game Part 6 of 6.
Introduction to geometry instancing
Lecture 13 Clipping & Scan Conversion
Backtracking and Branch-and-Bound
Computer Graphics Introduction to Shaders
Presentation transcript:

Adam Miles

Transport Tycoon Deluxe (TTD): Written by Chris Sawyer for Microprose in Written almost entirely in Assembly language. Designed for MSDOS, sprites, 8bit graphics, MIDI. Earn money by transporting passengers and cargo. Build road/rail networks, planes and ships. Compete against up to 7 AI players. World size fixed to 256 x 256 tiles.

2D Clone of Transport Tycoon Deluxe. OpenTTD: Disassembled TTD, rewritten in C. Uses original graphics files, legality in question. Significant feature enhancements: World size increased up to 2048 x … an AI that is actually worthy of its name LAN and Internet multiplayer. Customisable graphics.

3D Clone of Transport Tycoon Deluxe. TT3D: Completely rewritten from scratch. Fully 3D game world. Written in C# and Managed DirectX 9.0c. Larger map sizes – 512 x 512. Industries and Road Network.

Managed DirectX 9.0c – C# Terrain Tilemap Any size - non powers of 2 width/length if desired. Chunked – draws only the terrain in your locality. Texturing and Highlighting. Landscaping – per vertex height variation. Pickable: Tile Vertex Side of a tile

Textured Meshes Positionable Rotatable Scalable Instanced…

What does Hardware Instancing do? Draws many copies of identical objects – 1 draw call Why use instancing? Small Batch problem in DirectX 9. Every draw call goes via the CPU. Lots of draw calls maxes out CPU – low frame rate. A single draw call for all identical objects is the solution. Memory savings when compared to Shader Instancing. How does it work? Multiple streams of data when rendering. Stream 0 = Mesh Data (Vertices). Stream 1 = Position Data (Vector4 – x, y, z. w is unused). Stream 2 = Rotation Data (Vector4 – x, y, z. w is unused).

World Chunking Frustum Culling Hardware Instancing

What is implemented in TT3D? Road/Tunnel Construction Depot/Station Construction Vehicle Construction Maintenance costs Pathfinding Landscaping Industries Cargo Delivery Earn Money GUI – Fully fledged Window and Control system.

Grid-based system Half / Full Straight Road Corner T-Junction Crossroads 3D Bi-directional Graph Nodes are located on corners and junctions. Vehicles given a path to follow: Node -> Node. Kept in its most optimal state. Allows for one-way streets.

A* Pathfinding Provides shortest-path capability on the graph. How does it work? Uses a cost + best-case heuristic. List of potential routes, explore the best looking. When best-case for Route A becomes worse than Route B, explore Route B. Repeat until such a time that: Destination is found. All potential routes have been explored, no path at all. In-game demonstration/explanation later…

Grid-based system Rules: No vertex may be > 1 unit above/below a neighbour. No vertex may descend below zero. Edge of the map must remain at zero. Algorithm was recursive… Large pyramids resulted in stack overflow… Redesigned without recursion. Can still get slow on very large pyramids. Once again, demonstration/explanation later…

Grid-based system

Windows Z-Order Dragging Focus Resizing Visibility Hierarchy Controls Label Button Textbox Radio button Checkbox List box View Window Scrollbar Title Bar TT3D implements:

Provides functionality to view and render a window on another part of the world. Used on vehicle windows to follow them around the world. How does it work? Create a second camera. Render the world to a texture using the new camera. Draw the texture to the screen Present the final image.

Terrain Performance Rewritten from scratch ~ 5 times. 1 draw call per tile… 1 draw call for the entire terrain. Beginning to near theoretical limit of the GPU. Road Network Maintaining the graph optimally. 3 dimensions: Tunnels/Bridges.

List is almost endless… Railways, Ships, Aircraft Towns Terrain generation Save Games Multiplayer – LAN / Internet AI / Computer players Lighting Artwork Etc…