Advanced-Game-Design-With-Html5

Total Page:16

File Type:pdf, Size:1020Kb

Advanced-Game-Design-With-Html5 www.allitebooks.com For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. www.allitebooks.com Contents at a Glance About the Author .....................................................................................................xv About the Technical Reviewers .............................................................................xvii Acknowledgments ..................................................................................................xix Introduction ............................................................................................................xxi ■ Chapter 1: Level Up! .............................................................................................. 1 ■ Chapter 2: The Canvas Drawing API .................................................................... 59 ■ Chapter 3: Working with Game Assets ................................................................ 93 ■ Chapter 4: Making Sprites and a Scene Graph .................................................. 111 ■ Chapter 5: Making Things Move ........................................................................ 165 ■ Chapter 6: Interactivity ...................................................................................... 189 ■ Chapter 7: Collision Detection ........................................................................... 239 ■ Chapter 8: Juice It Up ........................................................................................ 287 ■ Chapter 9: Sound with the Web Audio API ......................................................... 331 ■ Chapter 10: Tweening ........................................................................................ 369 ■ Chapter 11: Make Your Own Game Engine ........................................................ 407 ■ Appendix A: Vectors for Movement and Collision Detection ............................. 449 Index ..................................................................................................................... 519 iii www.allitebooks.com Introduction How do you make a video game? his book will show you everything you need to know. You’ll learn how to make all kinds of 2D action games by building your own development tools, from scratch, using low-level open-source technologies. All you need is this book, a text editor, a web browser and any old computer. No libraries, no frameworks, no game engines, no black-box mystery code, and no expensive proprietary software or licenses. And you’ll be able to publish your games cross-platform to the desktop, mobile devices, and the Web. As you’ll soon see, by writing just few hundred lines of code, you’ll be well on your way to developing any 2D video game you can imagine. Sound like fun? It’s the best fun there is! Here’s what you’ll learn: •฀ New JavaScript tips and tricks, including some that arrived with ES6 (Chapter 1). •฀ How to draw graphics on the screen and use those graphics to create reusable game components (Chapters 2 and 4). •฀ How to create a scene graph (a parent-child hierarchy for game objects) for maximum lexibility in creating game scenes (Chapter 4). •฀ How to eiciently load images, sounds, fonts, and other game assets (Chapter 3) and build a loading progress bar (Chapter 11). •฀ How to animate objects with physics (Chapter 5), and how to created detailed game characters using keyframe animation (Chapter 8). •฀ Everything you need to know about collision detection (Chapter 7), including the video game designer’s “secret black art”: vector math (Appendix A). •฀ Saving and loading game data, running a game in full screen mode (Chapter 1), and scaling a game to any window size (Chapter 11.) •฀ What is the separating axis theorem (SAT) and why is it useful for games? Find out in Appendix A! •฀ How to create buttons, add mouse, touch and keyboard interactivity to your games, and learn how to create a drag-and-drop system for game objects (Chapter 6). •฀ How to add special efects to your games: easy parallax scrolling, particle efects (Chapter 8), and screen shaking (Chapter 11). •฀ How to play and control sound iles and how to generate synthesized sound efects dynamically from pure code (Chapter 9). •฀ How to build a tweening system and make game objects follow ixed curved paths (Chapter 10). xxi www.allitebooks.com ■ INTRODUCTION •฀ How to put all these pieces together to make your own game engine so that you can build games in the quickest, easiest, and most fun way (Chapter 11). •฀ And you’ll learn lots of the most modern coding and game development practices along the way. his book is a self-contained, classical education in making video games and a compendium of all the important techniques you’ll need to know to lourish as a game designer. If you were alone on a desert island with only a solar-powered laptop, a pile of coconuts, and this book, you’d have everything you need to recreate the entire history of 2D video games from Spacewar! to Flappy Bird. Things You Need to Know To make the best use of this book you need to have a moderate degree of programming literacy. You should be able to glance at a block of code in whatever programming language you’re most familiar with and have a general idea of how it works. You don’t need to think of yourself as a “programmer” or some kind of expert. You just need to be able to fumble your way through programming problems with a reasonable degree of conidence. If you enjoy programming, you’ll love this book. he programming code in this book is written in JavaScript. JavaScript belongs to the C family of languages (C, C++, C#, Objective-C, Java, and AS3.0) so if you know any of those languages, you’ll be able to use JavaScript with ease. And even if you’ve never used JavaScript before, Chapter 1 gives you a quick primer. Have you never done any programming before? hen start with this book’s predecessor, Foundation Game Design with HTML5 and JavaScript. It will teach you how to program, while you’re learning how to make games, and cover everything you need to know to start using this book. Have you read Foundation Game Design with HTML5 and JavaScript? If so, you’re well prepared. If you think you might have forgotten a bit, or need a refresher before you start, relax! I’ve written this book in a very sneaky way. It covers all the basics, from scratch, and squeezes in all the advanced, interesting new stuf all along the way. So, if you’ve forgotten something, like how to make and render a sprite, don’t worry: it’s all in here and packed with loads of clever new tricks. Where the Foundation book was all about learning how to program and how to do things in the most understandable way, this Advanced book is all about doing things in the best and most exciting ways. I’ve written this to be a completely comprehensive book about making games that will reintroduce you to our beloved art form with enlightening and eye-opening new ways of doing things. How to Read This Book his is a storybook. You can read it in bed, or on the beach. Just as you would with Jane Eyre or he Lord of the Rings, start at Chapter 1 and work your way through to the end. Each chapter builds on the techniques and concepts of the previous chapter. But if there are speciic techniques you want to know about right away, just jump in at any spot—you should be still be OK. he only part that’s diferent is Appendix A: “Vectors for Movement and Collision Detection.” You can read it at any time. Appendix A is a deep exploration of vector math concepts which are generally relevant to all the other chapters in the book—but also optional. If you want to know all about vectors before you start Chapter 1, go ahead and read the Appendix irst. But if you’re not really that interested, or just want to keep it for future reference, you can skip it completely. xxii www.allitebooks.com ■ INTRODUCTION The Source Code Most of the content in this book is actually not in this book. You’ll ind it in the source code iles that accompany each chapter. You can download the source code from this book’s product page at www.apress.com, or at this book’s GitHub repository: https://github.com/kittykatattack/agd Yes, there’s a lot of source code! In fact, there’s so much that most of the printed examples in this book only highlight the most signiicant, vital parts. You’re a good enough programmer to understand how those parts it into the bigger picture. But if you have any doubts, open up the complete working source code and take a look. All the code in this book is written in pure JavaScript and HTML. It doesn’t use any abstraction layers like CofeeScript, TypeScript, or JQuery. his book was written during a time when many of the best features of HTML5 for game developers were still experimental and required “vendor preixes” to work properly on all platforms. I’ll mention in the text if it’s likely that you’ll need to use them, but I’ll try to keep them out of the printed code in this book. (For maximum compatibility I’ve kept them in the source code, but usually tidied them away in a JS polyill ile.) Hopefully, you’re reading this book in a happy, future time when these vestigial tails of HTML5’s evolution have disappeared. But until then, here are the most common vendor preixes in current use: Vendor CSS Prefix JavaScript Prefix Microsoft -ms- ms Mozilla -moz- moz Opera -o- o Chrome, Safari -webkit- webkit ■ Tip Writing cross-platform CSS can be particularly difficult, because there are often discrepancies between vendors about how CSS properties are defined. You can make CSS fun again by using a good preprocessor like Sass, and use its Compass extension to create all the vendor-specific code for you automatically. Also, make sure that you run all the source code in a webserver. Many JavaScript and HTML5 features that we’ll be using in this book, like XHR, will only work inside a webserver. A nice cross-platform way to do this is to install Node, which is a marvelous pure JavaScript server. Visit nodejs.org and follow the instructions to install it on your platform. hen install a great little helper utility that runs on top of it, called http-server: (github.com/nodeapps/http-server).
Recommended publications
  • 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]
  • Hitachi Unified Storage File Module File Services Administration Guide
    Hitachi Unified Storage File Module File Services Administration Guide Release 12.5 MK-92HUSF004-09 December 2015 © 2011-2015 Hitachi, Ltd. All rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, or stored in a database or retrieval system for any purpose without the express written permission of Hitachi, Ltd. Hitachi, Ltd., reserves the right to make changes to this document at any time without notice and assumes no responsibility for its use. This document contains the most current information available at the time of publication. When new or revised information becomes available, this entire document will be updated and distributed to all registered users. Some of the features described in this document might not be currently available. Refer to the most recent product announcement for information about feature and product availability, or contact Hitachi Data Systems Corporation at https://portal.hds.com. Notice: Hitachi, Ltd., products and services can be ordered only under the terms and conditions of the applicable Hitachi Data Systems Corporation agreements. The use of Hitachi, Ltd., products is governed by the terms of your agreements with Hitachi Data Systems Corporation. 2 Hitachi Unified Storage File Module File Services Administration Guide Hitachi Data Systems products and services can be ordered only under the terms and conditions of Hitachi Data Systems’ applicable agreements. The use of Hitachi Data Systems products is governed by the terms of your agreements with Hitachi Data Systems. By using this software, you agree that you are responsible for: a) Acquiring the relevant consents as may be required under local privacy laws or otherwise from employees and other individuals to access relevant data; and b) Verifying that data continues to be held, retrieved, deleted, or otherwise processed in accordance with relevant laws.
    [Show full text]
  • Files I Have Known
    FILES I HAVE KNOWN FOREWORD The data reminiscences that follow are probably an unrewarding read. Published reminiscences stand as monuments to the ego of their authors. However, the true purpose of this text is to experimentally substitute digital files with written memories of those files, prompted by metadata. Can the original essence of a data file be recreated purely by words? Many of the files chosen here are obscure and not necessarily available online. It’s likely that the files themselves are of little interest if discovered without their context, forming only fragments of nonsensicality in the wider noise of online data. These reminiscences too may appear as yet further noise flung onto an internet already overpopulated with noise vying for visibility. But by intimately analysing one’s own files in terms of their emotional impact, the reader may come to appreciate that every file has a story. In our daily dealings with data, we partake in the creation of such stories, and the stories also create us. FILES I HAVE KNOWN CHAPTER I “dontryathome.zip” Size: 345KB (345,410 bytes) Created: 31 December 2004 13:53 Format: ZIP Archive “dontryathome.zip” was a compressed archive containing images randomly taken from the web. It’s a file I no longer possess, so all that exists of it now is the above scrap of metadata, the text of the email it was attached to, and the memory. This may well be the eventual fate of all data – future generations might only be left with metadata and memories to reminiscence over if either (a) the pace of technology outstrips the means to preserve and open obsolete file formats, or (b) a sudden cataclysmic environmental or economic global disaster annuls electronic technologies.
    [Show full text]
  • Lmod Documentation Release 8.5.16
    Lmod Documentation Release 8.5.16 Robert McLay Sep 24, 2021 Contents 1 PURPOSE 1 2 OVERVIEW 3 3 Lmod Web Sites 5 4 Introduction to Lmod 7 5 Installing Lmod 27 6 Advanced Topics 55 7 Topics yet to be written 119 8 Indices and tables 121 i ii CHAPTER 1 PURPOSE Lmod is a Lua based module system that easily handles the MODULEPATH Hierarchical problem. Environment Modules provide a convenient way to dynamically change the users’ environment through modulefiles. This includes easily adding or removing directories to the PATH environment variable. Modulefiles for Library packages provide environment variables that specify where the library and header files can be found. 1 Lmod Documentation, Release 8.5.16 2 Chapter 1. PURPOSE CHAPTER 2 OVERVIEW This guide is written to explain what Environment Modules are and why they are very useful for both users and system administrators. Lmod is an implementation of Environment Modules, much of what is said here is true for any environment modules system but there are many features which are unique to Lmod. Environment Modules provide a convenient way to dynamically change the users’ environment through modulefiles. This includes easily adding or removing directories to the PATH environment variable. A modulefile contains the necessary information to allow a user to run a particular application or provide access to a particular library. All of this can be done dynamically without logging out and back in. Modulefiles for applications modify the user’s path to make access easy. Modulefiles for Library packages provide environment variables that specify where the library and header files can be found.
    [Show full text]
  • Game Engine for Loc Game Engine for Location-Based Services Based
    FACULDADEDE ENGENHARIADA UNIVERSIDADEDO PORTO GameEngineforLocation -Based Services TiagoPintoFernandes MasterinInformaticsandComputingE ngineering Supervisor: AntónioCoelho(AuxiliarProfessor) June2010 Game Engine for Location Based Services – Tiago Fernandes – MIEIC / FEUP – 2009/2010 ©TiagoPintoFernandes,2010 2 Game Engine for Location Based Services – Tiago Fernandes – MIEIC / FEUP – 2009/2010 GameEngineforLocationBasedServices TiagoFernandes MasterinInformaticsAndComputingEngineering AprovadoemprovaspúblicaspeloJúri: Presidente:NomedoPresidente(Título) VogalExterno:NomedoArguente(Título) Orientador:NomedoOrientador(Título) ____________________________________________________ 3 Game Engine for Location Based Services – Tiago Fernandes – MIEIC / FEUP – 2009/2010 30deJunhode2010 Resumo O objectivo do presente projecto consiste em introduzir uma nova dimensão ao conceito de motor de jogo, através da implementação do conceito de Location-Based Services numa Frameworkdecriaçãodejogos.Hojeemdia,existe umgrandenúmerodemotoresdejogo, comerciaisougratuitos,disponíveisnomercado.Porém,poucoscontemplamapossibilidadede tirar partido das capacidades e conceitos relativos aos serviços de localização geográfica existentes. Os que procuram utilizar estes conceitos, normalmente estão muito longe do que habitualmenteéconsideradoummotordejogo,devidoaofactodenãoconseguiremfornecer umabasedeprogramaçãoestávelouumaplataformadedesenvolvimentoflexívelparaacriação dejogos,tendousualmenteporbaseplataformasWebnasquaisosutilizadoresdevemactualizar
    [Show full text]
  • Measuring the Development of a Common Scientific Lexicon In
    J Nanopart Res (2014) 16:2194 DOI 10.1007/s11051-013-2194-0 PERSPECTIVES Measuring the development of a common scientific lexicon in nanotechnology Sanjay K. Arora • Jan Youtie • Stephen Carley • Alan L. Porter • Philip Shapira Received: 26 June 2013 / Accepted: 5 December 2013 / Published online: 24 December 2013 Ó Springer Science+Business Media Dordrecht 2013 Abstract Over the last two decades, nanotechnology of nano-prefixed terms in response to broader policy or has not only grown considerably but also evolved in its societal influences, they do suggest that there are use of scientific terminology. This paper examines the intellectual and scientific underpinnings to the growth growth in nano-prefixed terms in a corpus of nano- of a collectively shared vocabulary. We consider technology scholarly publications over a 21-year time whether our findings signify the maturation of a period. The percentage of publications using a nano- scientific field and the extent to which this denotes the prefixed term has increased from \10 % in the early emergence of a shared scientific understanding regard- 1990s to nearly 80 % by 2010. A co-word analysis of ing nanotechnology. nano-prefixed terms indicates that the network of these terms has moved from being densely organized around Keywords Scientific lexicon Á Bibliometrics Á a few common nano-prefixed terms such as ‘‘nano- Science and technology policy structure’’ in 2000 to becoming less dense and more differentiated in using additional nano-prefixed terms while continuing to coalesce around the common nano-prefixed terms by 2010. We further observe that the share of nanotechnology papers oriented toward Introduction biomedical and clinical medicine applications has risen from just over 5 % to more than 11 %.
    [Show full text]
  • The Selinux Notebook - the Foundations
    The SELinux Notebook - The Foundations The SELinux Notebook The Foundations Page 1 The SELinux Notebook - The Foundations 0. Notebook Information 0.1 Copyright Information Copyright © 2009 Richard Haines. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNUFree Documentation License”. The scripts and source code in this Notebook are covered by the GNU General Public License. The scripts and code are free source: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. These are distributed in the hope that they will be useful in researching SELinux, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with scripts and source code. If not, see <http://www.gnu.org/licenses/>. 0.2 Revision History Version Date Description of Change Changed By 1.0 20th Nov ‘09 First release. Richard Haines 0.3 Acknowledgements Logo designed by Máirín Duffy 0.4 Abbreviations Term Definition apol Policy analysis tool AV Access Vector AVC Access Vector Cache BLP Bell-La Padula CC Common Criteria CMW Compartmented Mode Workstation DAC Discretionary Access Control Page 2 The SELinux Notebook - The Foundations Term Definition F-10 Fedora 10 FLASK Flux Advanced Security Kernel - A security-enhanced version of the Fluke kernel and OS developed by the Utah Flux team and the US Department of Defence.
    [Show full text]
  • Getting Started with Xillinux for Zynq-7000 V2.0
    Getting started with Xillinux for Zynq-7000 v2.0 Xillybus Ltd. www.xillybus.com Version 3.6 1 Introduction4 1.1 The Xillinux distribution...........................4 1.2 The Xillybus IP core.............................5 2 Prerequisites7 2.1 Hardware...................................7 2.2 Downloading the distribution........................8 2.3 Development software............................9 2.4 Experience with FPGA design........................ 10 3 Building Xillinux 11 3.1 Overview................................... 11 3.2 Unzipping the boot partition kit....................... 12 3.3 Generating the bitstream file........................ 13 3.3.1 Introduction.............................. 13 3.3.2 Selecting the Zynq part to target (Z-Turn Lite only)........ 13 3.3.3 Preparing xillydemo.vhd (VHDL project only)........... 14 3.3.4 Generating the Vivado project.................... 14 3.3.5 Implementing the project...................... 15 Xillybus Ltd. www.xillybus.com 3.4 Loading the (Micro)SD with the image................... 16 3.4.1 General................................ 16 3.4.2 Loading the image (Windows).................... 17 3.4.3 Loading the image (Linux)...................... 18 3.4.4 Using the Zynq board for loading the image............ 19 3.5 Copying the files into the boot partition................... 20 3.6 The files in the boot partition........................ 21 4 Booting up 22 4.1 Jumper settings................................ 22 4.1.1 Zedboard............................... 22 4.1.2 MicroZed............................... 24 4.1.3 Zybo.................................. 24 4.1.4 Z-Turn Lite.............................. 24 4.2 Attaching peripherals............................. 26 4.3 Powering up the board............................ 27 4.3.1 Initial diagnostics........................... 27 4.3.2 When boot completes........................ 28 4.3.3 U-boot environment variables.................... 28 4.3.4 Setting a custom Ethernet MAC address.............
    [Show full text]
  • The Python Book 2Nd Edition
    NEW OVER 2 HOURS PythonThe OF VIDEO TUTORIALS The ultimate guide to coding with Python Over 20 incredible projects Learn to use Python t1SPHSBNHBNFTt(FUDSFBUJWFXJUI1J Welcome to PythonThe Python is an incredibly versatile, expansive language which, due to its similarity to everyday language, is surprisingly easy to learn even for inexperienced programmers. It has seen a huge increase in popularity since the release and rise of the Raspberry Pi, for which Python is the officially recognised programming language. In this new edition of The Python Book, you’ll find plenty of creative projects to help you get to grips with the combination of your Raspberry Pi and Python’s powerful functionality, plus lots of tutorials that focus on Python’s effectiveness away from the Raspberry Pi. You’ll learn all about how to code with Python from a standing start, with our comprehensive masterclass, then go on to complete tutorials that will consolidate your skills and help you to become fluent in the language. You’ll learn how to make Python work for you with tutorials on coding with Django, Flask, Pygame and even more useful third-party frameworks. Get ready to become a true Python expert with the wealth of information contained within these pages. PythonThe Imagine Publishing Ltd Richmond House 33 Richmond Hill Bournemouth Dorset BH2 6EZ +44 (0) 1202 586200 Website: www.imagine-publishing.co.uk Twitter: @Books_Imagine Facebook: www.facebook.com/ImagineBookazines Publishing Director Aaron Asadi Head of Design Ross Andrews Production Editor Alex Hoskins
    [Show full text]
  • Easybuild Documentation Release 20150610.01
    EasyBuild Documentation Release 20150610.01 Ghent University Wed, 03 Aug 2016 13:23:43 Contents 1 Introductory topics 3 1.1 What is EasyBuild?.........................................3 1.2 Concepts and terminology......................................4 1.2.1 EasyBuild framework....................................4 1.2.2 Easyblocks.........................................4 1.2.3 Toolchains..........................................5 1.2.4 Easyconfig files.......................................5 1.2.5 Extensions..........................................6 1.3 Typical workflow example: building and installing WRF......................6 1.3.1 Searching for available easyconfigs files..........................6 1.3.2 Getting an overview of planned installations........................7 1.3.3 Installing a software stack.................................7 2 Getting started 9 2.1 Installing EasyBuild.........................................9 2.1.1 Requirements........................................9 2.1.2 Bootstrapping EasyBuild..................................9 2.1.3 Advanced bootstrapping options.............................. 12 2.1.4 Dependencies........................................ 14 2.1.5 Sources........................................... 16 2.1.6 In case of installation issues.................................. 16 2.2 Configuring EasyBuild........................................ 16 2.2.1 Supported configuration types............................... 16 2.2.2 Available configuration settings.............................. 20 3 Basic usage topics 27
    [Show full text]
  • Autonomy Information Connectivity
    Technical Brief Information Connectivity Autonomy Supports Virtually Any Format, Source and Language Every enterprise has a complex mix of off-the-shelf and custom applications, databases, information technologies and file formats. Autonomy is capable of aggregating any form of structured, semi-structured and unstructured data, wherever it is located, regardless of language. Supported Data Formats Support for over 1000 formats including: Archive • Graphics Interchange Format (.gif) • UNIS Composer 669 Module • Raw Audio CD Data (.cdr) • 7-Zip (7Z) • HP Graphics Language (.hpg) (.669) • Audition Loop (.cel) • Apple Disk Image (DMG) • Joint Photographic Experts Group • Six Channel Module (.6cm) • Creative Music Format (.cmf) • BinHex(HQX) (.jpeg) • Eight Channel Module (.8cm) • Sony Ericsson Protected Content • Bzip2 Compressed Archive Format • Lotus AMIDraw Graphics (.sdw) • Amiga OctaMed Music File File (.copy) (BZIP2) • Lotus Pic (.pic) (.8med) • Cubase Project (.cpr) • GZIP (GZ) • Macintosh Raster (.pic, .pict) • Amiga 8-Bit Sound File (.8svx) • Cubase Waveform File (.csh) • ISO-9660 CD Disc Image Format • MacPaint (.pntg) • Advanced Audio Coding File (.aac) • cVideo (.cvc) (ISO) • Microsoft Document Imaging • ABC Music Notation (.abc) • Cakewalk SONAR Project (.cwp) • Java Archive (JAR) (.mdi) • Audio Codec 3 File (.ac3) • OPL2 FM Audio File (.d00) • Legato EMailXtender Archive (EMX) • Microsoft Office Drawing (.mso) • ADPCM Compressed Audio File • OPL2 FM Audio File (.d01) • MacBinary Container (BIN) • Nero Encrypted File (.nef) (.act)
    [Show full text]
  • Prog8 Documentation Release 7.0
    Prog8 Documentation Release 7.0 Irmen de Jong Sep 28, 2021 Contents of this manual: 1 What is Prog8? 3 2 Language features 5 3 Code example 7 4 Getting the compiler 9 5 Required additional tools 11 5.1 Writing and building a program..................................... 12 5.2 Programming in Prog8.......................................... 14 5.3 Syntax Reference............................................. 27 5.4 Compiler library modules........................................ 41 5.5 Target system specification........................................ 45 5.6 Technical details............................................. 47 5.7 TODO.................................................. 49 6 Index 51 Index 53 i ii Prog8 Documentation, Release 7.0 Contents of this manual: 1 Prog8 Documentation, Release 7.0 2 Contents of this manual: CHAPTER 1 What is Prog8? This is a compiled programming language targeting the 8-bit 6502/ 6510/ 65c02 microprocessors. This CPU is from the late 1970’s and early 1980’s and was used in many home computers from that era, such as the Commodore-64. The language aims to provide many conveniences over raw assembly code (even when using a macro assembler), while still being low level enough to create high performance programs. Prog8 is copyright © Irmen de Jong ([email protected]| http://www.razorvine.net). The project is on github: https://github.com/irmen/prog8.git This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html 3 Prog8 Documentation, Release 7.0 4 Chapter 1. What is Prog8? CHAPTER 2 Language features • It is a cross-compiler running on modern machines (Linux, MacOS, Windows, . ) It generates a machine code program runnable on actual 8-bit 6502 hardware.
    [Show full text]