Official GameX Home Page – (Cornell University Mirror)

 
 

Information about GameX
Frequently Asked Questions

Contents

1. What is GameX?
2. What are the current features of GameX?
3. What is the history of GameX?
4. Who has contributed to GameX?
5. What are the terms of use for GameX?
6. What kind of system/platform do I need to run GameX?
7. Can I use GameX to learn to make games?
8. Can I use GameX to make my shareware / open-source game?
9. Can I use GameX to make my commercial game?
10. Can I use GameX as a teaching tool?
11. What underlying graphics API does GameX use?
12. Is GameX cross-platform?
13. Can I develop my own extensions to GameX?
14. Can I contribute to the Official GameX?
15. How do contributors benefit from working on GameX?
16. This project is great! How do I donate X?
17. What is the future of GameX?

1. What is GameX?

GameX is a free, open-source game engine for game developers. GameX
was originally designed as a game engine that provides a single object
interface for all game functions, thus eliminating the need to develop
complicated code using different low-level APIs for sound and graphics.
In addition to ease-of-use, GameX is
thoroughly documented and comes
with extensive
demos to support new game developers. GameX is written
in C++, and gives the game developer control of graphics, sound, and
user input without writing any Windows, DirectX, or OpenGL code – thus
freeing you to focus on the behavior and content of the game itself.
GameX has also been successfully used as an interdisciplinary teaching
tool for undergraduate courses in the
Game Design Initiative at Cornell University.

2. What are the current features of GameX?

The current features of GameX include the following:

GameX handles the Game and Drawing loops. GameX
provides its own game and drawing loop so you don’t have to write any
Windows API code. Instead, GameX handles all operating system events
and game timing.

Simple 2D Rendering interface. GameX provides the easiest
interface for drawing sprites. Instead of the pages of code needed to
set up a 2D texture and render a sprite using a low-level API (DirectX
or OpenGL), you simple initialize GameX, load a TIF, BMP or JPG file
and draw the image using C++ code like this:

ImageX myimg (“ship.jpg”);
GameX.DrawImage (myimg, x, y, angle, scale)

Simple 3D Rendering interface. GameX also provides
a simple interface for 3D drawing. GameX has an internal camera so you
don’t need to worry about initializing a 3D viewport. Just start drawing
objects in 3D. Of course, you can override the internal camera if you
want more control.

Fast Hardware Rendering. GameX relies on either OpenGL
or DirectX as its underlying API, so you benefit from fast hardware
rendering, but without having to write lots of specialized code.

Sound Support.
GameX uses DirectSound on the Windows
platform for sound output, providing you with up to 16-channel of simultaneously
mixed sound effect. However, you don’t have to create the sound buffers
or initialize them. Simply ask GameX to start play a sound object:

SoundX snd (“phaser.wav”);
GameX.PlaySound (snd);

Music Support. GameX support continuous music playback
from WAV or MP3 files using the same simple interface.

Simple User Input. With GameX, you can request keyboard,
mouse and joystick input without dealing with Windows or X-Windows event
handling. GameX managest user events and allows you to simply request
information.

GameX.GetMouseX ();
GameX.IsKeyDown (KEY_LEFT);

New feature are constantly being added to GameX. The current features
that are being developed include the following:
– 2D Tiled Maps for grid based simulation-style games
– Physics and Collision Detection Engines
– Simple Networking Interface for Multiplayer Support
– 3D Mesh Objects (with texturing, and file I/O)
– Kinematic Hierarchies (support for scripted 3D Characters)

3. What is the history of GameX?

As an open-source project, GameX is the product of collaborative effort.

July 10th, 2002. GameX R1. GameX first released. Software rendering
2D graphics via the ImageX class. Mouse and keyboard input through the
GameX object. Support for loading and saving TIF images. (R.C. Hoetzlein)

July 16th, 2002 GameX R2. CameraX class is released with GameX
to teach and demonstrate 3D perspective transformations. At this point,
only 3D billboarding is permitted via sprite pasting (no 3D polygonal
rendering). Additional classes released include 2D and 3D Vector and
Matrix classes. (R.C. Hoetzlein)

September 15th, 2002. GameX is adopted by the Game Design Initiative
at Cornell University (GDIAC) for interdiscplinary eduaction.

