Arjan Egges & Paul Bergervoet

Slides:



Advertisements
Verwante presentaties
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Advertisements

Computers Door: Jelle Smits 3TG erste.
Hoofdstuk 1 Programmeren.
IT Biografie.
UvA, opleiding AI, cursus IOOP UvA - Opleiding AI Cursus Imperatief & Objectgeoriënteerd Programmeren College 1: maandag 31 januari 2011.
Smartphone development Coopman Tom Adforce. Online communicatie en marketing agentschap Gevestigd in Brussel Aanbiedingen : – Online marketing – Juridische.
1/1/ / faculty of Computer Science eindhoven university of technology 2IC20:Computersystemen Week 1: inleiding.
Hardware (1) NSG Informatica.
Hardware (2) SGDB Informatica.
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
OOP met Java Sessie 1.
JAVA1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering.
Greenfoot Workshop Bobby - Snake.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Grote apparatuur die we helaas niet kunnen tentoonstellen.
Hoofdstuk 1 Programmeren.
De processor.
Opleiding ICT © J.W. Jonker Dia 1/32 Systemen Besturingssoftware Windows XP Mark van Heck.
Visual Basic .NET voor studenten
Laatste toets Vrijdag 8 november van 8.30 – uur Locatie: EDUC-BETA Stof: Alles! Slides Boek Werkcollegeopgaven Practicumopgaven.
Geschiedenis van de computer games
Webapplicaties: de clientkant in het universitaire onderwijs Sylvia Stuurman – Herman Koppelman Faculteit Informatica.
Mail: Jan Zuurbier  Mail:
Microsoft Small Basic Cum 11/01/2009 Rudy. Basic Vroeger beschikten bijna alle homecomputers over basic als programmeertaal voor de gebruiker Altair BASIC.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
De eerste spellen 1962: Space war Vernietig het ruimteschip van je tegenstander Gemaakt door Steve Russel Gemaakt voor supercomputers 1972 Pong Houd het.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Indeling  First Gen  Second Gen  Third Gen  Fourth Gen  Fifth Gen  Sixth Gen  Seventh Gen  Eight Gen.
De eerste spellen 1962: Space war  Vernietig het ruimteschip van je tegenstander  Gemaakt door Steve Russel Gemaakt voor supercomputers 1972 Pong 
9 Geschiedenis Pc’s. De eerste pc’s De eerste Personal Computer is de Altair Deze werd zo genoemd omdat de gebruiker niet langer werkte aan een.
De eerste computers.
9 Geschiedenis Mainframes en minicomputers. 9 Geschiedenis Mainframes -1 Na de Tweede Wereldoorlog begon de computer aan zijn opmars. De oorlogsindustrie.
tircms02-p les 1 Operating Systems practicum
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
De geschiedenis van videogames Niels Rietkerk VU Masterclass Game Development maart 2006.
Inleiding computersystemen en netwerken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2.1 Programmeren (2.9) assembler,
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Inleiding Computersystemen
Ca1-1 Les 1: Inleiding Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable techniques.
Programmeren.
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
Mobiel programmeren Jeroen Fokker.
Agenda  Lesuur minuten  Wat kun je met programmeren?  Wat is code en hoe werkt het?  Code schrijven: de basis  Lesuur minuten  Zelf.
Gamen. Het moet leuk blijven Vragen behandelen Interviews Artikels Documentaire Boek Instructiefilmpje Bart Hagenaars, Tim Nieuwdorp, Mark van Ostaijen,
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
1 K. Werschkull Programmeren in Delphi 7 De ontwikkeling van de computer Programmeertalen Compilers Hoofdstuk 1 Hoofdstuk 1: De ontwikkeling van de computer.
Informatica Welkom! maandag 16 November Les B-1.
Webwinkel in het D-cluster van de opleiding Logistiek Ad van Kooten – docent ERP toepassingen  Pract. 1.
Informatica Welkom! maandag 16 November Les B-5.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Drivers Wat is het Wat doet het Waar komen ze vandaan.
Programmeren.
Software Development fundamentals
Imperatief programmeren
De geschiedenis van de pc
Gameprogrammeren: Objecten en geheugen
Object georiënteerd programmeren
De programmeertaal C++
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Methoden
Gameprogrammeren: Programmastructuur
Gameprogrammeren: Afsluiting
Gameprogrammeren: Game Basics
Programmeren woensdag 4 oktober 2017.
3 Hardware 3.1 De processor en intern geheugen
Gameprogrammeren: Klassen en objecten
Hardware en Software dr. Boris Rogge 16 oktober 2003.
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Arjan Egges & Paul Bergervoet (Game)programmeren Arjan Egges & Paul Bergervoet

