maandag 3 december 2012

Car City: 3D Models

Hieronder de lijst met laatst gemaakte 3d gebouwen voor Car City.

                                                                    Middel klasse Woning


Arbeider Flat


Arbeider Huis


Winkelcentrum

woensdag 28 november 2012

Unity - Database Connection

Hieronder een korte en simpele samenvatting hoe een db-connectie opgezet kan worden met unit en php. Deze opzet is de eerste versie en daarom is er nog geen aandacht besteed aan beveiliging van de verbinding.


Unity

De Login() functie word aangeroepen in de Start() functie (kan overal aangeroepen worden):

StartCoroutine(Login()); //call the function with StartCoroutine() this because the function is of 'IEnumerator' type


De login functie:
    IEnumerator Login() { //the function has the return type: IEnumerator, this is needed when working with Yield and coroutine's

        WWWForm form = new WWWForm(); //form which is handled as a normal html form by the php-page
       
        form.AddField("inlogName", formNick); //add a field to the form in the format: AddField("name","value");


        form.AddField("inlogPassword", formPassword);
       
        WWW w = new WWW(URL, form); //a webRequest
        yield return w; //yielding a variable will return this function (so other code can run), however intern it is waiting
        //till 'w' is finish downloading, when 'w' is finished the code after the return will be called

        if (w.error != null) {
            Debug.Log(w.error); //log a possible error
        } else {
            formText = w.data; //here we collect the data from the website (this is the bron-code from the website, incl php echo's)
            w.Dispose(); //clear the form in game
        }
    
        formNick = ""; //clean the inlog information
        formPassword = "";
    }


PHP

 Een simpel php-mySql/database connectie script:

<?php
    $inlogName = $_POST["inlogName"];
    $inlogPassword = $_POST["inlogPassword"];
   
   
    $db_server = "*************";
    $db_inlogName = "****";
    $db_inlogPassword = "****";
   
    $db_name = "SCORES";
   
   
    echo " connection made ";
    echo $inlogName;
    echo $inlogPassword;
   
   
   
    //make connection
    $dbCon = mysql_connect($db_server,$db_inlogName,$db_inlogPassword) or die("Error connection to DB");
   
    mysql_select_db("SCORES");
   
    $query = "SELECT * FROM scores LIMIT 0 , 30";
    $result = mysql_query($query);
   
    if (!$result) {
        die('Invalid query: ' . mysql_error());
    }
   
   
    //print the information
    while ($row = mysql_fetch_assoc($result)) {
        echo $row['name']."\n";
        echo $row['password']." - ";
    }
   
   
   
   
    echo "worked?";
?>


noot1:
Ten behoeve van het testen, stuur ik vanuit unity een aantal waarden mee, deze worden in deze versie nog niet gebruikt (inlogName, inlogPassword).

noot2:
Ik heb ten behoeve van de bescherming van mijn eigen database de inloggegevens hiervan verborgen door er '*' te tekenen.

dinsdag 27 november 2012

Car City; Een stad ontwerpen

Om de stad voor dit concept tot leven te brengen onderzochten we verschillende stijlen van architectuur die vanaf de industriële revolutie waren ontwikkeld. We waren al eerder gecharmeerd door de Art Deco beweging, die een chique stijl met veel sierlijke geometrische vormen hanteerde, en een soort optimisme voor ontwikkeling en techniek uitstraalde. Veel voorbeelden van de architectuur van deze stijl gebruikte echter veel staal en kleuren die we niet voelden passen bij het vrij nuchtere Holland. Verder zoekende naar Nederlandse voorbeelden hiervan, kwamen we bijvoorbeeld langs de Stijl, maar vonden pas echt een goeie match met de Amsterdamse school. Een expressionistische vorm van architectuur rond 1910 tot 1930. Gekenmerkt door sterke geometrische vormen en de typerende (rode) bakstenen van Nederlandse woningen. Net als Art Deco vonden we dat het een soort speels optimisme en futurisme uitstraalde. Het voelde bovendien zeer Nederlands. 

Voorbeelden van de Amsterdamse school.


Na enkele voorbeelden te hebben bekeken en een lijst van vereiste gebouwen te hebben ontwikkeld zijn we aan de slag gegaan. Dit zijn enkele voorbeelden van gebouwen die we hebben ontworpen.


Een arbeidershuis. 

Meer na de break!

donderdag 8 november 2012

Unity simple network/multiplayer

In deze blog in het kort hoe een simpele netwerk verbinding in unity opgezet kan worden.

