Introduction to CO42032 Computer Games Software Engineering - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Introduction to CO42032 Computer Games Software Engineering

Description:

This is a new module with a number of interesting aspects to it firstly it has ... XScale is the name of Intel's latest technology. for its handheld processors. ... – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 30
Provided by: shaunl4
Category:

less

Transcript and Presenter's Notes

Title: Introduction to CO42032 Computer Games Software Engineering


1
Introduction to CO42032 Computer Games Software
Engineering
  • This is a new module with a number of interesting
    aspects to it firstly it has the word games in
    its title.
  • However, anyone expecting to end the module by
    writing a new bestselling game for the PS2 is
    likely to be disappointed. 3D graphics is way too
    advanced a concept to deliver in a single module
    whilst development tools for games consoles are
    not available to unlicensed developers.
  • Whilst 3D graphics will not play a huge part in
    the module, C programming will this might
    well be new to you.
  • Finally, whilst we wont be developing for
    consoles, we wont be developing for PCs either -
    we will be creating game applications for
    networked PDAs.

2
What? - no 3D graphics?! Computer Games Software
Engineering
  • Programming any 3D graphics application is hard.
    Most games that use 3D graphics will be
    programmed in C using a low level graphics API
    such as Direct X or Open GL and/or a game engine
    or further game API.
  • Getting to grips with all these software
    technologies is beyond the scope of a single
    module especially as you have had no prior
    graphics or C modules.
  • It is possible to create 3D content easily enough
    using content creation tools such as 3DStudioMax
    but it is the runtime manipulation of such
    content that is the tricky aspect.
  • Well cover some 3D aspects from time to time in
    the lectures but the practical work will be 2D.

3
Why use PDAs? Computer Games Software Engineering
  • It would have been wonderful to run a module
    that teaches game development on consoles such
    as the PlayStation, GameCube (pictured) or Xbox.
  • However only licensed developers (established
    game companies) have access to the required
    SDKs, compilers and documentation for these
    devices.
  • On the other hand, developing for PCs is either
    too complex (using 3D graphics) or too dull (2D
    graphics).
  • To this end we have decided to concentrate on
    mobile collaborative games development on PDAs
    for the practical part of the module .

4
Hold on what's a PDA? Computer Games Software
Engineering
  • A PDA is a Personal Digital Assistant. These are
    handheld devices that until recently were used
    primarily as digital replacements for paper
    organisers/diaries etc.
  • Early PDAs include the Apple Newton.
  • More recently they have become much more
    flexible and the boundaries between PDAs and
    phones, games-consoles, portable multimedia
    players, and laptops are blurring.
  • There is currently ongoing commercial battle
    between two main PDA OSs Microsofts Pocket PC
    (such as the pictured HP/Compaq iPaq) and Palm
    Inc.s PalmOS.

John Sculley, former CEO of Apple, is accredited
with coining the term PDA
5
Games on hand held devices? Computer Games
Software Engineering
  • Current technology means that graphics and
    complex AI based gameplay are kept to a
    restricted level on mobile platforms.
  • Despite these current restrictions, mobile
    gaming is predicted to rapidly become an
    important, financially lucrative, technology
    domain.
  • Until recently the only widespread hand-held
    console was the Gameboy/Gameboy Advance by
    Nintendo.
  • The hardware system of the Gameboy are actually
    quite old and Nintendo have recently resorted to
    producing cosmetic upgrades such as the pictured
    GA SP.
  • Its surprising that Nintendo have had such a
    monopoly in this market for so long but this has
    recently changed.

6
Games on hand held devices? Computer Games
Software Engineering
  • Nokia have already released their N-Gage system,
    which is a hybrid mobile phone/game-console. Many
    well known traditional console games have already
    been ported to the N-Gage.
  • Meanwhile Sony, are also due to release a new
    handheld baby PlayStationTM, the PSP
    (PlayStation Portable) to compete directly
    against the N-Gage and Nintendo devices. The PSP
    is likely to have a very high specification (and
    price).

7
Games on hand held devices? Computer Games
Software Engineering
  • Alongside mobile game console developments, usage
    of games on existing general-purpose mobile
    platforms, such as mobile phones and PDAs, is
    widespread and rising.
  • Creating game content for mobile game console
    devices is, surprise-surprise, limited to
    licensed developers. For example it will only be
    possible to develop for the N-Gage using licensed
    software such as Fathammers X-Forge.
  • In contrast, the development of applications for
    phones and PDAs is thrown open to all parties
    Microsoft supply free tools for Pocket PC PDAs
    and SmartPhone mobile phones.
  • Free, or commercially available, C and, to some
    extent, Java development tools are also available
    for developing under rival OSs such as PalmOS
    and Symbian.

