Project Combat Casper Bommelé Marc Eekhout Michel van der Hut

Slides:



Advertisements
Verwante presentaties
Gerund = WW. gebruikt als zelfstandig Nw.
Advertisements

Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
BizTalk by Design Steef-Jan Wiggers.
Atos, Atos and fish symbol, Atos Origin and fish symbol, Atos Consulting, and the fish itself are registered trademarks of Atos Origin SA. August 2006.
CO2, 1 april CO2, April 1 CO2 uitstoot door; CO2 emissions;
Inleiding: hoe media worden Rick Dolphijn. Paranoimia…
>>0 >>1 >> 2 >> 3 >> 4 >> Adobe Premiere CS4 – Edius 5.5 – Adobe Elements 7.
Update en evolutie in het ICT-infrastructuur dienstenaanbod van Cevi
Digitale tools: SlideShare
Windows app-ontwikkeling Jan Hummelman i&i Conferentie 2012.
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Thursday, July 10, 2014 Presenter’s Name MSP Procurement tool of partnership?
QAD Reporting & Analytics
Programmeren in Java met BlueJ
Cloud Computing woensdag 20 november Wat is Cloud Computing ? Cloud Computing.
GUI Router en Switch Afstudeerproject Maarten Diels & Geypens Björn.
Lucene/SOLR 1: inleiding + indexering
Door G. Blezer CPS Color Business Intelligence IT voor BI Business intelligence Pyramid Ondersteuning IT bij BI stadiums Decision Support Systems Model-driven.
Gezondheidszorg Microsoft Dynamics Harco van Polen
OOP met Java Sessie 1.
Business Productivity Online Suite
Biml en Data Vault.
Internet altijd en overal: de GigaPort GPRS-pilot Klaas Wierenga Innovatie Manager 10 oktober 2000.
Presentatie IA Solutions 2005: Programma generatie voor: PLC en SCADA Een update van deze PPT is te downloaden op: Rob Kits - Technisch.
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
Rob Elsinga Business Group Lead Information Worker Microsoft Nederland Samenwerken op Afstand.
Social Technology How to get the end-user involved Carl Bik Capgemini Nederland bv.
Blackboard + Weblog Ik gebruik ik een weblog naast Blackboard. –Waarom ? –Hoe ? –Wat levert het op [=meerwaarde] ?
ThinkQuest Projects Leerkrachten uitnodigen om een project te delen.
Light models Waarom? Mockup Independent Mark up Analyse geometrie samenstellingen >100+ Downstream gebruik Exact/gefacetteerd.
Specialismen Analyse en verificatie van protocollen Analyse van Petri-netten Component-specificatie Web-based information systems (Query)talen voor Web.
Integratie Software Systemen Alonso, Casati, Kunu & Machiraju Web Services - Concepts, Architectures and Applications Hoofdstuk 5 – Webservices Danny Romme.
Synchronization and propagation in a network of electrically coupled cells =====
Beheer van Exchange Steven van Houttum
ISV Royalty License Agreement
© 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied,
Microsoft Partner Programma & Applicatie testen
WinFX Overview Martin Tirion Senior Consultant Microsoft Services.
Client Management met ConfigMgr Jannes Alink – Management.
Applicatieplatform congres 12 & 13 maart
CEBP Danny Burlage.
3.6 Architecture of HIS. 3.7 Integrity & Integration within HIS Suraja Padarath /10/2007.
GaPhAn Projectleden: Peter Frank Jos Mario Projectleden: Peter Frank Jos Mario.
Hovercraft Universe Groep 6: Dirk D., Kristof O., Nick D., Olivier B., Pieter-Jan P, Tobias V.B.
Methods of Development. Never Google Shitpipe * with safe-search off.
Methods of Development. Workspace Data folder versus.
Linux Workshop 3 Systeem configuratie. Na de installatie  Netwerkinstellingen controleren (ook proxy!)  Systeem software updaten  Hardware drivers.
JProject02 Bert Jacobs Ignace Van Tricht 4 juni 2009.
Automation SolutionsMFG/Pro Dutch usergroup 8 februari 2007 ISA S88 & S95 Het gebruik van deze normen in de productie.
Visual Basic.Net - Overzicht
Pieter Rotteveel, Manager of Studies. Vision >18+ multi-disciplinary students >Working intensively in teams >Across traditional HBO/WO competences >With.
Microsoft’s Enterprise Project Management 2007 “The Next Generation” Johan Apperloo Olaf van KImmenaede.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Deltion College Engels C1 Schrijven [Edu/002] thema: CV and letter of application can-do : kan complexe zakelijke teksten schrijven © Anne Beeker Alle.
Deltion College Engels C1 Luisteren [Edu/001] thema: It’s on tv can-do : kan zonder al te veel inspanning tv-programma’s begrijpen.
Writing exercise This one goes into your language portfolio!!! You have until the end of the week to hand it in… (So you have a little longer than it says.
TechNet & MSDN 2002 Problemen van vandaag oplossen en vooruitkijken!
Web Applicaties Bouwen met Visual Studio .NET
Windows 2000 Update & Windows.NET Server Family Preview Arthur de Meij Solution Specialist Business Infrastructure Enterprise & Partner Group Microsoft.
All right 1thv unit 7 gr 2.1 en 2.2.
Nu maken en controleren, Alles inleveren
1 De ontdekking van Web 2.0 Presentatie Team Ordina type hier de datum 19 april 2007.
Ted Nelson (1937- ) A file structure for the Complex, the changing, and the Interdeterminate.
EML en IMS Learning Design
Benjamin Boerebach, Esther Helmich NVMO workshop 12 juni 2014.
Major/minor Kwantitatieve methoden (HIR) Predoctoraal traject (HIR) Minor Business Research (TEW/MBE) maart 2014.
Dick Dijkstra Azure Technical Specialist Microsoft
EQUA Moeten we requirements serieus nemen?. Traditioneel Iteratief Agile Open Source Frank Peeters Petra Heck
Continuous Integration and Continuous Deployment
– Software development fundamentals
Transcript van de presentatie:

Project Combat Casper Bommelé Marc Eekhout Michel van der Hut Thom Bogers Kaj Toet Sjors Ammerlaan Welkom bij deze presentatie van Project Combat, waarbij wij ons werk aan de combat simulation system gaan tonen. De presentatie zal ongeveer een half uur duren, en vragen kunnen gesteld worden zodra ik dat aangeef. Duur: 30 minuten

How it all Began Hoofdstuk 1 Eerst een korte recap, voor diegene die er vorige keer niet bij waren, of het inmiddels alweer vergeten zijn. How it all Began

Combat Management System In Den Helder (zuid) gebruiken ze dit interface om wapensystemen mee af te vuren en te controleren op vijandige boten How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Wensen en eisen van de klant Grafisch indrukwekkende client Eisen en wensen synchroon met Alkmaar Server communicatie met verschillende clients Randvoorwaarden voor schieten en beschoten worden Dit zijn de wensen, zoals ik die vorige keer gepresenteerd heb. Een grafisch indrukwekkende client, die aan dezelfde eisen en wensen voldoet als de simulaties die ze in Alkmaar bouwen. Bovendien met een server gebouwd worden die met alle, dus ook alkmaars, clients moet kunnen communiceren. Visa verca moest ook iedere client met iedere server communiceren. Ook waren er wat randvoorwaarden, wanneer wel en wanneer niet geschoten wordt, etc. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

De game engine Microsoft XNA Framework jMonkey Engine Epic Games Unreal Development Kit 3 Als laatst liet ik destijds een demonstratie zien van verschillende game engines, microsofts XNA, de jmonkey engine, en epics UDK3. Uiteindelijk kozen we voor UDK, de grotere uitdaging die meer power en hogere kwaliteit moest bieden. Zijn er op dit moment nog vragen? How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Hoofdstuk 2 Dan ga ik het nu hebben over programmeren binnen UDK Age of udk

Tools Blender TortoiseSVN Google Code Unreal Development Kit Visual Studio Adobe Flash Alleereerst een stukje over de middelen die we gebruikt hebben, de meeste hiervan hebben we gedurende het hele proces gebruikt. Blender is een tool om 3d modellen mee te maken, hier ga ik straks nog wat verder op in. TortoiseSVN en Google Code hebben we gebruikt voor het uitwisselen en het up to date houden van de code. Iemand hier die niet weet wat Subversion is maar het wel wil weten? > eventueel later demonstreren < UDK3 spreekt voor zich, daarover later meer. Visual Studio kon samenwerken met UDK met behulp van een plugin, en was de ontwikkelomgeving van keus. Adobe Flash was vereist voor het maken van Heads up displays. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

3D ModeLleren Nu iets over blender. Zoals gezegd, een tool om 3d modellen mee te maken, en aan de hoeveelheid knopjes kun je al zien dat het geen makkelijk te gebruiken programma is. Het is een open source initiatief, met een behoorlijk grote community en veel tutorials. Hier zie je een gevechtsboot met textures, en hier die uitlijning van een cargoschip. Blender support bovendien animaties, al hebben wij daar geen gebruik van gemaakt. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Programmeren in UDK Professionele tool Weinig documentatie Limitaties van het framework Framework was standaard gemaakt voor soort kogel per unit Importeren model Geen XML ondersteuning Benodigde klassen waren niet extendable Vieze hacks Dan gaan we nu echt naar UDK. UDK is een professionele tool, kost voor commercieel gebruik tienduizenden euro’s, en bedrijven zijn er vaak maanden mee bezig om de software te doorgronden voor ze daadwerkelijk aan een spel beginnen. Een duidelijk nadeel van udk, is het gebrek aan documentatie, dat vooral beschikbaar is voor betalende gebruikers. Ook heeft het als framework de nodige limitaties. Een van die limitaties waar we omheen hebben moeten werken, is dat elke unit maar één soort kogel af kan schieten, en de boot zoals wij die hadden, was 1 unit, maar het was wel de bedoeling dat we meerdere soorten kannonnen af konden vuren. Het was bovendien lastig om de modellen van blender te importeren. Udk biedt ondersteuning voor professionelere tools als maya en 3ds max, maar niet voor blender, alleen via een omweg. Geen ondersteuning voor XML, en sommige van de klassen die we graag wilde gebruiken konden we niet extenden. Dit alles resulteerde in een aantal vieze hacks. Maar udk was slechts een van de problemen. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Contact met Alkmaar Cajo versus XML Vertaalserver Meerdere klantwensen Van dezelfde klant Ons eerste bezoek aan alkmaar, was enigzins ontluisterend. Terwijl wij voor onze server een prachtig xml protocol hadden bedacht, ging het er in alkmaar heel anders aan toe. ‘wij gebruiken cajo’. Wat is cajo? ‘cajo is java exclusive, en het idee is om complete objecten over het netwerk te sturen, en vervolgens die objecten aan te passen’. Maar dat werkt niet met ons in c# geschreven udk. ‘nope’. Uitiendelijk kwamen we tot de overeenkomst dat alkmaar een vertaalserver zou gaan schrijven met onze input en dat wij een xml protocol op zouden stellen. Tijdens een aantal presentaties die we te zien kregen vand e verschillende gropeen, bleek bovendien dat iedereen een ander idee had over wat de klanteis precies inhield. Uitiendelijk bleek dat de klant tegen iedere groep apart zijn wensen had aangegeven, en dat die groepen ieder met een andere intepretatie aan het werk waren gegaan. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Programmeren in UDK Flash HUD integreren in UDK Input krijgen naar Flash De input tegelijk met UDK Terug naar delft, terug naar udk. Ik zal één voorbeeld geven, om alles wat minder algemeen te maken. Ik heb al verteld, dat we flash gebruikten om een hud te maken, bijvoorbeeld een chat venster. Dit chat venster in UDK intregeren, dat was qua code al een aardige klus. Het is meer dan een kwestie van een regel met ‘embed flash hier’. Dan heb je flash, in je udk, maar het zou voor een chat leuk zijn als je dan ook input kan krijgen uit dat schermpje, en deze input kan synchronisteren met wat er gebeurd in udk. Dit bleek allemaal niet zo goed mogelijk, wat resulteerde in een scherm met meerdere muizen. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Resultaat Na een aantal weken hard gewerkt te hebben, is dit uiteindelijk het resultaat. Niet goed genoeg. Dus besloten we, om iets heel anders te gaan doen. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

And now for something completely different Hoofdstuk 3 Zijn er tot nog toe vragen? And now for something completely different

jMonkey SDK Gebasseerd op NetBeans Ondersteuning voor Cajo Multiplatform en ondersteuning voor webstart Reflective water Asset importing Node support Nifty GUI integratie Sommige UDK delen herbruikbaar Jmonkey is een open source game engine, geschrevem in java en gebasseerd op net beans. Dankzij java, is het ook compatibel met het in alkmaar gebruikte cajo, zodat zij konden stoppen met de vertaalserver, en wij hun implementatie konden gebruiken. Bijkomend voordeel van java is dat het werkt op ieder platform en bovendien via het web toegankelijk is. Mooi water is natuurlijk belangrijk als 98% van je spelwereld bestaat uit water, en daar komt reflective water om de hoek kijken, zie heir een voorbeeld. Asset importing is ook handig voor het importeren van onder meer modellen, en jmonkey pakte onze blender moddellen wel. Node support (?). Bovendien bevat jmonkey een implementatie van nifty gui, een handige tool waarbij je gui’s kan maken aan de hand van xml. Gelukkig waren sommige delen uit udk herbruikbaar, zoals enkele assets en een paar blokken logica. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Ontwikkeling in jMonkey Laat in het project Voortgang jMonkey loopt voorspoedig Implementatie boten, wapensystemen, chat, logging in 1 week tijd Voortgang Cajo server gaat minder soepel We waren pas laat in het project overgestapt op jmonkey, maar al gelijk bleek dat dat een goede keus was. Mede dankzij een ervaren persoon in onze projectgroep, haddden we in een week tijd al dingen als boten, wapensystemen, chat en een deel van logging af, allemaal in slechts 1 week tijd. Het werkte nog niet allemaal perfect, maar we waren al verder dan we met udk in al die weken gekomen waren. De voortgang in alkmaar, helaas, ging minder soepel. Het werk aan de cajo server ging niet echt soepel, en vanuit alkmaar horenden we ook weinig positiefs. Zijn er tot nog toe vragen over jmonkey? How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

An Offer You Cannot Refuse Hoofdstuk 4 Moving on naar het laatste hoofdstuk An Offer You Cannot Refuse

Het contract Nog later in het project “Een applicatie in een visueel rijke omgeving” “Deze client moet communiceren met een server uit alkmaar” “Klantcontract van Alkmaar is leidend” “Eigen server is géén eis” “Als Alkmaar een deel van de server niet implementeert, is het geen eis om de functionaliteit in de client te hebben” “Functionaliteit na 20 juni toegevoegd aan de server, wordt genegeerd” Nog wat later in het project, bleek dat het wel eens handig zou zijn om een contract te tekenen met de klant, over wat er nou werkelijk van ons verwacht wordt, en wat wij van de klant kunnen verwachten. Uit dat contract, kwamen ondermeer de volgende dingen naar voren, die ik hier grotendeels letterlijk heb neergezet. Visueel rijke omgeving. Dat wisten we al. server communicatie met alkmaar, dat wisten we ook. Klant contract met alkmaar is leidend. Logisch. Eigen server, is geen eis. Kijk eens aan. Maar wat dan, als de server in alkmaar faalt? Daarvoor de volgende clausule. “Als Alkmaar een deel van de server niet implementeert, is het geen eis om de functionaliteit in de client te hebben” “Functionaliteit na 20 juni toegevoegd aan de server, wordt genegeerd”. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Cajo of ca-nooo? Problemen in Alkmaar Server komt niet op tijd af Implementeerbaarheid is vrijwel nul Netwerkfunctionaliteit van de baan Contractueel voldoen we aan eisen Al snel bleek, dat alkmaar diep in de problemen zat. De manier waarop cajo werkt, ging toch iets anders dan ze in alkmaar dachten. Er zat een fundamentele fout in hun implementatie. Lang verhaal kort: de server kwam na de deadline van 20 juni. Omdat alkmaar koos voor een fat server, zaten wij met een lege, kale client, die niet kon communiceren met een server- want de versie die wij hadden werkte niet. Echter, volgens contract voldeden wij aan de eisen. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Kunstmatige intelligentie Terugplaatsen functionaliteit Singleplayer simulatie Artificial Intelligence Afronding Dit vonden we toch wel een beetje sneu voor onze klant, dus na een nieuwe overeenkomst, besloten wij om de functionaliteit die we eerder al hadden gebouwd, zoals bewegen en loggen, terug te plaatsen. Het zou een singleplayer simulator worden, met een simpele AI in plaats van verschillende clients. Daarna hebben we het project afgerond, getest, nog wat documentatie gemaakt, om uiteindelijk hier het resultaat te presenteren. How It All Began | Age of UDK | And Now For Something Completely Different | An Offer You Cannot Refuse

Demonstratie http://kalpha.com/simulator/ Uiteraard kunnen jullie de simulatie ook zelf spelen, via dit adres, maar eerst vragen we nog even jullie aandacht voor onze demonstratie, terwijl we live overschakelen naar een krachtigere laptop.