Een object dat een object is dat zijn gegevens moet doorsturen naar de andere spelers moet een component: Network view krijgen (te vinden bij Miscellaneous > Network view).

In dit voorbeeld heb ik een class: spawnPoint gemaakt die een nieuwe class: Player spawnt als een speler zich aanmeld. De staat van het netwerk word bijgehouden in class: networking. Deze hangt aan de mainCamera. Open de images om het op leesbaar formaat te zien. (ik heb images geupload omdat het blog bij het plakken van tekst niet de opmaak meenam..)

hieronder de classes:

Networking (on mainCamera)

 

 Player (on player-prefab object)









SpawnPoint









Saving memories (Conclusie)

Titels niet beschrijvend genoeg, foto's te veel
Na de playtests met de paper prototype van Saving Memories waren we erachter gekomen dat de titels van de verloren verhalen te weinig hints zouden geven om de speler een verhaal te laten schrijven. Onze oplossing zou zijn om foto's te gebruiken in plaats van titels. Joris had zijn foto mappen geopent op zoek naar foto's van zijn surfreis, dit was in wezen een playtest voor hoe de 45+ers op zoek zouden moeten gaan naar foto's van hun verhalen.

 Het bleek dat Joris erg veel moeite had foto's uit te zoeken waar een logistiek verhaal in verborgen zouden zitten. De hele game hangt af van dit concept, en het blijkt te moeilijk te zijn het bij elkaar te sprokkelen. Daarom zijn we tot een conclusie gekomen dat dit concept niet optimaal zou zijn.

Wat hebben we geleerd?
Voor dit concept hebben we een paper prototype gemaakt om te testen of het überhaupt werkt en zijn we erachter gekomen dat dit niet het geval was. Te veel losse eindjes die elkaar tegen zitten. Het paper prototype heeft dus erg belangrijke informatie overgebracht en we hebben geleerd dat dit vaak een belangrijke stap is voordat we beginnen met programmeren. Stel je voor dat we hier 3 weken mee aan de slag waren gegaan in de code!

Conclusie
Uprising was een redelijke poging om letterlijke verhalen van de 45+er over te brengen naar onze doelgroep in de vorm van spel. Daarnaast zou het belang van het behouden van erfgoed (herinneringen) verwerkt worden in de game. We denken dat we wederom een poging moeten doen een concept te verzinnen die deze punten zouden aanslaan.

Car City concept art


Naast het ontwikkelen van conceptart voor verschillende voertuigen is een belangrijk deel van het Car City concept (link hier) ook het vertoon en groei van de stad aan de hand van voertuigen. Om dit uit te beelden hebben we ook mock-up art gemaakt van verschillende steden. Deze prenten tonen aan dat een klein fantasie-dorpje aan zee kan uitgroeien tot drie geheel verschillende steden. Dit toont de kracht aan die de spelers hebben met hun ontwerpen. 


Zie hoe dit dorpje kan uitgroeien na de break!

woensdag 7 november 2012

Paper prototype Saving Memories

HET DESIGN VAN SAVING MEMORIES
Saving Memories is een van de twee gekozen concepten die we wilden uitwerken als een prototype. Voor de game moet een 45+er haar/zijn verhaal intypen op de computer in een aantal individuele (opeenvolgende) stukjes. De speler begint het spel met deze stukjes verhaal, opgeborgen in capsules. Het doel is om zoveel mogelijk capsules over te houden aan het einde van de game.

Vervolgens opent de speler de overgebleven capsules en leest hij/zij de verhaaltjes. De ontbrekende verhaaltjes moet de speler zelf logistiek verzinnen. De spelers moeten hun verhaal voor de klas presenteren en de 45+er deelt punten uit op hoe goed de verhalen kloppen. Tot slot verteld de 45+er het volledige waargebeurde verhaal en wint de speler met de meeste punten.

ONTLEDEN IN STAPPEN

Omdat het concept nog erg los was en niemand precies wist waar we de focus op moesten leggen hebben we de game ontleed in 5 stappen. Deze stappen zijn redelijk onafhankelijk van elkaar en kunnen daarom individueel getest worden.






Playtest voertuigen

Deze playtest is een vervolg op de vorige playtest betreft de ontwikkeling van steden ten opzichte van voertuigen. In deze playtest wilden we playtesters vragen wat voor soort stad ze verwachten bij het zien van bepaalde voertuigen. We hebben de playtesters verteld dat ze als denkpatroon moeten nemen dat voertuigen de stad ontwikkelen.


STAP 1 VERSCHILLENDE CATEGORIEËN