September 18th, 2002 GameX R3. GameX is updated to handle initialization
errors better. Error messages are displayed for nearly every type of
initialization and drawing problem, including invalid display depth,
improper usage of sprites and file-not-found errors when loading TIF
files. GameX is first released as a stand-alone library so that games
can be developed with just a single .cpp file. (R.C. Hoetzlein)

October 15th, 2002 GameX R4. GameX is released with sound
support and a new SoundX class. An unlimited number of sound clips can
be loaded as WAV files into SoundX objects. Up to 20 sound clips can
be mixed and played simultaneously. (R.C. Hoetzlein)

February 12th, 2003 GameX R4.1. An updated version is released
that fixes some bugs and provides static library for both Visual
C++ and Visual Studio .NET. (R.C. Hoetzlein)

October 9th, 2003 GameX R5 beta. Contributions by Justin
Pease, GameX R5 beta includes DirectX hardware rendering support, gaming
timing control, music playback support and JPG file format I/O, as well
as many other improvements and bug fixes.(Justin Pease)

February 1st, 2004 GameX R5. GameX R5 is officially released.
Transparent polygon rendering, and depth sorting for transparent objects
is supported. New drawing modes added (multiply, subtract, add, blend),
as well as complex rendering features (image hue adjustment, gradients
across images). Additonal bug fixes an improvement made (camera clipping)

February 4th, 2004 GameX Core Architecture redesigned. New design
supports a cross-platform architecture with multiple underlying rendering
APIs via GameX Device classes. First GameX development team assembled
with volunteer students from the Game Design Initiative at Cornell University
(GDIAC).

4. Who has contributed to GameX?

The contributors to GameX, in chronological order are:

Rama C. Hoetzlein. Original GameX core. Core Architecture redesign.
OpenGL rendering.
Justin Pease. DirectX rendering, advanced image rendering, Music
support, JPG support.

5. What are the terms of use for GameX?

GameX is released under the GNU General Public License (GPL), with some
addition requirements for those who wish to contribute to the Official
GameX source code. Please click here for the complete license details
and terms of use: GameX Terms of Use

6. What kind of system/platform do I need to run GameX?

Presently, GameX R5 and R5 beta run only on Windows system with
DirectX hardward support.
If you have no hardware support (older or no graphics card), you can
use GameX R4.1, which supports software rendering (with limited
functionality and speed).

Future versions of GameX are being designed to support OpenGL for both
Windows and Linux in addition to DirectX for Windows.

7. Can I use GameX to learn to make games?

Yes. GameX was designed to be easy to use, especially for beginners.
We suggest you start by downloading GameX, downloading a Demo, and taking
a look at the Installation instructions in the Documentation. The GameX
tutorials are the best way to get started making GameX games.

8. Can I use GameX to make my shareware / open source game?

Yes. However, under the GameX GPL license, wheather or not you sell
the game you must release all of your source code and redistribute the
GameX source code and libraries with your game. In addition to the copyright
for your code, you must also list the names of all GameX contributors
in the copyright.

9. Can I use GameX to make my commerical game?

Yes. You can even charge money for your game if you want to (the general
public license does not prohibit sale of your games). However, under
the GameX GPL license, wheather or not you sell the game you must release
all of your source code and redistribute the GameX source code and libraries
with your game. This includes the source code for your game, since it
relies on the GameX open source code. In addition to the copyright for
your code, you must also list the names of all GameX contributors in
the copyright.

10. Can I use GameX as a teaching tool?

Yes. GameX was designed with interdiscplinary education in mind. The
Game Design Initiative at Cornell University (GDIAC) uses GameX to support
collaboration between college-level students in Fine Arts, Music and
Computer Science. GameX is the technology that makes these collaborations
possible. If you would like to use GameX as a teaching tool for undergraduate
or graduate education, please contact Rama C. Hoetzlein ([email protected])
for more information and advice.

GameX w a s d e s i g n e d f o r h i g h e r e d u c a t i o n , b u t c o u l d a l s o b e u s e d t o s u p p o r t

s p e c i a l p r o j e c t s i n p u b l i c e d u c a t i o n ( M i d d l e a n d H i g h S c h o o l s t u d e n t s ) .

