zondag 31 mei 2015

Inhaal opdracht

Les 2: Binaire stelsels

Les 2 Binaire stelsels ging over decimale, hexadecimale, binaire stelsels en logische operatoren en de verschillen tussen deze verschillende stelsels.

Deca betekent 10 dus de decimale getallen stelsels betekent een getallen stelsel met 10 verschillende tekens, 10 verschillende nummers, van 0 tot 9.

Hexa deci betekent 6 + 10 dus de hexadecimale getallen stelsel betekent dat er 16 verschillende tekens in de stelsel zijn.  Er zijn maar 10 verschillende nummers 0 tot en met 9 dus om op de andere 6 tekens te komen moeten er letters gebruikt worden. De eerste 6 letters van de alfabet worden gebruikt dus A tot en met F. Hexadecimale getallen stelsel wordt gebruikt bij kleurcodes.

Binaire stelsel betekent dat er alleen twee getallen gebruikt worden, de twee getallen die gebruikt worden zijn 0 en 1.

1 Bit is = een 0 of een 1
1 byte = 8 bits
1 kilobyte = 1000 bytes
1 megabyte = 1000 kilobytes
1 gigabyte = 1000 megabytes
1 terabyte = 1000 gigabytes

Logic gates gebruikt verschillende soorten operatoren

AND - checkt of A en B hetzelfde is en dan pas gaat het door
OR - checkt of A of B waar is en dan pas gaat het door
NOT - checkt of A niet waar is en dan pas gaat her door
NAND – is het tegenovergestelde van AND
NOR – is het tegenovergestelde van OR
XOR – als 1 van de twee inputs 1 is dan geeft het 1 terug anders is het 0


Les 7: Artificial Intelligence


Deze les ging over Artificial Intelligence in games. Artificial intelligence is computersystemen die samenwerken om taken te doen doe normaal gedaan wordt door mensen.  Artificial Intelligence wordt een beetje anders gedaan in games, ze worden sub-optimaal presteren, ze moeten fouten maken net als mensen.  Artificial Intelligence komt voor in games door gedrag, beslissingen, generation en optimalisatie. NPC’s en game beslissingen moeten vaak gedaan worden door Artificial Intelligence in games. 

De Ad hoc rules.
De Ad hoc rules is een manier om Artificial Intelligence in games te programmeren, maar het is ook een van de slechtste manieren. Er zijn verschillende behaviours die de Artificial Intelligence kan hebben en met de Ad hoc rules geeff je de Artificial Intelligence geen specifieke structuur en dat zorgt ervoor dat de Artificial Intelligence gewoon zomaar iets doet.Dit werkt alleen goed in simpele games.

State Machines
De Artificial Intelligence heeft verschillende states en elke state heeft een andere behaviour. De Artificial Intelligence kan tussen deze states veranderen. Dit is veel overzichtelijker dan de Ad hoc rules.

Behaviour trees
De Artificial Intelligence kan op deze manier zijn eigen beslissingen maken en op basis van deze beslissingen heeft het een soort behaviour.

Planners
Dit werkt achterstevoren, de Artificial Intelligence krijgt een doel en bepaald wat de kortste route is naar die doel.

Pathfinding
De Artificial Intelligence zoekt de kortste route om van path A naar B te gaan. De meest bekende manier is de A* manier van pathfinden. Een ander manier van pahtfinding is door Potential field, op deze manier straalt het object dat bereikt moet worden een veld , het veld wordt hoe verder het is zwakker, het object wordt getrokken naar het vak met het meeste energie.

Procedural content generation
Procedural content generation in games betekent dat er content wordt gegenereerd door midden van een algoritme. De algoritme bepaalt welke content combinaties bij elkaar kunnen horen. Dit wordt vaak gebruikt om levels te genereren.

Verder zijn er veel meer verschillende voorbeelden van Artificial Intelligence in games.

TOD2 – opdracht 6 – Physics

In mijn game mechanic zijn er 2 verschillende jumps. Een korte en een lange jump. Ze hebben beide dezelfde hoogte, maar de truc is dat ze beide verschillende lengtes hebben. De karakter kan ook rennen, als de karakter rent en dan springt zorgt dat beide de korte en de lange jump langer worden.

TOD2 – opdracht 5 – Game Mechanic

De game is een 2d platformer en je hebt X aantal sprongen die je kan maken. Je karakter heeft elke level een verschillende force op zijn vectoren. Jij moet van punt A naar punt B gaan. De speler vult X aantal graden voor elke jump dat de karakter moet maken. Na dat de speler alles heeft ingevuld gaat de karakter zelf springen op de graden dat de speler heeft aangegeven, als de speler op punt B is gekomen dan gaat hij/zij naar de volgende level.


TOD2 – opdracht 4 – Interview

De persoon die ik heb geïnterviewd heb ik op een online forum ontmoet en hij had me al eerder geholpen met een game van me. Hij is Dean van  Demonic Design Games.

Who are you and what do you do?
I’m Dean An ex C64 & Amiga Musician and Designer who creates Retro games and music for Retro lovers.

