Nie graj w gry! Naucz swoje programy robić to za Ciebie. Instytut Informatyki, Uniwersytet Wrocławski 29 lutego 2013
Tytułem wstępu Czym są gry programistyczne Standardowe gry komputerowe Gry programistyczne
Tytułem wstępu Czym są gry programistyczne Standardowe gry komputerowe Gry programistyczne
Tytułem wstępu Czym są gry programistyczne Standardowe gry komputerowe Gry programistyczne
Tytułem wstępu Czym są gry programistyczne Standardowe gry komputerowe Gry programistyczne
Tytułem wstępu Czym są gry programistyczne Standardowe gry komputerowe Gry programistyczne
Tytułem wstępu Początki 1951 OXO / Noughts and Crosses pierwsza (?) gra komputerowa na pewno najstarsza gra z graficznym interfejsem Alexander S. Douglas, University of Cambridge, komputer EDSAC 1961 Darwin: Survival of the Fittest among Programs pierwsza gra programistyczna Victor Vyssotsky, Bell Labs programy przeznaczone na IBM 7090 celem było przetrwanie programu uruchomionego wraz z konkurentami w pewnym obszarze pamięci istnieje program nie do pokonania stworzony przez Roberta Morrisa
Tytułem wstępu Początki cd. 1984 Core War prof A. K. Dewdney, Scientific American 250 powtórka idei: przetrwanie programu w pamięci komputera programy pisane w specjalnym assemblerowym języku Redcode gra była bardzo popularna, wciąż jest żywa! dorobiła się rozbudowanej analizy strategii Mice zwycięzca pierwszego turnieju Core War
Przykłady Gry programistyczne w praktyce
Przykłady Gry programistyczne w praktyce Czyli co jest naprawdę fajne ( ), a co nie ( ).
Przykłady Gry programistyczne możemy podzielić na gry rdzennie programistyczne oraz standardowe gry komputerowe z odpowiednimi wtyczkami. Standardowe gry komputerowe Udostępnione przez twórców gry lub stworzone przez fanów interfejsy programistyczne umożliwiające wprowadzanie do gier własnych programów oraz rozgrywka screen capture (polegająca na sczytywaniu ekranu gry). Gry rdzennie programistyczne Projekty od początku pomyślane jako gry programistyczne implementujące zarówno zasady standardowych gier komputerowych, planszowych, karcianych, itd. jak i reguły specjalnie tworzone z myślą o grających w nie programach.
Przykłady Standardowe gry komputerowe Starcraft BWAPI: An API for interacting with Starcraft: Broodwar (C++, porty do innych języków) AIIDE 2010 StarCraft AI Competition Finals Unreal Tournament 2004 UnrealEngine2RuntimeDemo + Pogamout (Java) BotPrize 2010 winner play A także Super Mario (Java) TORCS - The Open Racing Car Simulator (C++, Java) Ms. Pac-Man (C#, Java), screen capture... Game AI Competition Portal
Przykłady Podsumowując Możliwość grania w prawdziwe gry komputerowe Rywalizacja z prawdziwymi (ludzkimi) graczami
Przykłady Podsumowując Możliwość grania w prawdziwe gry komputerowe Rywalizacja z prawdziwymi (ludzkimi) graczami Skomplikowane, często ciężkie do skonfigurowania, API Bardzo pracochłonne: trudno napisać nawet prostego bota Obsługa jedynie jednego dwóch języków programownia
Przykłady Gry rdzennie programistyczne Colobot/CeeBot CeeBot Have fun programming Płatna edukacyjna gra programistyczna. Własny język programowania przypominający Javę/C#. Robocode Popularna gra stworzona z myślą o nauce Javy Easy to play, hard to master Gameplay: Java/.NET/Ruby/Python/...
Przykłady Gry rdzennie programistyczne cd. A.I. Wars The Insect Mind Ciekawe, niebanalne zasady Rozprowadzanie zaszyfrowanych botów Wizualizacja 2D/3D Własny język programowania przypominający BASIC, opcja graficznego rysowania algorytmu. A także: ITPW Internetowy Turniej Programów Walczących (UW) BattleCode (MIT) Finał 2013 Google AI Challenge Przykładowy mecz QUAIKE, SZOK (UWr) Darwin, Core War, Core Life, Arena, DROID, Omega Crobots, RoboWar, Jrobots, TclRobots,...
Przykłady Podsumowując Generalnie (choć nie zawsze) proste API Zasady gier tworzone z myślą o programowaniu botów Środowiska gier wspomagające debugowanie botów, oglądanie logów, powtórek itd.
Przykłady Podsumowując Generalnie (choć nie zawsze) proste API Zasady gier tworzone z myślą o programowaniu botów Środowiska gier wspomagające debugowanie botów, oglądanie logów, powtórek itd. Często wymyślone/uproszczone języki programowania Zbędne komplikacje zasad Niemożność równoczesnej gry botów z ludźmi Powtarzalność pomysłów (klony Robocode)
Przykłady Więc dlaczego gry programistyczne są fajne a dlaczego nie? Ludzie lubią gry Mobilizują do samodzielnej nauki Zawierają element rywalizacji Pozwalają na wykorzystanie umiejętności programistycznych w widowiskowy sposób Istnieje sporo ciekawych, niszowych projektów, zróżnicowanych pod względem trudności, można próbować wybrać coś dla siebie
Przykłady Więc dlaczego gry programistyczne są fajne a dlaczego nie? Ludzie lubią gry Mobilizują do samodzielnej nauki Zawierają element rywalizacji Pozwalają na wykorzystanie umiejętności programistycznych w widowiskowy sposób Istnieje sporo ciekawych, niszowych projektów, zróżnicowanych pod względem trudności, można próbować wybrać coś dla siebie Bardzo często są to gry niszowe lub jednego sezonu Brak zachęcających środowisk, dużych społeczności skupionych na więcej niż jednej grze Problemy z zabezpieczeniami uruchamianego kodu Tworząc taką grę cieżko wyważyć poziom trudności
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Gry programistyczne a dydaktyka
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Gry programistyczne a dydaktyka Czyli dlaczego warto je wykorzystać w dydaktyce i dlaczego (prawie) nikt tego nie robi.
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Czy gry programistyczne są przydatne w edukacji Tak, ponieważ: nauka przez zabawę i zainteresowanie tematem jest najbardziej bezbolesną formą nauki, dają duże pole do samorozwoju, są efektowne wizualizacja rozgrywki jest znacznie ciekawsza niż ciąg znaczków na konsoli, bez większych problemów można stworzyć gry nakierowane na konkretne zagadnienia, które uczniowie poznają w praktyce, gry takie można również dopasowywać poziomiem do odbiorców, od gimnazjum po studentów, feedback od strony studentów oraz użytkowników jednoznacznie wskazuje na zapotrzebowanie w tej kwestii.
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Skoro gry programistyczne tak świetnie pomogłyby w nauczaniu, to dlaczego w takim razie nie są wykorzystywane na szeroką skalę i nie istnieją w powszechnej świadomości?
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Powód 4. Niszowość Gry o poziomie trudności odpowiednim do dydaktyki niższego szczebla nie mają zazwyczaj dostatecznego wsparcia do zorganizowania wokół siebie atrakcyjnej społeczności. Gry rozwijane w celu organizowania konkursów (czy to jednorazowych czy cyklicznych) są skomplikowane więc liczba grających w nie osób jest niewielka. Generalnie pomimo współzawodniczącego charakteru gier, potrzeba osobowej interakcji pomiędzy graczami (wymiany botów, map, otwartych dyskusji na temat strategii) nie jest, poza aspektem turniejowym, wspierana.
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Powód 3. Niedopasowanie do potrzeb Gry w których tworzone sa własne języki programowania. Poza zapoznaniem z programowaniem jako ideą nie pozwalają na rozwój praktycznie przydatnych umiejętności. Źle wyważony poziom trudności. Zasady gry powinny umożliwiać wykorzystanie ich jako pomocy dydaktycznej przy nauce konkretnych zagadnień/algorytmów.
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Powód 2. Ci co potrafią, robią rzeczy po swojemu Gry które są naprawdę dopasowane do konkretnych potrzeb tworzone są przez prowadzących/studentów z myślą o pojedynczych wydarzeniach/turniejach lub zajęciach. Projekty takie, ze względu na tematykę, dokumentację, zarządzanie bezpieczeństwem, itd. najczęściej nadają się jedynie do lokalnego wykorzystania.
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce Powód 1. Nauczycielski beton,...
Dlaczego gry programistyczne nie są wykorzystywane w dydaktyce... czyli Ci co nie potrafią i nie rozumieją, uważają to za głupie. Większość nauczycieli nie zajmuje się tym aby swoich uczniów zachęcać do wiedzy, jest nieotwartych na nowe możliwości, jest niezainteresowanych tym, aby ich lekcje były atrakcyjne, po prostu szeroko rozminęła się z powołaniem.
Wykorzystanie w dydaktyce wyższego szczebla Jak to zwykle w edukacji bywa im wyżej tym lepiej.
Wykorzystanie w dydaktyce wyższego szczebla Computational Intelligence and Games in Practice IEEE Conference on Computational Intelligence and Games AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment Genetic and Evolutionary Computation Conference IEEE World Congress on Computational Intelligence
Wykorzystanie w dydaktyce wyższego szczebla Czyli jednak Niektórzy zdają sobie sprawę z tego, że ludzie wychowani na grach komputerowych po prostu lubią gry komputerowe, informatycy/programiści lubią programować i pokazywać, że są niestandardowi/lepsi. Szkoda tylko, że jest to wąskie grono bawiące się samo ze sobą i pozostaje to bez globalnego wpływu na edukację niższych szczebli.
Wstęp do systemu Meridius Jak można temu zaradzić
Wstęp do systemu Meridius Jak można temu zaradzić Czyli poszukiwaniu rozwiązania idealnego.
Wstęp do systemu Meridius Dążenia i inspiracje Gry flashowe SPOJ Kurnik Gamification Web 2.0
Wstęp do systemu Meridius Cele wiele dostępnych gier, możliwość sprawnego dodawania nowych możliwość gry manualnej bez udziału programów wszystko online bez potrzeby ściągania i instalowania dodatkowych narzędzi obsługa wielu prawdziwych języków programowania aspekt społecznościowy, rankingi, konkursy,...
Wstęp do systemu Meridius Cele wiele dostępnych gier, możliwość sprawnego dodawania nowych możliwość gry manualnej bez udziału programów wszystko online bez potrzeby ściągania i instalowania dodatkowych narzędzi obsługa wielu prawdziwych języków programowania aspekt społecznościowy, rankingi, konkursy,...
Wstęp do systemu Meridius
Wstęp do systemu Meridius lim t (t) = Web 2.0
Koniec Dziękuję za uwagę
Koniec Dziękuję za uwagę I zapraszam do dyskusji oraz zadawania pytań
Literatura Literatura uzupełniająca Meridius - system zarządzający grami programistycznymi, http://gryprogramistyczne.pl Programming game Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/wiki/programming_game Programming Games Wiki, http://programminggames.org Game AI Competition Portal, http://cilab.sejong.ac.kr/gc/doku.php Alexander K. Dewdney, In the game called Core War hostile programs engage in a battle of bits. Scientific American, 250:14 22, May 1984.