Title: Programming Language Support for Collaborative Virtual Environments
1Programming Language Support for Collaborative
Virtual Environments
- Clint Jeffery
- University of Idaho
- jeffery_at_uidaho.edu
2Why study games?
- Fun!!
- Computer game industry is big
- Larger than the film industry
- Shortly to eclipse the music industry
- Games drive technological advances
- Games have many serious applications
- Simulation, film, education/training
- Both software problems (e.g. AI) and
engineering problems (e.g. cost, time)
3Game Technologies
- Game development is a specialized form of
software engineering - Lots of graphics, Lots of art
- A/I, Physics
- Networking
- Usually a simulation of some kind
- How to engineer fun?
- How to reduce the cost of development?
4What is a Virtual Environment?My definition for
purposes of this talk
- 3D, video game-like
- Multi-user, collaborative environment
- Persistent virtual world
- I am interested in building them
- For both games and serious purposes
5WoW
6What do we knowabout WoWs internals?
- Rumored to cost 60M to develop initially
- Uses Lua as its interface customization extension
scripting language - ?
- I suppose we could try to hack it, but I am not
willing to risk losing my level 58 undead
warrior - Could imitate their dev model, just need 60M and
more expertise than Ive got.
7Challenges
- Given 0, how do I
- Create a 3D world that is cool enough
- make or buy ? (make sounds hard)
- Collect lots of textures
- Build a detailed 3d model of my world
- With enough stuff to do to be interesting
- Stuff that is education-relevant
- Implies edu domain-specific tools
- What you can buy wont have these
8Research Avenueswhere you see state of art
substitute WoW
- Difficult to advance state of art in
- graphics
- networking
- Moderately easy to advance state of art in
- if you can even get in the game...
- AI gameplay
- Educational uses
- Necessary to advance state of art in
- Cost of coding
- Cost of art, modeling, content creation
9Hypothesis
- If I build the right language and tools, the cost
of developing custom MMOs will become tractable. - So far graphics and networking
- Future AI, physics, 3D modeling, art
10What does Language Support Really Mean?
- Functions, operators, keywords, and/or Control
Structures - syntax! ouch! Justifiable bug avoidance, e.g.
matrix stacks, named render sections - Simplifying OpenGL and sockets
- Built-in smart behavior, but flexible
- Generalizing things like input handling (select()
and non-blocking read()) - Deciding what to do in C, and what not
11Textures
- 2D image, to be drawn on a 3D surface
- Harder than I thought it would be
- Start with digital photos of everything
- each room needs 3-300 photos
- Tedious manual editing process!
- crop dimensions to power of 2
- remove irregularities
- scale them down to fit more in
- most textures need to be tileable
- may need GIMP or Photoshop
12Texture Example
133D Model
- If CAD/blueprint data is available, use it if
you can read/understand/convert it - Otherwise, start from floor plans
- Give (x,z) coordinates add your ys
- Decide on a coordinate system
- Where is 0,0,0? Feet or meters?
14Modview
15Scripting Example (SecondLife)
16User-defined Content
- SecondLife lets users create the world
- We are going to let users create the quests
- Quests will be dual-peer rated for (fun,xp) where
completers rate the fun, domain experts rate the
xp.
17CVE
- CS educational virtual environment
- Initial funding from NSF ATE program
- Lives at cve.sourceforge.net
- Runs on X11 and on Windows
- (OpenGL so far it stinks on Vista)
- SIMPLE 3d worlds, needs more tools
- Collaborative IDE
- Under construction
- Departments so far UI and NMSU CS
18(No Transcript)
19(No Transcript)
20(No Transcript)
21Static and Dynamic Model Data
- static properties of a door
- Door
- x 33
- y 0
- z 3.9
- height 2.3
- plane 3
- rooms SH 167, corridor 167
-
- dynamic state of a door
- link
- name link1
- openness 1.0
- delta 0
- direction 1
static properties of a room Room name SH 167 x
29.2 y 0 z 0.2 w 6 h 3.05 l 3.7 floor Rect
texture floor2.gif obstacles Box
window sill Rect coords 29.2,0,.22,29.2,1,
.22,
35.2,1,.22,35.2,0,.22
22Under Construction
- High-level object selection
- 3D model imports
- better avatars, more virtual objects
- NPCs and quests
- CS/library tutorial content
- a recruiting tool, will reach grades 4
- Collaborative debugger (pty API)
- Collaborative design (UML--) tool
- Augmented reality and virtuality
23S3D Files
- // version
- 103
- // nTextures,nTris,nVerts,nParts,nFrames,nLights,n
Cameras - 1,892,445,1,24,0,0
- // partList firstVert,numVerts,firstTri,numTris,"
name" - 0,445,0,892,"pCube1"
- // texture list name
- uvmap.tga
- // triList materialIndex,vertices(index, texX,
texY) - 0, 8,33.7125,75.1163, 42,32.1658,78.5249,
9,31.0493,70.0337 - 0, 30,93.7656,9.30429, 5,96.9879,15.1088,
2,94.4741,16.4074 - 0, 103,209.125,250.495, 106,211.483,238.497,
85,212.028,244.752 - 0, 30,93.7656,9.30429, 39,97.957,10.0346,
5,96.9879,15.1088
24New This Spring
- NASA MMO
- Planning stages K-12 edutainment recruiting
- Direct3D port
- maybe shaders, while we are at it
- Mac/Cocoa port
- duelling infinite loops
25I Need Help
- Want to build more of uidaho?
- Id love to work with you
- Want to help?
- projects for students and new friends
- standalone tools, or core system elements
- NPCs
- Both game and educational stuff to do
- Instructional activities (quests/skills),
experience points and peer ratings system