High Level Development

  • Uploaded by: gururajallurkar
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View High Level Development as PDF for free.

More details

  • Words: 1,881
  • Pages: 47
High-Level Game Development for PlayStation2

Hemal Bodasing (SCEE)

©2001 Sony Computer Entertainment Europe

Confidential Information of Sony Computer Entertainment Europe 1

Overview • Problems with starting PS2 development • Overview of high-level library (HiG) + demos • HiG Art production pipeline • HiG Usability issues • Game demo • Further work

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 2

Introduction • Will NOT talk about: – Algorithms used for specific effects – PS2 hardware architecture details – Low-level PS2 optimisation techniques

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 3

Problems with starting PS2 development

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 4

Problems with starting PS2 development • I found it ****** hard! • No exporters or engine available as part of the standard libs (or so I thought) • Lack of a standard graphics file format • Forces you to optimise from the start of the development cycle (eg VU coding) • Sample Code vs Game Code

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 5

HiG (High-level Graphics Hi Library) Overview

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 6

HiG (High-level Graphics Hi Library) Overview • Developed by SCEI (Japan) • Open-source (to PS2 developers) • Target users: – Beginner-level PS2 users

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 7

HiG (High-level Graphics Library): Goals HiG aims are: • Usability • Efficiency • Extensibility

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 8

HiG (High-level Graphics Library): Goals • Usability: – Abstraction – Reduce effort

• Efficiency – VU1-based

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 9

HiG (High-level Graphics Library): Goals • Extensibility – Data format – Plugin architecture

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 10

Relationship with Middleware • • • • •

“Free” to all PS2 developers PS2-specific Less comprehensive than middleware HiG is currently purely a rendering solution HiG architecture designed to allow middleware companies to develop plugins • No dedicated support channel

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 11

High-level Functionality

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 12

High-level Functionality Fundamental operations: • Loads mesh, texture and animation data • Performs transformation (rotation, translation and perspective correction) and rendering • Handles hierarchical meshes and keyframe animation

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 13

High-level Functionality Advanced operations: • Reflection • Refraction • Shadow-mapping • Fish-eye lens rendering • Clut-based bump-mapping

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 14

HiG Demos • Shadow mapping • Reflection mapping • Real-time environment mapping

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 15

Plugin System • A plugin system is used to implement most of HiG’s functionality • HiG allows you to create your own plugins • Plugins can be used in combination, eg for multipass effects

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 16

Plugin System • Fundamental: – shape (vertex + face data), microcode, texture, hierarchy, animation

• Advanced: – reflection, refraction, shadow-mapping, fish-eye lens rendering, clut-based bump-mapping

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 17

Low-level Functionality • HiG ”Service” functions can be used to create your own plugins • Service functionality covers: – Data format – Memory management – DMA – GS (Graphics Synthesiser)

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 18

Art Pipeline • Exporters • File formats • Art Production Process

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 19

Art Pipeline - Exporters • Exporters are available for 3DS Max, Maya and Lightwave • Export to “ES” format

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 20

Art Pipeline - File formats • All HiG file formats contain the following information: – Mesh data – Hierarchy data – Animation data – Texture data – Texture context data

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 21

Art Pipeline - File formats • HiG File formats (all contain equivalent information): – .es – .s – .bin

©2001 Sony Computer Entertainment Europe

: Readable ASCII : Less readable ASCII ASM pre-processor : Binary - used in-game

High-Level Game Development for PlayStation2 22

Art Pipeline: Production Process • Export from art package in .ES format • If reqd, edit .es file to customise for specific features, eg shadow mapping. (Additional tools can be created to perform this) • Use provided converter (esConv) to convert from .es to .bin file • If problems exist with .bin file, .s file can be generated and inspected

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 23

HiG VCL Macro-Library

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 24

•HiG VCL Macro-Library • What is VCL? • What is the HiG macro-library? • Macro-library functionality • Macro-library implementation

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 25

What is VCL? • Text pre-processor for VU (Vector Unit) micro code. – Note: Vector Units are are vector processors that perform high-speed floating-point operations such as vertex transformations – VU coding requires dual-pipeline assembler

• VCL takes a single stream of instructions • Produces optimised vu code. • Basic support for macros and structs

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 26

VCL Macro-Library • Functionality: – Gives VU implementations of basic and advanced techniques (eg reflection / refraction mapping, real-time shadow mapping and fish-eye lens rendering)

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 27

VCL Macro-Library • Implementation: – Macros used for individual units of functionality, eg transformation, lighting, backface culling – Each macro is about 10-20 lines long which makes for easy readability – Number of microprograms available which use the macros as building blocks – Excellent example of how VU code can be developed in a modular fashion – Useful for non-HiG developers to look at

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 28