We hebben geprobeerd de kanten waar een stad heen kan groeien op te delen in (versimpelde) catogorien. Het kan hierbij natuurlijk ook mogelijk zijn dat een stad wat van elke catogorie heef. We hebben de mogelijke ontwikkelingen verdeeld in de volgende catogorien:


City Simulation

In dit concept speelt de jonge doelgroep auto-ontwerpers. Iedereen krijgt de opdracht om zijn eigen merk en voertuigen

We hebben verschillende playtest sessies gehouden om te controleren of aannames en ideeen die wij hebben gemaakt kloppen. De resultaten van deze playtest sessies staan hier onder vermeld.




CONCEPT IN HET KORT

In dit concept speelt de jonge doelgroep auto-ontwerpers. Iedereen krijgt de opdracht om zijn eigen merk en voertuigen te ontwikkelen voor een stad die op het punt staat een enorme auto-industrie te krijgen. Zo kunnen de spelers trucks ontwerpen, sportwagens of zeer goedkope wagens voor de arbeider. Zodra iedereen hun ontwerpen heeft ontwikkeld worden ze in een wereld gezet waar een simulatie afspeelt aan de hand van de ontwikkelde wagens. De spelers moeten aan de hand van de stad vertellen welke voertuigen de belangrijkste rol in de ontwikkeling hebben gespeeld. Ook krijgt groep A de stad van groep B te zien. Hier moeten opnieuw praten over welke voertuigen de belangrijkste rol hebben gespeeld.


dinsdag 6 november 2012

Mock-ups deel 3


SAVING MEMORIES: MOCK-UPS, Deel 3
In deze games gaat het om het bewaren van je herinneringen. Deze bevatten namelijk details over voertuigen zoals belangrijke en/of leuke anekdotes. Echter om verder in het spel te komen zul je verschillende herinneringen om moeten ruilen in levenspunten omdat je het zonder niet redt. Hier zul je dus moeten afwegen of je de ruil wilt maken of dat je denkt dat je het met een minder aantal leven ook het level uit kan spelen.

Dit concept wordt gespeeld vanuit third-person perspective. Je rent door oude vervallen gangen en probeert het einde te halen. Ondertussen moet je vallende boekenkasten, spinnenwebben, spinnen en andere gevaren ontwijken terwijl je de herinneringen uit de boekenkast haalt door er doorheen te springen. 

Hetzelfde als bij het vorige concept zul je de herinneringen op een gegeven moment moeten inruilen voor hartjes omdat je het anders niet redt tot het einde.

Mock-ups deel 2


SAVING MEMORIES: MOCK-UPS, Deel 2
In deze games gaat het om het bewaren van je herinneringen. Deze bevatten namelijk details over voertuigen zoals belangrijke en/of leuke anekdotes. Echter om verder in het spel te komen zul je verschillende herinneringen om moeten ruilen in levenspunten omdat je het zonder niet redt. Hier zul je dus moeten afwegen of je de ruil wilt maken of dat je denkt dat je het met een minder aantal leven ook het level uit kan spelen.

De tweede game is bijna hetzelfde als de eerste maar met een aantal belangrijke verschillen.
Ten eerste zal deze game sidescrolling zijn in plaats van top-down. Dit zorgt voor een andere kijk op het gegraven of ontstane gat. Er zal verschillende footage van ingezonden mobiel ergoed te zien zijn als schilderijtjes die vast zitten in het zand.
Ten tweede zien de herinneringen er anders uit, dit zijn namelijk tijdscapsules die je zo snel mogelijk naar beneden en veilig gesteld wil krijgen. Echter heb je ook hier een tekort aan tijd en andere middelen die je ertoe dwingen keuzes te maken welke herinneringen je mee wilt nemen en welke niet. Het zal dan ook bij de eerste speelsessies moeilijk tot onmogelijk zijn om zonder power-ups alle capsules veilig te stellen. 

De leerlingen spelen dit spel en moeten aan het einde alle verloren herinneringen aan de hand van gegeven kernwoorden of zinnen reconstrueren en bijverzinnen hoe zij denken dat het verhaal in zijn geheel zou zijn verlopen. 
Hier kunnen de particuliere erfgoedbezitters punten geven voor bijvoorbeeld vindingrijkheid, waarheidsgetrouw en motivatie. 

Mock-ups deel 1


SAVING MEMORIES: MOCK-UPS
In deze games gaat het om het bewaren van je herinneringen. Deze bevatten namelijk details over voertuigen zoals belangrijke en/of leuke anekdotes. Echter om verder in het spel te komen zul je verschillende herinneringen om moeten ruilen in levenspunten omdat je het zonder niet redt. Hier zul je dus moeten afwegen of je de ruil wilt maken of dat je denkt dat je het met een minder aantal leven ook het level uit kan spelen.