G D I A C i s c u r r e n t l y a t t e m p t i n g a p i l o t p r o j e c t b e t w e e n u n d e r g r a d u a t e

s t u d e n t s i n C o m p u t e r S c i e n c e a t C o r n e l l U n i v e r s i t y a n d t h e B o y n t o n M i d d e l

S c h o o l i n I t h a c a , N Y . U n f o r t u n a t e l y , d u e t o l i m i t e d r e s o u r c e s , w e c a n n o t

p r o v i d e t e c h n i c a l s u p p o r t i f y o u d e c i d e t o u s e G a m e X i n y o u r c l a s s r o o m .

I n t h e f u t u r e , i f t h e r e i s d e m a n d , w e m a y o f f e r T e a c h i n g P a c k e t s t h a t

g u i d e a t e a c h e r t h r o u g h a c u r r i c u l u m o f c r e a t i v e g a m e d e v e l o p m e n t u s i n g

G a m e X . b r >

b r >

b > f o n t s i z e = ” 4 ” > 1 1 . W h a t u n d e r l y i n g g r a p h i c s A P I d o e s G a m e X u s e ? / f o n t > / b > b r >

b r >

A t p r e s e n t , G a m e X R 5 u s e s D i r e c t X f o r h a r d w a r e r e n d e r i n g . H o w e v e r , f u t u r e

v e r s i o n s o f G a m e X ( b e y o n d R 6 ) w i l l b e d e s i g n e d t o s u p p o r t b o t h D i r e c t X

a n d O p e n G L f o r r e n d e r i n g . b r >

b r >

b > f o n t s i z e = ” 4 ” > 1 2 . I s G a m e X c r o s s – p l a t f o r m ? / f o n t > / b > b r >

b r >

N o . A t p r e s e n t G a m e X R 5 r u n s o n W i n d o w s s y s t e m s o n l y . H o w e v e r , t h e n e w

c o r e a r c h i t e c t u r e o f G a m e X R 6 s h o u l d a l l o w f o r c r o s s – p l a t f o r m v e r s i o n s

o f G a m e X i n t h e f u t u r e . T h e G a m e X R 6 c o r e a r c h i t e c t u r e s u p p o r t s d e v e l o p m e n t

i n t h i s d i r e c t i o n ( i . e . f o r L i n u x ) , b u t n o c o n t r i b u t o r s a r e c u r r e n t l y

w o r k i n g i n t h i s a r e a . b r >

b r >

b > f o n t s i z e = ” 4 ” > 1 3 . C a n I d e v e l o p m y o w n e x t e n s i o n s f o r G a m e X ? / f o n t > / b > b r >

b r >

P l e a s e d o . G a m e X w a s d e s i g n e d a s a n o p e n s o u r c e p r o j e c t . I n d e p e n d e n t l y ,

y o u a r e f r e e t o w o r k w i t h a n y p o r t i o n o f t h e c o d e y o u w o u l d l i k e t o .

T h i s i n c l u d e s d e v e l o p i n g e x t e n s i o n s f o r n e w f e a t u r e s o r c l a s s e s . I f

y o u w o u l d l i k e t o c o n t r i b u t e t o t h e O f f i c i a l G a m e X S o u r c e c o d e h o w e v e r ,

t h e r e a r e a d d i t i o n r e q u i r e m e n t s y o u r c o d e m u s t m e . S e e t h e n e x t q u e s t i o n . b r >

b r >

b > f o n t s i z e = ” 4 ” > 1 4 . C a n I c o n t r i b u t e t o t h e O f f i c i a l G a m e X ? / f o n t > / b > b r >

b r >

U n d e r t h e o p e n s o u r c e l i c e n s e , y o u a r e f r e e t o d e v e l o p a n y c o d e f o r

G a m e X t h a t y o u w o u l d l i k e t o ( p r o v i d e d t h a t y o u i n c l u d e a l l t h e

s o u r c e c o d e a n d t h e o r i g i n a l c o p y r i g h t s w i t h a n y g a m e y o u d i s t r i b u t e ) .

H o w e v e r , f o r y o u r e x t e n s i o n s t o b e c o n s i d e r e d f o r i n c l u s i o n i n t h e O f f i c i a l

