Allegro

  • 5.2.8.0 (2022年6月5日)[1]
  • 5.2.9.1 (2024年1月20日;穩定版本)[2]
編輯維基數據鏈接源代码库
  • github.com/liballeg/allegro5
編輯維基數據鏈接操作系统跨平台类型多媒体电子游戏相关SDK许可协议Allegro 4: Giftware(类似MIT许可证
Allegro 5: Zlib网站liballeg.org

Allegro是一个特别针对于电子游戏的开发的自由软件程式库[3][4][5]

该库提供基本二维图形、图像操作、音效输出、MIDI音乐、输入、计时器,以及额外的寻路矩阵计算、UNICODE、文件系统管理、有限而建基於軟件的三维图形。

其版本4.0可以运行在DOS、Microsoft Windows、BeOS、Mac OS X、多种类Unix,程序只需要嵌入其API即可使用。该库还有独立的AmigaOS 4移植版。

该库使用C语言编写,适用于C或C++,其附带很多文档和实例。

附件

Allegro社区用户贡献了多种扩展,包括轴卷图块形式的地图、输入输出各种格式(有PNGGIFJPEGMPEGOggMP3、IT、S3M、XMTTF)。其还有多个语言绑定,比如 PythonPerlSchemeC#D语言等。

历史

Allegro原本的含义是"Atari Low-Level Game Routines"[6] 。20世纪90年代初由Shawn Hargreaves为Atari ST创造,1995年Shawn因为Atari即将消失而抛弃了对其支持又引入了Borland C++ 和DJGPP编译器。Borland C++ 在2.0版本被抛弃,DJGPP是唯一被支持的编译器——Allegro因此只能用于DOS。1998年前后, Allegro发展出了很多版本,对应Microsoft Windows的WinAllegro、对应类Unix的XwinAllegro,这些融入了Allegro 3.9 WIP版本,这样Allegro 4.0成为首个多平台稳定版本,当前支持Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows (MSVC, MinGW, Cygwin, Borland C++), BeOS, QNX, Mac OS X, DOS (DJGPP, Watcom)。

硬件加速3D/2D应用于Linux、Mac OS X、DOS采用多种方式,包括AllegroGL和OpenLayer。它们是两个附件add-on库,通过OpenGL实现。结合Glide和MesaFX (3dfx),AllegroGL是少数对应DOS的开源3D硬件加速方案。[7]

功能

  • 向量绘制:
    • 像素、线、矩形、圆柱、贝塞尔曲线等几何图形、
    • 有图案(Pattern)或者没有图案的形状填充(Shape Fill)
    • 各种多边形(Polygons):单调(Flat)、内插均匀(Gouraud)、三维纹理(3D Textured)和半透明( Translucent)
  • 图块:
    • 掩码(Masked)、压缩(Compressed)和编译(Compiled)三种精灵(Sprites)
    • 位块传输(Blitting)、旋转(Rotation)、拉伸(Stretching)、挤压(Reduction)、α通道混色(Alpha Blending)、内插均匀着色(Gouraud Shading)
    • 内建BMP、LBM、PCX、TGA文件格式支持,其他的可通过扩展库支持
  • 各种调色板(Color Palettes):
    • 调色板的操纵(读、写、转换)
    • RGB和HSV两种色彩格式(Color Formats)之间的转换
  • 文字:
    • 支持多种编码之间的转换,默认UTF-8
    • 点阵字体:掩码(Masking)、彩色(Colouring)、对齐(Alignment)
  • 其他:
    • 直接在屏幕或任意大小的内存位图(Memory Bitmaps)中进行绘制
    • 硬件轴卷(Hardware Scrolling)和三缓存(Triple Buffering)(前提是该处可用)、X模式(mode-X)的分屏(Split Screen)
    • 用于FLI/FLC格式的动画函数[8]

Allegro 5

目前的开发着手在Allegro 5这条分支,4.9.14是其不稳定的版本。Allegro 5对库的API及其大量的内部操作进行了完全重新的设计,致力于使API能更稳定地适用于多核间的协同工作。其默认使用OpenGL或DirectX硬件加速渲染后端,当前的大多数插件都需要重写接口。

其他

  • 电子游戏主题
  • 自由软件主题

参考资料

  1. ^ https://github.com/liballeg/allegro5/releases/tag/5.2.8.0.
  2. ^ Release 5.2.9.1. 2024年1月20日 [2024年6月24日]. 
  3. ^ Harbour, Jonathan. Game Programming All in One, Second Edition. Course Technology PTR. 2004. ISBN 1592003834. 
  4. ^ Steinke, Lennart. Spielprogrammierung. BHV Verlag. 2003. ISBN 3826680758. 
  5. ^ P. J. Deitel, P. J. C How to Program. HowtoProgram. Prentice Hall. 2006. ISBN 0-13-240416-8. 
  6. ^ Forum posting by Shawn Hargreaves. [2009-10-26]. (原始内容存档于2009-01-08). 
  7. ^ Daniel Borca. Mesa 3-D graphics library. [2009-10-26]. (原始内容存档于2009-10-25). 
  8. ^ Allegro Introduction. [2009-10-26]. (原始内容存档于2009-12-01). 

外部链接

(英文)

  • 原始碼移植英语Source port
  • 第一人稱射擊遊戲引擎
    • 列表英语List of first-person shooter engines
  • 遊戲引擎重製英语Game engine recreation
    • 列表英语List of game engine recreations
  • 遊戲創作系統英语Game creation system
  • 遊戲整合開發環境英语Game integrated development environment
  • 视觉小说引擎列表
  • id Tech英语id Tech
專有軟體
1980s
  • Filmation英语Filmation (game engine)
  • Freescape英语Freescape
  • Gold Box英语Gold Box
  • SCUMM
1990s
  • 3D GameStudio英语3D GameStudio
  • Clickteam
  • Dark Engine英语Dark Engine
  • GameMaker
  • Genie Engine英语Genie Engine
  • GoldSrc
  • Jedi英语Jedi (game engine)
  • LithTech英语LithTech
  • M.U.G.E.N
  • Pie in the Sky英语Pie in the Sky (game engine)
  • Reality Lab英语Reality Lab
  • RenderWare
  • RPG製作大師
  • Sim RPG Maker英语Sim RPG Maker
  • 虚幻引擎
  • Virtual Theatre英语Virtual Theatre
  • Voxel Space英语Voxel Space
  • Zero英语Zero (game engine)
  • Zillions of Games
2000s
  • Anvil
  • C4 Engine英语C4 Engine
  • Chrome Engine
  • CryENGINE
  • 水晶工具
  • Diesel英语Diesel (game engine)
  • Ego英语Ego (game engine)
  • Essence Engine英语Essence Engine
  • Euphoria英语Euphoria (software)
  • Flare3D英语Flare3D
  • 寒霜引擎
  • Gamebryo
  • GameSalad英语GameSalad
  • HeroEngine英语HeroEngine
  • IW英语IW (game engine)
  • Leadwerks英语Leadwerks
  • Marmalade SDK英语Marmalade (software)
  • MT Framework
  • PhyreEngine英语PhyreEngine
  • Q英语Q (game engine)
  • RAGE
  • Retro Engine英语Retro Engine
  • SAGE
  • Shark 3D英语Shark 3D
  • Silent Storm engine英语Silent Storm engine
  • Source
  • Titan英语Titan (game engine)
  • Unigine英语Unigine
  • Unity
  • Vicious Engine英语Vicious Engine
  • Vision
  • Visual3D Game Engine英语Visual3D Game Engine
2010s
2020s
  • id Tech 7英语id Tech 7
自由及開源軟體
1970s
  • Z-machine英语Z-machine
1990s
2000s
  • Away3D英语Away3D
  • Blender Game Engine
  • Bork3D Game Engine英语Bork3D Game Engine
  • Cocos2d
  • Dim3英语Dim3
  • Game Editor英语Game Editor
  • GDevelop英语GDevelop
  • id Tech 3
  • id Tech 4
  • Irrlicht Engine英语Irrlicht Engine
  • jMonkeyEngine英语jMonkeyEngine
  • Lightweight Java Game Library英语Lightweight Java Game Library
  • Löve英语Löve (game engine)
  • OGRE
  • Open Wonderland英语Open Wonderland
  • Panda3D英语Panda3D
  • Papervision3D英语Papervision3D
  • Plasma英语Plasma (game engine)
  • Platinum Arts Sandbox英语Platinum Arts Sandbox
  • Pygame
  • Ren'Py
  • Scratch
  • Solar2D英语Solar2D
  • Spring引擎
  • Thousand Parsec
  • Torque英语Torque (game engine)
  • Vassal Engine英语Vassal Engine
  • Wintermute Engine英语Wintermute Engine
2010s
  • Delta3D英语Delta3D
  • Godot
  • GPUOpen英语GPUOpen
  • Horde3D英语Horde3D
  • 吉里吉里
  • libGDX英语libGDX
  • Moai英语Moai (software)
  • OpenFL英语OpenFL
  • ORX英语ORX
  • PlayCanvas英语PlayCanvas
  • Raylib英语Raylib
  • Snap!
  • Stencyl英语Stencyl
  • Stride英语Stride (game engine)
  • Phaser
  • Egret
2020s