De eerste is een top-down view waarin je een weg naar beneden graaft. Elk blokje bestaat uit 2 lagen waar er na de eerste laag een gevaar of juist iets goeds ligt. Na de tweede laag val je door het level naar het volgende level. Als je dus na de tweede laag een item vindt zal deze ook naar het volgende level vallen en het daar moeilijker of makkelijker maken. 

vrijdag 2 november 2012

Concept 2: Saving Memories


Dit is onze eerste visie op het tweede concept dat uit de brainstorm van vorige week is gekomen. Net als bij het eerste concept moet hier nog een hoop aan ontworpen geworden. Het kan dus nog een hoop verschillende kanten op. Met dit concept zijn er in het team nog een hoop verschillende gedachtes over waar dit idee heen kan, dus er kan iets minder concreet een verhaal over worden verteld. Vandaar de iets kortere omschrijving ten opzichte van de vorige blog.

SAVING MEMORIES
In dit concept sturen eigenaars van particulier erfgoed een foto van hun mobiele erfgoed met bijbehorende verhaal/verhalen in het spel. De jonge doelgroep krijgt deze foto en verhalen in stukjes over een level verdeeld. Zij moeten zoveel mogelijk van deze onderdelen mee zien te nemen, voordat het level vergaat. Het is echter onmogelijk om alle stukjes te redden. Vervolgens moeten ze met de informatie en foto onderdelen die ze wel hebben kunnen redden een herconstructie maken van het voertuig en bijbehorende verhaal. Deze herconstructie moeten de spelers aan elkaar presenteren, vervolgens word gestemd door de spelers. of beslist door de eigenaar wie er het meest dichtbij zat. Deze speler wint, waarna de eigenaar zelf zijn eigen verhaal verteld. 

WAT NU?
Het eerste wat we hier willen onderzoeken is of mensen betrokken kunnen raken bij het her-assembleren van stukjes verhaal en foto's en of ze hier enthousiast mee om kunnen gaan. 

woensdag 31 oktober 2012

Concept 1: Car City

Dit is een korte omschrijving van het eerste concept dat uit de brainstorm is gerold. Hoewel we deze richting opgaan, moet er nog een hoop ontworpen en getest worden. Het is dus nog vrij elastisch. 

CAR CITY
In dit concept speelt de jonge doelgroep auto-ontwerpers. Iedereen krijgt de opdracht om zijn eigen merk en voertuigen te ontwikkelen voor een stad die op het punt staat een enorme auto-industrie te krijgen. Zo kunnen de spelers trucks ontwerpen, sportwagens of zeer goedkope wagens voor de arbeider. Zodra iedereen hun ontwerpen heeft ontwikkeld worden ze in een wereld gezet waar een simulatie afspeelt aan de hand van de ontwikkelde wagens. 



Het brainstorm proces


NIEUWE DENKRICHTINGEN

Na de bespreking met de klant afgelopen week ontstonden er enkele nieuwe richtingen waar we ons op wilden richten; mede door de communicatie over de opdracht en de uitkomsten van de vorige twee concepten. De gemaakte prototypes worden voorlopig in de ijskast gezet, en we gaan verder met twee geheel nieuwe concepten. Voordat we daarmee aan de slag kunnen moeten ze echter eerst worden bedacht! Voor deze conceptualisatie besloten we om ons te richten op vier richtingen, kort samengevat zijn dat de volgende;

Connectie
Een spel waarin er een goede connectie is tussen de twee doelgroepen; eigenaren van mobiel erfgoed en jonge tieners op school. Maar ook multi-player binnenin de doelgroepen is onderdeel van deze richting.

Emotie
Een spel waarbij de spelers emotioneel betrokken raken bij erfgoed. Dit kwam voort uit één van de vorige concepten; Highscore or Fame, waarbij de spelers de keuze kregen om hun zelf samengestelde bootje te bewaren of te verkopen voor meer punten.

Maatschappelijk belang
Een spel dat een maatschappelijke boodschap over mobiel erfgoed overbrengt. Bijvoorbeeld hoe belangrijk de ontwikkeling van treinen of de scheepscontainer is geweest voor de groei van Nederland. Dit punt kwam ook over uit een vorige prototype; Trainization waarbij spelers steden moesten verbinden met treinrails om ze te laten groeien.

Digitaal/Analoog
Een spel dat digitale elementen combineert met analoge en hiermee iets aan het spel toevoegt, zijnde het meer betrokkenheid, betere connectie tussen de spelers of meer.

