LGDC - Main Page
(View a printer-friendly Version of this Page)Print (Mail us)Contact

Contents

LGDC | Articles

[News]
   Most Recent
   Archive

[Articles]
   Recent
   Everything
   Art & Design
   Editorials
   Interviews
   Management
   Programming
   Reviews

[Resources]
   Recent
   Everything
   Data
   Documentation
   Game Projects
   Libraries
   Sites
   Tools

[Information]
   About
   Mailing Lists
   Submissions
   Poll Results
   Site Source
   Contact

Webmaster

 

Programming : Creating the game logic - and doing that well

 

Alpha-blending and the Z-buffer [External article @ www.sjbaker.org]

Written 2002-01-06 UTC by Steve Baker in Category "Graphics" (Last Change: 2002-01-06 UTC)

 

 

Shock! - Horror!...
The Z buffer doesn't work for transparent polygons.
The problem is that the Z buffer prevents OpenGL from drawing pixels that are behind things that have already been drawn. Generally, that's pretty convenient - but when the thing in front is translucent, you NEED to see things that are behind it.

 

Basic OpenGL Lighting [External article @ www.sjbaker.org]

Written 2002-01-05 UTC by Steve Baker in Category "Graphics" (Last Change: 2002-01-05 UTC)

 

 

Many people starting out with OpenGL are confused by the way that OpenGL's built-in lighting works - and consequently how colour functions. I hope to be able to clear up some of the confusion.

 

Callbacks in C++

Written 2000-05-29 UTC by Bert Peers in Category "Other" (Last Change: 2001-06-08 UTC)

 

 

An extensive tutorial on how to implement a flexible, typesafe callback mechanism in C++

 

Creating Your First SVGAlib/GGI Game

Written 2000-05-29 UTC by Alexandre Courbot in Category "Graphics" (Last Change: 2001-06-08 UTC)

 

 

Step through the creation of a GGI/SVGA-based game with Alexandre Courbot. He will explain every step of the way, so linux newbies are certainly welcome.

 

Creating Your First SVGALib/GGI Game: Programming And Library Specifics

Written 2000-05-29 UTC by Alexandre Courbot in Category "Graphics" (Last Change: 2001-06-08 UTC)

 

 

Mostly useful for people coming from other systems, this part will help you getting familiar with the Linux/Unix programming specifics.

 

Creating Your First SVGALib/GGI Game: True Color Depths and Keyboard

Written 2000-05-29 UTC by Alexandre Courbot in Category "Graphics" (Last Change: 2001-06-08 UTC)

 

 

In this final article about Svgalib and GGI you'll learn about true colordepths, sprite conversions and basic input using the keyboard.

 

Culling your scene to the View Frustum [External article @ www.sjbaker.org]

Written 2002-01-05 UTC by Steve Baker in Category "Graphics" (Last Change: 2002-01-05 UTC)

 

 

OpenGL can correctly reject polygons that lie 'off the edge' of the screen - and clip those that straddle the edge of the screen, but the cost of transmitting all those vertices to OpenGL only to have them thrown away is pretty high.

You could write code to reject those polygons yourself - but that would be pretty pointless because it would probably take as long - if not longer - than OpenGL takes.

The optimal solution is to do a coarse level cull in your application - rejecting entire objects that lie completely off the screen - and let OpenGL do the fine-grained cull at the level of individual polygons. This approach will greatly speed up most OpenGL applications.

This paper describes one efficient method for attacking this problem.

 

Dialog - a programming language for dialogs

Written 2000-05-29 UTC by Philipp Gühring in Category "Other" (Last Change: 2001-06-08 UTC)

 

 

Dialog is a programming language, for dialogs with the user. It was used in the trading-simulation "Würstelstand". This article describes the development of Dialog and its applications.

 

Euler Angles are Evil [External article @ www.sjbaker.org]

Written 2002-01-05 UTC by Steve Baker in Category "Physics and Math" (Last Change: 2002-01-05 UTC)

 

 

Most people's first attempt at writing a camera/player movement routine do this kind of thing:

  while ( 1 )
  {
    ...read some angular velocities from a joystick or something ;
    ...add the angular velocities to the current angles ;
    ...convert current angles into a matrix ;
    ...invert the matrix ;
    ...put it onto the GL_MODELVIEW stack ;
 
    ...draw the scene ;
  }

This doesn't work - or at least, it seems to work - but only for heading changes - and perhaps small changes in pitch and roll. You have just discovered that - and that's why you are reading this page - right?

 

Fast Text in OpenGL [External article @ www.sjbaker.org]

Written 2002-01-06 UTC by Steve Baker in Category "Graphics" (Last Change: 2002-01-06 UTC)

 

 

Sooner or later, almost everyone finds the need to draw text using OpenGL. This text explains the basically three only ways to do this at the OpenGL level

 

Graphics Programming Basics: A PCX Loader/Viewer (Part I)

Written 2000-05-29 UTC by Alexandre Courbot in Category "Graphics" (Last Change: 2001-06-08 UTC)

 

 

The basics of graphical programming with Linux, using Svgalib and GGI. Learn how to set a 8bpp video mode, how to draw most of the primitives and how to load a PCX file.

 

