Slides for My Mono for Game Development

Total Page:16

File Type:pdf, Size:1020Kb

Slides for My Mono for Game Development Mono for Game Developers Miguel de Icaza [email protected], @migueldeicaza Xamarin Inc Agenda • Mono in Games • Using Mono for Games • Performance • Garbage CollecKon • Co-rouKnes, Asynchronous Programming Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com MONO IN GAMES C# Java JavaScript Ruby Python Visual Basic F# Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com C# Java JavaScript Ruby Python Visual Basic F# Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Sims 3 • Mixed Code: – C/C++ engine – C# scripKng/AI – C# high-level • Visual Studio + Mono • X86, PS3, Xbox360 Credit: www.thesims3facts.webs.com BasKon – on Google Chrome NaCl • C# XNA codebase • Originally on Xbox • Ported to NaveClient – Mono – MonoGame (XNA) • Mac, Windows, Linux Pure C# - SoulCra • DeltaEngine – Pure C# engine – Open source – Android, iOS, Mac, Win Unity 3D • Unity Engine – C/C++ game engine – Embedded Mono • User code – C# or UnityScript – Extends Unity itself Shadow Gun, built with Unity SecondLife • Mono on the server • Powers LSL scripts • Nice 200x perf boost • Code InjecKon Infinite Flight • Subject of the second part of this session WHY MONO? Because Life is too Short • To debug another memory leak • To track another memory corrupKon bug • Because you deserve be=er Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com The Quest for ProducKvity System Languages Scripng Languages Pros: Pros: • Low-level • High-level, good producKvity • Good control of hardware • • Typed Easy to write • Fast code • Safe, prevent crashes • Loosely typed Cons: • Easy to corrupt state Cons: • Low producKvity • Poor control of hardware • Crash o_en • Complex for newcomers • Slow (interpreted) John Ousterhout ScripKng Quest IEEE 1998 Summary Paper hp://www.stanford.edu/~ouster/cgi-bin/papersMono for Game Developers – AltDevConf 2012 /scripng.pdf hp://www.xamarin.com John was always ahead of his Kme • Professional workstaons in 1998 – SPARC, HP-PA • Not achievable on PCs of the Kme Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com 2000 – Desktop Development • Building desktop apps with C and C++ – Slow progress, error prone, frequent crashes • Windows 2000 Requirements: – 133 Mhz or more – 64 megs for desktop, 256 for server • Windows XP Requirements (one year later) – 233Mhz or more – 128 megs for desktop • Development desktops at the Kme: – ~1Ghz speed – ~1 GB of memory Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com C# Introduced in 2000 • C# 1.0 was a Java-like system • With many design fixes – 10 years of experience – Change defaults (all virtual, vs opt-in virtual) – Introduce structs (help GC, no boxing) – Direct access to nave libraries (P/Invoke) – Delegates (foundaon for lambdas) Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Language Choices Fully Dynamic Easy C#/Java C/C++ ProducKvity Assembly Language Difficult Slow Performance Fast Game So_ware Components . Display Simulaon Game Logic Support • Rendering • Physics • World rules • Audio • Shading • Collision • Enemy AI • Input • Scene • ParKcles • User • Networking • Animaon • Terrain control • Geometry • Camera • GUI • Behavior The Problem Games are real-Kme programs • 30 to 60 frames per second (0.016 seconds) Input AI Updates • User control • Scripted, slow • Render Graphics • Network • React to • Play audio events change • Update scene Problem: ScripKng Is A Bo=leneck Gaming's Achilles' Heel Display Simulaon Game Logic Support • Rendering • Physics • World rules • Audio • Shading • Collision • Enemy AI • Input • Scene • ParKcles • User • Networking • Animaon • Terrain control • Geometry • Camera • GUI • Behavior C/C++ C/C++ Script C/C++ Problem: ScripKng Is A Bo=leneck Gaming's Achilles' Heel Display Simulaon Game Logic Support • Rendering • Physics • World rules • Audio • Shading • Collision • Enemy AI • Input • Scene • ParKcles • User • Networking • Animaon • Terrain control • Geometry • Camera • GUI • Behavior C/C++ C/C++ Script C/C++ C# What C# Offers • Close to nave performance – 50%-90% of nave performance • Safe ExecuKon Environment – With opKonal support to shoot yourself in the foot. Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com C# - An Evolving Language 2012 5.0 Asynchronous Programming 2010 4.0 Dynamic extensions 2007 3.0 Language Integrated Query, FuncKonal 2005 2.0 Generics, Iterators, Lambdas 2002 1.0 Managed Code, strongly typed USING MONO Designing Mono Applicaons • Provided: – C# Language – Base Class Libraries • Not Provided: – User Interface, Graphics, Audio – These are all plaorm specific Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Code Sharing and Nave Experience C# Core Engine, Shared Logic, Business Logic Plus ECMA languages RunKme .NET Mono Windows OS Xbox Mac iOS Android WinPhone Not a comprehensive list Code Sharing and Nave Experience Nave UI XAML MonoMac MonoTouch MonoDroid APIs XNA C# Core Engine, Shared Logic, Business Logic Plus ECMA languages RunKme .NET Mono Windows OS Xbox Mac iOS Android WinPhone Not a comprehensive list Modes of Use • Drive the applicaon • Scripng engine – Sandboxed – Full access Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Run on Mono Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Run on Mono Game – Your C# Code Mono C#/.NET Libraries RunKme MonoGame OpenTK Physics Operang System OpenAL OpenGL Networking Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Using Mono as a Library Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Use Mono as a Library Game Engine Game Engine Libraries Mono Game – Your Audio Graphics C# Code Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com TIPS ON USING MONO Two Code Generaon Backends Mono’s Na<ve Backend LLVM Backend • Very fast codegen • Very slow codegen – .3 seconds bootstrap – 7 second bootstrap • Not great code output • Great output quality • JIT’s default engine • Opt-in: – mono --llvm Just in Time vs Ahead of Time • Just in Time Compilaon – Default Mode of Operaon – Very fast at compiling code – Not great quality of code generaon • Ahead of Time Compilaon – Mandatory on some plaorms • PS3, XBox360, iOS – Can afford expensive compiler opKmizaons Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Arrays Bounds Checking Mono RunKme translates this to: Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Disabling Arrays Bounds Checking • Very unsafe – GC depends on system integrity – But admissible if no error ever found on tesKng • We give you the tools to shoot your feet – mono –O=unsafe • Ask your QA team Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com GARBAGE COLLECTION Mono’s Garbage Collectors • Boehm GC: – TradiKonal Mono GC – Mostly-precise, stack conservave – Scans everything on each GC • Generaonal Collector (SGen) – New (default on Android) – Generaonal (Old generaon, nurseries) – Copying (plus mark+sweep for large objects) Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com SGen Old Nursery Generaon • New objects • Aged objects • Small size (4MB) • Slower collecon • Per thread regions • Fixed or variable • Very fast heaps collecon • Parallel collecKon Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Garbage CollecKon Memory Allocated Released later Garbage Collector determines when to run and release memory • HeurisKcs are plaorm-specific • GC.Collect() is the only determinisKc opKon Best PracKces • Pre-allocate major objects before Game Loop – Managed objects – Or unmanaged buffers – Try to only use the nursery (stay under 4M) – If you must collect, only collect the nursery: • GC.Collect (0) – Performs only a nursery collecKon • GC.Collect () – Performs a complete GC on the heap • On Main loop: – Use structs instead of classes Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Schedule GC Collecon Game Game Game Network Audio Physics Logic 1 Logic 2 Logic 3 Checks Updates Game Game Game GC Network Audio Physics Logic 1 Logic 2 Logic 3 Collect Checks Updates GC.Collect (0) Limit CollecKon to Nursery Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Mono’s GC Thread Control • Garbage CollecKon Stops all Mono Threads • Non-Mono threads are not affected • Alternave: • Use a Render Scene + Render Thread • Like Apple’s CoreAnimaon or Microso_ WPF Game Network Mono IO Thread Thread Thread Render Scene Render Real Time Mono Thread Thread Thread 1 Nave Thread Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com COROUTINES State-based programming Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Problems with Callbacks and State-Machines Systems • RepeKKve • Cumbersome • Error Prone • Poor Error Propagaon protocols/pracKces • Life is too short Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Co-rounes • Popular soluKon to simplify AI code • Each Game Object has a script aached – Runs Game Logic – AI bits • Many soluKons – longjmp/setjmp for unmanaged code – Stack fiddling (Mono.Tasklets) – Interpreted languages with VM support Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com C# 5.0 and Async Programming • Mono master has a complete C# 5 Compiler • Turns repeKKve callback-based async programming into linear programming – Compiler rewrites the code into a state machine – Tasks are scheduled on the main thread – Scheduling is customizable • Originally designed for interacKve UIs Mono for Game Developers – AltDevConf 2012 hp://www.xamarin.com Using Await Mono
Recommended publications
  • Blotch3d User Manual with Just a Few Lines Code You Can Create Real-Time 3D Apps for Multiple Platforms
    Blotch3D User Manual With just a few lines code you can create real-time 3D apps for multiple platforms. QUICK START INTRODUCTION PROJECT STRUCTURE DEVELOPMENT MAKING 3D MODELS DYNAMICALLY CHANGING A SPRITE’S ORIENTATION AND POSITION MATRIX INTERNALS A SHORT GLOSSARY OF 3D GRAPHICS TERMS TROUBLESHOOTING RIGHTS Quick start (This quick start section is for Windows. See below for other platforms, like Android, etc.) 1. Get the installer for the latest release of MonoGame from http://www.monogame.net/downloads/ and run it. (Do NOT get the current development version nor the NuGet package.) 2. Get the Blotch3D repository zip from https://github.com/Blotch3D/Blotch3D and unzip it. 3. Open the Visual Studio solution file. 4. Build and run the example projects. 5. See IntelliSense comments for reference documentation. Introduction Blotch3D is a C# library that vastly simplifies many of the fundamental tasks in development of 3D applications and games. Examples are provided that show how with just a few lines of code you can… • Load standard file types of 3D models as “sprites” and display and move them in 3D with real- time performance. • Set a model’s material, texture, and how it responds to lighting. • Load textures from standard image files. • Show 2D and in-world (as a texture) text in any font, size, color, etc. at any 2D or 3D position, and make text follow a sprite in 2D or 3D. • Attach sprites to other sprites to create associated structures of sprite trees as large as you want. Child sprite orientation and position is relative to its parent sprite’s orientation and position, and can be changed dynamically.
    [Show full text]
  • Trident Development Framework
    Trident Development Framework Tom MacAdam Jim Covill Kathleen Svendsen Martec Limited Prepared By: Martec Limited 1800 Brunswick Street, Suite 400 Halifax, Nova Scotia B3J 3J8 Canada Contractor's Document Number: TR-14-85 (Control Number: 14.28008.1110) Contract Project Manager: David Whitehouse, 902-425-5101 PWGSC Contract Number: W7707-145679/001/HAL CSA: Malcolm Smith, Warship Performance, 902-426-3100 x383 The scientific or technical validity of this Contract Report is entirely the responsibility of the Contractor and the contents do not necessarily have the approval or endorsement of the Department of National Defence of Canada. Contract Report DRDC-RDDC-2014-C328 December 2014 © Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2014 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2014 Working together for a safer world Trident Development Framework Martec Technical Report # TR-14-85 Control Number: 14.28008.1110 December 2014 Prepared for: DRDC Atlantic 9 Grove Street Dartmouth, Nova Scotia B2Y 3Z7 Martec Limited tel. 902.425.5101 1888 Brunswick Street, Suite 400 fax. 902.421.1923 Halifax, Nova Scotia B3J 3J8 Canada email. [email protected] www.martec.com REVISION CONTROL REVISION REVISION DATE Draft Release 0.1 10 Nov 2014 Draft Release 0.2 2 Dec 2014 Final Release 10 Dec 2014 PROPRIETARY NOTICE This report was prepared under Contract W7707-145679/001/HAL, Defence R&D Canada (DRDC) Atlantic and contains information proprietary to Martec Limited. The information contained herein may be used and/or further developed by DRDC Atlantic for their purposes only.
    [Show full text]
  • Projects on the Move
    :FDDLE@KP Free Software Projects 8elg$kf$[Xk\fm\im`\nf]]i\\jf]knXi\Xe[`kjdXb\ij GIFA<:KJFEK?<DFM< Finally there’s a free alternative to the proprietary Flash on the web. Unfortunately, it implements Microsoft technology whose software patents might render the free Moonlight license useless. BY CARSTEN SCHNOBER Microsoft and Novell formed an alliance Flash format as a global standard for problems to newcomers because you can with the aim of establishing a Flash al- complex, interactive web content. The download a prebuilt version of the pl- ternative for Linux. After one year of co- proprietary browser plugin by Adobe is ugin from the project website and click operation between developers from both like a red flag to a bull for many Linux to install (Figure 1). Thus far, Moonlight companies, a beta version of the Silve- users. Because the source code is not supports only Linux systems using Fire- light free implementation, Moonlight, is available, developers and users of the fox, although the makers claim that it now available. Many members of the free operating system have been forced will support OpenSolaris and the Kon- Linux community suspect that the to rely on Adobe providing updates. In queror and Opera browsers in the near Moonlight Linux implementation [1] is the past, Adobe has been reticent with future. being used to establish Microsoft's Sil- respect to timeliness and completeness. For licensing reasons, the binary pack- verlight [2] technology on a cross-plat- age leaves out all multimedia codecs, form basis, thereby infiltrating the soft- ;Xe^\ijXe[9\e\]`kj thus seriously limiting its own function- ware freedom fighters’ fortress.
    [Show full text]
  • Mono for Cross-Platform Control System Environment
    monomono forfor crosscross--platformplatform controlcontrol systemsystem environmentenvironment H.H. NishimuraNishimura andand C.C. TimossiTimossi,, LBNL,LBNL, Berkeley,Berkeley, CACA 94720,94720, U.S.AU.S.A Work supported by the U.S. Department of Energy under Contract No. DE-AC03-76SF00098 .NET.NET FrameworkFramework z MicrosoftMicrosoft ÄÄ ECMA/ISOECMA/ISO z 1.01.0 inin 20022002 z 1.11.1 inin 20032003 z 2.02.0 inin 20052005 z 3.03.0 inin 2006?2006? z WindowsWindows VistaVista isis .NET.NET--based.based. z C#C# andand manymany otherother languages.languages. .NET.NET missesmisses 22 pieces..pieces.. WhatWhat isis Mono?Mono? z AnAn independentindependent implementationimplementation ofof .NET.NET FrameworkFramework byby XimiaXimiann ÄÄNovell.Novell. z Linux,Linux, FreeBSD,FreeBSD, UNIX,UNIX, MacMac OSOS X,X, SolarisSolaris andand WindowsWindows z s390/s390x,s390/s390x, SPARC,SPARC, PowerPC,PowerPC, x86,x86, x86x86--64,64, IA64,IA64, ARMARM z DualDual LicensedLicensed byby NovellNovell HPHP atat www.mono-project.com SearchSearch MonoMono atat www.wikipedia.orgwww.wikipedia.org WhoWho mademade Mono?Mono? z MiguelMiguel dede IcazaIcaza z CreatedCreated GnomeGnome withwith FedericoFederico MenaMena inin 1997.1997. z CreatedCreated MonoMono inin 20012001 atat XimianXimian.. z ““MonoMono andand GNOME.GNOME. TheThe longlong replyreply”” z 0606 FebFeb 20022002 z http://mail.gnome.org/archives/gnomehttp://mail.gnome.org/archives/gnome-- hackers/2002hackers/2002--February/msg00031.htmlFebruary/msg00031.html z NowNow underunder Novell.Novell. IsIs MonoMono aa CrossCross--PlatformPlatform .NET?.NET? z DefinitelyDefinitely YES!YES! z AsAs .NET.NET RuntimeRuntime EnvironmentEnvironment z AsAs .NET.NET DevelopmentDevelopment EnvironmentEnvironment z AA fewfew yearsyears behindbehind thethe ““.NET.NET onon WindowsWindows””.. z NonNon--graphicalgraphical classesclasses areare basicallybasically OK.OK.
    [Show full text]
  • The GNOME Desktop Environment
    The GNOME desktop environment Miguel de Icaza ([email protected]) Instituto de Ciencias Nucleares, UNAM Elliot Lee ([email protected]) Federico Mena ([email protected]) Instituto de Ciencias Nucleares, UNAM Tom Tromey ([email protected]) April 27, 1998 Abstract We present an overview of the free GNU Network Object Model Environment (GNOME). GNOME is a suite of X11 GUI applications that provides joy to users and hackers alike. It has been designed for extensibility and automation by using CORBA and scripting languages throughout the code. GNOME is licensed under the terms of the GNU GPL and the GNU LGPL and has been developed on the Internet by a loosely-coupled team of programmers. 1 Motivation Free operating systems1 are excellent at providing server-class services, and so are often the ideal choice for a server machine. However, the lack of a consistent user interface and of consumer-targeted applications has prevented free operating systems from reaching the vast majority of users — the desktop users. As such, the benefits of free software have only been enjoyed by the technically savvy computer user community. Most users are still locked into proprietary solutions for their desktop environments. By using GNOME, free operating systems will have a complete, user-friendly desktop which will provide users with powerful and easy-to-use graphical applications. Many people have suggested that the cause for the lack of free user-oriented appli- cations is that these do not provide enough excitement to hackers, as opposed to system- level programming. Since most of the GNOME code had to be written by hackers, we kept them happy: the magic recipe here is to design GNOME around an adrenaline response by trying to use exciting models and ideas in the applications.
    [Show full text]
  • Third Party Terms for Modular Messaging 3.0 (July 2005)
    Third Party Terms for Modular Messaging 3.0 (July 2005) Certain portions of the product ("Open Source Components") are licensed under open source license agreements that require Avaya to make the source code for such Open Source Components available in source code format to its licensees, or that require Avaya to disclose the license terms for such Open Source Components. If you are a licensee of this Product, and wish to receive information on how to access the source code for such Open Source Components, or the details of such licenses, you may contact Avaya at (408) 577-7666 for further information. The Open Source Components are provided “AS IS”. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR THE CONTRIBUTORS OF THE OPEN SOURCE COMPONENTS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE PRODUCT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Avaya provides a limited warranty on the Product that incorporates the Open Source Components. Refer to your customer sales agreement to establish the terms of the limited warranty. In addition, Avaya’s standard warranty language as well as information regarding support for the Product, while under warranty, is available through the following web site: http://www.avaya.com/support.
    [Show full text]
  • Msbridge: Opensees Pushover and Earthquake Analysis of Multi-Span Bridges - User Manual
    STRUCTURAL SYSTEMS RESEARCH PROJECT Report No. SSRP–14/04 MSBRIDGE: OPENSEES PUSHOVER AND EARTHQUAKE ANALYSIS OF MULTI-SPAN BRIDGES - USER MANUAL by AHMED ELGAMAL JINCHI LU KEVIN MACKIE Final Report Submitted to the California Department of Transportation (Caltrans) under Contract No. 65A0445. Department of Structural Engineering May 2014 University of California, San Diego La Jolla, California 92093-0085 University of California, San Diego Department of Structural Engineering Structural Systems Research Project Report No. SSRP-14/03 MSBridge: OpenSees Pushover and Earthquake Analysis of Multi-span Bridges - User Manual by Ahmed Elgamal Professor of Geotechnical Engineering Jinchi Lu Assistant Project Scientist Kevin Mackie Associate Professor of Structural Engineering at University of Central Florida Final Report Submitted to the California Department of Transportation under Contract No. 65A0445 Department of Structural Engineering University of California, San Diego La Jolla, California 92093-0085 May 2014 ii Technical Report Documentation Page 1. Report No. 2. Government Accession No. 3. Recipient’s Catalog No. 4. Title and Subtitle 5. Report Date MSBridge: OpenSees Pushover and Earthquake Analysis May 2014 of Multi-span Bridges - User Manual 6. Performing Organization Code 7. Author(s) 8. Performing Organization Report No. Ahmed Elgamal and Jinchi Lu UCSD / SSRP-14/04 9. Performing Organization Name and Address 10. Work Unit No. (TRAIS) Department of Structural Engineering School of Engineering University of California, San Diego 11. Contract or Grant No. La Jolla, California 92093-0085 65A0445 12. Sponsoring Agency Name and Address 13. Type of Report and Period Covered Final Report California Department of Transportation Division of Engineering Services 14. Sponsoring Agency Code th 1801 30 St., MS-9-2/5i Sacramento, California 95816 15.
    [Show full text]
  • The Gnome Desktop Comes to Hp-Ux
    GNOME on HP-UX Stormy Peters Hewlett-Packard Company 970-898-7277 [email protected] THE GNOME DESKTOP COMES TO HP-UX by Stormy Peters, Jim Leth, and Aaron Weber At the Linux World Expo in San Jose last August, a consortium of companies, including Hewlett-Packard, inaugurated the GNOME Foundation to further the goals of the GNOME project. An organization of open-source software developers, the GNOME project is the major force behind the GNOME desktop: a powerful, open-source desktop environment with an intuitive user interface, a component-based architecture, and an outstanding set of applications for both developers and users. The GNOME Foundation will provide resources to coordinate releases, determine future project directions, and promote GNOME through communication and press releases. At the same conference in San Jose, Hewlett-Packard also announced that GNOME would become the default HP-UX desktop environment. This will enhance the user experience on HP-UX, providing a full feature set and access to new applications, and also will allow commonality of desktops across different vendors' implementations of UNIX and Linux. HP will provide transition tools for migrating users from CDE to GNOME, and support for GNOME will be available from HP. Those users who wish to remain with CDE will continue to be supported. Hewlett-Packard, working with Ximian, Inc. (formerly known as Helix Code), will be providing the GNOME desktop on HP-UX. Ximian is an open-source desktop company that currently employs many of the original and current developers of GNOME, including Miguel de Icaza. They have developed and contributed applications such as Evolution and Red Carpet to GNOME.
    [Show full text]
  • A Brief History of GNOME
    A Brief History of GNOME Jonathan Blandford <[email protected]> July 29, 2017 MANCHESTER, UK 2 A Brief History of GNOME 2 Setting the Stage 1984 - 1997 A Brief History of GNOME 3 Setting the stage ● 1984 — X Windows created at MIT ● ● 1985 — GNU Manifesto Early graphics system for ● 1991 — GNU General Public License v2.0 Unix systems ● 1991 — Initial Linux release ● Created by MIT ● 1991 — Era of big projects ● Focused on mechanism, ● 1993 — Distributions appear not policy ● 1995 — Windows 95 released ● Holy Moly! X11 is almost ● 1995 — The GIMP released 35 years old ● 1996 — KDE Announced A Brief History of GNOME 4 twm circa 1995 ● Network Transparency ● Window Managers ● Netscape Navigator ● Toolkits (aw, motif) ● Simple apps ● Virtual Desktops / Workspaces A Brief History of GNOME 5 Setting the stage ● 1984 — X Windows created at MIT ● 1985 — GNU Manifesto ● Founded by Richard Stallman ● ● 1991 — GNU General Public License v2.0 Our fundamental Freedoms: ○ Freedom to run ● 1991 — Initial Linux release ○ Freedom to study ● 1991 — Era of big projects ○ Freedom to redistribute ○ Freedom to modify and ● 1993 — Distributions appear improve ● 1995 — Windows 95 released ● Also, a set of compilers, ● 1995 — The GIMP released userspace tools, editors, etc. ● 1996 — KDE Announced This was an overtly political movement and act A Brief History of GNOME 6 Setting the stage ● 1984 — X Windows created at MIT “The licenses for most software are ● 1985 — GNU Manifesto designed to take away your freedom to ● 1991 — GNU General Public License share and change it. By contrast, the v2.0 GNU General Public License is intended to guarantee your freedom to share and ● 1991 — Initial Linux release change free software--to make sure the ● 1991 — Era of big projects software is free for all its users.
    [Show full text]
  • Pro Opengl for C# Developers High-Performance 2D and 3D Graphics for Desktop, Web, Ios and Android
    F. Ramos Pro OpenGL for C# Developers High-Performance 2D and 3D Graphics for Desktop, Web, iOS and Android ▶ Access the hugely popular OpenGL graphics API in C#, without the need to use C++.Build your own game engine with 2D and 3D support.Target multiple platforms with your next game. OpenGL is widely considered the industry standard in high performance graphics for gaming, virtual reality and visualization. Unlike DirectX, OpenGL can be used on a wide range of platforms beyond Windows, from Linux to iOS and PlayStation Vita. Pro OpenGL for C# Developers shows you how to harness this powerful API from your language of choice, C#, and start creating professional-quality games and interactive graphics applications. 1st ed. 2014, 450 p. The book starts with an introduction to the OpenGL API and a guide to the process A product of Apress involved in rendering graphics, known as the graphics pipeline. You'll also meet OpenTK, the fully managed wrapper that makes it easy and painless to work with OpenGL in C# (or any other .NET language). Chapters 2 and 3 take you through the process of building your Printed book game engine, covering topics like architecture, object-oriented design and test-driven development in the context of game development. You'll begin to discover the power of Softcover OpenGL, build your first rendering demo, and learn techniques for rendering 2D in 3D, and ISBN 978-1-4842-0050-6 3D in 2D! (That is, a 2D world in a 3D game engine, and a 3D scene on a 2D display.) ▶ 44,95 € | £35.50 ▶ *48,10 € (D) | 49,45 € (A) | CHF 60.00 Further chapters dive deep into specific areas of graphic programming: shaders, particle systems, animation and path finding.
    [Show full text]
  • Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
    Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman 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 \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M.
    [Show full text]
  • Game-Based Learning
    Game-based Learning Motion-based Educational Game Per Olav Flaten Henrik Reitan Master of Science in Informatics Submission date: June 2016 Supervisor: Alf Inge Wang, IDI Norwegian University of Science and Technology Department of Computer and Information Science Problem Description Title: Game-based Learning Sub-title: Motion-based Educational Game This project focuses on the development, testing and experimentation with motion-based educational games. The games will use body movement as input to provide a natural user interface and will provide learning through gesture based movement. The project consists of a state-of the-art study, prototyping and develop- ment, testing and experimentation with real users, and analysis of the ex- perimental data. The project will utilize technology like Kinect or similar. Assignment given: 13:01.2015 Supervisor: Alf Inge Wang Abstract This master's project is dedicated to investigate the potential for educa- tional games with a motion controller based interface. Through professor Alf Inge Wang at NTNU we were assigned the task of brainstorming and developing a concept that would utilize motion controllers, more speci- cally the Microsoft Kinect, and investigate if it could be useful outside of a traditional game setting. Additionally it was expressed a desire to have em- phasis on reusable software that would benet future projects investigating the same area or using the same technology. Throughout our research period we have discovered several interesting things. We found that although the Kinect failed to gain any traction on its in- tended area of use, it is a very impressive piece of aordable technology that is worth investigating further.
    [Show full text]