8
Games on hand held devices? Computer Games
Software Engineering
  • Because of the relative ease of availability of
    basic development tools for PDAs and mobile
    phones, a number of interesting open source style
    middleware applications have emerged that enable
    developers of specialised content to create
    applications in shorter time frames.
  • For instance, the two Pocket PC APIs GapiDraw
    and OpenTrek enable developers to create
    interactive graphics and networked collaborative
    games content respectively.
  • Both of these APIs have been developed at the
    Future Applications Lab of the Viktoria Institute
    in Sweden and have been used to teach MSc
    students aspects of mobile collaborative games
    development.

9
Why C? I barely know Java!Computer Games
Software Engineering
  • Most games development in industry is still done
    using C. Certainly almost all 3D games are
    written in C.
  • Microsoft supply for free their C development
    kit (Embedded Visual Tools) for Pocket PC PDAs.
    You can also get free gcc compilers for both
    Pocket PCs and PalmOS devices.
  • Java as a games technology has until very
    recently been rarely used outside of web based
    games but is currently a hot topic for mobile
    phone based applications.
  • However, getting hold of free adequate JVMs for
    phones and, especially, PDAs is currently very
    difficult.

Most commercial development for PalmOS using
C is likely to be done using commercial tools
such as MetroWorks CodeWarrior
10
Why should I learn C?Computer Games Software
Engineering
  • For a start you need it to pass this module.
  • Then there is a very strong case for having both
    Java and C/C on your CV. It has been shown in
    various studies that there are enormous benefits
    to be gained in terms of general employability in
    exposing undergraduate students to a number of
    different programming languages (and especially
    C and Java).
  • Furthermore, a games module that uses Java as the
    development language would not be looked upon
    favourably by any potential employers from that
    sector.

See de Raadt, M., Watson, R. Toleman, M.
(2003) Language Tug-Of-War Industry Demand and
Academic Choice. Proceedings of the Fifth
Australasian Computing Education Conference
(ACE2003), Adelaide, Australia, 20137-142,
available online at http//crpit.com/confpapers/CR
PITV20deRaadt.pdf
11
Why should I learn C?Computer Games Software
Engineering
The paper by de Raadt et al is worth a read. One
paragraph states
A programmer with skills in more programming
languages is qualified for more positions. Indeed
the four most demanded languages do not overlap
greatly in the positions for which they are
required. While a person with skills in C is
qualified for 30 of positions, Java qualifies
for 30 of positions, Visual Basic qualifies for
21 of positions and C for 17, knowing C,
Java, Visual Basic and C qualifies a programmer
for over 70 of all advertised positions.
12
How much C do I needComputer Games Software
Engineering
  • to pass this module.
  • Im assuming, to begin with, that you know very
    little, if any, C. But I am assuming that you
    know Java pretty well by this stage since you are
    all doing the final year of a technical Honours
    degree in computing.
  • Well do some lectures on C theory. Then in the
    labs I expect you to pick things up by practice.
    Youll be supplied with template Microsoft
    Visual C applications that would be very
    difficult to create from scratch but are actually
    pretty easy to edit and recompile to do the
    things you want them to.
  • Youll need a lot of common sense and some basic
    grasp of syntax, algorithms and control
    structures.

13
Is this module any use to me? Computer Games
Software Engineering
  • You should look at this module in two ways.
  • Firstly, it is a chance to expand you technical
    skills base. You will use industry standard cross
    compilers (MS Embedded Visual Tools) to develop
    for a well known and commercially important
    embedded system (WindowsCE).
  • The skills developed will be transferable to
    other similar architectures including mobile
    phones.
  • You will, of course, expand your job prospects by
    exposing yourself to C (Microsoft Visual C to
    boot).
  • You will also learn about programming for
    wireless systems another up and coming
    commercial area.
  • Secondly you should view the module as a chance
    to create some fun applications.

14
What will we do? Computer Games Software
Engineering
Lecture Content (C, game design,
collaborative games)
Your Previously Acquired Skills (programming,
group work)
Your Own Learningand Imagination! (extra
reading, brainstorming)
Coursework Assessment (50)
Exam Assessment (50)
  • Well look at general game programming issues as
    well as mobile game programming in particular.
  • Based on what you learn in the lectures and the
    early practical sessions you will design, and do
    your best to implement, a game for the
    coursework. Youll then be further assessed on
    your understanding in an exam.