G a m e X r e l e a s e s y o u m u s t m e e t t h e f o l l o w i n g a d d i t i o n a l r e q u i r e m e n t s : b r >

b r >

– Y o u m u s t i n f o r m u s a s e a r l y a s p o s s i b l e o f t h e p o r t i o n o f G a m e X y o u

p l a n t o d e v e l o p . I f y o u ‘ v e a l r e a d y c r e a t e d s o m e t h i n g y o u w a n t t o s e e

i n c l u d e d , t h i s s t e p i s n o t r e q u i r e d . b r >

– Y o u m u s t p r o v i d e u s w i t h a c o m p l e t e A P I ( A p p l i c a t i o n P r o g r a m m i n g I n t e r f a c e )

f o r y o u r e x t e n s i o n s t h a t d e s c r i b e h o w t h e u s e r w i l l i n t e r a c t w i t h y o u r

c o d e . T h i s i s a l i s t o f a l l p u b l i c f u n c t i o n s f o r y o u r c l a s s ( s ) . B e p r e p a r e d

f o r o t h e r c o n t r i b u t o r s t o s u g g e s t c h a n g e s ( t h i s i s w h y i t i s b e t t e r

t o s u b m i t y o u r A P I f i r s t , b e f o r e y o u w r i t e a n y c o d e ) . b r >

– Y o u m u s t u s e S T L ( S t a n d a r d T e m p l a t e L i b r a r i e s ) a n y w h e r e t h a t b a s i c

c o m p u t e r s c i e n c e d a t a s t r u c t u r e s a r e n e e d e d . b r >

– W e s t r o n g l y r e c o m m e n d t h a t y o u f o l l o w t h e H u n g a r i a n p r e f i x e s ( i n d u s t r y

s t a n d a r d ) f o r n a m i n g v a r i a b l e s . ( m _ f o r m e m b e r v a r i a b l e s , p f o r p o i n t e r s ,

i f o r i n t e g e r s , s f o r s t r i n g s , e t c . ) b r >

– W e l o o k f o r c l e a n c o d e . T h i s m e a n s t h a t f u n c t i o n s l o n g e r t h a n 2 p a g e s

o f c o d e s h o u l d p r o b a b l y b e b r o k e n u p i n t o s u p p o r t i n g f u n c t i o n s . C l a s s e s

t h a t a p p e a r t o s e r v e m u l t i p l e p u r p o s e s s h o u l d b e s p l i t u p i n t o s e v e r a l

c l a s s e s . b r >

– I n g e n e r a l , w e d i s c o u r a g e c o n t r i b u t o r s w h o w a n t t o w o r k o n m o r e t h a n

o n e p a r t o f t h e O f f i c i a l G a m e X a t a t i m e . T h i s i s t o h e l p p r e v e n t o v e r l a p s

b y c o n t r i b u t o r s . b r >

– I f y o u r c o n t r i b u t i o n i s a c c e p t e d i n t o t h e O f f i c a l G a m e X , y o u c a n e x p e c t

t h a t w e w i l l a s k f o r i n t e r f a c e ( A P I ) d o c u m e n t a t i o n a s w e l l a s i n t e r n a l

d o c u m e n t a t i o n ( o f c o d e ) . b r >

– Y o u c o d e s h o u l d b e t h o r o u g h l y t e s t e d . T h i s i n c l u d e s p r o v i d i n g a d e m o

p r o j e c t t h a t d e m o n s t r a t e s a l l t h e f e a t u r e s o f y o u r c o d e e x t e n s i o n . b r >

– T h i s i s m u l t i – s t e p p r o c e s s . W e w i l l n o t s i m p l y a c c e p t c o d e t h a t i s

s e n t t o u s u n l e s s i t m e e t s a l l o f t h e a b o v e r e q u i r e m e n t s . I n g e n e r a l ,

i f y o u s e n d u s s o m e t h i n g y o u b e l i e v e i s r e a d y f o r r e l e a s e , w e m a y r e v i e w

i t a n d s e n d i t b a c k t o y o u w i t h s u g g e s t i o n s f o r i m p r o v e m e n t b e f o r e i t

i s i n c l u d e d . b r >

b r >

