九月, 2004 的文章

九月
30
2004

Pathfinder 寻路算法

1
作者:AirForce

Pathfinder was developed by Grant Skinner. Visit http://gskinner.com/ for more source, updates, FlashOS and other good stuff. All code, graphics and intellectual property is coypright 2002, Grant Skinner.

*Contents:
Contents
Description
Legal Information
* License
* Distribution
* Disclaimer
Usage
* Instantiation
* Properties
* Methods
* Path objects
Version info

*Description:
The Pathfinder class was developed to be a flexible, happy medium for pathfinding in Flash. To that end, it is much more accurate than simple “move towards” algorithms, and vastly faster than A* (~1ms per step on highest level on 500mhz system). Also, it’s speed scales in a linear fashion with the length of the path, rather than exponentially as with A*, and speed is unaffected by map size.

It uses a ranked movement algorithm (move towards, move laterally, move away), paired with backtrack avoidance and looping detection. It also utilizes up to 4 different pathfinding approaches (forwards or reverse, favouring horizontal or vertical movement).

It offers a fair amount of flexibility, with the ability to set the maximum path length, and to scale the number of different approaches the system will attempt. You can also change any parameter at any time, and re-run the pathfinding routine (which allows for characters changing direction at any time), etc.

If you have any feedback, questions, or ideas, you can contact me through my site at http://gskinner.com/ .

*Legal Information:

License:
The Pathfinder class is free for use in non-commercial projects, all that I ask is that you fire me an email and let me know what you’re using for, and what you think of it (hearing back from you makes developing and releasing code for free worthwhile). I would also really appreciate credit and/or a link back to my site at http://gskinner.com/ , if possible.

If you would like to use it in commercial contracts, please contact me for license information. Often, it will be as simple and inexpensive as giving due credit.

You may NOT sell the Pathfinding path as it is,  in a modified format, or as part of a derivative work without prior written consent.

The Pathfinding class is copyright 2002, Grant Skinner, all rights reserved.

Distribution:
You may upload this FLA to any online service, bulletin board, network, or the Internet, as long as the FLA is not modified and the Read Me file is included. You may NOT make copies of this FLA, or it’s included source code for any commercial purpose. You must get permission to include this program on CD-ROM, floppy disk or other removable storage.

Disclaimer:
THIS SOFTWARE IS PROVIDED ON AN “AS IS” BASIS. GRANT SKINNER MAKES NO WARRANTIES WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THIS PRODUCT, INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTIBILITY OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT SHALL GRANT SKINNER BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INDIRECT OR SIMILAR DAMAGES, INCLUDING ANY LOST DATA ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE OR ANY DATA SUPPLIED THEREWITH. USE THIS SOFTWARE AT YOUR OWN RISK.

*Usage:

Instantiation:
myPathfinder = new Pathfinder(map,startPoint,endPoint,depth,level);

Properties:
myPathfinder.map
A two dimensional array containing boolean values, indicating whether a particular point in the map can be moved through.

myPathfinder.startPoint
an object with an x and y property corresponding to the coordinates in map from which to start the path.

myPathfinder.endPoint
a point object indicating the goal coordinates on the map.

myPathfinder.depth
a positive integer indicating the maximum path length. The Pathfinder will give up if it exceeds this length. This number does not include the start point. A larger number will increase the chance of finding a path over a longer distance, but will also increase the time requires to find the path.

myPathfinder.level
an integer between 0 and 3 inclusive that indicates the number of different approaches the Pathfinder should attempt to find a path (the different approaches are forwards or reverse, favouring horizontal or vertical movement). A larger number will increase the chance of finding a path, and will usually result in shorter path lengths (as it will choose the shortest path), but it will increase the amount of time required to find a path.

myPathfinder.path
bestPath returns the path object that was found, or null if findPath has not been executed. See notes on path objects below.

Methods:
myPath = myPathfinder.findPath();
Runs the pathfinding routine, and returns a path object.

Path objects:
Paths are returned as path objects. The path object has three properties: weight, xPath and yPath.

Weight indicates the length of the found path. A weight of 10000 indicates that the path does not reach it’s end point.

xPath and yPath store the x and y coordinates of the path respectively, starting on the start coordinates, and ending on the end coordinates (if successful). So to access the coordinates of the fifth step in myPath, you could use:
xCoord = myPath.xPath[5];
yCoord = myPath.yPath[5];

