文档章节

【转】部分游戏开发工具

mickelfeng
 mickelfeng
发布于 2012/11/04 22:31
字数 8281
阅读 191
收藏 4

GPL许可证
 
       GPL通用性公开许可证(General Public License,简称GPL)。在字典中的含义是非洲大羚羊,我们可以常常看到非常个性化的羊头,想必很多人已经非常熟悉。象征 GNU 那种追求自由的精神.GPL同其它的自由软件许可证一样,许可社会公众享有运行、复制软件的自由;发行传播软件的自由;获得软件源码的自由,以及改进软件并将自己作出的改进版本向社会发行传播的自由。GPL还规定,只要这种修改文本的整体或者其某个部分来源于遵循GPL的程序,则该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己做出的限制。因此,遵循GPL流通的程序不能同非自由的软件合并。GPL所表达的这种流通规则称为copyleft,表示与copyright(版权)的概念“相左”。上述单词“free”指的是自由(freedom),而不是价格。你可能需要或者不需要为获取GNU软件而支付费用。不论是否免费,一旦你得到了软件,你在使用中就拥有三种特定的自由。首先是复制程序并且把它送给你的朋友或者同事的自由;而后是通过获取完整的源代码,按照你的意愿修改程序的自由;最后是发布软件的改进版并且有助于创建自由软件社团的自由。
GPL,LGPL,GFDL的区别
GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式;

LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Public License (GNU 库通用公共许可证),在宽松程度上与 BSD、Apache、XFree86 许可证相似;

GFDL 是 GNU Free Documentation License (GNU 自由文档许可证)的缩写形式。它们是自由软件(Free Software)的通用版权认证协议,由自由软件基金会(FSF)制定和发布。

基于 GPL 的软件允许商业化销售,但不允许封闭源代码。 
如果您对遵循 GPL 的软件进行任何改动和/或再次开发,则您的产品必须继承 GPL 协议,不允许封闭源代码。

基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。 
如果您对遵循 LGPL 的软件进行任何改动和/或再次开发,则您的产品不必继承 LGPL 协议,同时允许封闭源代码
 