Graphics Programming Basics: A PCX Loader/Viewer (Part II)

Written 2000-05-29 UTC by Alexandre Courbot in Category "Graphics" (Last Change: 2001-06-08 UTC)

 

 

The basics of graphical programming with Linux, using Svgalib and GGI. Learn how to set a 8bpp video mode, how to draw most of the primitives and how to load a PCX file.

 

Joysticks - Implementation and Portability

Written 2000-05-29 UTC by Erik Greenwald in Category "Other" (Last Change: 2001-10-14 UTC)

 

 

My goal here is to give you the ability to implement joysticks into your videogames in an effecient and relatively portable manner. My emphasis will be on Linux (2.0.x and 2.2.x), and FreeBSD (I think).

 

Keyboards Are Evil [External article @ www.sjbaker.org]

Written 2002-01-05 UTC by Steve Baker in Category "Other" (Last Change: 2002-01-05 UTC)

 

 

OK - so I hear you asking, what could possibly be evil about keyboards (apart from the stoopid CapsLock key of course!).
Try this (Yes - NOW! - I'll wait while you do it...):

  • Open a text entry window of some kind.
  • Press down (and hold down) the 'E' key.
  • Without letting go, press down (and hold down) the 'C' key.
  • Now tap repeatedly on the 'U' key. Do you see any u's coming out on the screen? No? I didn't think so.
  • If you have an older keyboard, maybe you did see a 'u' - but you probably see some m's too?!?
  • Try typing some other characters - notice that some work but some are either blocked or generate 'ghost' characters.
  • Try holding down other pairs of keys and tapping on a third - for almost any pair you choose, there are several other keys that don't work.

Clearly this is a bad thing for programs that expect the user to hold down keys to make things happen. Games with two players using the keyboard at once are particularly vulnerable to this.

 

Learning to Love your Z-buffer [External article @ www.sjbaker.org]

Written 2002-01-05 UTC by Steve Baker in Category "Graphics" (Last Change: 2002-01-05 UTC)

 

 

One of the more common OpenGL programming problems that I see concerns the poor precision of the Z buffer.

Many of the early 3D adaptors for the PC have a 16 bit Z buffer, some others have 24 bits - and the very best have 32 bits. If you are lucky enough to have a 32 bit Z buffer, then Z-precision may not seem to be an issue for you. However, if you expect your program to be portable, you'd better give it some thought.
The precision of Z matters because the Z buffer determines which objects are hidden behind which others - and if you don't have enough precision to resolve the distance between two nearby objects, they will randomly show through each other - sometimes in large zig-zags, sometimes in stripes.

 

Making the game world independent of CPU speed

Written 2000-08-13 UTC by Erik Greenwald in Category "Other" (Last Change: 2001-06-08 UTC)

 

 

The game world in modern games appears to run at speeds that do not depend on the speed of the CPU. This is critical for a game that involves network interaction between two computers of different speeds, as well as providing the best possible experience the players machine can give. Once the time delta (the amount of time it takes from one frame to the next) is calculated, the physics and controls can be scaled against it, giving the consistency necessary for a modern game. Two of the most common languages for developing action-oriented video games are C and C++, so we will explore how to implement a couple methods of finding the time delta and FPS using these languages.

 

Matrices can be your Friends [External article @ www.sjbaker.org]

Written 2002-01-05 UTC by Steve Baker in Category "Physics and Math" (Last Change: 2002-01-05 UTC)

 

 

What stops most people from getting friendly with matrices is that they look like 16 utterly random numbers. However, a little mental picture that I have seems to help most people to make sense of what's going on. Most programmers are visual thinkers and don't take kindly to piles of abstract math.

 

Optimization Basics

Written 2000-10-11 UTC by Erik Greenwald in Category "Methodology" (Last Change: 2001-06-08 UTC)

 

 

Many people seem to think that the best road to blindingly fast programs is to write as much as possible in assembly. Typically this results in buggy software that is actually slower than one written in a higher level language. Premature optimizations can cost huge amounts of time and effort. No optimization should occur before the program works without crashing or exhibiting weird behavior.

 

Performance Of The Common Linux Compilers

Written 2000-05-29 UTC by Salvador E. Tropea in Category "Code Management" (Last Change: 2001-06-08 UTC)

 

 

An LGDC article that compares the performance of gcc, egcs and pgcc using the BYTE Magazine algorithms.

 

Tricking GGI Into An 8-Bit Display Mode

Written 2000-05-29 UTC by Philipp Gühring in Category "Graphics" (Last Change: 2001-06-08 UTC)

 

 

A bit of code helping to display 8-bit graphics everywhere (including 16 bit or 24 Bit X-Servers), automatically with GGI.

 

Writing Modifiable Games

Written 2000-05-29 UTC by Bert Peers in Category "Methodology" (Last Change: 2001-06-08 UTC)

 

 

A look at different techniques for making games more configurable and extensible.

 

 
 

Hosted By
SunSITE.dk

| News | Articles | Resources | Contact |
http://lgdc.sunsite.dk/articles/category13.html - Last Changed 2002-02-28 UTC

 Powered by Zend Cache