*Version info:
1.0.1
Fixed a small bug where level 3 & 4 paths would be returned in reverse.
Modified the path drawing routine slightly to show the direction of the path (lighter – at the start, darker at the end)

1.0
This is first release of Pathfinder, and everything appears to be working smoothly. Exciting version info, eh?

Future enhancements:
I’d like to tinker with further optimization, and add a bestFail capability, that will rank the failed paths and choose the best one based on length and proximity to the end point (right now it returns the first approach).

If you find any bugs, have questions, or have ideas for additional features, please contact me through my site athttp://gskinner.com/ .

/**** PathFinder Class
Flash pathfinding engine developed by Grant Skinner. Visit:
http://gskinner.com/
for more source,  updates, FlashOS, and other cool stuff.

All code, graphics and algorithms copyright 2002, Grant Skinner. See the Read Me for usage, distribution and license info.
****************/
PathFinder = function(fMap,fStart,fEnd,fDepth,fLevel) {
this.init(fMap,fStart,fEnd,fDepth,fLevel);
}
PathFinder.prototype.init = function(fMap,fStart,fEnd,fDepth,fLevel) {
this.map = fMap; // the map array (2d)
this.start = fStart; // the starting point object
this.end = fEnd; // the ending point object
this.depth = fDepth;  // the maximum length of the path
this.level = fLevel; // the number of different attempts it will make
}

PathFinder.prototype.findPath = function() {
this.$paths = [];
// get paths based on level:
this.$paths[0] = this.$findPath(this.start,this.end,1,false);
if (this.level > 0) { this.$paths[1] = this.$findPath(this.start,this.end,0,false); }
if (this.level > 1) { this.$paths[2] = this.$findPath(this.end,this.start,1,true); }
if (this.level > 2) { this.$paths[3] = this.$findPath(this.end,this.start,0,true); }

// sort on weight:
this.$paths.sort(this.$pathSort);

// set path and return it;
this.path = this.$paths[0];
return this.path;
}
PathFinder.prototype.$pathSort = function(fVal1,fVal2) {
if (fVal1.weight < fVal2.weight) { return -1; }
else if (fVal1.weight > fVal2.weight) { return 1; }
return 0;
}

/*** PathFinder.$findPath
searches for a path from start point to end point.
dir is a boolean, and specifies the search direction (true = favour x, false = favour y)
rev indicates whether the path should be reversed after it is found.
***/
PathFinder.prototype.$findPath = function(fStart,fEnd,fDir,fRev) {
// set up:
var curx = fStart.x;
var cury = fStart.y;
var pathWeight = 0;
var pathx = [];
var pathy = [];
var endx = fEnd.x;
var endy = fEnd.y;

// try to find a path:
while(true) {
if ((curx == pathx[pathWeight-4])&&(cury == pathy[pathWeight-4])) { pathWeight=10000; break; }
oldx = pathx[pathWeight-1];
oldy = pathy[pathWeight-1];
pathx.push(curx);
pathy.push(cury);
pathWeight++;
if (endx == curx && endy == cury) { break; }
if (pathWeight > this.depth) { pathWeight = 10000; break; }

if (fDir) { // favour x movements
// move towards end:
if ((curx < endx)&&(oldx != curx+1)&&(this.map[curx+1][cury])) { curx++; continue; }
if ((curx > endx)&&(oldx != curx-1)&&(this.map[curx-1][cury])) { curx–; continue; }
if ((cury < endy)&&(oldy != cury+1)&&(this.map[curx][cury+1])) { cury++; continue; }
if ((cury > endy)&&(oldy != cury-1)&&(this.map[curx][cury-1])) { cury–; continue; }
// can’t move towards try lateral:
if (curx == endx) {
if ((oldx != curx+1)&&(this.map[curx+1][cury])) { curx++; continue; }
if ((oldx != curx-1)&&(this.map[curx-1][cury])) { curx–; continue; }
} else if (cury == endy) {
if ((oldy != cury+1)&&(this.map[curx][cury+1])) { cury++; continue; }
if ((oldy != cury-1)&&(this.map[curx][cury-1])) { cury–; continue; }
}
// can’t move lateral, try away:
if ((curx > endx)&&(oldx != curx+1)&&(this.map[curx+1][cury])) { curx++; continue; }
else if ((oldx != curx-1)&&(this.map[curx-1][cury])) { curx–; continue; }
if ((cury > endy)&&(oldy != cury+1)&&(this.map[curx][cury+1])) { cury++; continue; }
else if ((oldy != cury-1)&&(this.map[curx][cury-1])) { cury–; continue; }
} else { // favour y movements
// move towards end:
if ((cury < endy)&&(oldy != cury+1)&&(this.map[curx][cury+1])) { cury++; continue; }
if ((cury > endy)&&(oldy != cury-1)&&(this.map[curx][cury-1])) { cury–; continue; }
if ((curx < endx)&&(oldx != curx+1)&&(this.map[curx+1][cury])) { curx++; continue; }
if ((curx > endx)&&(oldx != curx-1)&&(this.map[curx-1][cury])) { curx–; continue; }
// can’t move towards try lateral:
if (cury == endy) {
if ((oldy != cury-1)&&(this.map[curx][cury-1])) { cury–; continue; }
if ((oldy != cury+1)&&(this.map[curx][cury+1])) { cury++; continue; }
} else if (curx == endx) {
if ((oldx != curx-1)&&(this.map[curx-1][cury])) { curx–; continue; }
if ((oldx != curx+1)&&(this.map[curx+1][cury])) { curx++; continue; }
}
// can’t move laterally, try away:
if ((cury < endy)&&(oldy != cury-1)&&(this.map[curx][cury-1])) { cury–; continue; }
else if ((oldy != cury+1)&&(this.map[curx][cury+1])) { cury++; continue; }
if ((curx < endx)&&(oldx != curx-1)&&(this.map[curx-1][cury])) { curx–; continue; }
else if ((oldx != curx+1)&&(this.map[curx+1][cury])) { curx++; continue; }
} // end if

// darn, we’re stuck.
pathWeight = 10000;
break;
} // end while
// flip the path if it is reversed, and if we were successful
if (fRev && pathWeight < 10000) {
pathx.reverse();
pathy.reverse();
}
return {xPath:pathx,yPath:pathy,weight:pathWeight,$dir:fDir};
}