比如涉嫌非法使用GPL代码事件
超星阅读器中涉嫌非法使用开源图形库DjVuLibre ( http://djvulibre.djvuzone.org/ )。DjVuLibre提供了高效的图像压缩格式DjVu格式的编码和解码功能。DjVuLibre的使用授权为GPL(GNU General Public License: http://www.thebigfly.com/gnu/gpl/ ),按照GPL的要求,凡是使用该软件的代码也需要开放原代码,而超星浏览器公然违反了这个授权,不但没有开放原代码,而且利用自由软件牟利。
 
SourceForge介绍
SourceForge 是全球最大的开放源代码软件开发平台和仓库。它集成了很多开放源代码应用程序,为软件开发提供了整套生命周期服务。SourceForge.net是开放源代码软件的开发者进行开发管理的集中式场所,也是源代码仓库。大量开源项目在此落户(2005年5月已经超过一百万),包括维基百科使用的MediaWiki,但也包含很多休眠和单个用户的项目。
 
 
 
Linux游戏开发工具收集
FMOD
FMOD是一个非常容易使用的跨平台声音引擎,能够在WINDOWS,WINDOWS CE,LINUX,MACINTOSH,GAMECUBE,PLAYSTATION 2和XBOX上使用。支持C/C++,VB,DELPHI和MASE。如果你在以上说明的任何一种平台上使用任何一种语言,那么FMOD适合你。本篇中使用的是C语言,同样他也适合其他平台。
相关的声音库
另一个相关的声音库是OPENAL。OPENAL是另一个跨平台的适应API,也同样支持WINDOWS,LINUX和MACINTOSH。同样能应用于C/C++,DELPHI和JAVA。风格有点象OPENGL。
http://www.fmod.org
开始之前,请将FMOD.DLL拷贝到你的工作目录下,也就是和你的项目文件在一起。
与C语言用户相关
在你的编译器下加入"fmod.h" 文件和库文件:
fmodvc.lib for Microsoft Visual C++ and Codewarrior 
fmodbc.lib for Borland 
fmodwc.lib for Watcom 
fmodcc.lib for LCC-Win32 
libfmod.a for MingW and CygWin 
fmod-3-7.lib for GCC 
在我们用FMOD播放我们的声音文件时,我们要先初始他。像下面这样:
FSOUND_Init (44100, 32, 0);
第一参数是输出率,用赫兹表示。在这里,我们取44100。第二个参数是我们最大的软通道。第三个参数是我们想表明的一些符号。在这里,我们取0;
下面,我们将播放一些声音了。我们播放的声音有哪些格式呢?是歌,例子或流?
歌,例子或流
FMOD支持两种API:FSOUND和FMUSIC。具体用哪个将由你要播放的声音决定。
通常的音乐格式有:.MOD,.S3M,.XM,.IT,.MID,.RMI,.SGT和.FSB,这些都被FMUSIC API支持。
而FSOUND API支持压缩的.WAV,.MP2,.MP3,.OGG or .RAW。
DEV C++下依靠上面的代码编
 
zlib
linux文件压缩工具
1、编程环境:winxp sp2+Dev-C++4.9.9.2
2\在devc++中下载更新zlib库
3\新建控制台应用程序.
4\在工程属性中设定其链接参数为-lz
5\编辑源程序如下,假设其工程文件名为ccc:
#i nclude <cstdlib>
#i nclude <iostream>
#i nclude <stdio.h>
#i nclude <zlib.h>

using namespace std;

int main(int argc,char **argv) 

gzFile zip; 
int c; 
if (argc<2) return 0; 
zip = gzopen(argv[1],"rb"); 
while ((c=gzgetc(zip))!=EOF) putchar(c); 
gzclose(zip);
return 1; 
}
编译这段程序,可执行程序为ccc.exe
6\在这段源程序所实现的功能就是将压缩文档按字节一个个的读取并显示出来.
7\将devc++的bin目录下面的zlib1.dll拷贝到windows\system32目录下面,或是放到应用程序所在的目录.
8\下载一份gzip for windows,我所下载到的是1.3.5版本.
9\随便建立一个文件,如abc.txt
10\在gzip目录下面执行如下命令 gzip -9 <abc.txt> abc.txt.gz,相当于把abc.txt压缩成文件名为abc.txt.gz的文件了.
11\执行ccc abc.txt.gz,会看到已压缩文件abc.txt.gz中的内容了.
www.info-zip.org
包含文件: zlib1.dll
Other free archiver:
TUGZip http://www.tugzip.com/
TUGZip对压缩与镜像的支持,林林总总有30个以上,支持自製外掛,
使用介面也是多语言的,有如瑞士刀一般的万用工具,他不能压RAR,
如果你认为必要,可以透过插件方式添加,基本上强力推荐这个。
FilZIP http://www.filzip.com/
FilZIP同样也发展了很久的时间,但是他支持的格式不是很多,
但他可以处理一些奇怪的格式包括网路传输的UUE与XXE等,
不失为一个另类选择,但是TUGZip可以做这个大部分的工作。
IZarc http://www.izarc.org/
这个的神奇之处在於可以解些非常稀有的格式像是GCA/DEB/GZA...
更神奇的是他可以解开linux用的RPM包装程式,这个工具比较可惜之处,
在於不支持Unicode多国编码压缩的文件,但在未来会更新就是了。 
ultimatezip
http://www.ultimatezip.com/
zipgenius
http://www.zipgenius.it/
UPX 可以修改,假如你希望保护你的文件的话。
http://upx.sourceforge.net/
openal
3D音频编码
有OPENGL编程精练的人将很快掌握OPENAL。OPENAL有建立3D环境音效的能力。
#include <conio.h>
#include <stdlib.h>
#include <al/al.h>
#include <al/alc.h>
#include <al/alu.h>
#include <al/alut.h>
你会发现再OPENAL头和OPENGL头的定义上有许多的相似之处。除了“al.h","al
u.h","alut.h"与”gl.h","glu.h","glut.h"相似,还增加了一个"alc.h".ALC(
AUDIO LIBRARY CONTEXT)处理声音通过不同的平台,她也处理你在几个窗口下共
享设备的环境。
// 存储声音数据
ALuint Buffer;

// 用于播放声音
ALuint Source;
这是程序处理结构的初始化。在OPENAL中三种不同的结构,所有关于声音播放和
声音数据存储在一个内存中,源(source)是指向放声音的空间。明白源是非常
的重要。源只播放内存中的背景声音数据。源也给出了特殊的属性如位置和速度。
第三个对象是听者,用户就是那唯一的听者。听者属性属于源属性,决定如何
听声音。例如,不同位置将决定声音的速度。

