|
|
GAPI
Programming games using GAPI (Game API)
Articles at Pocket PC Developer Network
-
Drawing images and other graphics with GAPI
February 28, 2003.
The STGapiBuffer class provides a powerful interface to the display buffer
and hides hardware specifics. This class provides a high-performance version
of GDI primitives - the most important thing for a game developer. The interface
is transparent for a developer and does not hide any key GAPI calls. This fact,
together with open source code, makes this class easy to use and leave full
control of application logic for a developer.
-
GapiDraw from a DirectDraw developers perspective
March 28, 2002.
GapiDraw is designed to be as similar to DirectDraw as possible, but at the same time
being as easy to use and as optimized as possible for handheld devices. This page presents
some common tasks in DirectDraw, and how they are implemented in GapiDraw.
-
Creating a new project with GapiDraw
July 09, 2002.
GapiDraw makes it possible to create games that run on Stationary PCs,
Smartphones as well as Pocket PCs. Because different development tools are
required to target each device, some work has to be done to create an easy to
manage solution for cross platform projects.
-
Programming DieselEngine 1. Close up and personal with DieselEngine, Using DieselGraphics
November 13, 2001.
DieselEngine is a software development kit by Inmar Software Ltd. It is multi
platform SDK that allows
producing real-time 2D and 3D graphics, along with input mapping and sound
engine with 3D sound. This article describes using DieselEngine.
-
Programming DieselEngine 2. Using Diesel3D
February 18, 2002.
This is second article about programming DieselEngine.
DieselEngine is a software development kit by Inmar Software Ltd. It is multi platform SDK
that allows producing real-time 2D and 3D graphics, along with input mapping and sound
engine with 3D sound.
-
Whirl - graphics demo application
October 03, 2001.
Whirl is a demo full screen application that is written using EasyCE library.
Here I describe how I created it.
-
Creating Pocket PC games that publish high scores in web
January 13, 2002.
Playing games is more interesting if you can compare your results
with those of other people. Spb Software House along with
PocketGamer.org has developed an open system for creating
Pocket PC games that supports publishing high scores in web.
This system consists of a scores section of the PocketGamer.org website,
a freeware program for desktop PC that retrieves high scores from the connected Pocket PC
and a C++ library for creating Pocket PC games with high scores support.
This article explains how to use this library in your games.
MSDN Technical Articles
-
Two for the Road: Time for GAPI
November 14, 2001.
So, while a full DirectX port wasn't feasible, there was definitely a need for a device-independent way of getting speedy access to the screen. This is what GAPI-the Games API-is all about. GAPI provides a set of functions that provide direct read/write access to the screen buffer, and it first appeared on the Pocket PC back in April 2000. It's been so useful that it now comes included in the ROM of all the devices on the market, or at least all the ones I've seen anyway. To the programmer, it means all kinds of low level stuff is now possible. The OEMs of the individual Pocket PC devices are responsible for the tricky part (providing direct access to screen memory), leaving the programmer to develop the software, comfortable in the knowledge that things will behave in the same way on all devices.
-
Two for the Road: Games On the Go
January 3, 2002.
I contacted Robert Di Benedetto, Program Manager for the DirectPlay for Pocket PC project, and quizzed him on DirectPlay for Pocket PC. Here's a bit from the interview.
-
Two for the Road: Is That a Game in Your Pocket?
February 26, 2002.
Building Games with eMbedded Visual Basic.
This month, we delve into a seldom discussed area of Microsoft eMbedded Visual BasicR development-games. For the most part, game development has been, and will continue to be, in the realm of Microsoft eMbedded Visual C++R. Because eMbedded Visual C++ allows you to build quicker applications, have more control over system resource, and easily interface with GAPI, Microsoft's game API, it is the natural choice for game developers.
-
Getting
Started with the Game API
June 2, 2000.
For Direct Access to the Pocket PC Display and the Keys, Here
are Some Short Code Snippets that Put You on Your Way
-
Here
Comes GAPI!
May 22, 2000.
GAPI Is the Way to Get More Speed Out of Your Games.
Pocket PC Advanced Graphics & Games Programming Tutorial
-
PocketPC Advanced Graphics & Games Programming Tutorial. Part 1 - Getting started with EasyCE
-
Pocket PC Advanced Graphics & Games Programming Tutorial. Part 2 - Advanced tricks with pixels
In the first article of the tutorial I showed how you can setup EasyCE, how to get a pointer to the internal buffer ('getbuffer()'), how to plot dots in the buffer and how to update the physical frame buffer ('update()'). This time, we will go a bit further; we'll have a look at loading an image, translucency and blending.
-
Pocket PC Advanced Graphics & Games Programming Tutorial. Part 3 - Pixel warps and displacement tables
In the previous installment of this series I discussed loading images, translucency and blending. The resulting images where a bit static though; this time we will explore some ways to make pixels move. I will also say a word or two about optimizations.
-
Pocket PC Advanced Graphics & Games Programming Tutorial. Part 4 - Buffers, pointers and sprites
So far I have explained a couple of things about pixel formats, color components, displacement tables and tga files. Before I proceed to more advanced topics however, I need to explain a bit about the basics. I'm getting a lot of questions (90% of them from a single person - You know who you are (ja jij daar:)) about buffers and pointers. So I thought I better explain a bit about them, so everyone knows what I'm talking about later on. :)
-
Pocket PC Advanced Graphics & Games Programming Tutorial. Part 5 - Rotozooming and fixed point arithmetic
Try out this piece of code: <...> As usual, you can replace the lines that generate the chess board pattern with a line that reads your favorite tga file. The tga file must be 256x256 pixels.
-
Pocket PC Advanced Graphics & Games Programming Tutorial. Part 6 - Sprites unlimited and using ZLib
Last week I posted a little graphical demo on www.pocketmatrix.com/phantom that showed over 3000 alpha blended sprites, all moving around in circles. So far, only one guy guessed how I did that; of course I used a trick. So I'll start with explaining what I did
-
Pocket PC Advanced Graphics & Games Programming Tutorial. Part 7 - C-Buffers & stuff
Before you proceed, download the bouncers demo, and run it on your PocketPC. If all goes well, you'll see 100 bouncing balls. Each ball is a 80x80 pixel sprite, and on an iPaq, the app runs at 45fps. This means that this application is pumping almost 64 milion pixels a second. That's too much for your average PocketPC, I can tell you. I used some tricks to achieve this, wich I will explain in this tutorial. Be warned: This is quite heavy stuff, so you might want to skip this tutorial, or just skim it for interesting snippets. Understanding these concepts can be very rewarding though; the c-buffer algorithm that I present is extremely versatile and it can be used for a lot of graphics effects.
CodeProject
-
High Speed Graphics Library for WinCE
25 Jun 2002.
CEDraw is high speed graphics library in WinCE. It depends on GAPI . This code was written in C++ using embedded VC++ to compile it. Testing was done on an iPaq h3600 with WinCE 3.0. CEDraw use double buffer and direct write video buffer technology to enhance Draw speed. With its own graphics arithmetic the drawing speed is much faster than WinGDI.
-
Bubbles for Pocket PC
14 Sep 2000.
An addictive game for PocketPCs with full source code included.
DEVBUZZ.COM
-
Creating Pocket PC Games in eVB Using ASpriteCE
11 Nov 2001.
Some straight talking from Andy Beaulieu; "Let's face it: eVB has a bad rap when it comes to creating fast action games. eVC (and to some extent Assembly) have been the accepted languages for game development on the PocketPC. This is unfortunate, as the intuitive nature of eVB can make any type of application quick to develop and fun to create. The main reason for eVB being an unpopular choice for action games is its speed. Being that eVB is an interpreted language, it can be hundreds of times slower than eVC code at performing comparable operations. And to create that next best-selling PocketPC game, you can bet fast graphics will be a prerequisite for your tool of choice."
Pocket-G
-
Sprite
Because, most objects in game is not rectangle shape. But, bitmap is rectangle. We just try a way to draw it's real shape.
-
Animation
Because, many game developers like to produces real-action game style. Thus, only still image might not in their interest. Let's make it moves by this simple animation technique.
-
Timer call back
In most action game, while the game is running, we will see the game is moving. For DOS programmers, this job is not to hard but the Win32 is multi-tasking environment, more than one applications are running at the same time. While your game is running, other programs are running behind. This cause the problem. Because, we need to share CPU time to other running process.
-
Scrolling background
The one important point that let game application looks more interesting is the movable background. The most of action game, shooting game, and so on, has background movement. The feeling is like you play the game in a big space. In fact, the screen is too small.
-
Object collision
Perhaps, collision checking should be implemented for all action game style. In other word, game could not be a game with out the collision checking or hit test routine.
-
Off-screen technique
Before, we learn about OFF SCREEN tecnique. Let see what is on screen? Why it not seem to works with game application? Well, another basic problem, how can we draw text, picture or animation to the Window's client area?
Libraries
-
Gapidraw.NET
C++ library.
.NET CF wrapper for GapiDraw library.
-
EasyCE
C++ library.
This is a library that hides the many differences in hardware from the programmer:
EasyCE offers the programmer a basic 240x320 display buffer in 16bit color, no matter
what the actual device is capable of.
-
GAPI Emulation
C++ library.
The new PocketPC Operating System from Microsoft doesn't support the heavyweight DirectX.
Instead, the PocketPC provides us with the new Game API (GAPI). Unfortunately, this GAPI is
not available on the PocketPC emulator that comes with Embedded Visual C++. GAPI Emulation
provides your with GAPI for Pocket PC emulator.
-
STGapiBuffer
C++ library.
The STGapiBuffer class provides a powerful interface to the display buffer and hides hardware specifics. This class provides a high-performance version of GDI primitives - the most important thing for a game developer. The interface is transparent for a developer and does not hide any key GAPI calls. This fact, together with open source code, makes this class easy to use and leave full control of application logic for a developer. STGapiBuffer does not use MFC; therefore, it can be also used on Smartphone 2002 platform.
-
Pocket GL (iPAQ and Cassiopeia)
C++ library.
Pocket GL is a 3D graphic library for pocket PC.
This library have been used in 3D game 'Ghosh World'.
It allow to draw 3D objects and manage 3D transformations.
It support fog and vertex color. It is written in C and C++.
The full version include: all sources, a program to import geometry data from 3D studio MAX 3,
demo 3dsmax files and textures.
-
DieselEngine
C++ library.
DieselEngine is a software development kit by Inmar Software Ltd. It is multi
platform SDK that allows producing real-time 2D and 3D graphics, along with input
mapping and sound engine with 3D sound. DieselEngine SDK is free for non-commercial
use, and its demo version downloadable at: www.inmarsoftware.com. Demo version
contains all features that licensed version.
-
GapiDraw
C++ library.
GapiDraw is an optimized and extended port of DirectDraw for Pocket PCs.
GapiDraw is almost 100% compatible with existing DirectDraw code, and comprises
several extensions such as advanced blit effects, zooming while rotating,
loading bitmap images from file or memory, multiple drawing tools, collision masks,
surface intersections, thread timers, bitmapped font support, and much more.
-
PocketFrog
C++ library.
PocketFrog is *the* game library to rapidly write blazing fast games on the
Pocket PC platform. It is implemented in C++ with an object oriented design.
-
ASpriteCE Game Control
ActiveX control.
The ASpriteCE Game Control makes PocketPC game creation in eVB easy.
|