Preview only show first 10 pages with watermark. For full document please download

Http://www.itjobswatch.co.uk/jobs/uk/python%20programmer.do

   EMBED


Share

Transcript

Python i grafika 3D dla gier wideo  Niniejszy  dokument  zawiera  krótką  charakterystykę  języka  programowania  Python  oraz  stworzonych  w  tym  języku  narzędzi  przeznaczonych  do  tworzenia  grafiki  3D  w  takich  dziedzinach  jak:  gry  komputerowe  (w  tym  również  gry  online),  grafika  komputerowa  3D,  animacja  (filmy).  Jest  to  jedynie  wycinek  możliwości  jakie  udostępnia ten język ale z punktu widzenia projektu skoncentrowałem się tutaj tylko na tych zastosowaniach,  które mogą być w nim przydatne.  Ponieważ  Python  jest  językiem  programowania  charakteryzującym  się  tym,  że  stosunkowo  łatwo  jest  się  go  nauczyć  i  łatwo  przejść  do  etapu  gdy  można  go  rzeczywiście  efektywnie  używać  jest  stosowany  przez  ludzi  pracujących w różnorodnych dziedzinach nauki i przemysłu (bioinformatyka, obliczenia naukowe, modelowanie  matematyczne, sztuczna inteligencja,  neuroscience, analiza danych, grafika  komputerowa, tworzenie aplikacji  internetowych, systemy informatyczne wspierające zarządzanie przedsiębiorstwami).  Dokument  ten  jest  podzielony  na  dwie  części.  Pierwsza  zawiera  więc  krótki  przegląd  projektów,  które  są  rozwijane w języku Python. Wiele informacji szczegółowych można znaleźć w Internecie i nie ma sensu tutaj ich  wszystkich przytaczać. Ta część ma na celu raczej pokazanie różnorodności zastosowań tego języka i pokazanie  Czytelnikowi, że jest to język, którego warto się uczyć. Poza wielością zastosowań zarówno w sferze przemysłu  jak i nauki język ten jest bardzo dobrym wstępem do nauki programowania w ogóle. Umożliwia zapoznanie się  w bardzo intuicyjny sposób z różnymi paradygmatami tworzenia oprogramowania (programowanie obiektowe,  proceduralne,  funkcjonalne).  Bardzo  ważna  jest  możliwość  integracji  z  innymi  językami  programowania:  w  szczególności C++ i Java (oraz środowiskiem .NET) dzięki czemu można łatwo pisać programy używające np. klas  napisanych w tych językach.  [1] „Structure and Interpretation of Computer Programs” (słynny kurs programowania na MIT, książka o tym  samym tytule) po wielu latach zajęć prowadzonych w języku LISP (jako głównego języka sztucznej inteligencji)  przeszedł w ostatnim czasie na język Python (decyzja wzbudzała dyskusje lecz jest to fakt).  [2] Sztuczna inteligencja: Peter Norvig (Director of Research Google), jeden z autorów książki „Artificial  Intelligence: A Modern Approach”;. Google jest jedną z firm, która związana jest z tym językiem.  [3] Hacker culture: tekst Erica S. Raymonda „Why Python?”.  Druga  część  niniejszego  tekstu  zawiera  przegląd  trzech  najbardziej    popularnych  obecnie  narzędzi  przeznaczonych do tworzenia szeroko rozumianej grafiki 3D. Spośród wielu dostępnych w Internecie: Panda 3D,  Blender 3D, VPython, PyGame, PySoy, Soya 3D i inne, poniżej zamieściłem jedynie linki do wybranych: Blender  3D,  Panda  3D,  VPython  –  dwa  pierwsze  są  całkowicie  profesjonalnymi  narzędziami  wykorzystywanymi  w  dziedzinie grafiki i animacji komputerowej, ostatni natomiast jest projektem edukacyjnym i jako taki umożliwia  bardzo łatwe zapoznanie się z programowaniem w 3D.  Jeżeli chodzi o instalację oprogramowania to chętnie służę pomocą. O ile sama instalacja jest banalnie prosta to  wybór  tego  co  najlepiej  zainstalować  może  być  trudny  dla  osób,  które  nie  miały  kontaktu  z  tym  językiem.  Osobom  zainteresowanym  podam  linki  do  odpowiednich  stron  z  oprogramowaniem,  dodatkowymi  bibliotekami oraz dostępnymi środowiskami programistycznymi.    Praca na rynku IT. Poniższa strona obrazuje zapotrzebowanie na programistów Python w branży IT:  http://www.itjobswatch.co.uk/jobs/uk/python%20programmer.do    I. PROJEKTY UŻYWAJĄCE JĘZYKA PYTHON  Największy przegląd projektów używających języka Python można znaleźć na oficjalnej stronie:  http://www.python.org/about/success/ gdzie podano je uporządkowane wg różnych zastosowań.    Z najbardziej znanych można wymienić takie jak:   Django, Zope, Plone – Web Applications, Web Frameworks  ERP5 – Management Information System  EVE Online ‐ massive multiplayer game  Firaxis Games – Civilization IV  TAPtools® ‐ Python in Air Traffic Control    II. GRAFIKA 3D  Ogólnie o tworzeniu gier 3D w Pythonie i … przykłady na zachętę  PythonGames (z głównej strony wiki Pythona: wiki.python.org):  http://wiki.python.org/moin/PythonGames  Python 3D Software Collection: grafika 3D w Pythonie (przegląd projektów):  http://www.vrplumber.com/py3d.py  Artykuł o głównych projektach związanych z tworzeniem 3D w Pythonie:  „3D game development contest will attract Python game developers”  http://www.indicthreads.com/1148/3d‐game‐development‐contest‐will‐attract‐python‐game‐developers/  Zastosowanie przykładowe: z Pythona korzystają m.in. takie gry jak:  Civilization 4: http://www.2kgames.com/civ4/home.htm  Battlefield 2: Is a strategy and first person shooter game that uses python for logic and server controls  EVE Online ‐ multiplayer: http://play.eveonline.com/en/screenshots.aspx     Panda 3D   Disney: http://disney.go.com/disneycareers/internships/walt_disney_imagineering.html,  Carnegie Mellon: http://www.etc.cmu.edu/  Panda3d Full featured open source 3d engine specifically for python but written in c++. Features: performance,  multi‐platform support, scene graph, export/import pipeline, 3D Audio, collision detection, physics, unusual I/O  devices, basic AI library, browser plugin, animations, networking ... and many more.  Panda3D is a free 3D engine designed to reduce the time and cost of game development. It has a short learning  curve,  a  straightforward API,  and  high  resilience  to  user  error.  Panda3D  is  written  in  C++  and  is  tightly  integrated  with  the  python  scripting  language.  It  was  originally  developed  by  Disney  Imagineering  and  was  released as free software in 2002. Panda3D is actively being developed by Disney Imagineering and Carnegie‐ Mellon’s Entertainment Technology Center.  Official web page:  http://www.panda3d.org/  Manuals (cheat sheets):  http://www.panda3d.org/wiki/index.php/Cheat_Sheets  (source at Carnegie Mellon Entertainment Technology Center:  http://www.p3dp.com/doku.php?id=dotherwise:start)  Panda 3D Examples ‐‐ games:  Second Antarean War: http://aff2aw.com/index.html  Pirates of the Caribbean online: http://piratesonline.go.com/welcome  Ciekawe projekty na bazie Panda 3D:  CODE3D: http://www.code3d.com/default.aspx ‐ tworzenie wirtualnych środowisk, map, planów, które można  następnie udostępniać w sieci (http://www.panda3d.org/showss.php?shot=ssg‐code3d/code3D03 ‐ Code3D is  a toolset that is available to emergency responders for creating their own 3D virtual training scenarios. Code3D  is realistic and engaging. Users can create their own training environment; add hazards and photos that can  change over time. Users can then use the playback function to walk through the 3D environment and scenario  in real‐time. It utilizes Panda3D as the core 3D rendering and event management engine and wxPython for the  2D user interface.)    Blender 3D  Blender3D is an open source game engine, modeler, animator and 3D renderer under the GNU GPL license.  Uses Python as scripting language. Blender is a 3d game engine that uses python to make 3d games.  Official Blender Page: http://www.blender.org/  Blender Manual: http://wiki.blender.org/index.php/Doc:Manual  The Official Blender Gamekit:   http://news.hiperia3d.com/2009/09/blender‐gamekit‐book‐make‐3d‐games‐with.html    Tworzenie gier w Blender 3D i Python  ‐‐ BGE: Blender Game Engine  http://troman.pl/    Podstawy Pythona w BGE: „TROMAN – tworzenie gier”:  http://troman.pl/download/tutoriale/podstawy‐pythona‐bge.zip  „Wirtualne spacery”:  Nature: http://troman.pl/?p=387  Ruinas: http://troman.pl/?p=480  Stucco: http://troman.pl/?p=800  Przykładowe gry:  Burning Rubber: http://troman.pl/?p=330  Polskie forum nt tworzenia gier w BGE:  (http://forum.blender3d.pl/viewtopic.php?t=4489&sid=138f6e965def177ad989c1b371d9b542)    Blender 3D Tutorials:  http://www.tutorialsforblender3d.com/    How to write scripts in Python for Blender 3D:  http://jmsoler.free.fr/didacticiel/blender/tutor/python_script00_en.htm  http://wiki.blender.org/index.php/Extensions:Py/Scripts    Blender 3D – Plugins:  Przykładowe pluginy do tworzenia animowanych postaci: http://www.jpbouza.com.ar/ESP2/descargas/blenrig‐ 3/id/en  Blender 3D Books:  Tony Mullen, Mastering Blender (http://www.amazon.com/Mastering‐Blender‐Tony‐ Mullen/dp/0470407417/ref=pd_sim_b_1)  Tony Mullen, Bounce, Tumble, and Splash!: Simulating the Physical World with Blender 3D  (http://www.amazon.com/Bounce‐Tumble‐Splash‐Simulating‐Physical/dp/0470192801/ref=cm_cr_pr_sims_t)      VPython  Oficjalna strona: http://www.vpython.org/  Króciutko o projekcie (z oficjalnej strony Pythona): http://wiki.python.org/moin/VPython#preview  3D programming with Vpython: http://linuxgazette.net/144/john.html    Visual Reference: http://www.vpython.org/webdoc/visual/index.html