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.