Met deze vier richtingen probeerden we vervolgens op verschillende manieren verder te denken. Het brainstorm proces is een vreemd geval en in mijn ervaring zelden hetzelfde, zeker met verschillende mensen. Bij een brainstorm is geen enkel idee slecht, en de woorden 'Nee' of 'Dat zou niet werken' zijn dan ook strikt verboden. Elk idee, hoe bizar dan ook kan iemand anders leiden tot een nieuw idee. 

Desondanks is de uitdaging vaak om iedereen zo vrij te krijgen om in deze gedachtengang te komen, en de gedachten toch langs alle uitgangspunten te leiden, en niet laten vasthaken aan één van die punten. Om dit teweeg te brengen probeerden we gedurende de week enkele methoden, met verschillende maten van succes. Afgelopen week botsten we ook tegen enkele andere externe problemen zoals ziekte en persoonlijke problemen binnen het team, die voor een hoop afleiding en vermindering van de werkkracht zorgden, waardoor dit experimentele brainstorm proces niet zo vlot liep als gepland. 


BRAINSTORM PROCES

We begonnen met het onderzoeken van verschillende bronnen. Eigenlijk waren we gewoon op zoek naar dingen die we tof vonden; Spellen die digitaal met analoog combineren, games die ook aanslaan bij volwassen, spellen over erfgoed en een rits aan andere kleine vindingen en punten die van pas zouden komen in de brainstorm. Inspiratie! Zodra we wat ammunitie van dit type hadden gingen we bij elkaar zitten om de vergaarde informatie te bespreken en de eerste ideeën die hier uit kwamen te noteren. Deze bleven echter erg hangen in de regio van de gevonden informatie, en er kwam nog weinig uit.

De voornaamste reden die we vonden voor dit gebrek aan creativiteit was het gebrek aan zuurstof in onze werkruimte en in extensie de hele verdieping. We besloten voor de 2e brainstorm om buiten in de kou te gaan zitten. Hier kwamen de gesprekken al wat vlotter op gang, maar hier stuitte we op een ander probleem dat vaker voorkomt bij brainstormen; een gebrek aan focus. De discussie bleef erg breed en we probeerden al onze focus punten tegelijk te behandelen. 

Uiteindelijk zijn we weer terug het gebouw in gegaan, op een wat beter geluchte plek en hebben we heel strikt afwisselend sessies gehad waarbij men individueel een concept uitschreef en deze vervolgens in een groepssessie weer bij elkaar gooiden. Deze werden dan besproken, en leidden tot de focus van de volgende individuele brainstorm. Door de tijdsdruk van de individuele sessies en de focus die word meegegeven kan men in relatief korte tijd verder denken. Hier zat de groep het beste in zijn vel en kwamen er leuke concepten uitrollen.

Op een gegeven moment moeten er echter knopen worden doorgehakt en gaan we een selectieproces door. We vatten de concepten samen en proberen kort de kern van elk concept te vinden. Ook bespreken we de mogelijke kanten die de concepten op zouden kunnen gaan. Op dit moment vervalt de regel dat 'Nee' en 'Dat zou niet werken' niet meer gezegd mogen worden. Iedereen kijkt kritisch naar de ideeën en zo kunnen sommigen al snel vervallen, of omdat de kern van een concept overeenkomt met een ander worden deze gefuseerd. Na deze selectieronde schreven we de overgebleven concepten op en stemden we op de potentie die we zagen in elk van de eerder genoemde focus punten. Hoewel deze punten niet direct de twee concepten bepalen die we gaan ontwikkelen, worden ze wel meegenomen in de uiteindelijke stemming.

De uiteindelijk stemming gaat als volgt; iedereen krijgt twee stemmen en kiest op de twee concepten waar ze het meeste potentie in zien. De concepten met de meeste stemmen gaan door. Welke concepten er zijn gekozen? Daar later (niet heel veel later) een blogpost over! 

vrijdag 19 oktober 2012

Post mortem: treinen game

Gesprek opdrachtgever

Na een gesprek met de opdrachtgever bleek er toch een verschil te zetten met onze doelstellingen en die van de klant. Na het eerste gesprek hadden wij geinterpeteerd dat de doelstellingen de volgende zouden zijn:
  • Mensen bewust maken van het belang van mobiel erfgoed
  • Mensen bewust maken van de invloed dat (nu) mobiel erfgoed voor impact heeft gehad op de maatschappij.