// create the map randomly:
myMap = [];
for (var x=0;x<25;x++) {
myMap[x] = [];
for (var y=0;y<25;y++) {
if (x>2 || y>1) { myMap[x][y] = (random(20) > 2); } else { myMap[x][y] = true; }
}
}

// clear the end:
myMap[10][10] = true;
myMap[10][9] = true;

// draw the map;
var xl = myMap.length;
var yl = myMap[0].length;
for (var x=0;x
for (var y=0;y
t = this.attachMovie(“tile”,”t_”+x+”_”+y,x*25+y);
t.gotoAndStop(1+1*myMap[x][y]);
t.x = x;
t.y = y;
t._x = x*t._width;
t._y = y*t._height;
}
}

// a bunch of hacked together code to handle the demo. Not too pretty.
start = {x:0,y:0}
myPath = new PathFinder(myMap,start,end,50,2);

rollOverTile = function(fX,fY) {
findPath(start,{x:fX,y:fY});
}

findPath = function(fStart,fEnd) {
var t = getTimer();

start = myPath.start = fStart;
end = myPath.end =  fEnd;
thePath = myPath.findPath();

ttltime = getTimer()-t;
drawPath(thePath);
setValues();

}

releaseTile = function(fX,fY) {
start = {x:fX,y:fY}
drawMC.clear();
}

drawPath = function(fPath) {
var lineColor = 0xFF0000;
var pl = thePath.xPath.length;
drawMC.clear();
if (fPath.weight < 10000) { lineColor = 0x0044FF; }
var tile = this["t_"+fPath.xPath[0]+”_”+fPath.yPath[0]];
drawMC.moveTo(tile._x+8.5,tile._y+8.5);
for (var i=1;i
drawMC.lineStyle(15,lineColor,16+25*(i/pl));
tile = this["t_"+fPath.xPath[i]+”_”+fPath.yPath[i]];
drawMC.lineTo(tile._x+8.5,tile._y+8.5);
}
}

setValues = function() {
var cr = chr(10);
values.text = myPath.depth+cr+myPath.level+cr+myPath.start.x+”,
“+myPath.start.y+cr+myPath.end.x+”,
“+myPath.end.y+cr+thePath.weight+cr+ttlTime+”ms”;
}

drawMC = this.createEmptyMovieClip(“drawMC”,15000);
findPath(start,{x:10,y:10});
stop();

九月
30
2004

Grant Skinner

