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.

Slides:



Advertisements
Similar presentations
Copyright 2001, ActiveState. XSLT and Scripting Languages or…XSLT: what is everyone so hot and bothered about?
Advertisements

CSCE 590E Spring 2007 Game Design II By Jijun Tang.
Programming Creating programs that run on your PC
W4118 Operating Systems OS Overview Junfeng Yang.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
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.
1 Programming Languages Translation  Lecture Objectives:  Be able to list and explain five features of the Java programming language.  Be able to explain.
Chapter 3.2 C++, Java, and Scripting Languages hacked by jeffery.
Development of Computer - Story of Steve. What is a computer A high intelligence machine A tool – make our life much convenient A very loyal servant Pretty.
CSE305 Programming Languages Notes are based primarily on Sebesta text. Quotes are from Sebesta text (7 th edition), unless otherwise noted. Sources other.
By Logan Phipps Hal student.  This power point explains some common programming languages enjoy  When done click on the home button to return to home.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
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.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Unit Six Assignment 1 Chris Boardley.
Python Introduction.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Chapter Languages, Programming and Architecture.
CW-V1 SDD 0201 Principals of Software Design and Development Introduction to Programming Languages.
Programming Languages: Telling the Computers What to Do Chapter 16.
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.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
111 © 2002, Cisco Systems, Inc. All rights reserved.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
CSCE 552 Spring 2009 Game Design III By Jijun Tang.
CS101 Introduction to Computing Lecture Programming Languages.
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.
CSCE 552 Spring 2009 Programming Fundamentals By Jijun Tang.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Eagle: Maturation and Evolution 17th Annual Tcl Conference Joe Mistachkin.
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.
Siena Computational Crystallography School 2005
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
Ch 1. A Python Q&A Session. Why do people use Python? Software Quality Developer productivity Program portability Support Libraries Component integration.
 Programming - the process of creating computer programs.
Introduction Mehdi Einali Advanced Programming in Java 1.
COP 3275 Chapter 01 course website: Jonathan C.L. Liu, Ph.D. CISE Department University of Florida.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Java How to Program, 9/e Presented by: José M. Reyes Álamo © by Pearson Education, Inc. All Rights Reserved.
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Akshata A. Naik Roll No: 11 B.L.I.Sc ( ) Assignment 1
Perl Ed Finegan. Overview of Pearl Perl is a high-level programming language written by Larry Wall. It derives from the C programming language and to.
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.
Information and Communication Technology Lecture 6 Reference: Chapter 5.
HIGH-LEVEL LANGUAGE PROGRAMMING PARADIGMS. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
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.
Top 8 Best Programming Languages To Learn
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
NOCTI Study Guide #2.
Choosing Technologies
CMPE419 Mobile Application Development
OPERATING SYSTEMS.
Java Programming Introduction
What is Programming Language
1.3.7 High- and low-level languages and their translators
CMPE419 Mobile Application Development
Presentation transcript:

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

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

4 C++: Strengths High-level, object-oriented –High-level language features are essential for making today's complex games –Has inheritance, polymorphism, templates, and exceptions –Strongly typed, so it has improved reliability

5 C++: Strengths C Heritage –C++ is the only high-level language that is backwards-compatible with C –Has APIs and compiler support in all platforms –Easier transition for experienced programmers

6 C++: Strengths Libraries –STL (Standard Template Library) Comprehensive set of standard libraries –Boost: widely used library with wide variety of functionality –Many commercial C++ libraries also 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

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 for Game Development Why use Java? –It's a high-level OO language that simplifies many C++ features –Adds several useful high-level features –Easy to develop for multiple platforms because of intermediate bytecode –Good library support

13 Java for Game Development Performance –Has typically been Java's weak point –Has improved in the last few years: still not up to C++ level, but very close –Uses Just-In-Time compiling and HotSpot optimizations –Now has high-performance libraries –Also has access to native functionality

14 Java for Game Development Platforms –Well suited to downloadable and browser- based games –Dominates development on mobile and handheld platforms –Possible to use in full PC games More likely to be embedded into a game –Not currently used 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 Scripting Languages Why use scripting languages? –Ease and speed of development –Short iteration time –Code becomes a game asset –Offer additional features and are customizable

17 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

18 Scripting Languages Popular scripting languages –Python –Lua –Other off-the-shelf options such as Ruby, Perl, Javascript –Custom scripting languages UnrealScript, QuakeC, NWNScript

19 Scripting Languages How to choose a scripting language –Consider whether you need one at all –What features do you need? –What kind of performance do you need? –What debugging facilities does the language have? –On what platforms does it need to run? –What resources and expertise are available?