Echter is voor de klant de doelstelling om de mensen met mobiel erfgoed hun verhalen te laten delen met mensen die geen mobiel erfgoed hebben. Hierbij is gezegd dat we de aanname mochten maken dat de mensen met mobiel erfgoed vooral 45+ zijn. Vanwege deze wijziging in doelstelling hebben we besloten dit prototype stop te zetten en nieuwe prototypen te ontwikkelen voor de nieuwe doelstelling.



Train game

De doelstelling van de train game was gericht op het tweede doel van onze initiele doelstellingen: "Mensen bewust maken van de invloed dat (nu) mobiel erfgoed voor impact heeft gehad op de maatschappij". De train game richt zich specifiek om spelers te laten ervaren hoe groot de impact kan zijn om een stad te verbinden aan het railnetwerk en de stad 'mobieler'  te maken.

In de game zitten verschillende steden waar de speler rails tussen kan leggen. Wanneer steden met elkaar verbonden worden zullen deze steden gaan groeien. Ook verschijnen er kleine dorpjes waar het railnet verbonden kan worden. Deze kleine dorpen zullen vervolgens uitgroeien tot grote steden. Dit om de speler te laten begrijpen dat doordat steden vroeger werden verbonden konden uitgroeien tot volwaardige steden (bv Hilversum).


Iteratie 2

De traingame is in zijn eerste opzet afgerond, in iteratie 2 was het de bedoeling om te experimenteren met verschillende nieuwe onderdelen. Een aantal van de onderdelen waar we het over gehad hebben staan hieronder beschreven.

Klasse systeem

De speler leert vervolgens ook het verschil van klasse, elke stad genereert arme(3e klas), middenklasse (2e klas) en rijke mensen (1e klas). Aan de hand van wat er in een stad woont koopt de speler de desbetreffende wagons voor zijn trein.

Events

Het leek ons interessant om te experimenteren met events. Bijvoorbeeld de speler kan ervoor kiezen om een bepaalde techniek te kopen waardoor een bepaald systeem veel goedkoper word maar de consequentie is dat er mensen ontslagen worden. Hetgeen ervoor zorgt dat in veel steden opeens alleen nog maar arme (3e klas) mensen verschijnen. Ook als bijvoorbeeld de crisis in 1920 aanbreekt kan dit effect op deze manier gevoeld worden door de speler. Een ander idee is om steden mensen en goederen aan te bieden aan de hand van hun ligging. Bijvoorbeeld bied Rotterdam veel goederen.

Eigen Nederland

Om spelers een meer eigen spel te geven zaten we te denken aan een Nederland waar de speler zelf invloed op heeft. De speler kan bijvoorbeeld ervoor kiezen om een klein dorpje (waar hij zelf woont?) uit te laten groeien tot het kloppende hart van Nederland waardoor dit uiteindelijke misschien wel de hoofdstad word.

Juicyness - eye candy

Om het prototype aan te kleden en de speler het gevoel te geven dat hij iets teweegbrengt heb ik verschillende extra elementen toegevoegd. Bijvoorbeeld wanneer passagiers succesvol zijn vervoerd word er vuurwerk afgeschoten. Er lopen koeien rond met een simpele kunstmatige intelligentie, licht effectjes, dag en nacht cyclus en rook effectjes van de de trein. Stuk voor stuk kleine dingetjes die weinig tijd kosten om er in te zetten en een meer levendig gevoel geven.




donderdag 18 oktober 2012

Prototype Development: Highscore or Fame

Post mortem
Er heeft vanmiddag een gesprek plaats gevonden waarin bleek dat de opdrachtgever liever een game zag dat een communicatie opzet tussen oud en nieuw. Daarom moet het "Highscore or Fame" prototype worden stopgezet en beginnen we opnieuw met nieuwe ideeen en concepten.

Design lessen
Omdat we nog niet echt hebben kunnen playtesten hebben we minder uit het prototype kunnen halen dan we zouden willen. We hebben wel veel met het concept kunnen spelen in onze hoofd.

Traintracks

WorldManager

De WorldManager houd posities bij van alle WorldObject's. Deze worden opgeslagen op een gridbased systeem waarbij elke grid 25x25 is. Zowel de Rail als de City erven van WorldObject.

Wanneer op een WorldObject clicked word er voor elke grenzende positie (boven, rechts, links en onder) gekeken via de worldManager of hier nog een vrij plekje is. Wanneer er nog een plekje vrij is word er knopje geplaatst waar de gebruiker op kan klikken. 

Als de gebruiker op de railKnop klikt word er een nieuwe rail geplaatst.


WorldObjecten connecten