1
作者:AirForce

Grant Skinner
Occupation: Developer
Site: http://www.gskinner.com
RSS feed (weblog):
http://www.gskinner.com/blog/index.rdf
http://www.gskinner.com/blog/index.xml
Exploit:

Gskinner Lightweight Interface Components
http://www.gskinner.com/blog/archives/000097.html

glic include:

    75% smaller filesize than Macromedia’s v2 components
    much lower CPU usage
    simplified skinning system
    advanced tabbing management
    effective, understandable code architecture
    Flash Player 6 compatible
    enhanced tabbing management
    improved event model
    polymorphic with v2 components, no learning curve. In most cases, v2 components can be seamlessly replaced with glic with little or no additional modifications

_________________

?MIA – Where the heck have I been?Back to MainFFNYC Session Notes ?/FONT>


Announcement: Gskinner Lightweight Interface Components

I’m really happy to announce my latest internal project, named glic (previously Daedalus), or “gskinner lightweight interface components”. My company (gskinner.com) spends a lot of time building rich internet applications, and we grew really tired of working around v2 issues, and explaining major issues like file size and CPU usage to clients, so we finally decided to do something about it, and glic is the result.

glic is a completely new component set, written from scratch. It is functional, easy to integrate, and was written to work effectively in rich internet applications or online experiences. More information will be available in the coming weeks, but the core features of glic include:

  • 75% smaller filesize than Macromedia’s v2 components
  • much lower CPU usage
  • simplified skinning system
  • advanced tabbing management
  • effective, understandable code architecture
  • Flash Player 6 compatible
  • enhanced tabbing management
  • improved event model
  • polymorphic with v2 components, no learning curve. In most cases, v2 components can be seamlessly replaced with glic with little or no additional modifications

That last one is especially important, because it means that you can use glic without having to relearn how to work with components – the interface that you use to work with them (methods, properties, events) is almost exactly the same as the one for the Macromedia v2 components.

Below is an example of a demo application we retrofitted with glic. This application was built a few months ago, before glic was conceived, but the retrofit only took about an hour to accomplish (and much of that was due to beta issues).

The initial size of the application was 80kB with v2 components (65kB of which is components). The glic version is only 31kB(16kB of which is components).

Here are some before and after screenshots, featuring one of the skins we will be including with the components:

List-view before

List-view after

Edit-view before

Edit-view after

Our goal is to make glic an affordable alternative to the Macromedia v2 component set. For more information, please keep an eye on this blog, and on the glic site at http://gskinner.com/glic/.

九月
27
2004

foobar2000 0.8.3

3
作者:AirForce

foobar2000

http://www.foobar2000.org/

Foobar2000 is an advanced audio player for the Windows platform. Some of the basic features include ReplayGain support, low memory footprint and native support for several popular audio formats.

Download version 0.8.3

Quick download links are listed below, more information about differences between installer versions on the Download page.

  • Normal – Normal installer
  • Special – Special installer
  • Lite – Lite installer
  • SDK – Software Development Kit

Note: foo_flac component in 0.8.3 installer downloaded before 2004-09-05 can damage FLAC files when updating tags in certain situations. If you have files in that format download the fixed version.

Features

  • Open component architecture allowing third-party developers to extend functionality of the player
  • Audio formats supported “out-of-the-box”: WAV, AIFF, VOC, AU, SND, Ogg Vorbis, MPC, MP2, MP3, MPEG-4 AAC
  • Audio formats supported through official addons: FLAC, OggFLAC, Monkey’s Audio, WavPack, Speex, CDDA, TFMX, SPC, various MOD types; extraction on-the-fly from RAR, 7-ZIP & ZIP archives
  • Full Unicode support on Windows NT
  • ReplayGain support
  • Low memory footprint, efficient handling of really large playlists
  • Advanced file info processing capabilities (generic file info box and masstagger)
  • Highly customizable playlist display
  • Customizable keyboard shortcuts
  • Most of standard components are opensourced under BSD license (source included with the SDK)
九月
27
2004

下面是WINNY下载地址:

