Chapter 3.2 C++, Java, and Scripting Languages hacked by jeffery.

Slides:



Advertisements
Similar presentations
CSCE 590E Spring 2007 Game Design II By Jijun Tang.
Advertisements

Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Programming Creating programs that run on your PC
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
W4118 Operating Systems OS Overview Junfeng Yang.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
Reasons to study concepts of PL
Executable XML Present by 吳昆澤. Outline  Introduction  Simkin  Jelly  o:XML  Conclusion.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Java Implementation of Petuum Yuxin Su September 2, 2014.
Language Issues Misunderstimated? Sublimable? Hopefuller? "I know how hard it is for you to put food on your family.” "I know the human being and fish.
Java How to Program, 9/e Instructor: José M. Reyes Álamo © by Pearson Education, Inc. All Rights Reserved.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Source Code Basics. Code For a computer to execute instructions, it needs to be in binary Each instruction is given a number Known as “operation code”
Python Introduction.
The PHP Story. PHP Story PHP is a programming language. Incorporate(join) sophisticated business logic. Widely used general purpose scripting language.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Chapter Languages, Programming and Architecture.
Programming Languages: Telling the Computers What to Do Chapter 16.
Introduction to Programming Language CS105 Programming Language First-generation: Machine language Second-generation: Assembly language Third-generation:
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
There are only 10 types of people in the world, those who understand binary and those who don't.
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
111 © 2002, Cisco Systems, Inc. All rights reserved.
CSCE 552 Spring 2009 Game Design III By Jijun Tang.
Programming language A programming language is an artificial language designed to communicate instructions to a machine,languageinstructionsmachine particularly.
CSCE 552 Spring 2010 Language and Programming By Jijun Tang.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Chapter 3.5 Memory and I/O Systems. 2 Memory Management Memory problems are one of the leading causes of bugs in programs (60-80%) MUCH worse in languages.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
FLUKA GUI Status FLUKA Meeting CERN, 10/7/2006.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Eagle: Maturation and Evolution 17th Annual Tcl Conference Joe Mistachkin.
SE-2840 Dr. Mark L. Hornick1 NodeJS Server-side JavaScript.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
CSCE 552 Fall 2012 Language and Programming By Jijun Tang.
 Programming - the process of creating computer programs.
Introduction Mehdi Einali Advanced Programming in Java 1.
Rich Internet Applications 2. Core JavaScript. The importance of JavaScript Many choices open to the developer for server-side Can choose server technology.
COP 3275 Chapter 01 course website: Jonathan C.L. Liu, Ph.D. CISE Department University of Florida.
Java How to Program, 9/e Presented by: José M. Reyes Álamo © by Pearson Education, Inc. All Rights Reserved.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
First appeared Features Popular uses Basic This language emphasises on ease of use, allowing general purpose programming to those with a small amount of.
CSCE 552 Spring 2011 Language and Programming By Jijun Tang.
COMP 2100 From Python to Java
Why don’t programmers have to program in machine code?
Top 8 Best Programming Languages To Learn
NOCTI Study Guide #2.
Choosing Technologies
CMPE419 Mobile Application Development
Unit 20 – Computer Game Platforms & Technology – Software Technology
OPERATING SYSTEMS.
Programming vs. Packaged
Unit 20 – Computer Game Platforms & Technology – Software Technology
(Computer fundamental Lab)
Java Programming Introduction
Eagle: Maturation and Evolution
1.3.7 High- and low-level languages and their translators
CMPE419 Mobile Application Development
Running C# in the browser
Presentation transcript:

Chapter 3.2 C++, Java, and Scripting Languages hacked by jeffery

2 C++ C used to be the most popular language for games Today, C++ is a popular language for game development

3 C++: Strengths Performance Control over low-level functionality (memory management, etc) Can switch to assembly or C when necessary Good interface with OS + hardware

4 C++: Strengths vis-a-vis C High-level, object-oriented High-level language features are essential for making today's complex games Inheritance, polymorphism, templates, and exceptions... Strongly typed, has improved reliability compared w/ C

5 C++: Strengths C Heritage the primary high-level language that is backwards-compatible with C Has APIs and compiler support in all platforms Folks know it

6 C++: Strengths Libraries STL (Standard Template Library) Comprehensive set of standard libraries Boost: widely used library with wide variety of functionality Qt, Rabin, let's not forget Qt SDL, Ogre, etc. Many commercial libraries available

7 C++: Weaknesses Too low-level Still forces programmers to deal with low- level issues Too error-prone Attention to low-level details is overkill for high-level features or tools Blog after Blog, game developers write their own scripting language atop it.

8 C++: Weaknesses Too complicated Because of its C heritage, C++ is very complicated Long learning curve to become competent with the language

9 C++: Weaknesses Lacking features No reflection or introspection features No method of object serialization No native support for message passing

10 C++: Weaknesses Slow iteration C++ is fully compiled into binary format from source code Compiling large numbers of files is very slow This will only become more of a problem as games become more complex

11 C++: When to Use It? When performance is crucial If your current code base is mostly C and C++ If you have a lot of in-house expertise in C++ Avoid using it for high-level code, such as tools

12 Java and C# for Game Development Why use Java/C#? Simplifies many C++ features Adds several useful high-level features (Java: Easy to develop for multiple platforms) Good library support

13 Java/C# for Game Development Performance Notably weaker than C/C++ Has improved in the last few years: still not up to C++ level, but very close Just-In-Time compiling and HotSpot optimizations, etc. Now has high-performance libraries Also has access to native functionality

14 Java/C# for Game Development Platforms Well suited to downloadable and browser- based games Dominates development on mobile, handheld platforms, e.g. Android Possible to use in full PC games Not used (much?) in consoles

15 Java in Game Development Commercial games using Java Downloadable games like those from PopCap Games: Mummy Maze, etc Online card games PC games using Java as a scripting language: Vampire: The Masquerade, Star Wars Galaxies PC games fully written in Java: You Don't Know Jack, Who Wants to Be a Millionaire

16 C# in Game Development Some prominent server-side and mono- based uses, e.g. SecondLife XNA Game Studio Express Free for students/hobbyists

17 Scripting Languages + VHLLs Why use scripting languages and very high level languages? Ease and speed of development Short iteration time Code becomes a game asset Offer additional features and are customizable

18 Scripting Languages Drawbacks Slow performance Limited tool support Dynamic typing makes it difficult to catch errors Awkward interface with the rest of the game Difficult to implement well

19 Scripting Languages Popular scripting languages Python, Ruby, Lisp/Scheme,... Javascript, Actionscript, etc. Custom scripting languages UnrealScript, QuakeC, NWNScript

20 Scripting Languages How to choose a scripting language What features do you need? What performance requirements? What debugging facilities does the language have? On what platforms does it need to run? What resources and expertise are available?

21 VM as Game Engine Game engines are typically extended with scripting languages Games are written in a mix of systems- level (C/C++), app-level (Java/C#), and interpreted code What would VMs need in order to replace game engines??