Pickup GBA: Difference between revisions
More actions
No edit summary |
No edit summary |
||
| Line 5: | Line 5: | ||
|author=Philip Corner | |author=Philip Corner | ||
|lastupdated=2005/03/16 | |lastupdated=2005/03/16 | ||
|type= | |type=Racing | ||
|format= | |format= | ||
|version=2005 | |version=2005 | ||
Revision as of 13:32, 5 July 2025
| Pickup | |
|---|---|
| General | |
| Author | Philip Corner |
| Type | Racing |
| Version | 2005 |
| License | Mixed |
| Last Updated | 2005/03/16 |
| Links | |
| Download | |
| Website | |
| Source | |
Pickup is a game demo along the lines of "Driver", in which the player has to pickup an item from one location, and take it to another.
The demo is a simple proof of concept, and includes the basic mission handling code in which an objective is assigned and can be completed, a directional arrow which points towards the target, and a simple collision detection algorithm.
User guide
Pick up the item (shown by the red cross on a green background) and deliver it to the drop-off point (shown by the green cross on a red background). The arrow shows the direction to the target.
When you complete the dropoff, the time remaining (bottom left) will be added to your cash (bottom right), and a new delivery mission will begin.
Controls
Left/Right - Steer
A - Accelerate
B - Brake, Reverse
Screenshots
Online emulator
| Game Boy Advance | Keyboard |
|---|---|
Changelog
- Fixed a serious bug in which the flag telling the main loop not to render the next frame was set continually, leading to a low, random framerate.
- The collision routine now rebounds the car with a guaranteed minimum speed, preventing it from getting stuck on terrain.
- Now uses lookup tables for sin, cos and inverse tan, the same as those used in Maelstrom.
- Instead of floating point values, bitshifts are used to store fixed point numbers in integer variables. All the maths have been optimised as much as possible, using bitshifts where possible to multiply or divide and combining these with bitshifts to deal with the fixed point numbers ("worldpositionx>>23" instead of "(worldpositionx/8)>>20", for instance). (Notice that it is not necessary to optimise maths that involves only constant terms, such as "(XTILES*8)-XPIXELS/2)<<20", because these are calculated at compile time and do not impact execution speed)
- The position and orientation of the arrow is now determined more simply using the gradient, and the calculation of this gradient is the only use of a non-bitshift divide per frame.
Credits
Emanuel Schleussinger for writing HAM
Thanks to all the great people on the HAM forum at: http://www.ngine.de
and also the GbaDev forum at: http://forum.gbadev.org
External links
- Author's website - http://www.vertex.ukfsn.org/pickup/index.html (archived)