The Arcade Game Engine

Total Page:16

File Type:pdf, Size:1020Kb

The Arcade Game Engine C Sc 335 (OO Design and Programming) Final Project Fall 2010 Final Project: Virtual Arcade Cabinet Written By: Jude Nelson Run By: Eric Stewart Overview Back in the 1980s, video arcade games were in their prime. Local restaurants, pubs, and arcades lured customers with all of the latest titles: Pacman, BattleZone, Galaxian, Donkey Kong, Tempest, Gee Bee, Dragon's Lair, Dig Dug, Tron, Asteroids, Centipede, Defender, and more. (Un)fortunately, the rise of home videogame systems and home computers relegated these gems to the back storage rooms of many establishments. They are not forgotten, however--even today, arcade cabinets are collected by enthusiasts and arcade ROM emulation systems such as MAME allow my generation to experience these relics first-hand on modern hardware. In this semester project, you will be creating a re-usable and modular game engine in Java that will allow enthusiasts to quickly implement and bring back to life the videogames of lore within the comfort of our own homes. The focus of this project is not on the games themselves, but on the engine that will allow us to emulate these games. Game Engine Intro From Wikipedia (http://en.wikipedia.org/wiki/Game_engine): "A game engine is a software system designed for the creation and development of computer and video games. There are many game engines that are designed to work on video game consoles and desktop operating systems such as Linux, Mac OS X, and Microsoft Windows. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, and a scene graph. The process of game development is frequently economized by in large part reusing the same game engine to create different games." The game engine you will create for this project will be relatively simple, but it will be sufficient to emulate most 1980's arcade games. As it turns out, 1980's arcade games have a lot in common: They all have at least one user-controlled entity (the user's avatar). They all have 2D representations (with the exception of BattleZone and Tempest, which are wire-frame 3D). They all have a consistent scoring system. They all have a user-modifiable high score table. They all have a playfield of non-user objects, each with a specific, pre-defined behavior. Some of the objects are scenery and are just for show; some are entities that can "kill" the user's avatar upon physical contact; some impede the user's avatar's movement; some can "kill" other objects upon contact, etc. They all have a simple goal the user must complete via performing a sequence of actions through their avatar in the game. They all have a way to start and stop at any time. They all have some sort of sound effects. They all have a series of buttons (and sometimes joysticks) from which to receive user input. They all have a concept of "lives". The game ends when the user spends all of his/her "lives." Since these games have a lot in common, we can create a game engine that handles all of this functionality. Then, to implement a 1980s video arcade game, all we have to do is create a class that describes to the engine the specifics of the game and how to go about recreating it. The idea is to make all of these details invisible to the game engine itself, while being flexible enough to accommodate a wide variety of videogames. The game programmer should have to specify as little as possible about the game to make it work. The Arcade Game Engine A 1980s arcade game, abstractly, can be described as a collection of actors (at least one of which is controlled by the user), a set of states, and mechanism to transition between states when needed. An actor is an entity within a game that serves a purpose relevant to gameplay. For example, in the game Asteroids, the wedge-shaped ship is the user-controlled actor, while all of the asteroids, alien ships, bullets, and explosions are game-controlled actors. A game state is simply the pre-defined behavior of the game under certain pre-defined conditions. Using our Asteroids example, the game starts out in the "title screen" state, during which the game engine displays the title of the game and possibly a computer-controlled demo of the game. When the user inserts a coin, the game transitions to the "game play state", where the game will respond to user input, and optionally play sound effects and update the game-controlled actors until the user has run out of lives. Then the game transitions to the "end game state", where the game informs the user that they have lost (or won). When this state terminates, the game may transition to the "enter your initials" state if the user has earned a high enough score to be entered into the high score table. This state (and the "end game state", if the user does NOT have a high score) transitions to the "display high score" state, where the highest 10 or so scores are displayed to the user. Finally, the game transitions back to the "title screen" state. There are many state transition possibilities in general, but this is one of the most common state transition patterns you will encounter (your game engine should not assume that every game behaves like this, however!). The game engine should define at least one class that describes an actor. In 1980s arcade games, actors always have at least these attributes: position in the scene spatial dimensions in the scene a way to update itself periodically (e.g. what the actor does on a frame-by-frame basis if nothing interacts with it) In our Asteroids example, an asteroid rotates slightly and moves slightly in a pre-defined direction once per frame. An explosion will radiate particles outward for a pre-defined number of frames before being destroyed by the game engine. The user's ship will try to get the user's input and act on it (if the user is inputting commands). a way to interact with another actor, based on the game state and the other actor's type and attributes In our Asteroids example, an asteroid will split into two smaller asteroids if a bullet actor occupies the same spatial dimensions as the asteroid, but an asteroid will do nothing if it intersects another asteroid. If the asteroid occupies the same space as the user's ship, it will destroy the ship if the user is "alive", or will do nothing if the user is already dead. an avatar This is a data structure that describes what the actor "looks like" in the playfield. In our Asteroids example, the user-controlled ship's avatar looks like a triangular wedge. An Asteroid looks like an amorphous polygon. An alien ship looks like a flying saucer. A bullet looks like a point. An explosion looks like a collection of points. a way to provide the scene with an avatar to render There are other actor attributes, of course, but these are universal. The game engine is responsible for: scene management Managing and rendering the visible components of the game. sound management Managing and playing back music and audio sound effects. input management Getting valid user input in a timely fashion. object management Retrieving and saving data to and from disk. actor management Creating, destroying, and updating the actors, based on the state of the game and the attributes of other actors. Scene Management The game engine needs to have access to the Swing container on which you intend to render each frame of the game. Given a collection of actors, it should be able to render the avatar for each actor. The actor should only know how to give its avatar to this part of the engine, and the engine should be able to access the avatar for information on how to render it. This information can be an image, a geometric description, or a method to be called that will perform the rendering instructions directly. This part of the engine is NOT responsible for loading avatar information from disk, but it may optionally cache the information. This part of the codebase should be able to determine what state the game is in, so it can display things other than actor avatars for the user (e.g. the high score table, the title screen, etc.) Keep in mind, however, that the engine renders avatars, not actors (or anything else). Errors related to rendering should be handled and recovered from as elegantly as possible and only report irrecoverable errors to the user. The code in this section may optionally run in separate threads, so as to render a particular number of frames per second regardless of how light the system load may be. Sound Management The engine needs to be able to load or stream sound effects and music from disk via the Object Management code. It should be able to cache sound effects in RAM, but background music should be streamed. It should be able to handle errors and exceptions transparently and report an error to the user only if it cannot recover. The code that governs sound playback should be interruptible, so sounds can be stopped immediately if necessary. The sound management logic must appear to the outside as hardware-agnostic--that is, outside entities should not need to know anything about how the Sound Management code gets the sounds and plays them for it to be able to ask it to play a sound.
Recommended publications
  • Homemade Arcade Cabinet by Crusso on September 23, 2010
    Home Sign Up! Browse Community Submit All Art Craft Food Games Green Home Kids Life Music Offbeat Outdoors Pets Photo Ride Science Tech Homemade Arcade Cabinet by crusso on September 23, 2010 Table of Contents Homemade Arcade Cabinet . 1 Intro: Homemade Arcade Cabinet . 2 Step 1: Cabinet construction . 2 Step 2: Control panel . 6 Step 3: Keyboard drawer . 7 Step 4: Keyboard hack . 9 Step 5: Speakers . 12 Step 6: Video . 12 Step 7: Painting . 15 Step 8: Bezel . 19 Step 9: Backlight . 21 Step 10: Marquee . 23 Step 11: Coin door . 24 Step 12: Computer . 25 Step 13: Frontend . 26 Step 14: Artwork . 27 Related Instructables . 27 Comments . 28 http://www.instructables.com/id/Homemade-Arcade-Cabinet/ Intro: Homemade Arcade Cabinet Welcome! this is my first attempt to create a MAME arcade cabinet from scratch. I built this thing some years ago and just decided to upload it to instructables.com I tried to take as many pictures I could to show the step-by-step creation process. This project has many interesting topics in which I worked: woodworking, design, electronics, painting, programming. If you like this project please comment! Step 1: Cabinet construction I think a good blueprint is a must as a good starting point for this project. I wish I could created a 3d design but I only know a little bit about 3d tools. If you take this approach a good -and free- software to play with is Sketchup from Google. I chose the way of hand drawing designs. Since I wanted to build an old-fashioned cabinet I looked up to the Taito cabinets designs (Alpine Ski or Jungle King for example) Since I couldn't find any full sized blueprint of the cabinet I liked to build, I had to create it by my own.
    [Show full text]
  • The-Magpi-104-En-202104.Pdf
    BUY IN PRINT WORLDWIDE MAGPI.CC/STORE Issue 104 April 2021 magpi.cc The official Raspberry Pi magazine HOME OF THE FUTURE Automate your home with Raspberry Pi Upcycle iPod Classic with Spotify Build an arcade magpi.cc/store machine 48 PAGES OF PROJECTS & TUTORIALS 210212_M2M_MAGPI_UK.indd 1 2/10/21 11:46 AM WELCOME WELCOME to The MagPi 104 elcome to the future. 2021 is a sci-fi year and science promised us hoverboards, jet packs, and robot butlers. We can’t do much about the first two (although we’re Wkeeping an eye out). But help around the home is definitely our domain. In this issue we asked resident home automation expert PJ Evans to design our home of the future with Raspberry Pi (page 34). The result is a fabulous collection of widgets, projects, and gizmos to Lucy Hattersley help around the house. I’ve already talked Rosie into installing some EDITOR Lucy is editor of The NeoPixel steps at home. MagPi magazine and continues to bash Meanwhile Rob has been looking how to take a Raspberry Pi her south London project and turn it into a Pico project (page 72). KG has started to home into shape. @LucyHattersley build an arcade machine (page 42). Nicola has been looking at an autonomous home robot (page 20). Me? I’ve been playing around with ARM assembly like the nerd I am (page 84). This issue has been a huge amount of fun! And we particularly like the illustration adorning this month’s cover. Thanks to Sam Alder GET A for incredible drawing skills (and Sam Ribbits for laying it out).
    [Show full text]
  • VORTEK™ V3 Multi-Game System System Manual 040-1001-01 Rev C
    VORTEK™ V3 Multi-Game System System Manual 040-1001-01 Rev C ! Read this manual before use. ! Keep this manual with the machine at all times. www.globalvr.com http://service.globalvr.com [email protected] Phone: 408.597.3435 Fax: 408.597.3437 © 2006 Global VR, Inc. All Rights Reserved. Operation Blockade, Infogrames, and the Infogrames logo are trademarks of Infogrames Entertainment. S.A. Beach Head 2000, Beach Head 2002, and Beach Head 2003: Desert War are trademarks of Digital Fusion Inc. and are used under license by Infogrames. VORTEK, GLOBAL VR, and the GLOBAL VR logo are trademarks or registered trademarks of Global VR, Inc. All other trademarks are the property of their respective owners. Preface Table of Contents Preface .......................................................................................................................................................................3 Safety..................................................................................................................................................................3 Precautions for Game Operation.........................................................................................................................3 Warnings.............................................................................................................................................................4 Environmental Conditions ..................................................................................................................................4
    [Show full text]
  • CPR for the Arcade Culture a Case History on the Development of the Dance Dance Revolution Community
    CPR for the Arcade Culture A Case History on the Development of the Dance Dance Revolution Community Alexander Chan SUID 5075504 STS 145: History of Computer Game Design Stanford University March 16, 2004 Introduction Upon entering an arcade, you come across an unusual spectacle. Loud Japanese techno and a flashing neon glow pour out of the giant speakers and multicolored lights of an arcade console at the center of the room. Stranger than the flashy arcade cabinet is the sweaty teenager stomping on a metal platform in front of this machine, using his feet to vigorously press oversized arrows as the screen in front of him displays arrows scrolling upward. A growing group of people crowd around to watch this unusual game-play, cheering the player on. In large letters, the words “Dance Dance Revolution 3rd Mix” glow above the arcade machine. Most people who stumble upon a scene similar to this one would rarely believe that such a conceptually simple arcade game could foster an enormous nation-wide game community, both online and offline. Yet the rules of the game are deceptively simple. The players (one or two) must press the arrows on the platform (either up, down, left, or right) when the corresponding arrows on the screen reach the top, usually on beat with the techno/pop song being played. If the player doesn’t press the arrows on time, the song will quickly come to an end, and the machine will Arrows scrolling up a DDR screen ask for more quarters to continue play. Yet despite its simplicity, Dance Dance Revolution, or DDR for short, has helped create a giant player community in the United States, manifesting itself though various forms.
    [Show full text]
  • A Simulation of Consumer-Side Multihoming of Original and Derivative Digital Games: Evidence from Japan
    Universal Journal of Management 4(5): 234-245, 2016 http://www.hrpub.org DOI: 10.13189/ujm.2016.040503 A Simulation of Consumer-side Multihoming of Original and Derivative Digital Games: Evidence from Japan Makoto Kimura Faculty of Business and Informatics, Nagano University, Japan Copyright©2016 by authors, all rights reserved. Authors agree that this article remains permanently open access under the terms of the Creative Commons Attribution License 4.0 International License Abstract This study examines the consumer-side strategic management of consumer-side multihoming. multihoming among original and derivative digital games are This paper first presents the most significant aspects of developed for different platforms such as arcade game prior research concerning multihoming for console games cabinets and video game consoles, both of which are popular and then indicates the concept of consumer-side with consumers in the Japanese market. To do this, the content-level multihoming (consumer purchases and the system dynamics model accounts for arcade game, console simultaneous use of both original and derivative content used game, and multihoming users, and the effects of advertising on different platforms). Next, a calculation model of the and word-of-mouth is proposed. After the validation of consumer-level multihoming ratio (the percentage of all model using a single case study, the business policies users who are multihoming users) and the consumer-side implementation by varying the release dates of a console multihoming ratio at the content level are derived from a game (derivative content) are simulated and the fluctuating single case study. The original content of the case study is patterns of arcade game and console game sales, the represented by a trading card arcade game, and the multihoming ratios are examined.
    [Show full text]
  • Raspberry Pi Retro Gaming Build Consoles and Arcade Cabinets to Play Your Favorite Classic Games
    Raspberry Pi Retro Gaming Build Consoles and Arcade Cabinets to Play Your Favorite Classic Games Mark Frauenfelder Ryan Bates Raspberry Pi Retro Gaming: Build Consoles and Arcade Cabinets to Play Your Favorite Classic Games Mark Frauenfelder Ryan Bates Studio City, CA, USA Pittsburgh, PA, USA ISBN-13 (pbk): 978-1-4842-5152-2 ISBN-13 (electronic): 978-1-4842-5153-9 https://doi.org/10.1007/978-1-4842-5153-9 Copyright © 2019 by Mark Frauenfelder and Ryan Bates This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • The Human Machine Art Interface: Arcade Port Aesthetics and Production Practices
    The Human Machine Art Interface: Arcade Port Aesthetics and Production Practices Kieran Nolan GV2 Research Group School of Computer Science and Statistics Trinity College, Dublin +353-868227888 [email protected] ABSTRACT This research focuses on the aesthetic properties and production processes of arcade to home computer game ports during the 1980s and 1990s, in particular arcade titles originating in Japan that were licensed by UK based software houses for the 8-bit and 16-bit microcomputer market. The conversion teams worked within the unique constraints of 6 main platforms, namely the ZX Spectrum, Amstrad / Schneider CPC, Commodore 64, Atari ST, Commodore Amiga, and MS-DOS PC. In all the examples discussed, the original arcade cabinet was used as the core audiovisual and gameplay reference. As a human mediated process, the conversion of the digital material of arcade game to home computers not only bore the audiovisual constraints of the target platforms, but also the creative signatures of the conversion teams. The most successful home ports succeeded in capturing the essence of the arcade originals, while positively augmenting the gameplay, narrative, and overall aesthetic. Keywords arcade, home computer, video game, art, aesthetics, port, conversion, platform INTRODUCTION This paper concentrates on the creative processes and aesthetic properties, both audiovisual and interactive, of arcade to home computer game conversions in the 1980s and 1990s. It focuses mainly on arcade games licensed by third party developers for conversion to western 8-bit and 16-bit microcomputer platforms by UK based software houses, with findings based on first hand interaction with home arcade ports, alongside developer interviews sourced from video game magazines of the period.
    [Show full text]
  • Classic Gamers
    THE BLADE: TOLEDO, OHIO ■ THURSDAY, DECEMBER 8, 2016 toledoBlade.com SECTION A, PAGE 5 What to buy 2016 HOLIDAY GIFT GUIDE 17 SHOPPING CLASSIC GAMERS DAYS LEFT he crazy-popular NES Classic Edition is this holiday’s 10 retro video game gift ideas in a wide assortment of prices impossible-to-find hot item. Fret not. There are many to make holiday shopping for that classic gamer a bit easier. T ways to return to the 8-bit days of yore. Here’s a list of — KIRK BAIRD, BLADE STAFF WRITER Lots of Gaming books games Art of Atari by Tim Lapetino Atari Flashback and Ernest Cline and Robert Classics: Volume 1 V. Conte. For those who grew up in and Volume 2 for the the early days of 8-bit gaming, this Playstation 4 and Xbox dedication to those classic Atari One features 50 games 2600 box covers — which were — a mix of Atari’s ar- often more imaginative and in- cade and 2,600 titles spiring than the games themselves — per volume along — is sure to bring back memories. with extras like original $29.99; Books-A-Million. cabinet and box art. $19.99; Target, Best Buy, Gamestop. NES Classic Edition This plug-and-play game console looks like a min- iaturized Nintendo Entertainment System from the ’80s and features 30 built-in and mostly classic video games, including Super Mario Bros. $59.99; Best Buy. Raspberry and RetroPie For the adventurous tech-y type, the low-cost, Linux-based Raspberry Pi 3 computer makes an affordable yet fairly capable retro-gaming system through various classic game emulators.
    [Show full text]
  • Godlike Gaming.Pdf
    For kids today who are growing up with gesture recognition consoles and augmented reality goggles, it might be hard to imagine that only a generation ago, playing a video game meant popping a quarter in an arcade cabinet located in the corner of a mall or restaurant. The gaming industry has indeed come a long way from arcade games like Tron and Pac-Man to Massively Multiplayer Online role-playing games like World of Warcraft. The video gaming industry is the fastest growing segment in the entertainment industry. Worth US$71 billion, it has already Pac-Man, developed by Namco, was surpassed the music industry and is fast catching up with the US$87 first released in Japan on May 22, billion film industry. Major video game titles of today have budgets 1980. comparable to that of Hollywood blockbusters. Grand Theft Auto V, a popular game title, was produced with a budget of US$250 million, in line with Hollywood blockbusters like Spiderman 3, Avatar, etc. While the industry has capitalized on the public’s seemingly unquenchable appetite for video games, there is still a huge potential for growth. However, there are also significant risks and uncertainties for companies in this industry. The success or failure of a major title can make or break a publisher’s or developer’s Super Mario Bros. sold over 40 business. It is amidst all these insecurities that IP becomes vital. million copies, making it the best- Developing a pre-emptive IP strategy to safeguard appropriate IP selling video game of the whole rights is essential for the success of a game publisher.
    [Show full text]
  • New…Now? Or Why a Design History of Coin-Op Video Game Machines • Raiford Guins
    New…Now? Or Why a Design History of Coin-op Video Game Machines • Raiford Guins The author asks what has occurred in game history scholarship to warrant the use of the adjective “new” in “New Video Game History” and suggests an awareness of process may now be influencing the study of games. In support of this observation, he organizes the article along two interrelated fronts. The first speaks to the on-going process of collection development at cultural institutions while the second addresses a shift in how game history is currently being written. The latter, he argues, demonstrates why we ought to consider carefully what “new” might signal for the critical historical study of games. At length, the article concludes by making a case for turning to design history to write a historical study of Atari’s coin-operated machines. Key words: Atari; coin-ops; design history; graphic design; game history; indus- trial design; New Video Game History I cringe when I see the adjective “new” affixed to subjects like media, materialism, museology, heritage, art history, or cultural history. I much prefer to think about paradigm reconstruction as a sensitivity or sensibility in need of further assemblage to better comprehend an intellectual problem or particular moment rather than invoke a word with so much ideological cargo as in “New World” let alone branding power—think laundry detergent. Certainly, in academia, new as a modifier seldom travels alone. The oppor- tunistic “studies ” quickly sneaks up from behind so that, for example, in the early 2000s, we had to scratch our heads over what “new media studies” actu- ally meant (at least those not satisfied with the answer “digital” did).
    [Show full text]
  • Atari IP Catalog 2016 IP List (Highlighted Links Are Included in Deck)
    Atari IP Catalog 2016 IP List (Highlighted Links are Included in Deck) 3D Asteroids Atari Video Cube Dodge ’Em Meebzork Realsports Soccer Stock Car * 3D Tic-Tac-Toe Avalanche * Dominos * Meltdown Realsports Tennis Street Racer A Game of Concentration Backgammon Double Dunk Micro-gammon Realsports Volleyball Stunt Cycle * Act of War: Direct Action Barroom Baseball Drag Race * Millipede Rebound * Submarine Commander Act of War: High Treason Basic Programming Fast Freddie * Mind Maze Red Baron * Subs * Adventure Basketball Fatal Run Miniature Golf Retro Atari Classics Super Asteroids & Missile Adventure II Basketbrawl Final Legacy Minimum Return to Haunted House Command Agent X * Bionic Breakthrough Fire Truck * Missile Command Roadrunner Super Baseball Airborne Ranger Black Belt Firefox * Missile Command 2 * RollerCoaster Tycoon Super Breakout Air-Sea Battle Black Jack Flag Capture Missile Command 3D Runaway * Super Bunny Breakout Akka Arrh * Black Widow * Flyball * Monstercise Saboteur Super Football Alien Brigade Boogie Demo Food Fight (Charley Chuck's) Monte Carlo * Save Mary Superbug * Alone In the Dark Booty Football Motor Psycho Scrapyard Dog Surround Alone in the Dark: Illumination Bowling Frisky Tom MotoRodeo Secret Quest Swordquest: Earthworld Alpha 1 * Boxing * Frog Pond Night Driver Sentinel Swordquest: Fireworld Anti-Aircraft * Brain Games Fun With Numbers Ninja Golf Shark Jaws * Swordquest: Waterworld Aquaventure Breakout Gerry the Germ Goes Body Off the Wall Shooting Arcade Tank * Asteroids Breakout * Poppin Orbit * Sky Diver
    [Show full text]
  • Ence in a Hand-Gesture-Based Augmented Reality Game
    Linköping University | Department of Computer and Information Science Master thesis, 30 ECTS | Information Technology 2019 | LIU-IDA/LITH-EX-A--19/006--SE Creating Good User Experi- ence in a Hand-Gesture-Based Augmented Reality Game Användbarhet i ett handgestbaserat spel i förstärkt verklighet Benny Lam, Jakob Nilsson Examiner : Erik Berglund External supervisor : Magnus Lundqvist Linköpings universitet SE–581 83 Linköping +46 13 28 10 00 , www.liu.se Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under 25 år från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns lösningar av teknisk och admin- istrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sam- manhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/. Copyright The publishers will keep this document online on the Internet – or its possible replacement – for a period of 25 years starting from the date of publication barring exceptional circum- stances. The online availability of the document implies permanent permission for anyone to read, to download, or to print out single copies for his/hers own use and to use it unchanged for non-commercial research and educational purpose.
    [Show full text]