http://www.openal.org/
libogg
- 音频编码。有关oggvorbis开发,主要为*.ogg码流结构及封装的文件,和vorbis-tools,libvorbis一起使用
http://www.vorbis.com/
包含文件 vorbisfile.dll,vorbis.dll,ogg.dll
libmad
MP3流媒体解码器,播放mp3文件
libmad附带了一个示例程序minimad, 但是仅仅是将解码结果输出到屏幕上,不爽,而libao则可以将pcm输出,通过多种方式播放出来,因此可以考虑将两者结合起来,编写一个可以播放mp3的小例子

#include <sys/soundcard.h>
#undef putchar
int soundfd;
int putchar(int c) {
return write(soundfd, (char *)&c, 1);
}
void set_dsp()
{
int rate = 441000;; /* 采样频率 44.1KHz*/
int format = AFMT_S16_LE; /* 量化位数 16*/
int channels = 2; /* 声道数 2*/
soundfd = open ( "/dev/dsp", O_WRONLY);
ioctl(soundfd, SNDCTL_DSP_SPEED, &rate);
ioctl(soundfd, SNDCTL_DSP_SETFMT, &format);
ioctl(soundfd, SNDCTL_DSP_CHANNELS, &channels);
}
 
http://www.underbit.com/products/mad/
 
freetype
 
一个流行的字体函数库,在游戏中解析显示TrueType汉字
GTK+(基于DirectFB)的字体绘制是通过pango+freetype+fontconfig三者协作来完成的,其中,fontconfig负责字体的管理和配置,freetype负责单个字符的绘制,pango则完成对文字的排版布局。
void load(const char* font_file , int _w , int _h)
{
//加载一个字体,取默认的Face,一般为Regualer
if (FT_New_Face( m_FT2Lib, font_file, 0, &m_FT_Face )) 
exit(0);
FT_Select_Charmap(m_FT_Face, FT_ENCODING_UNICODE);
m_w = _w ; m_h = _h;
m_FT_Face->num_fixed_sizes;
//大小要乘64.这是规定。照做就可以了。
//FT_Set_Char_Size( m_FT_Face , 0 , m_w << 6, 96, 96);
FT_Set_Pixel_Sizes(m_FT_Face,m_w, m_h);
}...
http://www.freetype.org/
 
TinyXml
   轻量级XML解析器,游戏中常用解析简单的配置文件。
游戏中是使用一个INI文件来定义。这是一个好的办法,我们每次使用时从外部导入我们的数据,而不用每次修改时都编程一次。而我们今天在这里要讲解的是用XML文件来设置
许多人将XML用到很多需要活动设置的应用,比如服务器参数的设置,玩家数据的管理(最近才发现的,原来以为是在数据库中进行管理的,后来发现XML文件也能管理玩家数据,并且比操作数据库要方便的多)。还有人甚至用XML文件来设置窗口界面。看来掌握XML是非常有意义的。
我们下面来看一下tinyxml是如何在C/C++中建立XML文件的。
            char floader[200],buffer[200];
                       TiXmlDocument* m_xmlDoc = new TiXmlDocument();
                      TiXmlElement xElement("player");
                      sprintf(buffer,"%d", 1);
                      xElement.SetAttribute("admin", buffer);

                      TiXmlElement xPos("pos");

                      sprintf(buffer,"%d",2);
                      xPos.SetAttribute("x", buffer);

                      sprintf(buffer,"%d",3);
                      xPos.SetAttribute("y", buffer);

                      sprintf(buffer,"%d",4);
                      xPos.SetAttribute("zone", buffer);

                      xElement.InsertEndChild(xPos);
                      m_xmlDoc->InsertEndChild(xElement);
                       sprintf(floader,"%s.xml", "antking");
                      m_xmlDoc->SaveFile(floader);
                       delete m_xmlDoc;......