* T h e s e r e q u i r e m e n t s b e c a m e n e c e s s a r y b e c a u s e t h e O f f i c i a l G a m e X r e l e a s e s

a r e u s e d i n a n o f f i c i a l c a p a c i t y i n a n e d u c a t i o n e n v i r o n m e n t f o r f i r s t

y e a r s t u d e n t s a t C o r n e l l U n i v e r s i t y . U n l i k e o t h e r o p e n s o u r c e p r o j e c t s

t h a t w o u l d b e d o w n l o a d e d o n l y b y t h o s e w h o s p e c i f i c a l l y w a n t t o e x a m i n e

o r u s e t h e c o d e , t h e O f f i c a l G a m e X r e l e a s e s w i l l b e t e s t e d o n a c t u a l ,

i n e x p e r i e n c e d u s e r s ( i . e . f i r s t y e a r C o m p . S c i . u n d e r g r a d s , h i g h s c h o o l

s t u d e n t s ) . T h e r e f o r e , t h e O f f i c i a l G a m e X m u s t b e s t a b l e , f l e x i b l e , e x p a n d a b l e ,

a n d f u l l y d o c u m e n t e d . b r >

b r >

b r >

f o n t s i z e = ” 4 ” > b > 1 5 . H o w d o c o n t r i b u t o r s b e n e f i t f r o m w o r k i n g o n G a m e X ? / b > / f o n t > b r >

b r >

F i n a n c i a l l y , w e d o n ‘ t . B e c a u s e G a m e X i s o p e n s o u r c e , a l l c o n t r i b u t o r s

a r e u n p a i d . H o w e v e r , t h e d e v e l o p e r s o f G a m e X b e l i e v e t h a t G a m e X w i l l

b e c o m e t o e a s i e s t , m o s t p o w e r f u l p l a t f o r m f o r c r e a t i n g s o p h i s t i c a t e d

g a m e s q u i c k l y . I n a d d i t i o n , t h e r e a r e r e w a r d s r e l a t e d t o p r o v i d i n g i n e x p e r i e n c e d

p r o g r a m m e r s , h i g h s c h o o l s t u d e n t s , a n d u n d e r g r a d s w i t h a s o l i d , e a s y – t o – u s e

g a m e d e v e l o p m e n t p l a t f o r m . H i g h e r e d u c a t i o n , v i a t h e G a m e D e s i g n I n i t i a t i v e

a t C o r n e l l U n i v e r s i t y , h a s a l r e a d y b e n e f i t e d f r o m G a m e X t o s u p p o r t i n t e r d i s c p l i n a r y

e d u c a t i o n . b r >

b r >

b > f o n t s i z e = ” 4 ” > 1 6 . T h i s p r o j e c t i s g r e a t ! H o w d o I d o n a t e X ? / f o n t > / b > b r >

b r >

I f y o u l i k e u s i n g G a m e X , w e a c c e p t d o n a t i o n s . I f X i s m o n e y , f e e l f r e e

t o s e n d i t r i g h t a w a y . I f X i s y o u r g a m e , w e ‘ l l p l a y i t f o r a w h i l e

a n d i n c l u d e i m a g e s o f i t i n o u r G a m e X g a l l e r y . I f X i s a n y t h i n g y o u

w o u l d n ‘ t w a n t t o r e c e i v e y o u r s e l f , p l e a s e d o n ‘ t s e n d i t . I f X i s f o o d ,

p l e a s e d o n ‘ t s e n d i t . I f X i s c a t c h – f r e e i n d u s t r y s u p p o r t , f r e e l e g a l

a d v i c e , a S w i s s b a n k a c c o u n t , o r a n e w c a r , p l e a s e c o n t a c t u s i m m e d i a t e l y .

I f y o u w a n t t o d o n a t e &q u o t ; X &q u o t ; i t s e l f , j u s t s e n d u s a n e – m a i l w i t h

t h a t c h a r a c t e r i n s t a n d a r d a s c i i . D o n a t i o n s w i l l b e d i s t r i b u t e d a m o n g

t h e c o n t r i b u t o r s . b r >

b r >

S e n d d o n a t i o n s b y m a i l t o : b r >

b r >

R a m a C . H o e t z l e i n b r >

3 4 8 0 C o u n t y R o u t e 8 b r >