Game Demo

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 29

Game Demo • • • • •

Objectives Design & Implementation HiG Usability issues Techniques used Stats and performance

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 30

Game Demo - Objectives • To investigate the usability of HiG within a game architecture • To produce a simple game demonstrating HiG’s functionality • If I can write this anyone can!

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 31

Game Demo - Design & Implementation • Use of C++ for: – Modularity, re-usability, maintainability, etc – Map HiG functionality to game entities

• Fundamental classes for meshes, cameras, etc • Instruction cache thrashing issue

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 32

HiG Usability - Problems Encountered • Data generation (Art pipeline) – Much time spent resolving MAX exporter problems – Conversion to and from intermediate formats

• Documentation – – – – –

Lack of English docs initially! Consists mainly of a lib reference Lack of “How to...” docs Other sources of documentation are scattered Have created a HiG overview doc which hopefully will address these issues

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 33

HiG Usability • Using HiG in a game architecture – HiG works by building DMA chains – Doesn't map easily to game objects / entities – Mesh instancing

• Combining different functionality, eg reflections with shadow mapping

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 34

Game Demo - Techniques • Problem with “true” reflection-mapping: – Area of the world seen in reflection is dependent upon the orientation of the reflecting object – Often this is the “uninteresting” area of the world!

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 35

Game Demo - Techniques “Game reflection" effect: – Real-time reflection map used with refraction microcode – ”Interesting" area of the world can always be seen as a reflection, regardless of the orientation of the reflecting object – Although the resulting effect is inaccurate, it works well in a game environment – Small refraction index used to give discontinuity at edges – Large missiles used for off-screen render!

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 36

ToDo: Game Demo Techniques • Static texture used for reflection effect on player ship • Simple ship physics – Interpolation used to give smooth motion

• Skydome – Large hemisphere fixed relative to the camera

• Gameplay designed to show off effects – Shadow mapping: ship pitching and rolling – Reflection mapping: Large enemy character

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 37

Game Demo - Stats Mesh Player ship Enemy ship Landscape Skydome Missile

Num Triangles 1163 368 8015 640 66

Texture 256x256 32 bit 256x256 32 bit 256x256 32 bit 256x256 32 bit Untextured

• Note: All models are triangle-stripped

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 38

HiG Microcode Performance Micro name Shading type vu1basicVo vertex color vu1basicClip vertex color vu1cullVo vertex color vu1fisheye vertex color vu1reflectR vu1refractR -

©2001 Sony Computer Entertainment Europe

Back-face culling N

Volume clip N

Light type Vertices/sec directional

15,668,800

N

Y

directional

12,379,976

Y

Y

directional

10,188,080

Y

Y

directional

8,204,112

N N

Y Y

-

7,057,624 7,057,624

High-Level Game Development for PlayStation2 39

Performance - PA Scan

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 40

Performance - PA Scan CPU cycles Data Cache miss DMA Transfer VU activity (micromode)

GS Idle

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 41

Performance • PA scans: – DMA bound – Sends all the data which may be reqd XYZ, normal, ST, colour – Some data may be redundant, eg ST's not reqd for reflection / refraction mapping – Data is uncompressed – I-cache trashing

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 42

Performance • Tip: – HiG clears DMA buffer every time a chain is sent – Fixed cost per frame – => Keep DMA buffer small (buffer size specified in sceHiDMAInit) – Game demo uses 0.5K

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 43

Further Work - Optimisation • Application-level: – Use low level-of-detail meshes for off-screen render – Reduce texture sizes – Double buffering DMA chains

• Library-level: – VIF compression of mesh data – Currently DMA’s 4 quadwords per vertex

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 44

Further Work - Functionality • • • •

Hierarchical animation Scene culling Multiple shadows Bump mapping (clut-based)

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 45

Summary - 1 • VCL-macro library worthwhile examining • Demo and doc on PS2 website soon • Where to start: sce\ee\sample\graphics\hig

©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 46

Summary - 2 • Game demo achieved in a few months • Most of the problems I encountered have now been resolved • By re-using code and tools, completely different demo using same techniques could be achieved in a few days => High-level libs do exist and are usable! ©2001 Sony Computer Entertainment Europe

High-Level Game Development for PlayStation2 47

Related Documents

High Level Development
November 2019 9
High Level Lang
November 2019 11
High Level 3 Answer
July 2020 8
High Level Architecture
November 2019 13
High Level Rating
April 2020 4

More Documents from ""

High Level Development
November 2019 9
Introduction Tops 2
November 2019 8