这段简单的代码的作用就是将用户数据保存在XML文件中。不同的是我对其做了一些简化。
www.grinninglizard.com/tinyxml/
sourceforge.net/projects/tinyxml
libjpeg
解析jpeg图片格式
如何使用libjpeg.lib函数库
如何在C++中使用libjpeg.lib函数库如果想在自己的应用程序中集成处理jpeg图片功能,IGL提供了很好函数库,如果善加用之则可达到事半功倍的效果。因为是该函数库是opensource所以我们不必担心软件版权问题!(呵呵,毕竟我们要尊重别人的软件成果)。可以从网络下载获得最新的函数库,下载地址:http://www.ijg.org
我则以libjpeg-6b版本介绍与自己用VC++6.0的开发应用程序整个集成过程。
1、下载最新的函数库,解压缩后放到一个目录中例如: c:\temp\jpeglib-6b\
2、生成头文件jconfig.h,新建一个文件命名为jconfig.h,拷贝程序库中jconfig.vc内容到刚建立的文件中。
3、进入命令行模式RUN->CMD,然后执行 nmake -f makefile.vc 生成所需要的libjpeg.lib函数库。
4、用VC++6.0创建自己的应用程序,在需要引用函数库的地方加入
extern "C" { #include "jpeglib.h" }
因为函数库是用C语言写的所以,记住一定要用extern包装起来整个编译预处理文件,否则在编译连接的时候就会产生一大堆的unresolved link error...。
经过以上的步骤我们就可以在自己的应用程序中调用库函数中提供的函数了。
http://www.ijg.org/
 
补充2个
http://www.libtiff.org/
http://www.libpng.org/
http://sourceforge.net/projects/libungif
DOSBOX
 DOSBox 是一个基于 SDL 开发的 DOS 模拟器,也是 Windows 下最好的 DOS 模拟器。可以轻易在大部分平台上模拟 DOS 环境,比如 Windows、BeOS、Linux、MacOS X 等。其定制的模拟标准为真实的 286/386 环境,目录标准支持 XMS 和 EMS,支持 Tandy/Hercules/CGA/EGA/VGA/VESA 图形算法,支持SoundBlaster/Gravis Ultra 声卡等。
  作为应用最广泛的 DOS 模拟器,DOSBox 的功能型及兼容性早已被用户们认可。针对 PC 游戏玩家来说,可以在 NT 内核的 Windows 系统下利用 DOSBox 运行以前的 DOS 游戏;针对模拟器玩家来说,甚至可以利用 DOSBox 运行那些只允许在 DOS 下运行的模拟器
使用方法 :
首先安装然后运行DOSBOX
然后屏幕就进行了命令行模式 (也可以说就是DOS模式)
现在使用这个命令 MOUNT C: d:\dos    
兰色的字表示你在DOSBOX虚拟的DOS环境中建立的虚拟盘符 也可以用A、D、E代替
红字就是这个虚拟磁盘映射的真实磁盘路径 根据你的路径变化
在刚才的提示符下输入 c: ,这样就切换到虚拟的c盘,也就是你要的游戏目录 
运行C目录下的游戏,以后操作按DOS命令。
http://dosbox.sourceforge.net/news.php?show_news=1
StellaX
早期的游戏机雅达利Atari 模拟器程序
主机的处理器是8-bit的6507,主频1.2MHz,16KB的RAM/ROM,分辨率为160x192。它被誉为现今电子游戏的开山之作。我国市场上见到的溢龙7000、皇冠等电视游戏机均为港台的仿制品。
http://stella.sourceforge.net/
CVS
  CVS (Concurrent Version System),可翻译成并行版本系统,它主要用于版本的管理,尤其在多人团队合作的开发模式中作用巨大。 
为什么要使用 CVS 呢?
  如果各位有过团队合作开发的经验就会知道,在团队合作开发中,要对整个项目的各个文件进行控制是多么繁琐的一件事情,经常会出现不同的人修改了同一个程序,而需要人工合并整理。更糟糕的是,项目会出现多个版本,连开发者自己都不知道自己修改了哪些文件,大量的精力消耗在各个版本,各个文件的整合中。这些精力完全可以避免,而省下更多的精力用在项目本身之中。

  CVS 还有一个更加重要的特性: 能记下每个文件的每次修改,以及如何被修改...对于基于 Internet 的合作方式来说,这些特性太重要了。一个地域上分散的自愿者组织显然不可能投入很多的时间来训练其成员彼此合作。因为这样的话,当该组织有成员变更的时候,为此付出的投资将损失殆尽。所以需要指定一套基本的项目分配方案,以确保新成员能较容易的适应工作,同时也需要设置一个自动的系统来接受外来代码,并使每个成员能及时得到最新修改的代码。
http://www.nongnu.org/cvs/

微软代码管理工具VSS(Microsoft   Visual   SouceSafe ) 有个BUG。它的目录是完全共享的,任何一位都可以删除修改。其他的版本管理工具还包括:PVCS、VCS、RCS等。
GeSHi
语法加亮显示工具:
GeSHi是Generic Syntax Highlighter的缩写,即通用语法高亮工具。 
GeSHi由PHP写成,是目前最流行的代码语法加亮工具,可以在phpBB、WordPrss、Mambo、mediawiki、DokuWiki等众多程序中发挥作用。 
GeShi能够处理50多种计算机源代码的加亮,这几乎包括了所有的常见计算机代码,例如网页脚本、面相对象编程或者其他程序文本。 
GeSHi是Nigel McNie的作品,遵从GFDL协议。本程序仍在持续更新,最新稳定版本为1.0.7.16(2006-11-26),测试版本1.12alpha3(2006-9-17)。 
GeSHi出差不多是世界上最好的语法高亮工具的代名词。
 
http://geshi.org/

 
 
 
 
gcc/cygwin
gcc简介 GNU的C语言编译器(GUN C Compiler:GCC)
Linux系统下的gcc是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 
gcc 编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。 在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。
win2000操作系统中安装gcc环境,模拟unix中的gcc 需要安装和配置cygwin
http://gcc.gnu.org/
 
cygwin
cygwin在windows上提供了一个像linux (Linux-like)的环境,可以让使用者在windows上执行linux的程式
連至 www.cygwin.com 下載 setup.exe 
執行 setup.exe , 選取Download from Internet 
選取距離自己最近的下載點 
選取所需套件 // 建議全選devel, lib等分類的所有套件 
執行 setup.exe , 選取Install from Local directory安裝套件 //最好選取 All user 
選取所有套件 
執行桌面上的 Cygwin 的 icon 圖示即可執行此一 Cygwin 環境。// 視窗大小可由icon 圖示右點按 選取調整字型 及佈置 
http://www.cygwin.com
 
MinGW
还有一个解决方案是MinGW ——在 WINDOWS 下运行 GNU 程序的工具
MinGW,即 小型GNU for Windows。 它的作用是让开发者可以在windows操作系统上方便的使用gcc等GNU开发工具。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。 
在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。
http://visual-mingw.sourceforge.net/
Dev C++
Dev-C++ 是一个非常好的 C/C++ 程序集成开发环境,而且还是完全免费的.更重要的是 Dev-C++ 几乎完全支持 ISO C/C++ 标准!它包括多页面窗口、工程编辑器,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序。它也提供高亮度语法显示的,以减少编辑错误。
常用的集成开发环境编译器有:Turbo C、Turbo C++(这两个太旧了,不推荐使用)、GCC、MicroSoft Visual C++ 6.0,Dev-C++。Dev-C++ 虽然功能不太强大,使用起来也不甚方便,但是它对 C 和 C++ 标准的支持非常好.
http://www.bloodshed.net/devcpp.html
Tiny C
GNU/Linux 系统上最小的 C 语言编译器 Tiny C 编译器。Tiny C 编译器不仅仅是一个常规意义上的 C 语言编译器,它还使得用户可以像使用脚本语言一样使用 C 语言进行快捷的脚本编程。

TCC 介绍

TCC 最有趣的特性是可以用 UNIX 系统上常见的 #!/usr/bin/tcc 的方式来执行 ANSI C 语言写就的源程序,省略掉了在命令行上进行编译和链接的步骤,而可以直接运行 C 语言写就的源程序。这样就能做到像任何一种其它的脚本语言比如 Perl 或者是 Python 一样,显著的加快开发步调。
TCC 的体积非常小,全部源代码打包压缩以后不到 200 K 字节大小,编译后的 tcc 可执行程序不过 80 K 字节大小。这意味着我们几乎可以在任何场合使用 TCC 提供给我们的编写 C 语言脚本的能力。这其中当然包括硬盘空间十分紧张的环境,比如嵌入式系统和启动软盘等等。 
在给 TCC 的源程序中可以使用任何在给 GCC 的源程序中可以使用的动态链接库。TCC 不仅支持标准的 ANSI C 语言,而且也支持 ISO C99 标准和一部分来自于 GCC 的对 C 语言所做的扩展。 
Tiny CC 的主页 http://fabrice.bellard.free.fr/tcc/

Debian 的 tcc 软件包的主页 http://packages.debian.org/unstable/devel/tcc.html

Cygwin 是一个微软 Windows 环境下的模拟 UNIX 的开发和使用环境,大部分主要的 GNU 工具包都有 Cygwin 下的版本。可以在 Cygwin 环境下使用 TCC。Cygwin 的主页在 http://www.cygwin.com
SDL
免费的跨平台多媒体应用编程接口
用于游戏、游戏开发工具、模拟器、样本演示、多媒体应用等
它能做什么?
视频、音频、事件、CDROM支持、线程、计时器、各种图象文件格式读取、快速绘图、混音、游戏杆支持、网络、MPEG解码等等,且CPU字节顺序无关。
大体上与DirectX比较对应关系如下:
SDL_Video、SDL_Image、OpenGL —— DirectDraw、Direct3D
SDL_Audio、SDL_Mixer —— DirectSound
SDL_Joystick、SDL_Base —— DirectInput
SDL_Net —— DirectPlay
SMPEG、SDL_Video、SDL_Audio、SDL_Sound、SDL_Filter —— DirectShow
字体、窗口管理等其他实用工具和大量样例
http://www.libsdl.org/
 
SDL本身只支持加载BMP文件,如果你想显示其他类型的图像文件,就要用到扩展类库,扩展类库里面还有其他一些组件,你可以在这里下载到
http://www.libsdl.org/projects/SDL_image/ 
 
包含文件:SDL_mixer.dll SDL_image.dll SDL.dll SDL_net.dll
ClanLib
一个主要针对游戏开发者的跨平台C++框架。尽管API主要为游戏开发设计
ClanLib可以工作在Windows,Linux和MacOS操作系统之上,并且提供源码级的zip或tar文件支持。Windows开发者可以使用微软Visual Studio,Borland C++或者MinGW(小型GNU for Windows)编译器和环境。第三方的对于Ruby和Perl语言的绑定支持也是可用的。可选的特效程序包括一个Lua插件(流行的小脚本编程语言)和FreeType(一个免费的TrueType字体库)。
http://www.clanlib.org/
[引擎]开源2D引擎HGE(D3D加速)
HGE简单的说,就是以3D加速实现2D图像的做法,就是RMXP內部的绘图功能(Game Maker也是),HGE使用DX8作为图像加速库,在Windows XP以后的系统,无须更新DX版本即可运行(这意味著你的游戏有较好的市场)
HGE1.6版本在今年8月底公开源码,授权是慷慨的ZLib License,任何人可以几乎不受限制的使用它,或基於技术核心开发引擎。
我们可以预期他在游戏市场中被广泛使用....
请到首页下载包装(並提供SourceForge连结)
首页:http://hge.relishgames.c...
论坛:http://relishgames.com/f... 
源码:http://sourceforge.net/p...
標准的HGE包装是没法著中文/双字节的,
至少现在还没看到Unicode化的打算,除非自己用源码改。
http://relishgames.com/f...
这是国人研发的点阵中文显示方案,常用於各种游戏SDK,
当然往后希望能出现真正支持中文的版本(实际上在进行中)。
Fenix Pack引擎跨平台游戏制作工具
Fenix是目前少数实现单一代码跨多平台的制作工具,因为他的程序被编译为偽代码,由Fenix解析器运行。
他也被移植到Win以外的平台,像Mac/Linux,甚至是GP32/Dreamcast,以及热门的PSP...
Fenix惊人的跨平台能力,作为Div GameStudio的替代,但功能上並不差,也支持进阶的Mode7等类似3D的模式,在復刻游戏领域是最被看好的语言,BASIC的语法更是容易上手。
这是官方首页,您可以在该站得到官方版本(西班牙文)
http://fenix.divsite.net...
 
Allegro
Allegro引擎是跨平台游戏开发库。
Allegro最开始被研发于八十年代后期古老的Atari ST平台上,此后,Allegro被移植到最为流行的Windows C++开发环境中,包括VS,MinGW,Cygwin和Borland C++。
具体到像素级的绘图函数,包括平坦阴影,填充,图案填充,精灵,blitting(位图复制),位图计算缩放和旋转,半透明/光效果以及比例字体支持的文本输出。
 如果你需要很多屏幕相关的真实性能,建议你首先礼貌地用get_gfx_mode_list()函数查询一下最大可用方式:
#i nclude <allegro.h> //必须放于系统头文件的引用之后
set_color_depth(32); // 缺省情况下使用8位颜色
if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) != 0) {
 abort_on_error("Couldn’t set a 32 bit color resolution");
}
http://alleg.sourceforge.net/

