OS4Depot.net 20130227_1013
  Home Search Mirrors Contact Info Credits

 Readme data for Root » Development » Library » Misc » libcrtxy.lha

Description: Line-drawing lib for creating retro arcade games.
Install: libcrtxy.lha
Size: 956kb 5
Version: 0.0.1
Date: 06 Aug 08
Author: Bill Kendrick, AmigaOS 4.0 compile by Spot / Up Rough
Submitter: Spot / Up Rough
Email: spot/triad se
Homepage: http://libcrtxy.sf.net/
Category: development/library/misc
License: LGPL
Distribute: yes
Min OS Version: 4.0
                     README for libcrtxy (CRT X-Y Library)

                            http://libcrtxy.sf.net/
                  by Bill Kendrick <bill()newbreedsoftware.com>

                         July 29, 2008 - August 3, 2008
                                 Version: 0.0.1

     ----------------------------------------------------------------------

Purpose:

   "libcrtxy" is meant to allow game programmers to develop
   vector-graphics-style games like those from the late 1970s and early 1980s
   (some examples: 'Lunar Lander', 'Asteroids', 'Red Baron', 'Star Wars',
   'BattleZone', 'Quantum', 'Boxing Bugs', 'Speed Freak', 'Star Castle',
   'Black Widow', 'Star Trek', 'Tempest', and 'War of the Worlds'.*)

   It is named after the so-called "X-Y" arcade game displays, such as the
   "Quadrascan" (created by Wells Gardner) and "Amplifone" monitors used in
   Atari vector-based games.*

   I am creating this library with the intent to port a number of my own
   games (clones inspired by classic arcade games) to it: ICBM3D, Vectoroids,
   3D Pong.

   Helper functions are also included for doing fixed-point math (useful
   since your canvas size is not necessarily your screen size, and can be
   used for sub-pixel movement) and trigonometry (since most vector-based
   games involve things rotating).

   * Names are trademarks of their respective trademark and copyright
   holders.

Backends:

   libcrtxy is being built on top of libSDL, the Simple DirectMedia Layer
   library (http://www.libsdl.org/), and therefore uses it (and SDL_Image for
   bitmap loading) as a backend. It should be reasonable for someone to
   develop an SDL+OpenGL backend for accelerated graphics.

   libcrtxy really only lets the programmer do two things:
    1. set a background color, and optional background overlay image
       (consider translucent colored overlays in arcade games like 'Star
       Castle' and 'War of the Worlds', and the overlays for games on the
       Vectrex home video game system)
    2. draw lines (vectors) on the screen

   For events (keyboard, mouse, joystick, etc.), your event loop, sound
   effects, etc., you use SDL functions and types directly. For video
   initialization, loading and displaying of bitmaps, and drawing vectors,
   libcrtxy's "XY_" functions and types should be used.

Options:

   Depending on the target system (e.g., a high-powered desktop PC or an
   embedded handheld system with a slow CPU and no FPU), various options can
   be set in libcrtxy. On a slow system, fancy visual effects intended to
   simulate an arcade experience can be disabled (anti-aliasing, blurring,
   etc.).

   Screen-size shouldn't matter to game-play, so physical screen size in
   pixels (e.g., 640x480 or 1280x1024) is up to the end-user, or person
   packaging your software for a particular target, as well. Your game logic
   is based around a virtual canvas size, and line positions are given using
   fixed-point values.

   The options that can be set at runtime include:
     * Display settings:
          * Screen width & height
          * Screen depth (16bpp, 24bpp or 32bpp)
          * Window or fullscreen (requested or required)
     * Rendering quality:
          * Alpha blending (on, off, or "fake")
          * Anti-aliasing
          * Backgrounds
          * Bitmap scaling (fast or best)
     * Special effects:
          * Blurring
          * Additive effect

   The options that get used are determined by the following, and should
   occur in this order:
    1. Hard-coded defaults (set at the time libcrtxy is compiled)
    2. System-wide "libcrtxy" configuration file (e.g.,
       "/etc/libcrtxy/libcrtxy.conf")
    3. User's own "libcrtxy" configuration file (e.g., "~/.libcrtxyrc")
    4. Environment variables (e.g., "CRTXY_SCALE=FAST")
    5. System-wide configuration file for the application (e.g.,
       "/etc/some_game/some_game.conf")
    6. User's own configuration file for the application (e.g.,
       "~/.some_gamerc")
    7. Command-line arguments (e.g., "some_game --crtxy-bpp 32")





Copyright (c) 2004-2013 Björn Hagström. All rights reserved.
OS4 and its logos are registered trademarks of Hyperion Entertainment