Title: Introduction to CO42032 Computer Games Software Engineering
1Introduction 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.
2What? - 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.
3Why 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 .
4Hold 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
5Games 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.
6Games 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).
7Games 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.
8Games 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.
9Why 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
10Why 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
11Why 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.
12How 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.
13Is 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.
14What 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.
15Lectures, 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/
16Overview 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.
17Overview 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).
18Whats 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.
19Module timetable Computer Games Software
Engineering
20Format 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).
21Getting 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.
22Getting 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).
23Getting 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.
24Dell 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.
25The 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).
26Developing 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).
27Developing 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.
28Developing 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.
29Extra 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