Libcurl (HTTP downloads)为一个免费开源的,客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持Windows,Unix,Linux等,线程安全,支持Ipv6。并且易于使用。
http://curl.haxx.se/
CEGUI
CEGUI全称 "Crazy Eddie's GUI System"是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。CEGUI开发者的目的是希望能够让游戏开发人员从繁琐的GUI实现细节中抽身出来,以便有更多的开发时间可以放在游戏性上。
CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。另外,使用更高级的图形库也是可以的,像是OGRE、Irrlicht和RenderWare:
除此之外,CEGUI还同步提供了官方界面编辑器LayoutEditor,以方便UI的制作。
http://www.cegui.org.uk
guichan
guichan 是一个界面库GUI library 使用于 Allegro, SDL 或OpenGL

http://guichan.sourceforge.net/screenshots.shtml

PyGame 制作游戏
Pygame 是用于编写游戏的一组Python模块. 她基于是十分优秀的SDL库. 您可以用python创建功能强大的、多媒体程序. Pygame 是跨平台的,几乎可以运行于各种平台。
http://www.pygame.org/
 
自从自从网络多媒体巨头macromedia公司公布了SWF格式后,出现了大批的SWF格式开发软件,简化了FLASH动态网页制作的复杂程度,网络上各种各样的SWF文档开发包更是举不胜数,我们都知道FLASH虽然经过了几个版本的升级,一直到现在的FLASH5.0版本,但并不是十全十美的,比如FLASH本身没有三维建模功能,要想在FLASH里实现3D效果只能运用视觉欺骗,更加依赖设计者的创造力,另外FLASH也不支持AVI格式的文件,还有很多操作烦琐的特殊效果等等,现在都开发出来插件或外挂程序,来完成更复杂的作品,减少工作时间,增加工作效率。
http://www.minigui.com/flashplayer/index.html
http://www.tomore.com/down_file.php?id=2989
Flash Player SDK 是为消费性电子设备开发的 Flash 技术。Flash Player SDK 能够使设备制造商、系统集成商和浏览器公司创建具有全面 Web 浏览能力的一流产品和服务, 从而使得用户尽享具有 Flash 内容的大量网站。使用此新技术的产品预期在今年将正式推出,目前许多全球最大的制造商已推出採用 Flash 技术的行动电话以及消费性电子产品,其中包括了 Nokia、Samsung、Sony Ericsson、Kodak 等厂商。未来在手机上便能玩到更多的 Flash 游戏、使用更亲切易懂的 Flsah 操作介面了。
http://www.adobe.com/cn/products/flashplayer_sdk/
 
 
Anti-Grain Geometry
     Anti-Grain Geometry(以下简称AGG)是一个用标准的平台无关的C++写成的通用图形工具包。它可以应用在计算机程序中需要高质量的2D图形的许多方面。例如,AGG可以用于渲染2D地图。AGG只使用了C++和标准C的函数,如memcpy,sin,cos,sqrt等。基本的算法甚至没有使用C++ Standard Template Library。因此,AGG能够在大量的应用软件中使用,包括嵌入式系统中。
      AGG刚刚更新了版本,目前版本是2.5。
