programming language support for collaborative virtual environments clint jeffery university of...
TRANSCRIPT
![Page 1: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/1.jpg)
Programming Language Support for Collaborative
Virtual Environments
Programming Language Support for Collaborative
Virtual EnvironmentsClint Jeffery
University of Idaho
Clint Jeffery
University of Idaho
![Page 2: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/2.jpg)
Why study games?Why 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)
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)
![Page 3: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/3.jpg)
Game TechnologiesGame 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?
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?
![Page 4: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/4.jpg)
What is a Virtual Environment?My definition for purposes of this talk
What 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
3D, video game-like Multi-user, collaborative environment Persistent “virtual world” I am interested in building them…
For both games and serious purposes
![Page 5: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/5.jpg)
WoWWoW
![Page 6: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/6.jpg)
What do we knowabout WoW’s internals?
What do we knowabout WoW’s 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 I’ve got.
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 I’ve got.
![Page 7: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/7.jpg)
ChallengesChallenges
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” won’t have these
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” won’t have these
![Page 8: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/8.jpg)
Research Avenueswhere you see ‘state of art’ substitute ‘WoW’
Research 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
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
![Page 9: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/9.jpg)
HypothesisHypothesis
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…
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…
![Page 10: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/10.jpg)
What does “Language Support” Really Mean?
What 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
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
![Page 11: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/11.jpg)
TexturesTextures
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
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
![Page 12: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/12.jpg)
Texture ExampleTexture Example
![Page 13: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/13.jpg)
3D Model3D 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 y’s
Decide on a coordinate system Where is 0,0,0? Feet or meters?
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 y’s
Decide on a coordinate system Where is 0,0,0? Feet or meters?
![Page 14: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/14.jpg)
ModviewModview
![Page 15: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/15.jpg)
Scripting Example (SecondLife)Scripting Example (SecondLife)
![Page 16: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/16.jpg)
User-defined ContentUser-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.
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.
![Page 17: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/17.jpg)
CVECVE
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
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
![Page 18: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/18.jpg)
![Page 19: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/19.jpg)
![Page 20: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/20.jpg)
![Page 21: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/21.jpg)
Static and Dynamic Model DataStatic and Dynamic Model Data
# static properties of a doorDoor {x 33y 0z 3.9height 2.3plane 3rooms [SH 167, corridor 167]}
#dynamic state of a doorlink {name link1openness 1.0delta 0direction 1}
#static properties of a roomRoom {name SH 167x 29.2y 0z 0.2w 6h 3.05l 3.7floor 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]} }]}
![Page 22: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/22.jpg)
Under ConstructionUnder 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
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
![Page 23: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/23.jpg)
S3D FilesS3D Files
// version
103
// nTextures,nTris,nVerts,nParts,nFrames,nLights,nCameras
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
// version
103
// nTextures,nTris,nVerts,nParts,nFrames,nLights,nCameras
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
![Page 24: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/24.jpg)
New This SpringNew 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
NASA MMO Planning stages: K-12 edutainment &
recruiting Direct3D port
maybe shaders, while we are at it Mac/Cocoa port
duelling infinite loops
![Page 25: Programming Language Support for Collaborative Virtual Environments Clint Jeffery University of Idaho jeffery@uidaho.edu Clint Jeffery University of Idaho](https://reader036.vdocument.in/reader036/viewer/2022081515/56649f115503460f94c23ba4/html5/thumbnails/25.jpg)
I Need HelpI Need Help
Want to build more of uidaho? I’d 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
Want to build more of uidaho? I’d 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