What is a good start for an aspiring game designer/developer?
Unity is a good start and very versatile which most indie's use so chances are most gamers will know what to expect, keep promoting your game and update where you can but do have a clear goal as to what type of gamer you are trying to attract and it's also a good idea what to show what you hope to achieve with your game and what you wish to add to it in the future post release.

Do you have any tips on releasing a game?
First game in particular can be extremely hard work but stay with it. In today's market it's best to get some gameplay footage out there or even a little demo so gamers can see what the game is about, Twitter is a good place to spread word of your game, if you have your own site and have video's or screenshots available this will always help.

What skills do you need as a programmer?
It's all about taking little steps in the beginning and to keep it fun as well, programming in itself can be quite time consuming and full of problem solving and that's the challenging part as I'm sure you have found out.

What did you do to get good in programming and also what did you do to motivate yourself?
(hier voor had ik mijn manier uitgelegt)
That's interesting about what you mention for creating games in one month, i had a similar idea years ago but rather than games i created small demo's which could be things that would appear in an actual game just to see if they would work or if i could even do them, it's not as silly as it sounds as it means keeping things simple and small and doesn't take as long as writing a game, think of it as small steps. I did this as I was learning a language and made things easier for me until i really knew what i was doing and made me a better programmer, motivation is the key factor as you have said and know only too well this is a big problem.

Do you have any tips for me as an aspiring game developer?
It pays to not have too many things going on at once, i have learned or programmed in around 20 different languages in the last 30 years and it's a lot to get your head around and makes things easier if you can be very good at a couple of things rather than average or good at many and will benefit you no end.



Where did you start as a programmer and which engines/languages did you use?
It's a bit more complex in today's industry as there is a great variety with languages and engines and frameworks, for me when i started there were no engines and only limited to a couple of languages so in a way it was slighly more easier to learn and become very good at programming, assembly was the only real professional option. The one thing i will say is that you never stop learning or finding other ways to improve as a programmer and you always find another way to solve a problem, it's quite exciting really. 

What is one thing that is still tricky today?

One thing that i have learn't over the years in the industry on a personal level is to know what your limitations are for the game and for your programming skills and keep within that and your game will generally work out as intended but keep practicing as i have done for 32 years and counting and keep progressing.

TOD2 – opdracht 3 – MOOC

Ik heb de University van Reddit gekozen. Ik vind dat dit een perfecte plek is om programmeer talen te leren, omdat het heel erg uitgebreid is, er zijn veel (hele goeie) tutorials die door mensen gemaakt zijn die er in zijn gespecialiseerd. Er word op alle lessen die je kan volgen gevote of het goed genoeg is  en omdat Reddit zo actief is dat als je een probleem hebt of ergens vast zit, kan je makkelijk andere mensen vragen stellen. Sinds programmeer talen heel populaire zijn, is de kwaliteit van de lessen heel hoog. Er zijn video’s die je kan volgen, meerdere lessen, meerdere talen door verschillende mensen. Alles is heel divers en daarom vind ik het heel fijn.

TOD2 – opdracht 2 – Icoon

De Icoon die ik heb gekozen is Wil Wright. Wil wright is een game designer en co-founder van het bedrijf Maxis die de wereld beroemde Sims heeft ontwikkeld. Hij heeft mechanical engineering gestudeerd aan de Louisiana State University. Hij vond het spelen van games heel leuk en dacht bij zichzelf “waarom geen games maken?” dus hij begon met games maken. Een paar jaar later heeft hij samen met Jeff Braun Maxis opgericht.

Sims heeft heel veel voor de Game industry betekent, vooral in game design.  SimCity was de eerste simulatie game ooit. Het is verantwoordelijk voor de hele Sim genre, zonder SimCity waren er misschien geen Simulatie games. SimCity was een heel nieuwe aanpak, het legde de nadruk vooral op leren meer dan verliezen.  Hij zorgde dat spelers voorspellingen moesten maken, risico’s moesten nemen en soms gewoon dat ze faalde, maar speler leerde er meer en meer van en zo werd de Simulatie genre geboren. 


TOD2 – opdracht 1 – CompetentieCirkel

Ik vind deze competenties heel erg belangrijk, omdat ik persoonlijk vind dat dit een goede programmeur maakt. Ik wil veel diversiteit hebben, heel flexibel zijn en niet alleen in een engine/library of programmeer taal te kunnen programmeren. Ik vind het belangrijk om een grote set tools te hebben en de meest handige tool te gebruiken om de opdracht die ik krijg te maken. Ik ga dit alles proberen te bereiken door in elk van mijn projecten hier op school de programmeer rol te nemen. Niet alleen op school ga ik deze vaardigheden verbeteren, maar ook buiten school door heel veel zelf studie te doen, door heel veel tutorials te volgen, heel veel games te maken in verschillende engines, libraries, programmeer talen en gewoon heel veel dingen te proberen. Ik ga dat ook doen door soms iets los van games te maken en gewoon puur mijn programmeer vaardigheden verbeteren door diverse projecten uit te proberen en doen.