Programming Language Support for Collaborative Virtual EnvironmentsWhy study games?Game TechnologiesWhat is a Virtual Environment? My definition for purposes of this talkWoWWhat do we know about WoW’s internals?ChallengesResearch Avenues where you see ‘state of art’ substitute ‘WoW’HypothesisWhat does “Language Support” Really Mean?TexturesTexture Example3D ModelModviewScripting Example (SecondLife)User-defined ContentCVESlide 18Slide 19Slide 20Static and Dynamic Model DataUnder ConstructionS3D FilesNew This SpringI Need HelpProgramming Language Support for Collaborative Virtual EnvironmentsProgramming Language Support for Collaborative Virtual EnvironmentsClint JefferyUniversity of [email protected] JefferyUniversity of [email protected] study games?Why study games?Fun!!Computer game industry is bigLarger than the film industryShortly to eclipse the music industryGames drive technological advancesGames have many “serious” applicationsSimulation, film, education/trainingBoth “software problems” (e.g. AI) and “engineering problems” (e.g. cost, time)Fun!!Computer game industry is bigLarger than the film industryShortly to eclipse the music industryGames drive technological advancesGames have many “serious” applicationsSimulation, film, education/trainingBoth “software problems” (e.g. AI) and “engineering problems” (e.g. cost, time)Game TechnologiesGame TechnologiesGame development is a specialized form of software engineeringLots of graphics, Lots++ of artA/I, PhysicsNetworkingUsually a simulation of some kindHow to engineer “fun”?How to reduce the cost of development?Game development is a specialized form of software engineeringLots of graphics, Lots++ of artA/I, PhysicsNetworkingUsually a simulation of some kindHow to engineer “fun”?How to reduce the cost of development?What is a Virtual Environment?My definition for purposes of this talkWhat is a Virtual Environment?My definition for purposes of this talk3D, video game-likeMulti-user, collaborative environmentPersistent “virtual world”I am interested in building them…For both games and serious purposes3D, video game-likeMulti-user, collaborative environmentPersistent “virtual world”I am interested in building them…For both games and serious purposesWoWWoWWhat do we knowabout WoW’s internals?What do we knowabout WoW’s internals?Rumored to cost $60M to develop initiallyUses 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 initiallyUses 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.ChallengesChallengesGiven $0, how do I…Create a 3D world that is cool enough“make or buy” ? (“make” sounds hard)Collect lots of texturesBuild a detailed 3d model of my worldWith enough stuff to do to be interestingStuff that is education-relevantImplies edu domain-specific toolsWhat you can “buy” won’t have theseGiven $0, how do I…Create a 3D world that is cool enough“make or buy” ? (“make” sounds hard)Collect lots of texturesBuild a detailed 3d model of my worldWith enough stuff to do to be interestingStuff that is education-relevantImplies edu domain-specific toolsWhat you can “buy” won’t have theseResearch Avenueswhere you see ‘state of art’ substitute ‘WoW’Research Avenueswhere you see ‘state of art’ substitute ‘WoW’Difficult to advance state of art in:graphicsnetworkingModerately easy to advance state of art in:if you can even get in the game...AI & gameplayEducational usesNeces sary to advance state of art in:Cost of codingCost of art, modeling, content creationDifficult to advance state of art in:graphicsnetworkingModerately easy to advance state of art in:if you can even get in the game...AI & gameplayEducational usesNecess ary to advance state of art in:Cost of codingCost of art, modeling, content creationHypothesisHypothesisIf I build the right language and tools, the cost of developing custom MMOs will become tractable.So far: graphics and networkingFuture: 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 networkingFuture: AI, physics, 3D modeling, art…What does “Language Support” Really Mean?What does “Language Support” Really Mean?Functions, operators, keywords, and/or Control Structuressyntax! ouch! Justifiable bug avoidance, e.g. matrix stacks, named render sections…Simplifying OpenGL and socketsBuilt-in smart behavior, but flexibleGeneralizing things like input handling (select() and non-blocking read())Deciding what to do in C, and what notFunctions, operators, keywords, and/or Control Structuressyntax! ouch! Justifiable bug avoidance, e.g. matrix stacks, named render sections…Simplifying OpenGL and socketsBuilt-in smart behavior, but flexibleGeneralizing things like input handling (select() and non-blocking read())Deciding what to do in C, and what notTexturesTextures2D image, to be drawn on a 3D surfaceHarder than I thought it would beStart with digital photos of everything…each room needs 3-300 photosTedious manual editing process!crop dimensions to power of 2remove irregularitiesscale them down to fit more inmost textures need to be tileablemay need GIMP or Photoshop2D image, to be drawn on a 3D surfaceHarder than I thought it would beStart with digital photos of everything…each room needs 3-300 photosTedious manual editing process!crop dimensions to power of 2remove irregularitiesscale them down to fit more inmost textures need to be tileablemay need GIMP or PhotoshopTexture ExampleTexture Example3D Model3D ModelIf CAD/blueprint data is available, use it… if you can
View Full Document