om opdrachten uit te voeren Gameprogrammeren Von Neumann’s computer-model (1950): computer = + geheugen om waarden op te slaan processor om opdrachten uit te voeren John von Neumann: Hongaarse wiskundige, meegewerkt aan de eerste atoombom, speltheorie, cellulaire automaten, betrokken bij de ENIAC

Opdrachten Opdracht: voorschrift om het geheugen te veranderen Programma: lange reeks opdrachten, die één voor één worden uitgevoerd door de processor opdrachten staan zelf ook in het geheugen maar veranderen zichzelf niet

Programmeertalen Programmeertaal: notatie voor programma’s sinds 1945: >4000 verschillende talen gepubliceerd

Geschiedenis van computers, programmeren, games: 1940-45 Z3 (Dld 1941) Eniac (USA 1943) “Electronic Numeric Integrator And Computer”. De ENIAC woog 30 ton en had 19000 buizen, kostte 500000$. Z3 (Duitsland 1941) heette oorspronkelijk V3 maar dat gaf verwarring met raketten; werd niettemin gebombardeerd – de foto is reconstructie uit de 60er jaren met ontwerper Konrad Zuse; had een heuse programmeertaal “PlanKalkül”, maar dat wist na de oorlog niemand meer. Colossus, Engels apparaat voor decodering van de Enigma – eigenlijk geen computer, want niet programmeerbaar. De Colossus had 1500 buizen. ENIAC (USA 1943) Colossus (Eng 1943)

Geschiedenis van computers, programmeren, games: 1945-50 Programmeertaal: Machinetaal Mark-I (Eng 1948) Illiac-II (supercomputer, met transistoren), Mark-I in Manchester (gebruikte voor het eerst ‘index registers’ zodat een programma sequentieel uit het geheugen gelezen kon worden) Illiac (USA 1948)

Geschiedenis van computers, programmeren, games: 1950-55 Programmeertaal: Assembler Univac (1951) “Universal automatic Computer”. Eerste commerciele computer, bevatte 5000 buizen, woog 15000 kilo, 16 meter lang, 8 meter breed en 2,5 meter hoog. In 1951 werden UNIVAC computers ingezet om de voorspellingen van de presidentsverkiezingen uit te voeren. Univac (1951)

Geschiedenis van computers, programmeren, games: 1955-60 Programmeertaal: Fortran NCR304 (1957) fabrikant “National Cash Registers” – business computer, 99.3% uptime Zebra (“Zeer Eenvoudige Binaire Reken Automaat”), gebouwd bij het Mathematich Centrum in A’dam (voorloper van het CWI) NCR304 (1957) Zebra (NL, 1958)

Geschiedenis van computers, programmeren, games: 1955-60 Tennis for Two (1958) Tennis for Two was het eerste echte computerspel, gemaakt in 1958 in 3 weken tijd door William A. Higinbotham. Het werd door 2 personen gespeeld op het scherm van een oscilloscoop. Het werd getoond als attractie bij een open dag van een laboratorium. Omdat Higinbotham het zelf niets bijzonders vond, heeft hij er nooit patent op aangevraagd. Brookhaven National Laboratory, dept. of Energy

Geschiedenis van computers, programmeren, games: 1960-65 IBM Programmeertaal: Cobol, Algol, Lisp IBM mainframe (“International Business Machines”), en Dec (Digital Equipment Company) PDP-1 (“Programmable Data Processor”) (minicomputer, ca $100.000). Op de PDP-1 werd bij MIT Spacewar gemaakt. Ook andere spellen, zoals Hunt the Wumpus en Lunar Lander werden op de PDP-1 gemaakt. PDP-1

Geschiedenis van computers, programmeren, games: 1965-70 Programmeertaal: Basic LINC-8 (1966) PDP-8 (1966) PDP-8 (1966) LINC-8 (1966). Various paper tape "operating systems" were developed for the PDP-8. Many utility programs became available on paper tape. PAL-8 assembly language source code was often stored on paper tape, read into memory, and saved to paper tape. PAL assembled from paper tape into memory. Paper tape versions of a number of programming languages were available, including DEC's FOCAL interpreter and a 4K FORTRAN compiler and runtime. Toward the end of the PDP-8 era, operating systems such as OS/8 and COS-310 allowed a traditional line mode editor and command-line compiler development system using languages such as PAL-III assembly language, FORTRAN, BASIC, and DIBOL.

