180 likes | 289 Views
Master Lab Course Web Applications : Exercise 4 – Final Presentation. Team 4 Markus Fensterer Kamil Neczaj Peter Retzer Michael Schätzlein 25.02.2013. Idea – AR Wars. Massive multiplayer browser game taking place in the real world Based on Google Maps and Google Places API
E N D
Master Lab Course Web Applications:Exercise4 – Final Presentation Team 4 Markus Fensterer Kamil Neczaj Peter Retzer Michael Schätzlein 25.02.2013
Idea – ARWars • Massive multiplayer browser gametakingplacein thereal world • Based on Google Mapsand Google Places API • OptimizedforDesktop-PCsandSmartphones/Tablets Features • Creationof an augmentedrealityoverlay • Players havetomeetat real lifeplacestoprogress in thegame Master Lab Course Web Applications
Rules • Two factionsstruggleforsupremacy • Players assembleintoteams • Players captureplacesavailablefromGoogle Places • Captured placesyieldresources • Resources canbeusedtobuildunitsorarenecessarytocapturespecialplaces • Units aidin capturingordefendingplaces Master Lab Course Web Applications
Business Model • Advertisments • Sellingdecorativeobjects • Selling organisational services Competitors • Traditional browsergames Ogame, Droidwars • Persistent mobile multiplayergames Mobile Mafia • Location-basednetworks Foursquare, Google Latitude • IngressbyNiantic Labs (closedbeta) Master Lab Course Web Applications
Technology Stack 1/3 GeolocationAPI Guice WebSocket morphia Master Lab Course Web Applications
Technology Stack 2/3 • mongoDB: High performance noSQL-database • morphia: MappingJava objects to/from MongoDB • WebSocket: Bi-directional communication for the web • akka: Event-driven concurrency framework • Guice: Dependency injection framework • Google Maps/Places API: Map and location data Master Lab Course Web Applications
Technology Stack 3/3 • jQueryUI: JavaScript user interface library • Pines Notify: JavaScript notifications for Bootstrap • Geolocation API: Retrieve position from the browser • Bootstrap: Powerful front-end framework • CoffeeScript: Language that compiles into JavaScript Master Lab Course Web Applications
Architecture • Services: Encapsulate business logic • DAOs: Abstract from the database • Views: User interface templates • Models: Represent entities • Controller: Connect business logic, data storage and representation • Actors: Carry out concurrent and asynchronous actions View Model Controller DAO Service Actor Master Lab Course Web Applications
Architecture example: Conquering • index: Viewforthemaininterface • ConquerController: Delegatescallsfromthe UI totheservices • NotificationService: Sends notificationstoplayers • AuthenticationService: Retrievestheplayercurrentlylogged in • ConqueringService: Managesconqueringattempts, calculatesresult • PlayerDAO: Responsibleforretrievingplayer-objectsfromthe DB index ConquerController NotificationService AuthenticationService ConqueringService PlayerDAO Master Lab Course Web Applications
Screenshot Desktop Master Lab Course Web Applications
Screenshot Mobile Master Lab Course Web Applications
Demo Master Lab Course Web Applications
Conquering Places • Initiateconqueringattempt • Letteammembersjoin • Check requirements • numberofparticipantscurrentlynearbytheplace (150m) • sufficientresources: evenlysplitacrosstheparticipants • Informtheinitiator • Conductthebattle: resultis not knownupfront • failurechanceof a unit: btw. 5 and 10 percent • strengthisuniformlydistributedbtw. minStrengthandmaxStrength • Informparticipantsofresult Master Lab Course Web Applications
Deploying Units • Player can deploy units to his conquered places to defendthem • Deploy menu can be invoked • from sidebar (where the conquered places of the player are listed) or • directly from the place popup window on the map Master Lab Course Web Applications
Building Units • Players can use their resources to build units • Total amount of units is limited by the food resource • Units live until they fail at a conquering attempt Master Lab Course Web Applications
Team management Team master • Permissions • Whobecomes a team master Actions • Invitingplayers to the team • Invitingstragers • Deletingplayers • Changing team name and avatar Master Lab Course Web Applications
Acceptance of an invitation – schema Team master invitessomeone Aregistred player alreadybelonging to a team Aregistred player before first loggingin Not registered person by email Invitationissent to theplayer’s emailaddress Invitationissent to thegiven emailaddress The person clicks on theconfirmation link inthe email to proceed Redirection to thelog-inpageif not loggedin Redirection to theregistrationpage Iffaction and/or city differsthe player isasked to pay for thechange If log inbeforeclicking, theconfirmation link theinvitationcan be acceptedfrom first logging dialog The player joinsthenew team Master Lab Course Web Applications
Theend Master Lab Course Web Applications