(PC堦斒)(Falcom) 尪憐嶰崙帍 DVD斉姰慡僷僢僋 僒儞僩儔A儗儞僕丒暻巻丒儅僯儏傾儖摨崼 (iso+mds ape).part4.rar  466,730,160 4c48a12a0a043418fac9231968c31d37
(PC堦斒)(Falcom) 尪憐嶰崙帍 DVD斉姰慡僷僢僋 僒儞僩儔A儗儞僕丒暻巻丒儅僯儏傾儖摨崼 (iso+mds ape).part2.rar  734,003,200 5063afe30eb25df77c0b85e3d99ea046
(PC堦斒)(Falcom) 尪憐嶰崙帍 DVD斉姰慡僷僢僋 僒儞僩儔A儗儞僕丒暻巻丒儅僯儏傾儖摨崼 (iso+mds ape).part1.rar xK9DKg5kQR 734,003,200 f2283aaad2316b52a9e3cd70cf94b73e

(PC堦斒)(Falcom) 尪憐嶰崙帍 DVD斉姰慡僷僢僋 僒儞僩儔A儗儞僕丒暻巻丒儅僯儏傾儖摨崼 (iso+mds ape).part3.rar xK9DKg5kQR 734,003,200 65ffe8f5f3493aa7e2afa696351d0f2e

九月
27
2004

MAYA 4-5 X文件导出插件(代码)

发布者:
Size: .4MB
略。
11种模拟器原代码
发布者: CreateMaster
Size: 5MB
略。
文明:权利的呼唤2源码
发布者:
Size: 8MB
著名的游戏商Activision将其文明游戏的源码约72多万行代码对外开放。
半条命2(Half Life2)源码
发布者: Valve
Size: 44MB
本信息属发布者所有,本站资讯仅做参考,若用于非法用途,后果自负,与本站无关!据说是泄漏出来的游戏源码,其中还包含了反恐精英CS游戏以及其他部分的源码。有兴趣的朋友可以去研究一下,请勿用于非法用途。朋友可以到讨论区进行讨论。下载资源包
SIG 2.02 源码
发布者: Abin
Size: 1.1MB
这个是Diablo2 Exp一个国人开发的外挂程序源码,对外挂感兴趣的朋友可以研究一下。
重返德军总部源码
发布者: ID Software
Size: 6.5MB
续Quake系列后面的3D游戏作品,ID Software的商业游戏代码。
Quake III 竞技场 原代码
发布者: ID Software
Size: 2.2MB
著名的3D射击游戏Quake III,ID Software的商业游戏代码。 Quake III 竞技场工具 原代码
发布者: ID Software
Size: 1.5MB
著名的3D射击游戏Quake III的工具,ID Software的商业游戏代码。
赤壁之战(游戏原码)
发布者: 瞬间工作室
Size: .5MB
这是前导较为出色的游戏,其代码值得学习。     OGRE手册[英]
发布者:
Size: .3MB
OGRE3D,这是一份OGRE3D.org收集的一份手册,可以更好的帮助大家更好的理解ogre图形引擎。
《疯狂坦克III》游戏设计方案
发布者:
Size: 5MB
游戏名称:《疯狂坦克III:火星危机》(Fortress 3: The Crisis With Mars)
学VC、编游戏[带源码]
发布者: 唐明理
Size: 10MB
DW游戏教学方案,本方案的教学内容是从在VC环境中建立一个程序框架入手,一步一步地介绍在计算机上实现游戏的方法;其中根据游戏发展的需要介绍VC编程的具体方法。每一教学环节的完成,就是游戏的一个效果的完成。
CGD翻译NeHe的中文教程
发布者: CGD
Size: .4MB
Jeff Molofee翻译NeHe的中文教程。
《传奇3》部分文档
发布者:
Size: 3.9MB
《传奇3》的部分开发文档,来自http://www.npc6.com 。
3D游戏从头编
发布者: SoftBoy
Size: 4.5MB
谁都想做3D游戏,但是谁都知道3D编程和2D编程是不同的。但是3D不同,它复杂,需要一大堆理论知识,点、线、面、向量、矩阵、材质、贴图、灯光……(制作:小风儿)
OpenGL基础图形编程
发布者: 小风儿
Size: .29MB
OpenGL实际上是一种图形与硬件的接口。它包括了120个图形函数,开发者可以用这些函数来建立三维模型和进行三维实时交互。与其他图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数,因此初学的程序设计员也能利用OpenGL的图形处理能力和1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。(制作:小风儿)
Programming Windows程式开发设计指南
发布者: 余孟学
Size: 2.9MB
「到Petzold的书中找找」仍然是解决Windows程式开发各种疑难杂症时的灵丹妙药。在第五版的《Windows程式开发设计指南》中,作者身违背受敬重的Windows Pioneer Award(Windows开路先锋奖)得主,依据最新版本Windows作业系统,以可靠的取材资料校定这一本经典之作一再一次深入探索了Win32程式设计介面的根本重心。
Advanced 3D Game Programming with DirectX 9.0
发布者: Peter Walsh
Size: 4.1MB
Designed for programmers who are new to graphics and game programming, this book covers Direct 3D, DirectInput, and DirectSound, as well as artificial intelligence, networking, multithreading, and scene management.
Intel 汇编指令集
发布者: AmanPage
Size: .2MB
Intel CPU的汇编指令文档,里面包含了从8086/8088/80286/80386/80486的CPU指令,并有详细的功能说明、时间周期、寄存器使用情况等相关资讯。(英文)
DirectDraw 中文手册
发布者: glsakura.com
Size: .2MB
来源于http://www.glsakura.com的DirectDraw开发文档的中文版本。 此文档是翻译于DirectX7.0 SDK的DirectDraw部分。
DirectX9.0 SDK Document
发布者: Microsoft
Size: 11MB
微软DirectX 9.0SDK的开发文档,这是DirectX SDK9.0的最权威资料。
DirectX8.1 SDK Document
发布者: Microsoft
Size: 9.6MB
微软DirectX 8.1SDK的开发文档,这是DirectX SDK8.1的最权威资料。
DirectX8.0 SDK Document 镜像一
发布者: Microsoft
Size: 9.6MB
微软DirectX 8.0SDK的开发文档,这是DirectX SDK8.0的最权威资料。
DirectX7.0 SDK Document
发布者: Microsoft
Size: 5.2MB
微软DirectX 7.0SDK的开发文档,这是DirectX SDK7.0的最权威资料。
Win Asm1
发布者:
Size: .3MB
Windows下汇编语言编程资料。
Win Asm2
发布者:
Size: .7MB
Windows下汇编语言编程资料。
Intel Hex Opcodes And Mnemonics
发布者:
Size: .06MB
Intel 386/486 CPU 指令编码资料,里面有详细的指令参数、功能等介绍。     Tools/Library
MAYA 5-6 X文件导出插件
发布者:
Size: .4MB
略。