Geschiedenis van computers, programmeren, games: 1970-75 Programmeertaal: Pascal PDP-11/40 (1970) (minicomputer, $20.000) PDP-11 (1970)

Geschiedenis van computers, programmeren, games: 1970-75 Eerste Arcade games, waaronder ‘Pong’. Ander voorbeeld ‘Death Race’ (geweld in games). Nog meer games: Breakout, Star Wars (gebruikte vector graphics). Eerst homeconsole: Magnavox Odyssey (1972). Populair vanwege Pong-achtige game “Ping-Pong”. Eerste arcade games Magnavox Odyssey (1972)

Geschiedenis van computers, programmeren, games: 1975-80 Programmeertaal: Simula Atari (1977) Apple-II (1977) (microcomputer, $2000). De Atari, een van de eerste consoles met cartridges, werd goed verkocht, maar vooral vanwege Space Invader. Andere game die toen uitkwam: PacMan (heette eerste Puck Man). In 1979 werden ook de ‘high scores’ voor het eerst gebruikt in coin-up machines. Apple-II (1977)

Geschiedenis van computers, programmeren, games: 1980-85 Commodore64 (1984) Vax-11 (1981) VAX-11 (80er jaren), IBM PC (1981) “Personal computer”, commodore64 (1984) spelcomputer. Nintendo introduceert ‘Donkey Kong’ met als secondary character ‘Mario’. Programmeertaal: (Objective)C IBM-PC (1981) Donkey Kong (1981)

Geschiedenis van computers, programmeren, games: 1980-85 Odyssey2, Coleco, Atari 5200 Commodore 64GS, Nintendo Famicon, Coleco Adam Veel verschillende consoles, maar voornamelijk met slechte games, incompatibiliteits- problemen, enzovoorts. Veel bedrijven failliet.

Geschiedenis van computers, programmeren, games: 1985-90 Apple Mac (1985) Windows 2.0 (1988). Tetris bedacht (Alexey Pajitnov). Atari en Sega komen met consoles. Met focus op goed gameontwerp (Legend of Zelda, Final Fantasy…). Eerste handhelds komen in 1989 uit (Gameboy, Atari Lynx).

Geschiedenis van computers, programmeren, games: 1990-95 Programmeertaal: C++ Moscaic (1994), XS4all eerste NL internetprovider (1993), windows 3.1

Geschiedenis van computers, programmeren, games: 1990-95 Nieuwere consoles (Sega Saturn, Playstation, N64)… Doom Nieuwere consoles komen uit. De SuperNES in 1991, later in ‘94 komt de N64 uit evenals de playstation en de sega saturn.

Geschiedenis van computers, programmeren, games: 1995-2000 Programmeertaal: Java, JavaScript Netscape (1994-1998), Google (1998) SGI Onyx (1996) Nieuwe speltypes: simulatie en vechtspellen Tombraider komt uit

Geschiedenis van computers, programmeren, games: 2000-2005 Nina Brink, voorzitter van de raad van bestuur van internetprovider World Online. Brink begon met de voorbereidingen van de beursgang van World Online, en werd in korte tijd het symbool van de Nieuwe Economie. Op vrijdag 17 maart 2000 vond de beursgang plaats. Geholpen door een enorme reclamecampagne en veel media-aandacht, verdrongen beleggers zich rondom het nieuwe aandeel. Het aandeel World Online noteerde een koers van €43, waarmee de totale waarde van World Online € 12 miljard was. De foto van Nina Brink, die triomfantelijk de camera inkijkt met beide duimen omhoog, sierde alle kranten en televisieprogramma's. Enkele grote aandeelhouders, waaronder de TROS, de Nederlandse Spoorwegen en Telfort verkochten nog die eerste dag hun belang. Tegen de hooggespannen verwachtingen in, steeg de koers van het aandeel op de eerste handelsdag slechts met € 0,20. Maandag 20 maart 2000 ging het mis. De verkooporders van de grote aandeelhouders wekten argwaan bij de andere beleggers en het regende verkooporders. De koers van het aandeel daalde met tientallen procenten in enkele weken tijd. Al snel werd bekend dat Nina Brink enkele weken voor de beursgang haar eigen aandelen had verkocht voor zes euro, nog geen zevende deel van de introductiekoers. Veel beleggers zeggen niet van dit feit op de hoogte te zijn geweest, alhoewel het (zij het enigszins verbloemd en op pagina 99) wel in de prospectus stond. Veel van de kritiek richtte zich op Nina Brink persoonlijk. Op 13 april 2000, nog geen maand na de beursgang, werd ze door de Raad van Commissarissen ontslagen als bestuursvoorzitter en niet veel later vertrok ze bij World Online. World Online werd later in 2000 overgenomen door de Italiaanse internetprovider Tiscali voor een fractie van de €12 miljard die het bedrijf ten tijde van de beursgang waard was.

