By Justin Karneeb.  Many people have different views  It is not a High-Level language  It has low functionality (innate abilities)  It has minimal.

Slides:



Advertisements
Similar presentations
1 Automated Testing & Test Tools Apirada Thadadech.
Advertisements

Programming Types of Testing.
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.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman.
How to build your own computer And why it will save you time and money.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Chapter 3 Software Two major types of software
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
BTEc unit 12 software development
Advanced Web 2012 Lecture 4 Sean Costain PHP Sean Costain 2012 What is PHP? PHP is a widely-used general-purpose scripting language that is especially.
Introduction CSE 1310 – Introduction to Computers and Programming
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Getting to Know TiVo: The Home Media Engine (HME SDK) Eric M. Upchurch CS 525 Spring 2008.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Higher Grade Computing Studies 2. Languages and Environments Higher Computing Software Development S. McCrossan 1 Classification of Languages 1. Procedural.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Introduction to Programming ICS2O Findlay. Learning Goals  We will learn  The definitions of a computer, program and programming language.  The different.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
CS101 Introduction to Computing Lecture Programming Languages.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Program Development Life Cycle (PDLC)
An overview of scripting languages Alexander Kanavin Teachers: Barbara Miraftabi, Jan Voracek.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
1 Instant Data Warehouse Utilities Extended (Again!!) 14/7/ Today I am pleased to announce the publishing of some fantastic new functionality for.
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
Moving Around in Scratch The Basics… -You do want to have Scratch open as you will be creating a program. -Follow the instructions and if you have questions.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
mysql-proxy By Farhad Saberi - Overview and architecture - Making The case for a proxy - Lua - Lua examples - The admin interface - currently.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 4 Computer Software.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
SOCIAL MEDIA FINAL PRESENTATION. PROJECT SUMMARY Our job was to making a working social stream that incorporated all social medias for FSU, FSU CCI, and.
Model View Controller A Pattern that Many People Think They Understand, But Has A Couple Meanings.
Siena Computational Crystallography School 2005
Computer Software Types Three layers of software Operation.
Iteration 1 Looping Structures. Iteration 2 The Plan While not everyone understands: 1.Motivate loops 2.For loops 3.While loops 4.Do-while loops 5.Equivalence.
Software Development. Software Development Loop Design  Programmers need a solid foundation before they start coding anything  Understand the task.
Intermediate 2 Computing Unit 2 - Software Development.
Sega 500 Scripted events and Sequences Jeff “Ezeikeil” Giles
CompSci Video Game Package Design Design of the Video Game Package.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Programming Objectives What is a programming language? Difference between source code and machine code What is python? – Where to get it from – How to.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Retele de senzori Curs 2 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CIS 234: Object-Oriented Programming with Java
Lecture 1b- Introduction
Development Environment
Component 1.6.
Introduction CSE 1310 – Introduction to Computers and Programming
Chapter 4 Computer Software.
Teaching Computing to GCSE
Programming.
(Computer fundamental Lab)
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
Tonga Institute of Higher Education IT 141: Information Systems
Tonga Institute of Higher Education IT 141: Information Systems
1.3.7 High- and low-level languages and their translators
Presentation transcript:

By Justin Karneeb

 Many people have different views  It is not a High-Level language  It has low functionality (innate abilities)  It has minimal debugging tools  It simplifies a complex task for another program So what is the answer??

 A scripting language, script language or extension language, is a programming language that controls a software application.  But that is a very vague response…… but because of the debate, I guess it has to be.

 There is one thing that everyone agrees on  It is almost always used to solve a task for another program Scripting Languages are languages where there core use is to extend the use of another language or piece of software.

 There are two parts to a scripting language  The Language itself  Defines syntax just like a High-Level language  The Engine/Interpreter  A scripting language normally runs in a virtual machine similar to Java.

 Most programming languages compile into machine code/assembly  Scripting languages mostly compile into what is know as a bytecode stream.  It contains simpler instructions than the language itself, but not as simple as assembly.

 Also known as a Virtual Machine or VM.  The VM takes the bytecode stream and runs it.  This is generally slower than it running innately, however it also has many positives as well.  Since they are running independently from the main program, the entire program will not crash if there is a problem.

 You can use a scripting language to do almost any task, however it is suited to some more than others  Anything which needs to be multiplatform  Anytime in which non programmers need to have direct access to the behavior of a program  When gluing different pieces of software together or to have them communicate effectively.

 Webpages are perfect places to utilize scripting languages.  Since they need to be multiplatform, their VM based compiling/running is extremely handy.  HTML, PHP, XML, SWF, these are all scripting language extensions.

 This allows developers to work on parts of the program that do not necessarily require the completed program.  This is also applicable in games, developers can begin work on mapping and scripting npcs while the game itself is still under development.

 Many NPCs in video games are completely scripted  The path the walk, what they say and even what they do is coded in a scripting language which communicates with the engine.  The infamous Half-Life Marines were scripted to move in a specific way