Anti-Grain Geometry,也许是目前,开源的最牛X的2D渲染引擎,当然也是跨平台的,不依赖于某一个操作系统!而且速度巨快,当然STL也是用的非常多。
   AGG简介
     AGG是一个用标准的平台无关的C++写成的通用图形工具包。它可以应用在计算机程序中需要高质量的2D图形的许多方面。例如,AGG可以用于渲染2D地图。AGG只使用了C++和标准C的函数,如memcpy,sin,cos,sqrt等。基本的算法甚至没有使用C++ Standard Template Library。因此,AGG能够在大量的应用软件中使用,包括嵌入式系统中。
     另一方面,AGG允许对库的一部分进行替换,比如在它不能适应性能的要求时。如果需要,你也能够添加其他的颜色空间。因为AGG是基于C++的模板机制的。
     AGG不是一个紧密的图形库,它并不容易使用。这是由于考虑到AGG是一个“创建其他工具的工具”。这意味着,没有“Graphcis”对象或是其他类似的东西。取而代之的是许多组织松散的、能单独或是组合使用的算法。这些算法有着定义良好的接口,它们之间有着尽可能最小的隐式或显式的依赖关系。
 
  网址:http://www.antigrain.com/
Xara Xtreme一款老牌图像设计软件,可以用以绘图、处理图像、制作WEB图形,具有制图速度快、软件体积小、界面美观等特点,被誉为“世界上速度最快的绘图软件”。本月,Xara推出开源的Xara Xtreme on Linux (Xara LX),供用户免费下载
http://www.xaraxtreme.org/
Amanith Framework是一個開放原始碼跨平台(Linux, Win32, MacOS X, FreeBSD和IRIX)向量繪圖framework.最新的版本為0.3v.詳細資料如下:
http://www.amanith.org/blog/index.php
曾被誉为“Linux 图形未来希望”的 cairo 广受诟病的是它的效率,尽管从一开始 cairo 便宣称将会利用 glitz 这样的 backend 实现硬件加速的矢量图形绘制,从而达到软件绘制无法达到的效果。结果现在戏剧性的是,cairo 比所有这些用软件绘制的引擎都慢得多。
所以才有人写了这么一篇 Why Cairo?,意思大概说得很清楚了,Mozilla 选用 cairo 的借口现在看来是非常苍白无力的,比如说 cairo 引以为傲的“bring vector graphics to print”有多少人需要把网页输出到 PDF/PS?如果最基本的页面渲染都做不到高效,谈何页面印刷的高效?
http://www.cairographics.org/
 