M o n t o u r F a l l s , N Y 1 4 8 5 0 / p >

p > b > f o n t s i z e = ” 4 ” > 1 7 . W h a t i s t h e f u t u r e o f G a m e X ? / f o n t > / b > / p >

p > T h e n e w c o r e o f G a m e X ( R 6 + ) i s b e i n g d e v e l o p e d w i t h i n d u s t r y f e a t u r e s

l i k e s c a l a b i l i t y , f l e x i b i l i t y a n d c r o s s – p l a t f o r m s u p p o r t i n m i n d . W e

b e l i e v e t h a t i n t h e n e x t f i v e y e a r s , i n d i v i d u a l s a n d s t a r t u p g a m e c o m p a n i e s

w i l l n o l o n g e r b e w r i t i n g O p e n G L o r D i r e c t X d i r e c t l y , j u s t a s n o o n e

w r i t e s g r a p h i c s c o d e i n a s s e m b l y l a n g u a g e a n y m o r e ( g r a p h i c s c a r d s n o w

d o a l l t h e w o r k , b u t w i t h d e v i c e A P I s o n a h i g h e r l e v e l ) . T h e r e a s o n

i s t h a t t h e s e p l a t f o r m s a r e b e c o m i n g t o o i m m e n s e a n d c o m p l i c a t e d f o r

s m a l l t e a m s . I t i s t o o d i f f i c u l t f o r a s m a l l g a m e c o m p a n y t o d e v e l o p

a n d c o m p e t e b y c r e a t i n g h i g h – l e v e l a l g o r i t h m s ( c h a r a c t e r k i n e m a t i c s ,

p h y s i c s , c o l l i s i o n d e t e c t i o n , m u l t i p l a y e r n e t w o r k e d e n g i n e s ) s t a r t i n g

f r o m s c r a t c h u s i n g l o w – l e v e l A P I s . O p e n G L , D i r e c t X , W i n s o c k , t h e W i n d o w s

A P I , a n d X W i n d o w s a r e b e c o m i n g t h e a s s e m b l y l a n g u a g e o f t h e g a m i n g

i n d u s t r y . T h e n e x t g e n e r a t i o n o f g a m e A P I s , l i k e G a m e X , w i l l p r o v i d e

a l l o f t h e s e h i g h – l e v e l o p e r a t i o n s – p h y s i c s , k i n e m a t i c s , A . I , t e r r a i n

g e n e r a t i o n – i n o n e p l a c e . I n t h e f u t u r e a l l o w i n g i n d i v i d u a l s a n d s m a l l e r

g a m e c o m p a n i e s t o d e v e l o p g a m e s t h a t a r e c u r r e n t l y o n l y p o s s i b l e i n

a l a r g e c o m p a n y . ( R . C . H o e t z l e i n ) / p >

p > G a m e X i s c u r r e n t l y u n d e r g o i n g a m a j o r r e d e s i g n , w i t h t h e p a r t i c i p a t i o n

o f P a r t 2 s t u d e n t s i n t h e G a m e D e s i g n I n i t i a t i v e a t C o r n e l l U n i v e r s i t y .

V i s i t t h e r e d e s i g n p a g e h e r e : / p >

p > a h r e f = ” G a m e X – r e d e s i g n . h t m ” > G a m e X R 6 – C o r e R e d e s i g n / a > / p >

p > &n b s p ; / p >

/ t d >

t d w i d t h = ” 5 0 ” h e i g h t = ” 4 0 3 ” b g c o l o r = ” # D D D D D D ” > &n b s p ; / t d >

t d w i d t h = ” 5 0 ” h e i g h t = ” 4 0 3 ” b g c o l o r = ” # C C C C C C ” > &n b s p ; / t d >

/ t r >

t r >

t d c o l s p a n = ” 5 ” h e i g h t = ” 3 ” >

p > i m g s r c = ” I m a g e s / G a m e X – c o p y r i g h t . g i f ” w i d t h = ” 8 0 0 ” h e i g h t = ” 4 2 ” > / p >

/ t d >

/ t r >

/ t a b l e >

/ d i v >

/ b o d y >

/ h t m l >

Trả lời

Email của bạn sẽ không được hiển thị công khai.