Some games release scripting languages complete with API’s for the gamer community to use to “mod” their game.  Unreal tournament allows users to make custom bots  The original Half-Life had many scripting capabilities through programs like AMX

 As with everything, scripting languages have their upsides an downsides  Scripting languages seem to have more ups than downs, especially as technology gets better and faster

 Allows developers to work independently of the programmers  Easy to understand and use compared to languages like c++ and java  Does not crash program, less error prone  Scripts can be put on hold  Is multiplatform  Has a data-driven design  Allows a modding community to extend a game

 Most do not have debugging tools  Runs extremely slowly when compared to fully compiled code  Normally has less functionality, less innate abilities  Using scripts too much (in games) can lead to boring gameplay  Overdependence on scripting can lead to horrible problems late in development (using too much processing power)

 We have dealt with what scripting languages are, when to use them and how they work, now its time to show some real examples of scripting languages in action.  Far Cry Instincts  Half-Life

 A console based FPS which takes place on several islands.  The game is made to be played by sneaking around, which presented a serious problem  NPCs on the island needed to look as if they had a purpose.  How would you code hundreds of different NPCs to independently do normal activities?  Scripting Languages : )

 Originally, Ubisoft tried to code their behaviors directly into the NPCs behavior  They decided to take a new approach where developers could place “Anchors” on things in game.  The anchor would tell the NPC what to do next

 At first they were simple, but they soon expanded their use.  An anchor can play animations, trigger events, issue commands and just about anything else an NPC would want to do

 The developers were not versed in programming, so they decided to go with XML  It fit in well with their engine  Was overall easy to learn  XML is a text based scripting language that is powerful enough to get the job done

 The developers needed to get used to the XML code  Some picked it up fast, but not everyone  Because the coding is generally easy, the programmers were able to make a GUI interface which could be used to write the code for the developers.

 Because the developers were unfamiliar with the subtitles of programming, they ran into some problems  Ignore All command lead to many problems  Vehicles could not use anchors  Physics issues

 I have personal experience with scripting for Half-Life, specifically counterstrike and some other mods.  Half-Life itself has been modded more times than I prefer to count.  My experience is with AMX, it makes minor changes to the games.

 AMX is a scripting language made specifically for Half-Life modifications.  It starts as a text file which gets compiled into a.AMX file  AMX links with the Half-Life engine and while in game runs “plugins” that are written by the modders.  When you combine AMX’s plugins with the already modded HL engine, there are millions of different gameplay options available.

 Ninja Rope  Allowed you to swing from any surface via a “rope”  Slap  Allowed admins/users to “slap” (do 1 damage and knock the slapie around a bit) players  Predator  Made one user invisible, gave them extra health and speed.  Defend Your Castle/Force Grab

 The plugin asked the engine who the user was currently looking at, and returned to it its x,y, and z positions in the plane  When activated, as the user moved his/her cursor, the x,y and z coordinates of the player being grab were updated to that new location (the distance between them remained constant)

 While we were able to achieve a very high toss into the air, which would kill players in impact, if you forcibly drove a player into the ground and he died while being grabbed, the plugin would crash.  Half-Life was unaffected however AMX would stop working until the server was restarted.  We were never able to solve this problem, there seemed to be no exception handling in AMX.

 I learned a lot about scripting languages back then even though I had no idea what I was doing.  It was extremely powerful  It was hard to debug  It was easy to learn  I had never programmed before  When it crashed, it did not ruin the game  It fit our definition perfectly.