游戏文件打包器
发布者: 排队上天堂
Size: .04MB
这是一些可以将文件打包到一个文件的工具,如:将你游戏,音乐和一些数据的图片打包到一个字命后缀的文件里…..非常方便.
Hot Soup Processor
发布者:
Size: 1MB
HSP 全称 Hot Soup Processor ,翻译过来叫“热汤处理器”,它很简单很好学又很强大,是日本最流行的免费编程工具,很多人用它来做游戏,它连3D的游戏都能做。
正则表达式解析库
发布者: 兰征鹏
Size: .2MB
我相信,这个世界上的正则表达式解析库远远不止我知道的这些,但是,愿意开源的就很少了。开源的库其质量也是参差不齐,或着重点不同。特别引人注目的是,在所有这些已知的代码库中,没有一个是中国程序员写的。我希望打破这种局面,并且注重功能和支持多字节码(不仅仅是东亚大字符集),速度是其次——因为我的功底不够,对正则表达式不是非常熟悉,对有限自动机也没有理解透彻。
游戏工厂(Games Factory)
发布者:
Size: 10.3MB
The Games Factory是一个不用写程序就能做出game的开发工具,除了game之外,还能做屏幕保护、多媒体展示程序、线上游戏等,应用范围广,功能强大,使用容易,让每个人都可以自己动手做看看。TheGamesFactory有为3种版本,安装时会要求使用者选择,第一种是30天试用版,第二种是一般家用版,售价美金29元,只能制作免费游戏,第3种是PRO版,售价美金49元,能够制作可以出售的商业游戏。若使用者需要购买务必确认所需的版本。
Visual.Assist.NET.v7.0.0.1079 for Win2KXP
发布者:
Size: 2.1MB
Visual Studio的一套辅助工具,满足了VS.Net自身的一些不方便之处。
PS2开发工具
发布者:
Size: 32MB
SONY公司的Play Station 2游戏机的开发工具包。
DirectX7.0 SDK library & include
发布者: Microsoft
Size: 6.1MB
微软DirectX 7.0SDK的开发库,这是开发DX程序的必备,此档案包含DX7的帮助文档。
Gamecube SDK 镜像一
发布者: Microsoft
Size: 506MB
GameCube的主开发平台是Windows和CodeWarrior,CW也专门推出了for GC的版本,在40天的免费试用版本里,就包含了GC SDK。
Microsoft XBOX SDK 镜像一
发布者: Microsoft
Size: 437MB
微软的XBOX游戏机官方开发包,用于开发“家庭作坊”式的游戏……很像DirectX SDK,里面有很多samples,大小437MB,有兴趣的down回去研究研究……
Microsoft的3D模型输出插件
发布者: Microsoft
Size: .2MB
微软的3D模型插件,支持3DSMax和Maya。
GBA-ROM项目Visual Studio.NET开发包v1.0 镜像一
发布者: 大发
Size: 20MB
GBA(GameBoyAdvance)是任天堂公司出品的掌上游戏机。通过使用GBA-ROM项目Visual Studio.NET开发包,又名GBA ROM .NET,您可以在Visual Studio .NET中创建GBA工程,开发适用于GBA的游戏或应用软件ROM。
OrbMathLib
发布者: Lythm
Size: .05MB
OrbMathLib是一套跨平台的3D图形数学库.在Linux和Win32下都可以使用。
风魂–基于 DirectX 的游戏程序库 镜像一
发布者: 云风
Size: 0MB
云风开始学 DirectX 编程不久,深感 DirectX 的使用烦琐(但不复杂:-)需要对它做一些封装以便使用;同时经过多年的 DOS 下编程,尤其是近年使用 Allegro对我的影响很大,所以想试图改变通常在 Windows 下开发 DirectX 程序的概念,便制作了这个“风魂” 游戏程序库。本游戏程序库没有使用 DirectX 的硬件加速功能,因为我个人认为它对 2D 游戏的功用不大,甚至在某些情况下减低了游戏的性能,如果你对我的看法不赞同,可不使用这个程序库,但请不要说服我在以后的版本里改变库的结构;基于上面的几点,你可以想到,这是个适合没有 DirectX 编程经验的 DOS 程序员使用的游戏程序库,尤其适合有 Allegro 使用经验的朋友,因为这个库在结构设计上借鉴了 Allergo 的多处地方。
Intel JPEG Library
发布者: Intel
Size: 1.9MB
Intel公司制作的JPGE支持库,性能高而且相当稳定。
DirectX9.0 SDK library & include
发布者: Microsoft
Size: 7.1MB
微软DirectX 9.0SDK的开发库,这是开发DX程序的必备。
DirectX8.1 SDK library & include
发布者: Microsoft
Size: 3.3MB
微软DirectX 8.1SDK的开发库,这是开发DX程序的必备。
DirectX8.0 SDK library & include 镜像一
发布者: Microsoft
Size: 3.3MB
微软DirectX 8.0SDK的开发库,这是开发DX程序的必备。

