VIRTUAL PLAYGROUND Photocase.Com

Total Page:16

File Type:pdf, Size:1020Kb

VIRTUAL PLAYGROUND Photocase.Com KNOW-HOW Panda3D 3D worlds with Python and Panda3D VIRTUAL PLAYGROUND Photocase.com Several free game engines are available for Linux users, but programming with them is often less than intuitive. Panda3D is an easy-to-use engine that is accessible enough for newcomers but still powerful enough for the pros at Disney Studios. BY OLIVER FROMMEL he inventors of Micky Mouse and which is more intuitive and easier to use more realistic when textures – that is, Donald Duck had already set up than C++. images of genuine objects – are applied Ta number of real-life theme parks to them. Realism is not always the goal. by the time they decided to venture into Getting Started For example, Toontown uses comic-style the virtual world of the Internet. In the The Panda engine is easy to install – pro- characters (Figure 1), although this does year 2000, programmers at the Disney vided you have an RPM or DPKG-based not influence the distinction between VR Studios started to create a software distribution. The Debian package from geometry and surface properties in a 3D application to help them develop their the project homepage was also easy with model. 3D online game, Toontown. the latest Ubuntu. All it took to get Models are typically drawn in special- The result of this work is Panda3D [1], Panda running was a symbolic link from ist programs and then converted into a a game engine that supports the Python /usr/lib/libssl.so.0.9.8 to /usr/lib/libssl. format that the 3D engine can handle. scripting language. In 2002, Disney pub- so.0.9.7. In all other cases you will need lished the package under a free license to build Panda from the source code. Al- Listing 1: A simple to make it easier for universities to con- though this is fairly trivial, it does take Panda3D Script tribute to the project. awhile, and there are a number of de- 01 import direct.directbase. A game engine like Panda3D takes re- pendencies on developer packages to DirectStart petitive work, such as loading characters fulfill – OpenSSL and LibTIFF, for exam- 02 and sounds, basic motion control, and ple. Change directory to panda3d-1.2.3 many other things, off a game develop- for the build, and run makepanda/make- 03 panda = loader. er’s hands. The fact that these functions panda.py --everything. If you leave out loadModel("models/panda") are programmed in C++ guarantees the the last parameter, Makepanda will list 04 panda.reparentTo(render) kind of performance you need for a the various build options. The doc/ 05 panda.setPos(0,30,-5) smooth look and feel. Programmers who INSTALL-MK file has more details. 06 rely on the Panda3D game engine can Virtual worlds basically comprise sim- access its infrastructure via Python, ple, geometric elements that appear 07 run() 52 ISSUE 74 JANUARY 2007 WWW.LINUX - MAGAZINE.COM Panda3D KNOW-HOW There are export plugins to Panda3D for- mat for the professional Windows tools Maya, Softimage XSI, and 3DStudio Max. A shareware program called Milkshape provides a useful alternative for home users; many people use it to edit Quake models. Linux users do not have any choice here, with the Blender 3D program being your only option. Blender does not sup- port the Panda3D format, also known as Egg, by default. To add support for Egg, you will need to install one of three ex- isting Blender plugins, all of which have limitations. The most mature of these pl- ugins is Chicken [2] by Peruvian devel- oper Daniel Amthauer. While I was writ- ing this article, Daniel released the com- pletely reworked and improved version Figure 1: Disney's online game, Toontown, was implemented using the free Panda3D engine. 1.0a of the plugin, which now includes useful documentation (Figure 2). that the axis of rotation lies outside of the tree inherit the properties of their To install Chicken, unpack the zip ar- the model. parent nodes. For example, you can sim- chive in your .blender/scripts directory. ply define the skin color for the rump Now launch Blender, and you should Scene Tree to apply the same color to the limbs. Of find the Egg export feature below File | I haven’t yet explained Line 4 of Listing course, you can change the appearance Export | Chicken. 1. It relies on a basic concept of three of subordinate nodes however you like. dimensional computer graphics, scene To make sure that Panda3D will Loading a World graphs. From a computer science point display the models you load, you must The sample files will be fine for our first of view, this is a graph that contains and insert them at a position below the ren- steps with the 3D engine; the default hierarchically organizes all the objects der object in the scene tree. And this is install places these files in /usr/share/ displayed in a scene. However, this the- what Line 4 in Listing 1 does. At the end panda3d/models. An extremely simple ory is not important to the following of the script, you can see a run() instruc- Panda3D script loads and displays a discussion; instead, just imagine a scene tion that starts the event loop; this is an model (Listing 1). The results of this tree. infinite loop in which the program runs, simple script are shown in Figure 3. The model of a human being can be updating the display, processing key- The script starts by loading the basic portrayed in a scene tree in such a way presses, and so on. Python module direct.directbase.Direct- that the rump is at the root of the tree, Start. This makes a loader object avail- and the arms and legs are represented as Keys able. The object provides the loadModel branches of the tree. Hands and feet, fin- The camera defines the appearance of a which finally loads the model. As you gers and toes would then be twigs. The scene on screen. Of course, the camera is can see, I left out the .egg extension advantage of this approach is that mod- a virtual object like all the others, how- here, as the engine does not need the els with a hierarchical structure are eas- ever, it possesses similar properties to a extension to find the model. ier to move in scripts. If the Python code real camera. The properties include the The load function returns a Python ob- moves the rump ject which can be used to reference the in our example, loaded model in the course of the pro- the limbs of the gram. The setPos() changes the position human model of the model in 3D space. The first vari- would automati- able represents the X coordinates, fol- cally move with lowed by Y and Z. In a similar fashion, the rump. setScale() scales the object in three di- The same prin- mensions. In the Panda coordinate sys- ciple also applies tem, X points to the right, Z upward, and to rendering attri- Y into the screen, from the user’s point butes, which de- of view. scribe the appear- You can now use your mouse to rotate, ance of the mod- move, and scale the model. Try all three el’s surface. By mouse buttons. Rotation may seem a lit- default, the ele- Figure 2: The Blender plugin Chicken exports models to the Panda tle strange at first. The reason for this is ments lower down Egg format. WWW.LINUX - MAGAZINE.COM ISSUE 74 JANUARY 2007 53 KNOW-HOW Panda3D Listing 2: Moving the camera position in the scene, the angle class is derived from this, the method is on one or all three of the axes, the focal an instance method that can be ad- Camera distance, and many other things. The ex- dressed via the self keyword. The first 01 import sys ample in Listing 2 shows how to move parameter it expects is a string with the 02 import direct.directbase. the camera to change the view of the name of the key that was pressed. This DirectStart model currently on display. is followed by the function that we want At the same time, the example demon- Panda3D to execute when the user 03 from direct.actor import Actor strates how Panda3D processes user presses the key. Thus, Line 15 quits the 04 from direct.showbase import keypresses. As this is simpler to handle program when the user presses the DirectObject if your Panda program is based on a Escape key. 05 class that provides appropriate keyboard 06 class Game(DirectObject. methods, this example is object-oriented, Camera DirectObject): in contrast to the previous one. The next four lines map camera move- 07 angle = 0 To keep things simple, the whole func- ments to the cursor keys. The left and 08 distance = 0 tion resides in the Game class, which in- right arrow keys run the spinCamera() 09 def __init__(self): herits from the Panda DirectObject.Direc- method; the up and down arrows call tObject object (Line 6). To allow this to zoomCamera(). When this function is 10 self.panda = loader. happen, Line 4 imports the required passed in by accept(), a list of additional loadModel("models/panda") module. The code, which was previously parameters can be added for Panda to 11 self.panda. listed top down in the script, now moves pass to the function in question. reparentTo(render) to the Game class __init__ constructor. In Listing 2, the only parameter passed 12 self.panda.setPos(0, 1000, Now, when a new Game object is to the camera functions is the camera -100) created by a call to Game() in Line 32, motion direction (1 and -1), however, we 13 self.panda.setScale(0.5, Python will automatically call the still need list notation with square brack- 0.5, 0.5) constructor.
Recommended publications
  • Learn Python the Hard Way
    ptg11539604 LEARN PYTHON THE HARD WAY Third Edition ptg11539604 Zed Shaw’s Hard Way Series Visit informit.com/hardway for a complete list of available publications. ed Shaw’s Hard Way Series emphasizes instruction and making things as ptg11539604 Zthe best way to get started in many computer science topics. Each book in the series is designed around short, understandable exercises that take you through a course of instruction that creates working software. All exercises are thoroughly tested to verify they work with real students, thus increasing your chance of success. The accompanying video walks you through the code in each exercise. Zed adds a bit of humor and inside jokes to make you laugh while you’re learning. Make sure to connect with us! informit.com/socialconnect LEARN PYTHON THE HARD WAY A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code Third Edition ptg11539604 Zed A. Shaw Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.
    [Show full text]
  • Audio Middleware the Essential Link from Studio to Game Design
    AUDIONEXT B Y A LEX A N D E R B R A NDON Audio Middleware The Essential Link From Studio to Game Design hen I first played games such as Pac Man and GameCODA. The same is true of Renderware native audio Asteroids in the early ’80s, I was fascinated. tools. One caveat: Criterion is now owned by Electronic W While others saw a cute, beeping box, I saw Arts. The Renderware site was last updated in 2005, and something to be torn open and explored. How could many developers are scrambling to Unreal 3 due to un- these games create sounds I’d never heard before? Back certainty of Renderware’s future. Pity, it’s a pretty good then, it was transistors, followed by simple, solid-state engine. sound generators programmed with individual memory Streaming is supported, though it is not revealed how registers, machine code and dumb terminals. Now, things it is supported on next-gen consoles. What is nice is you are more complex. We’re no longer at the mercy of 8-bit, can specify whether you want a sound streamed or not or handing a sound to a programmer, and saying, “Put within CAGE Producer. GameCODA also provides the it in.” Today, game audio engineers have just as much ability to create ducking/mixing groups within CAGE. In power to create an exciting soundscape as anyone at code, this can also be taken advantage of using virtual Skywalker Ranch. (Well, okay, maybe not Randy Thom, voice channels. but close, right?) Other than SoundMAX (an older audio engine by But just as a single-channel strip on a Neve or SSL once Analog Devices and Staccato), GameCODA was the first baffled me, sound-bank manipulation can baffle your audio engine I’ve seen that uses matrix technology to average recording engineer.
    [Show full text]
  • Python Programming
    Python Programming Wikibooks.org June 22, 2012 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike 3.0 Unported license. An URI to this license is given in the list of figures on page 149. If this document is a derived work from the contents of one of these projects and the content was still licensed by the project under this license at the time of derivation this document has to be licensed under the same, a similar or a compatible license, as stated in section 4b of the license. The list of contributors is included in chapter Contributors on page 143. The licenses GPL, LGPL and GFDL are included in chapter Licenses on page 153, since this book and/or parts of it may or may not be licensed under one or more of these licenses, and thus require inclusion of these licenses. The licenses of the figures are given in the list of figures on page 149. This PDF was generated by the LATEX typesetting software. The LATEX source code is included as an attachment (source.7z.txt) in this PDF file. To extract the source from the PDF file, we recommend the use of http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ utility or clicking the paper clip attachment symbol on the lower left of your PDF Viewer, selecting Save Attachment. After extracting it from the PDF file you have to rename it to source.7z. To uncompress the resulting archive we recommend the use of http://www.7-zip.org/.
    [Show full text]
  • Symantec Web Security Service Policy Guide
    Web Security Service Policy Guide Version 6.10.4.1/OCT.12.2018 Symantec Web Security Service/Page 2 Policy Guide/Page 3 Copyrights Copyright © 2018 Symantec Corp. All rights reserved. Symantec, the Symantec Logo, the Checkmark Logo, Blue Coat, and the Blue Coat logo are trademarks or registered trademarks of Symantec Corp. or its affiliates in the U.S. and other coun- tries. Other names may be trademarks of their respective owners. This document is provided for informational purposes only and is not intended as advertising. All warranties relating to the information in this document, either express or implied, are disclaimed to the maximum extent allowed by law. The information in this document is subject to change without notice. THE DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. SYMANTEC CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE. Symantec Corporation 350 Ellis Street Mountain View, CA 94043 www.symantec.com Policy Guide/Page 4 Symantec Web Security Service Policy Guide The Symantec Web Security Service solutions provide real-time protection against web-borne threats. As a cloud-based product, the Web Security Service leverages Symantec's proven security technology as well as the WebPulse™ cloud com- munity of over 75 million users.
    [Show full text]
  • The Kilobot Gym
    The Kilobot Gym Gregor H.W. Gebhardt1 and Gerhard Neumann2 Abstract— Simulation is a crucial tool when learning control policies for robotic systems. The evaluation of a control policy is a recurring task in most learning algorithms which can be significantly sped up when using a simulation instead of the real system. This improvement in learning speed becomes even more significant when working with robot swarms which usually operate rather slow and need to be tediously initialized by hand. In this paper, we present a novel simulator for swarm Fig. 1. Left: a scene with a small swarm of Kilobots with an object in the robotics. Our simulator is inspired by the Kilobot platform and background. Right: a swarm of Kilobots in our simulation framework with builds on the OpenAI gym. This allows to evaluate a wide range with four square objects. of learning algorithms using a unified interface for controlling the swarm. The code of our simulation framework is available at [3]. time step. The implementation uses JavaScript embedded in HTML files which results in code that is hard to use for I. INTRODUCTION programmatic evaluations and, furthermore, the reusability Learning the parameters of a control policy is usually of JavaScripts without any modularity goes towards zero. an iterative process of evaluating the parameters on the Another approach to simulate a swarm of Kilobots is to system and improving the parameters based on the evaluation use the robot simulator V-REP [6]. The simulations are results. In robotics, the most time consuming task is often the performed in 3D, where the user can select between different evaluation of the parameters on a real robotic system.
    [Show full text]
  • Exploiting Traditional Gameplay Characteristics to Enhance Digital Board Games
    Exploiting traditional gameplay characteristics to enhance digital board games Fulvio Frapolli∗, Apostolos Malatras∗ and Beat´ Hirsbrunner∗ ∗Department of Informatics University of Fribourg, Switzerland Email: name.surname @unifr.ch { } Abstract—Computer enhanced board and card games consti- population of board game players and human-computer inter- tute a highly engaging and entertaining activity as attested by action experts [7]. Additionally, the key role that the players their widespread popularity and the large amount of dedicated have in the physical environment in modifying game aspects players. Nonetheless, when considering these digital counterparts of traditional board games it becomes evident that certain to increase their level of enjoyment, as highlighted in [8], features of the latter, such as the flexibility of games and the should not be neglected. In this respect, when shifting to the inherent social interactions that regard the player as an active digital environment end-user involvement, namely the ability participant and not merely as the end-user of a product, have of players with basic programming skills (i.e. understanding been in general neglected. In particular, the ability to customize of fundamental concepts of algorithmics, such as if . then and adapt games according to the players’ needs is one of the key factors of their success and should thus not be ignored when . else constructs or for loops) to customize a board game, porting them to the digital environment. In this paper we present should be strongly promoted. our work on a holistic framework titled FLEXIBLERULES that In order to achieve these goals, we present here the FLEXI- addresses these limitations by bringing the intrinsic flexibility BLERULES framework which enables runtime modification of of board games played in the traditional environment into the all aspects of a game in a straightforward manner.
    [Show full text]
  • Foundations for Music-Based Games
    Die approbierte Originalversion dieser Diplom-/Masterarbeit ist an der Hauptbibliothek der Technischen Universität Wien aufgestellt (http://www.ub.tuwien.ac.at). The approved original version of this diploma or master thesis is available at the main library of the Vienna University of Technology (http://www.ub.tuwien.ac.at/englweb/). MASTERARBEIT Foundations for Music-Based Games Ausgeführt am Institut für Gestaltungs- und Wirkungsforschung der Technischen Universität Wien unter der Anleitung von Ao.Univ.Prof. Dipl.-Ing. Dr.techn. Peter Purgathofer und Univ.Ass. Dipl.-Ing. Dr.techn. Martin Pichlmair durch Marc-Oliver Marschner Arndtstrasse 60/5a, A-1120 WIEN 01.02.2008 Abstract The goal of this document is to establish a foundation for the creation of music-based computer and video games. The first part is intended to give an overview of sound in video and computer games. It starts with a summary of the history of game sound, beginning with the arguably first documented game, Tennis for Two, and leading up to current developments in the field. Next I present a short introduction to audio, including descriptions of the basic properties of sound waves, as well as of the special characteristics of digital audio. I continue with a presentation of the possibilities of storing digital audio and a summary of the methods used to play back sound with an emphasis on the recreation of realistic environments and the positioning of sound sources in three dimensional space. The chapter is concluded with an overview of possible categorizations of game audio including a method to differentiate between music-based games.
    [Show full text]
  • Symantec Web Security Service Policy Guide
    Web Security Service Policy Guide Revision: NOV.07.2020 Symantec Web Security Service/Page 2 Policy Guide/Page 3 Copyrights Broadcom, the pulse logo, Connecting everything, and Symantec are among the trademarks of Broadcom. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. Copyright © 2020 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. For more information, please visit www.broadcom.com. Broadcom reserves the right to make changes without further notice to any products or data herein to improve reliability, function, or design. Information furnished by Broadcom is believed to be accurate and reliable. However, Broadcom does not assume any liability arising out of the application or use of this information, nor the application or use of any product or circuit described herein, neither does it convey any license under its patent rights nor the rights of others. Policy Guide/Page 4 Symantec WSS Policy Guide The Symantec Web Security Service solutions provide real-time protection against web-borne threats. As a cloud-based product, the Web Security Service leverages Symantec's proven security technology, including the WebPulse™ cloud community. With extensive web application controls and detailed reporting features, IT administrators can use the Web Security Service to create and enforce granular policies that are applied to all covered users, including fixed locations and roaming users. If the WSS is the body, then the policy engine is the brain. While the WSS by default provides malware protection (blocks four categories: Phishing, Proxy Avoidance, Spyware Effects/Privacy Concerns, and Spyware/Malware Sources), the additional policy rules and options you create dictate exactly what content your employees can and cannot access—from global allows/denials to individual users at specific times from specific locations.
    [Show full text]
  • How to Install Pygame for Python 3 Pygame Is a Set of Python Modules Designed for Writing Games
    How to install PyGame for Python 3 PyGame is a set of python modules designed for writing games. It uses the SDL library to allow you to create games and multimedia programs in Python. PyGame is highly portable and runs on nearly every platform and operating system. The SDL library, or Simple DirectMedia Layer is a development library written in C that provides low-level access to audio, keyboard, mouse, joystick and graphics hardware. PyGame is what allows us to use SDL with Python. Python install If you don’t already have Python3 installed download it from http://www.python.org/downloads/ Make sure you pick the correct installer for your computer, e.g. Windows x86 or Windows x64 or Mac, etc. When running the installer it should place the installation in the default location, for Python3 version 3.4 on Windows this is: C:\python34 On Mac OSX it is: /usr/local/bin/python On Windows, make sure Python is added to the system path by opening the command prompt ( + R, ‘cmd’) and type set path=%path%;C:\python34 Where 34 is equal to your Python 3 version number. Check the Python 3 install To check that Python has installed correctly open the command prompt or terminal and simply type python If this causes an error, then Python has not installed correctly. If it does not, you should see a new python prompt that looks like this: >>> To exit the Python prompt, press Ctrl + z, then press the Enter key. Then exit the command prompt or terminal. If you chose you can install a Python IDE or Python editor at this point, before continuing on.
    [Show full text]
  • Realidad Aumentada Como Estrategia Didáctica En Curso De Ciencias Naturales De Estudiantes De Quinto Grado De Primaria De La Institución Educativa Campo Valdés
    REALIDAD AUMENTADA COMO ESTRATEGIA DIDÁCTICA EN CURSO DE CIENCIAS NATURALES DE ESTUDIANTES DE QUINTO GRADO DE PRIMARIA DE LA INSTITUCIÓN EDUCATIVA CAMPO VALDÉS OSCAR MAURICIO BUENAVENTURA BARON UNIVERSIDAD DE MEDELLIN ESPECIALIZACION EN INGENIERIA DE SOFTWARE COHORTE VI MEDELLIN 2014 REALIDAD AUMENTADA COMO ESTRATEGIA DIDÁCTICA EN CURSO DE CIENCIAS NATURALES DE ESTUDIANTES DE QUINTO GRADO DE PRIMARIA DE LA INSTITUCIÓN EDUCATIVA CAMPO VALDÉS OSCAR MAURICIO BUENAVENTURA BARON Requisito para optar al grado de Especialista en Ingeniería de Software Asesor EDWIN MAURICIO HINCAPIÉ MONTOYA UNIVERSIDAD DE MEDELLIN ESPECIALIZACION EN INGENIERIA DE SOFTWARE COHORTE VI MEDELLIN 2014 Nota de aceptación: ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Firma presidente de jurado ___________________________________ Firma del jurado ___________________________________ Firma del jurado 3 Con todo mi cariño y mi amor para las personas que hicieron todo en la vida para que yo pudiera lograr mis sueños, por motivarme y darme la mano cuando sentía que el camino se terminaba, a ustedes por siempre mi corazón y mi gratitud. Mamá, Papá, Tía y Tocayo 4 TABLA DE CONTENIDO RESUMEN ...........................................................................................................................................9 INTRODUCCION .............................................................................................................................
    [Show full text]
  • Archive and Compressed [Edit]
    Archive and compressed [edit] Main article: List of archive formats • .?Q? – files compressed by the SQ program • 7z – 7-Zip compressed file • AAC – Advanced Audio Coding • ace – ACE compressed file • ALZ – ALZip compressed file • APK – Applications installable on Android • AT3 – Sony's UMD Data compression • .bke – BackupEarth.com Data compression • ARC • ARJ – ARJ compressed file • BA – Scifer Archive (.ba), Scifer External Archive Type • big – Special file compression format used by Electronic Arts for compressing the data for many of EA's games • BIK (.bik) – Bink Video file. A video compression system developed by RAD Game Tools • BKF (.bkf) – Microsoft backup created by NTBACKUP.EXE • bzip2 – (.bz2) • bld - Skyscraper Simulator Building • c4 – JEDMICS image files, a DOD system • cab – Microsoft Cabinet • cals – JEDMICS image files, a DOD system • cpt/sea – Compact Pro (Macintosh) • DAA – Closed-format, Windows-only compressed disk image • deb – Debian Linux install package • DMG – an Apple compressed/encrypted format • DDZ – a file which can only be used by the "daydreamer engine" created by "fever-dreamer", a program similar to RAGS, it's mainly used to make somewhat short games. • DPE – Package of AVE documents made with Aquafadas digital publishing tools. • EEA – An encrypted CAB, ostensibly for protecting email attachments • .egg – Alzip Egg Edition compressed file • EGT (.egt) – EGT Universal Document also used to create compressed cabinet files replaces .ecab • ECAB (.ECAB, .ezip) – EGT Compressed Folder used in advanced systems to compress entire system folders, replaced by EGT Universal Document • ESS (.ess) – EGT SmartSense File, detects files compressed using the EGT compression system. • GHO (.gho, .ghs) – Norton Ghost • gzip (.gz) – Compressed file • IPG (.ipg) – Format in which Apple Inc.
    [Show full text]
  • PDF of Making Games with Python & Pygame
    Making Games with Python & Pygame By Al Sweigart Copyright © 2012 by Albert Sweigart Some Rights Reserved. ―Making Games with Python & Pygame‖) is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. You are free: To Share — to copy, distribute, display, and perform the work To Remix — to make derivative works Under the following conditions: Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). (Visibly include the title and author's name in any excerpts of this work.) Noncommercial — You may not use this work for commercial purposes. Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. This summary is located here: http://creativecommons.org/licenses/by-nc-sa/3.0/us/ Your fair use and other rights are in no way affected by the above. There is a human-readable summary of the Legal Code (the full license), located here: http://creativecommons.org/licenses/by-nc-sa/3.0/us/legalcode Book Version 2 If you've downloaded this book from a torrent, it’s probably out of date. Go to http://inventwithpython.com/pygame to download the latest version. ISBN (978-1469901732) 1st Edition Email questions to the author: [email protected] For Calvin Chaos Email questions to the author: [email protected] Who is this book for? i WHO IS THIS BOOK FOR? When you get down to it, programming video games is just about lighting up pixels to make pretty pictures appear on the screen in response to keyboard and mouse input.
    [Show full text]