Als er een nieuw worldObject word gecreeerd word op dit object altijd de functie updateBottomTopLeftRight() , deze functie verbind deze rails met eventueel naastliggende stukken rails: De nieuwe rails word altijd gelocked aan het object waar de gebruiker in eerste instantie opklikte. Dit proces werkt twee kanten op. Beide objecten weten van elkaars bestaan af. Wanneer er nu nog een verbinding toegevoegd word word deze ook gezet op dezelfde manier. Echter wanneer een rail 2 verbindingen heeft word deze zogenaamd gelocked (isLocked). Als deze variable is gezet word deze rail genegeerd voor toekomstige railStukken. (dwz een rail kan nooit een splitsing zijn). Vervolgens als de verbinding is gezet word op beide rails updateRailSettings() aangeroepen. Deze functie update aan de hand van welke verbindingen zijn gezet welk model er geladen moet worden en in welke rotatie (bv een bocht, rechte, etc).



Path calculation

Als aan een rails met al 1 verbinding een stad word geconnect weet de rails dat een traject is afgerond. Er word nu een RailTrack object gemaakt die vanuit de laatste rails een path maakt naar de eerste rails op dit traject. Dit word een waypoint lijst. Vervolgens word er een trein gecreëerd die deze lijst van waypoints gebruikt om over te rijden.


Robustheid

Om het systeem robust te maken/houden heb ik gebruik gemaakt van functies die op elk moment aan te roepen zijn. Deze functies gooien eerst de huidige opzet weg en bouwen het daarna opnieuw op. Een voorbeeld hiervan is voor het bouwen van de buildRailIcons op het scherm.


woensdag 17 oktober 2012

Prototype Development: Highscore or Fame

Design veranderingen
De game bevat nu mannetjes die apart leveren en inkopen. Ze zijn voor nu te onderscheiden aan hun kleur. De mannetjes die inkopen verdwijnen nadat ze goederen binnen hebben gekregen en komen na geruime tijd weer terug.



World Collision
De collision met de wereld bleek een leuk vraagstuk met meerdere oplossingen. Zareh stelde voor een raycast naarbeneden te doen om zo de diepte van de zee te testen, en daarop te baseren hoe hard de boot mag varen. Wat we uiteindelijk gedaan hebben is circle colliders op de boot plaatsen van verschillende grootte die, wanneer ze in contact komen met land, de boot langzamer laten varen. Er zijn op het moment 3 colliders. De kleinste zet de speler terug op zijn vorige positie zodat de boot niet vast komt te zitten in het land.

donderdag 11 oktober 2012

Prototype Development: Highscore or Fame

Highscore or Fame concept
Samen met Pieter een game bedacht waarbij je met een zelf samengesteld bootje spullen moet inkomen en verkopen om punten te verdienen. Je vaart rond de hele wereld en bezoekt allemaal landen. Wanneer de tijd om is komt er een keuze of je een paar extra punten wilt OF je boot tentoon wil kunnen stellen voor andere gebruikers. Er staat dan bij langs welke landen deze is geweest. Hierdoor willen we de discussie starten of het belangrijk is iets te behouden of niet.

Development
Ik ben in Unity begonnen met de development. We hadden besloten de wereld rond te maken dus dat was voor mij een leuke taak.

woensdag 10 oktober 2012

LAB prototype Unity en Maya

Eerste prototype


Vandaag en gisteren bezig geweest met het eerste prototype in Unity. Unity werkt op sommige punten nogal merkwaardig, maar is wel erg snel en heeft al een breed scala aan bruikbare functies.

Nederland Creëeren

 Had een model nodig van Nederland, in eerste instantie deze zelf proberen te maken met de terrein editor in Unity, dmv een terrain met hierop een texture van nederland maar dit kost (onnodig) veel tijd en ben hier dan ook al snel afgestapt. Vervolgens een heightmap gemaakt:

Terrain > import height map
Gebruik altijd een heightmap met de power of 2; 2,4,8,16,32 etc, een grote heightmap kost aanzienlijk meer processorkracht.
Bij Terrain>Set resolution kan je de resolutie van je terrein zetten. Standaard op 2000x2000

De heightmap creeert 'blokken' waardoor de randen niet mooi lijken.


Vervolgens nederland in maya gemaakt met de create polygon tool, extude en de randen naar buiten trekken.
Tips van Zareh betreft de export:

1. Delete history
2. Modify > freeze transformation
3. Zet pivot op juiste plaats (center?)
3. Geeft sprekende naam en check in outliner of hij goed is gegaan.
4. check ook display> polygons> custom polygon display. Als dit niet goed zit zet dan in  normals > reverse de culling andersom.
5. Export als FBX