15
Lectures, handouts reading Computer Games
Software Engineering
  • All lectures will take place in F27 on Wed from
    10-12.00.
  • Each week you will receive printed handouts of my
    slides. These will also be available as PDFs from
    the module homepage on the SoC Server (not
    WebCT).
  • All tutorial (practical) materials will be made
    available online in C6 and also on the SoC
    webpage.
  • Each week, in either lecture or tutorial, I will
    guide you towards further reading material
    usually this will be in the form of online
    articles or web pages.
  • There are no compulsory purchases of books but
    there is some extra reading material listed on
    the homepage.

See http//www.soc.napier.ac.uk/module/op/onemod
ule/moduleid/CO42032/
16
Overview of development env. Computer Games
Software Engineering
  • Well be developing games for Microsoft Pocket
    PC 2003 PDAs. We have approximately 20 Dell Axim
    X5 PDAs each with a wireless network card.
  • Well be using Microsoft eMbedded Visual Tools
    4.0 C and Microsofts Pocket PC 2003 SDK to
    develop applications that will run on the PDAs.
  • Well use the third party graphics/game API
    GapiDraw.
  • Well use the PCs in C6 to run the development
    environment. The PDAs connect to the PCs via a
    USB cradle and a piece of MS software called
    ActiveSync.

Microsoft have indicated that they are dropping
the phrase Pocket PC 2003 in favour of Windows
Mobile 2003 software for Pocket PC.
17
Overview of development env. Computer Games
Software Engineering
  • Microsoft are continually changing licensing and
    availability of their products. eMbedded Visual
    Tools used to include Visual Basic but is now
    just Visual C.
  • It seems likely in future that you will have to
    buy Visual Studio .NET to develop for mobile
    devices.
  • Currently, however, All of the software that we
    are using for this module is available free of
    charge for download from either Microsoft or
    gapidraw.com or Opentrek.com. I can also lend
    you a CD.
  • You wont have access to the PDAs outside of lab
    time but eMbedded Visual Tools comes with an
    emulator (pictured).

18
Whats the format of the labs? Computer Games
Software Engineering
  • Well be using the lab in C6 at Merchiston. This
    room has 18 workstations in it.
  • The machines are deliberately low specification
    and, critically, are not connected to the
    University network.
  • Four slots have been timetabled. Please attend
    your own slot, and when you turn up find a seat.
    The PDAs and the USB cradles will be issued at
    the start, and collected in at the end, of each
    session.
  • The PDAs are not particularly bombproof be very
    careful with them especially when re-seating them
    in the cradle and when touching the screen at any
    time.
  • Any abuse/misuse of the devices will not be
    tolerated.

19
Module timetable Computer Games Software
Engineering
20
Format of the Assessments Computer Games
Software Engineering
  • There are two assessments a piece of coursework
    to be issued in Week 3 and submitted in Week 10
    and an exam at the end of the semester.
  • The coursework will consist of the design, build,
    evaluation and documentation of a small prototype
    game. Extra marks will be available for making
    your games multi-user (i.e. networked) or any
    other advanced aspects.
  • This is an individual assignment though I
    encourage you to work in pairs in the practicals.
    There are two good reasons for working in pairs
    (i) you might be creating collaborative software
    so it makes sense to use a partner to test your
    applications, and (ii) you need the practice of
    working with each other (believe me).

21
Getting started in the labs Computer Games
Software Engineering
  • We only have 9 weeks of timetabled labs. Because
    of the class size we only have 1 hour in the lab
    per week.
  • Because of this you must turn up to the labs and
    turn up promptly. When you turn up I will assign
    you a PDA and USB cradle. Youll need to plug
    these in to the PC yourself.
  • First plug the USB connector into the PC (either
    USB port will do).
  • Then seat the PDA in the cradle.
  • Power up the cradle, and the PC will recognise
    the device and start up ActiveSync always
    select a Guest Partnership if prompted.

22
Getting started in the labs Computer Games
Software Engineering
  • Once ActiveSync has started just leave it
    running on the desktop youll occasionally use
    it to transfer or delete files to/from the PDA .
    Clicking on the Explore icon allows you to
    browse the PDA file structure.
  • Click on the icon.
  • This shows the root (\) directory this is
    where allyour programs will resideas well as
    any supporting files (images, dlls).