Inkscape是一个开放源码的矢量绘图软件,而且功能也十分强大,除了基本的点、线、面、圆形、矩形、曲线之外,也可以做到三维颜色等等高级功能。
Inkscape预设的图档格式为SVG,但也可以输出成Postscript的EPS、PS等等格式。Inkscape除了支持Windows外,还拥有Linux与Mac版本,不管你用什么操作系统通通可以使用。如果你有向量绘图的需要,可以来试试Inkscape
 
http://www.inkscape.org/index.php?lang=en
 
开源社区里最出色的图像处理工具,PhoXo里很多算法取自它
http://www.gimp.org/

本文转载自:

mickelfeng

mickelfeng

粉丝 236
博文 2777
码字总数 599586
作品 0
成都
高级程序员
私信 提问
团队项目(三)(江山代有才人秃队)

上一篇:团队项目(二) 需求&原型改进 改进内容 原先《需求规格说明书》文档描述缺少,现进行补充,完整文档详见下方附录链接。 修订历史 日期 说明 2018-10-17 初版形成 2018-10-26 新增类...

张鸿
2018/10/27
0
0
Cocos2d-X 单机麻将

COCOS2D-X 单机麻将 项目介绍 基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简、注释详细。 如果你刚刚接触Cocos...

xiyoufang
2018/07/09
0
0
转:10个步骤教您如何成为iPhone游戏开发者

转:10个步骤教您如何成为iPhone游戏开发者 Posted 四月 13th, 2012 by admin. 0 Comments Neil Ferguson,是iPhone 游戏「病毒攻击 | Virus Strike」的开发者,他总结出了开发一款iPhone(或...

晨曦之光
2012/05/28
58
0
Windows phone开发入门:技术资料索引库

2010年10月11日晚上9点30分,微软公司正式发布了智能手机操作系统Windows Phone,同时将谷歌的Android和苹果的IOS列为主要竞争对手。Windows Phone是微软发布的一款手机操作系统,它将微软旗...

庸人谷
2013/03/13
0
3
Cocos2D泰然教程推荐学习步骤

文章转自泰然教程:http://article.ityran.com/cocos2dstudy 这是一个学习Cocos2D的非常好的学习指引。保存下来。 Cocos2D泰然教程推荐学习步骤 cocos2d学习Iven推荐步骤 校对:子龙山人 一、...

andyhe91
2014/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
5
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部