quick keys:
ctrl + > // ctrl+< select more/les
ctrl+shift op actie om hiervan een quickkey te maken

 Unity 

Een korte greep uit de technieken die ik heb gebruikt

Het kunnen klikken op een 3d object
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit)){ /* een hit op object hit.transform.gameObject*/ }



Het tonen van 2D gui elementen op 3D ruimte:
zet een gameObjectin de wereld, hang hier een C#-class aan met OnGui code voor het 2d element. positioneer nu dit gameObject op de juiste plaats door de volgende code in de update:

Vector3 screenPosition = Camera.main.WorldToScreenPoint(this.gameObject.transform.position);
 screenPosition.y = Screen.height - (screenPosition.y + 1);// inverts y
iconPos = new Rect(screenPosition.x - 50, screenPosition.y - 12, 50, 50);

iconPos is een rect waarin het 2d element getekend word, 50x50 is in dit geval mijn grootte

in onGui gebrui nu:
GUI.DrawTexture(iconPos,railIcon);

waarbij railIcon in mijn geval een texture 2D

donderdag 27 september 2012

Debrief, pitches en zieke mensen


De jongens zijn hier bezig met de debriefing. Deze mag niet meer dan één A4'tje zijn dus er is wat geknip en geplak om te kijken wat erin kan en wat niet.

Ondertussen is de rest bezig met het bedenken en opstellen van pitches (mockups met beschrijving) voor prototypes. Volgende week maandag zullen we deze bij elkaar leggen. We gaan kijken of we vanaf dan al een aantal prototypes bij zitten om voor te gaan werken.

Zowel Kevin als Antonio zijn op het moment ziek, dus het is rustig met z'n vieren. Hopen dat ze er volgende week weer bij kunnen zijn.

maandag 24 september 2012

Team Promotie Filmpje

De afgelopen dagen zijn we hier druk bezig geweest met het maken van een promotie filmpje voor ons team. Het idee was om onze teamnaam erbij te betrekken en een verhaal op te zetten waarbij we "tired" beginnen, en On the move eindigen. "Wheel make this"!

Team Promotie Filmpje

donderdag 20 september 2012

Spoorwegmuseum bezoek


Spoorweg museum bezoek


Als inspiratie zijn wij afgelopen woensdag (19 september) naar het spoorweg museum geweest. Het museum liet ons een sprong in de tijd maken door ons de wereld te tonen van die tijdsgeest. Van oude treinen tot oude stationshallen.



Het was interessant om te zien hoe in het museum getracht werd geschiedenis levendig en speels over te brengen. Bijvoorbeeld een 'achtbaan', treintje en theatervoorstelling. Het was bijzonder om te zien hoe hedendaagse media geïmplementeerd is. Een voorbeeld hiervan was een 'audiotoer' waarbij wij een koptelefoon opkregen, aan de hand van sensoren werd er informatie verteld over hetgeen waar wij bij stonden. Sterk was dat het een lopend verhaal was ipv fragmenten met informatie. Enige vorm van interactie was er te vinden wanneer we te snel doorliepen en er werd gezegd dat we te snel liepen. Alle informatie werd speels en levendig gebracht, ipv sommerend of (voelbaar) lerend.



In het museum liepen we door een nagebouwd mijndorpje uit 1839, in dit dorpje zagen we ook de eerste stoomtrein van Nederland, de Arends. De trein was erg functioneel gebouwd maar rijkelijk versierd met brons/goud. Het oogde voor die tijd iets als van de nieuwe era. Bijzonder was om te zien dat veel spoorbruggen en andere bouwwerken van hout waren gebouwd. Dit omdat hout veelal in de buurt aanwezig was. Via verschillende schilderijen zagen we hoe de treinen, stationshallen en rails het nederlandselandschap drastisch veranderden. 



Voor veel (rijke) mensen was de komst van de trein en latere treinprojecten een poort naar de rest van de wereld. Bijvoorbeeld de oriënt-express voerde van Parijs naar de oriënt in 3 dagen waar men vroeger per paard maanden over deed.


 We hebben alvast foto's gemaakt om te kunnen gebruiken als texture-materiaal. Ook hebben we verschillende borden met diens typografie kunnen bestuderen om onze mindset al naar deze tijd te brengen.

 Het bezoek aan het museum was een interessant bezoek en heeft het thema meer laten leven voor ons.

maandag 17 september 2012

tiredonthemove.blogspot.com

Blogspot aangemaakt! Hier gaan we alle updates voor het project "On the move" posten.