23
Getting started in the labs Computer Games
Software Engineering
  • In the first lab session you should have a play
    with the basic operation of the PDA via its
    Pocket PC 2003 OS.
  • In fact, youll not use PPC much other than for
    launching your compiled programs (though this
    can also be done via the eVC interface on the
    PC).
  • Take the PDA off its cradle and work out how to
    browse the files in the root directory (via
    Start, Programs, File Explorer).
  • When you plonk the PDA back in its cradle
    ActiveSync most likely will restart and ask you
    once again to set up a Guest Partnership.

24
Dell Axim X5 detailsComputer Games Software
Engineering
Our Axims are standard devices but have been
configured with TrueMobile CF wireless LAN cards.
Each one has been configured with a device name
(of form axim_XX) and has a copy of the freeware
Pocket Console software as well as the GapiDraw
DLL in the root directory.
Do not install any software other than your own
developed applications on the PDAs.
25
The Intel XScale ProcessorComputer Games
Software Engineering
  • The Dell Axim X5 was launched at the end of 2002.
  • It has 64MBytes of RAM, and 48MBytes of ROM, a
    3.5inch 240x320, 16bit (65,356 colors) TFT
    screen, and a 400MHz Intel XScale processor.
  • XScale is the name of Intel's latest technology
    for its handheld processors. XScale is the
    latest in a long line of ARM chips first
    developed by Acorn (late 1980s) but bought by
    Intel a few years ago.
  • ARM stands for "Advanced RISC Machine", whilst
    RISC stands for "Reduced Instruction Set
    Computer".
  • XScale chips are specifically designed for
    embedded, wireless and handheld devices and
    features what Intel call Personal Internet Client
    Architecture (Intel PCA).

26
Developing for PPC 2003Computer Games Software
Engineering
  • Microsoft used to supply free versions of both
    Visual Basic and C for developing for Pocket PC
    2002 wrapped up as a product called eMbedded
    Visual Tools 3.0.
  • For Pocket PC 2003 only C is available for free
    (named eMbedded Visual C 4.0). This seems to be
    because MS want us to buy full blown copies of
    Windows Visual Studio .NET which allow developers
    to create applications in C, C and VB for
    devices running all manner of Windows OSs
    (including XP, Pocket PC and SmartPhone).
  • Pocket PC is in fact an example of a special
    purpose OS based on the generic Windows CE
    software platform. SmartPhone is another example
    of this. Pocket PC 2003 is based on Windows CE
    .NET (Windows CE 4.2).

27
Developing using eVC4.0Computer Games Software
Engineering
  • To the developer, the IDE for eVC looks pretty
    much like Visual C. You must create projects
    (and, by default, workspaces) in order to create
    applications.
  • To create a new application for this module you
    must run eVC, then create a new, empty, WCE
    Pocket PC 2003 application from the new project
    wizard. This creates all the configuration files
    necessary for the project.
  • You then add your C source file(s), link to any
    resources (images etc.), point the
    compiler/linker to any extra APIs (header files,
    library files etc) that you might be using and
    then make your application.
  • eVC can create either Debug or Release
    executables, and and also use different
    configurations or target platforms.

28
Developing using EVC4.0Computer Games Software
Engineering
In the first tutorial I expect you to compile and
run your first Pocket PC 2003 application. This
will be the usual Hello World job. If you compile
for the PDA device then eVC automatically
downloads the executable to the PDA via the USB
cradle. You can even run it from the eVC Build
menu.
29
Extra Reading for this week Computer Games
Software Engineering
Well be using the GapiDraw API (and perhaps
later the OpenTrek API) developed by the Future
Applications Lab at the Viktoria Institute in
Sweden. You should take a look at the website for
this software at www.gapidraw.com note that the
latest version is newer than the one well
use. Additionally, you should read some of the
publications regarding this software. For
instance-
  • Johan Sanneblad and Lars Erik Holmquist
    Designing Collaborative Games on Handheld
    Computers SIGGRAPH 2003 Sketches and
    Applications. http//www.viktoria.se/fal/publicati
    ons/2003/siggraph2003-collgames.pdf
  • Johan Sanneblad and Lars Erik Holmquist
    OpenTrek A Platform for Developing Interactive
    Networked Games on Mobile Devices, Proceedings of
    Mobile HCI 2003, Fifth International Symposium on
    Human Computer Interaction with Mobile Devices
    and Services, Springer. http//www.viktoria.se/fal
    /publications/2003/mobilehci2003-opentrek.pdf
Write a Comment
User Comments (0)
About PowerShow.com