Graphics Resource

魔兽世界blp2tga工具和源代码
发布者: kingmark
Size: .13MB
略。

精灵图像解码器[推荐]
发布者: 胡泽标
Size: .7MB
可以打开暗黑等游戏的图片资源。非常好用的精灵图片提取器。
红色警戒图档工具
发布者:
Size: .7MB
略。
《仙剑奇侠传3》动画音乐提取器
发布者: S.C.Soft
Size: .5MB
可以打开仙剑3的音乐档案。
魔兽世界纹理与3D模型查看程序
发布者: linghuye
Size: .6MB
继魔兽争霸后解析学习魔兽世界的数据模型而写的演示程序,同时支持解析魔兽争霸和魔兽世界的MPQ档案,Blp图像纹理,Mdx物体模型,使用OpenGL渲染。
Diablo系列游戏图片解码器
发布者:
Size: .7MB
用于打开Diablo游戏图片资源。
帝国时代2图像解码器
发布者: 胡泽标
Size: .25MB
可以打开帝国时代II的游戏图片资源。
魔兽3资源查看器
发布者:
Size: 1.25MB
魔兽3资源查看器,同时附带源码。源码D3D渲染版本D3D渲染版本源码
魔兽3图像资源查看程序
发布者: linghuye
Size: .5MB
这是我最近在学习OpenGL和Direct3D中所写的程序,基于OpenGL实现, 程序大量学习参考WarViewer模型解析的源代码,使用shadowflare的DLL解析MPQ文件,使用开源C++库,WTL,Loki,DevIL等。

分类