Geschiedenis van computers, programmeren, games: 2000-2005 Programmeertaal: C# PHP Windows-XP, Apple OS-X

Geschiedenis van computers, programmeren, games: 2005-2010 Netbook, iBook, iPhone Nintendo Wii Windows 7, Mac Snow Leopard

Geschiedenis van computers, programmeren, games: 2010-2016 Programmeertaal: Swift, ES6, TypeScript iPad, Microsoft Kinect, OnLive

Geschiedenis van programmeertalen 1945 Assembler Mach.taal Fortran Algol Basic Pascal Simula (Obj.)C C++ Java 1950 1955 1960 Cobol SQL Lisp Prolog Haskell PHP Perl Python 1965 1970 Functioneel Programmeren (jaar 2) Databases (periode 3) Web- technologie (jaar 2) 1975 1980 1985 1990 1995 Game- programmeren JavaScript 2000 C# 2010 2015 Swift

Geheugencapaciteit 65er jaren: 8 kB RAM ponskaarten 70er jaren: 16 kB RAM tape 80er jaren: 64 kB RAM floppy-disk 85er jaren: 640 kB RAM 90er jaren: 4 MB RAM harddisk 95er jaren: 16 MB RAM CD 00er jaren: 128 MB RAM DVD 05er jaren: 1GB RAM 10er jaren: 16GB RAM SSD, “The cloud”

Programmeer-problemen vroeger: hoe kan ik het geheugen zo efficiënt mogelijk gebruiken? nu: hoe kan ik die overvloed van geheugen nog overzien?

Indeling van het geheugen plaats in het geheugen met een naam groepje variabelen dat bij elkaar hoort groepje objecten dat bij elkaar hoort variabele object object

Indeling van het programma voorschrift om het geheugen te veranderen groepje opdrachten dat bij elkaar hoort groepje methoden dat bij elkaar hoort groepje klassen dat bij elkaar hoort opdracht methode klasse namespace

Programmeer-paradigma’s Imperatief Declaratief Assembler Fortran Basic Functioneel Lisp Procedureel Algol Excel Haskell Pascal C Object- georiënteerd Logisch Simula Prolog C++ Java C#

Vertalen 1/5: Assembler Een assembler vertaalt machine-specifieke broncode naar objectcode, die vervolgens kan worden uitgevoerd .asm sourcecode voor processor 1 Assembler voor processor 1 .exe machinecode voor processor 1 .asm sourcecode voor processor 2 Assembler voor processor 2 .a machinecode voor processor 2

Vertalen 2/5: Compiler Een compiler vertaalt de broncode naar machine-specifieke objectcode, die vervolgens kan worden uitgevoerd .cpp sourcecode Compiler voor processor 1 .exe machinecode voor processor 1 Compiler voor processor 2 .a machinecode voor processor 2

Vertalen 3/5: Interpreter Een processor-specifieke interpreter leest de broncode en voert die uit .php sourcecode Interpreter voor processor 1 Interpreter voor processor 2

Vertalen 4/5: Compiler+Interpr. Een universele compiler vertaalt de broncode naar een bytecode, die gemakkelijk kan worden geïnterpreteerd .java sourcecode .class bytecode Interpreter voor processor 1 Compiler Interpreter voor processor 2

Vertalen 5/5: Compiler+Compiler Een compiler vertaalt de broncode naar een intermediate language , die vervolgens wordt gecompileerd .cs sourcecode .il Intermediate language Compiler voor processor 1 .exe machinecode voor processor 1 Compiler .a machinecode voor processor 2 Compiler voor processor 2

Vertalen 5/5: Compiler+Compiler Een compiler vertaalt de broncode naar een intermediate language , die vervolgens wordt gecompileerd .cs sourcecode Compiler .il Intermediate language Compiler voor processor 1 .exe machinecode voor processor 1 .vb sourcecode .a machinecode voor processor 2 Compiler voor processor 2 Compiler

Programmeer-cyclus Modelleer Specificeer Implementeer Edit Compile Run