编程新手真言(Word) / x1 u& L. g, n& |
Update: 2008-11-21 Author: MuziSoft08 From: GameRes / P4 e5 C" ]5 n; W/ s# I
本书的架构就是第一部分到第三部分都是独立的一章,既有知识架构,也有学习方法,技术细节的描述,这三部分要为第四部分用到的细节都给出了详细解释。。(四部分都是独立且相互联系的)第二到第三部分很多知识点的讲解都为了第四部分服务,比较侧重于游戏编程(兼顾了通用的编程知识),因为我们本书的主要任务之一是产生一个游戏。(文档大小:4MB) 2 K1 l! k- l+ E2 p( G
2 H6 y# N, e8 ?3 l8 Z模版函数指针,C++委托的实现 ( Q" y% m) |' T
Update: 2008-10-12 Author: tonykee From: tonykee's Blog
, e) O8 l& p. \4 w9 U4 q 今天写引擎的时候,很想加入一些回调函数,以前一直没时间整理这块,这次一定要下决心好好整整代码,纯粹用多态,很多类非要加个帽子,类之间的关系也显的很单一,有的情况需要用到委托的回调机制,这是个很好的东西,在C#里面是原生支持的,C++里面本来函数指针是个不错的选择,可到了对象里面,成员函数指针还有那么好用吗? # U Z0 R, v+ f
5 v" L: |) T+ M* Q[翻译] 如何使用HTMLLITE , i$ Q; q0 Y9 i. O: n* `" p
Update: 2007-4-22 Author: vrkiller From: vrkiller & Y$ g$ u- m3 M' S3 B
在VS.NET的安装包里有一个没有文档说明的DLL组件。它可以让你在自己的应用程序中渲染HTML,而且所有的一切只需要一个简单的WINDOW类。
# C/ E# _: p' S6 M5 M9 {! O
/ r/ u+ ?$ F) k深入分析物品系统
, _4 F' i$ S. o) q' w2 M4 T; Z- QUpdate: 2007-3-21 Author: 张 From: GameRes
* ~8 l- O2 N5 P+ X7 z 我们先形象看一下物品。物品从游戏整体来看是以流的形式在运行。假如,物品掉落到场景中,那么物品就流入场景了。而物品被角色检起来,放进背包,这时候物品就流入角色的背包了。然后,物品如果被装备到角色的身体,这时候物品就流入角色的身上了。 7 W& j5 f; Z4 X" y0 l3 o
8 f6 D' C" {/ s0 j& j% @) [
用rand()和srand()产生伪随机数的方法总结 5 z2 K, T$ H+ } ^
Update: 2007-1-19 Author: 赤龙 From: 赤龙博客 / W+ w, r) h8 W7 N! u7 p$ r
标准库(被包含于中)提供两个帮助生成伪随机数的函数。
( e1 c: S$ J1 U4 y
4 q( f4 ?: k; p% {6 b- Y9 @. jC++断想:5x5系列之四 C++历史上最重要的人物
+ j' A" \- y- \& D3 w4 ]' b9 A9 VUpdate: 2007-1-18 Author: 黄小非 From: : A8 }0 p8 X0 @9 R' n$ W1 j
C++是一项技术,但在技术背后却隐藏着那些发明它,塑造它,推广它和使用它的人群。在本周,我将向大家介绍我认为的在c++发展史中最重要的五位大师。 # a) f0 o9 O( N# K; w
2 g: d) h4 K! M非静态类成员函数指针解决方案
* U9 d. d7 U, [: I; D' OUpdate: 2007-1-7 Author: 无情公子 From: 无情公子 Blog ' r$ q7 p& E6 w5 l1 q
略。 + ~# S6 G1 n( a) M, P- _
4 L- x+ X, A; l$ G; r8 P; t深入分析规则引擎 / v5 l5 U8 g R. p6 x8 s/ R' m% I
Update: 2006-12-21 Author: PassByYou From: GameRes & ?4 _, o' w! w, f) u5 X
撰写本文目的是将规则引擎的标准整理成大家都可以用来做实际参考的东西。其实这并不是目前我做的游戏引擎,这几乎跟我的引擎完全不沾边,因为这些只是方法,思想,还有经验。我只是想让大家知道规则引擎的水深,还想让大家了解一些制作核心规则的思想。让大家了解什么是规则和科学的制作方法。 M- s& g$ @) t0 `0 `
1 O# s, }# X1 P2 tC++基本功和Design Pattern系列(3) constructor & destructor % o9 W: m2 C, o6 G7 K0 w
Update: 2006-11-8 Author: Aear From: Aear Blog + w% T1 B; L5 c. A2 l2 |" O
最近实在是太忙了,无工夫写呀。只能慢慢来了。呵呵,今天Aear讲的是class.ctor 也就是constructor, 和 class.dtor, destructor. 相信大家都知道constructor 和 destructor是做什么用的,基本功能我就不废话了。
+ \2 y6 G2 C( g' z; ]0 j
5 D9 R6 P7 z( x5 n+ p9 S$ `C++基本功和Design Pattern系列(2) Type Cast, Interface Inheritance VS Implementation Inheritance
* c) f0 n* e. ~Update: 2006-10-30 Author: Aear From: Aear Blog
t5 A: ?+ S2 ]4 { 又到周末了,Aear在此感谢大家坐这么近来听我说书。今天讲的是C++的类型转换(比较无聊的内容,但最好看看,因为可以帮助大家减少程序中的bug)。 6 T: N; T0 O: r; J# I2 m$ v7 }
, [7 }1 S2 A, P/ |1 t/ w( B- gC++基本功和Design Pattern系列(1) - Inheritance VS Delegation
' C6 W" ^* v' [* u; M# b% m! oUpdate: 2006-10-25 Author: Aear From: Aear Blog
+ ]* |+ I/ C- q' p 为什么Aear继续写基本语言的东西? Aear本来想写一些DirectX啊,shader啊,game开发理论什么的。不过想来想去,还是觉得不要误导大家的好。主要原因是,看aear文章的大部分都是非专业人士,想走进游戏开发这个领域。根据Aear的个人经验,游戏开发最重要的是基本功,而不是DirectX和OpenGL这些API的使用方法。
, _% A# z0 A- C
8 l; B" n) j0 K0 xC语言基本功教程系列(5) - 文件, Socket 和 其它 6 V8 W! x, e# _9 W
Update: 2006-10-20 Author: aear From: bbs ( K- E) |/ i/ X; U, a Z3 R
这个系列的最后一章了,基本上这篇里边拿不准的,或者记得不太清楚的,以及很确定的结论,都在网上或者书里找到了依据。如果大家不同意文章里的论点,拿砖头拍我或者拍原作者都可以。
/ p. |$ {7 s* k' I% j. d
' w1 O$ Q+ a1 g" T$ D0 Y. O2 fC语言基本功教程系列(4) - 高效无错的内存访问
9 A8 ^1 L" ^! W$ u( b7 b+ ~Update: 2006-10-15 Author: aear From: bbs % X$ y. G- ^9 R a- V
大家周末好,希望一个星期的学习和工作没能把大家累垮,这样又可以在这里听Aear在这里讲废话了。这个周末的主题就是内存访问,主要是谈谈写程序时候关于使用内存的技巧,以及一些应该注意的地方。
. @/ F. J' |: _ l2 d( U) y# r/ {/ Q; m2 `9 h+ E5 [# @/ ^
C语言基本功教程系列(3) - 快速的函数调用 ! o- R9 W3 m7 A+ l- }7 K: u
Update: 2006-10-11 Author: aear From: bbs
7 B2 Z: D# ]% y- n5 u# Q. j. ? 我又来了,今天坎坎函数调用的问题。函数哪里都有,小的程序一两个函数,大的程序成百上千个函数。即使在游戏的关键循环中,调用几十个函数也是很常见的。所以函数调用代码的质量,在很大程度上影响着游戏的质量。
' O! B' Z4 \3 g' J3 _4 Q1 F/ E3 `) ^; Z0 Q' @- v# e/ ~. c" V
C语言基本功教程系列(2) - if 语句
2 T; a8 E- q$ _2 l( wUpdate: 2006-10-8 Author: aear From: bbs ' g3 e/ z( |2 Y* z
if语句很简单,相信大家都会,但是确有很多值得注意的。首先来说一下code style的问题。 3 R0 n- w- C) M$ N, j. R
^# K. N: a. a$ h1 H: k* ~1 ?3 t
C语言基本功教程系列(1)
, B) x) i6 r% z% f: z+ k! |' O( XUpdate: 2006-10-7 Author: aear From: bbs
& m4 m3 u! P4 G1 d 看了那么多文章,感觉到大家学习游戏程序设计的热情,经常看到很多人提出关于openGL directX和computer graphics的问题。但是我个人人为,游戏程序设计,最最最重要的还是C C++语言的基本功。如何编写高效率、整洁,和尽可能少的Bug的代码,是成为一个游戏程序设计员的关键,所以我开拉这个小系列,来帮C或C++语言基础不牢靠的人补补基础知识,希望能够对大家有所帮助。
. U7 S4 h8 {" G3 Q3 n- m
3 z" S4 p$ V* XCollision AI - ^$ ?; [. f+ i! \1 X, }
Update: 2006-9-19 Author: PassByYou From: GameRes
3 \( N$ M1 Q9 J, {5 \/ @: T1 W+ r 前段时间开始开发新游戏引擎,目前也是正在开发状态。我常说,碰撞+空间算法部分是3D游戏中的核心,也是最难制作的一部分。抱歉,这样说恐怕有点不够准确,准确来说,Collision AI是最难得一块。难点在于,在制作过程中,那些数字很抽象,往往要思考很久才敢下手。 ; r6 _& @2 u3 I$ f* U
/ A. ]7 Z6 s, g
[翻译] 关于游戏中的调度器
. U) D8 w& B& F7 u# C: c QUpdate: 2006-9-11 Author: kevinlynx From: 紫月城 ( [7 _; o" U+ o0 Q9 o" B2 E/ H
一个调度其可以有效帮助以下游戏技术的实现,他们包括物理仿真,人物运动,碰撞检测,游戏中的人工智能,渲染。在所有这些技术中有一个关键问题就是时间。在不同的时间里,当数百个不同的物体和过程都需要更新时,这些仿真技术的很多种东西变得非常复杂。
% p6 N1 ^" G; p) ]" p+ \3 R0 E0 {: h' V% d
谈谈MMOG的项目测试期相关技术
& g/ @: D9 o) y. Z5 u6 eUpdate: 2006-5-25 Author: 王志勇 From: GameRes
. h% D- m; h$ F( }8 l# p+ v% k 经过一番奋斗之后,你的新项目已经有了宏大的世界观、无缝链接的超大场景、精美的人物和场景、爽快的战斗和技能,还有——为媒体宣传所打动的成千上万的玩家们在激动的等待着她的面世……所有事情看起来都很美妙,但是接下来你要面对的才是真正的挑战——你要证明你的网游真正可以玩,不会总是黑屏死机加回档,你要以实际行动告诉玩家:“哦,那些Bug我们很快可以搞定”——对于热心支持国产游戏的玩家们来说,这听起来相当不错,但是你需要有一些技术和准备来做到这个,我们接下来就谈谈怎么干。 1 I* h- m& @# v) V) e/ a
4 _, g5 V6 g _& h( }8 f0 [6 A使用Boost.Python构建混合系统 d$ K. ]3 B# y* A/ \) @
Update: 2006-5-21 Author: 王志勇 From: GameRes , |) ~0 V: P: ?- r$ q$ X1 f
Boost.Python是一个开源C++库,她提供了一个简明的 IDL 式的接口用于绑定C++类和函数到Python。得益于C++编译期的内部处理(译注:原文是introspection,我不知道怎么翻译合适)和最近开发的元编程(metaprogramming)技术,成就了Boost.Python不需引入一种新的语法而只用纯C++的实现。 * p" _) v- V, ~; r
5 c0 g( \% j7 [( u! z' S) [( q' O
斜45度游戏开发(提高篇) 6 g; O, j+ F( _
Update: 2006-2-23 Author: Flysky From: GameRes 7 }4 f5 u! c4 f- [- z' h4 i6 f
这篇文章我们主要讲的是遮挡的详细制作方法,我认为,如果你知道了上面几篇的原理,应该也能制作出来,如果你制作出来了,就请不要往下看了,下面的很可能对你来说是浪费时间。 0 c. X& F4 e. l$ W/ E6 ?; P
0 l2 B0 h1 B1 L- e0 f8 Q. ^ H
脚本系统的实现
( d5 }; g7 k/ V: ^( u/ Z6 UUpdate: 2006-1-23 Author: Flysky From: GameRes 4 J- r D) S D& Q c2 L# L) Z
说实话,原来《电脑报 2004年合订本》有个很好的直角90度游戏开发系列,里面的游戏脚本系统讲得还可以,如果你对本文还存在疑惑,可以看那一个游戏开发系列。 a' W8 n' z! @/ z2 Z) a
5 m" @& B3 e+ Q: k7 K7 w6 P. H" T& _/ G斜45度游戏开发(二)
% C: S# l* Z4 V; u# N0 S* Z' ]Update: 2005-12-22 Author: Flysky From: GameRes , l8 [5 M% O" v3 V; z
上一篇我们讲了地图的结构和地图的基本的绘制,这个属于较简单的步骤,我做这些也不是特别的麻烦,如果你是老手,那么1天对你来说已经足够,我们这一组文章也没有讲任何的优化技巧,如果你想优化,还是需要在实际中摸索,当然,我有时间也会写的。 ! E$ w d* k; j# _6 y+ g7 E( L( h
8 w4 [: l9 g. A$ u$ I
斜45度游戏开发(一)
. d) J$ Y) X( @% e, j) \Update: 2005-12-20 Author: Flysky From: GameRes : e2 O9 d) X# q
最好的游戏末过于RPG游戏了,但如果赢得大众的好评,那么必须要采用(甚至说现在是一种标准)斜45度地图、人物游戏引擎,下面我们分别展开分析。 : a' T9 I" H% v* K
; f/ R6 s T6 l1 u# z+ R4 g5 c r
VB.NET下的托管DX9编程入门
% u6 {" q: p* s9 F( ?: CUpdate: 2005-7-19 Author: bigbook2000 From: GameRes 0 h. p# E$ n# E+ l1 ~( O
VB.NET从语法上扩展了VB6,具有VB6不可具备的优点。从本质上来说VB6是积木式的编程方式,语法上不是一个大型软件语言,是对象语言但不是面向对象的语言,但其与COM和API的良好结合,使得这个语言的应用变得极为广泛。我们为什么要从VB6转向VB.NET,现代软件由于规模庞大,往往不得不采用面向对象的方式来设计软件,一种语言或多或少都是具有面向对象的特性和面向过程的特性,纯粹面向对象和面向过程的语言都十分难以控制。 % b7 l8 T- x$ @/ G
9 z: \: y, Y4 N; O+ t- zMMORPG开发入门 , R: o B! [3 ~& B
Update: 2005-6-12 Author: pAnic From: 17173
9 D, O" T% ]+ f3 x8 q2 p, p 这是一篇讲解如何开发一款MMORPG的入门文章,作者本人也是一款游戏的开发者,文中的内容源于实践,有很高的参考价值。很多人都想拥有自己的游戏,这篇文章对那些想自己开发游戏的人来说可能是一纸福音,也可能是一盆冷水。无论如何,开发游戏都不是一件简单的事情。 . m B) a" Q" n: t$ A" y
" [3 U8 t. ?! c1 q$ Y' Z
游戏编程入门
; B* y0 s+ z& ^2 R; y- FUpdate: 2005-4-30 Author: David Astle From: GameRes
% u* j$ Q. t* {0 m' M- G6 `2 W7 p- K 经常有人问我,没有编程经验的人该如何开始开发游戏。在此之前,我总是一个个的尽力回答。然而,后来提相同问题的人数增长到难以处理的地步。我决定,是时候把我所有的建议写成文章,作为一个大概。
5 p6 ]9 ?' J4 n5 p
; q" S$ Y7 _3 |( q& |游戏中对象选取的方法
O, y2 A) j {/ l7 @Update: 2005-3-19 Author: Panic From: Panic的小屋
9 T; S3 X* F4 i' h* t 对于PC游戏,在鼠标大行其道的今天,如何由鼠标的位置判定其下的对象是什么,是几乎所有游戏都必须面对的问题。
5 Z, A( I! S R# d N
- `% L& V7 r% v1 {4 Y$ l6 D+ f! ?' H撒旦的语法
/ g' r' p6 z; F6 f) WUpdate: 2005-3-17 Author: Panic From: Panic的小屋 1 t& b+ ?( z0 V H8 i% n1 H& K. W
很多人写代码是照猫画虎,这些“猫”最终就变成了教条(注1)。一旦教条被人熟知,不同的变量,数值,功能就被按照教条使用,然后用一些“胶水”代码组合起来,实现需要的方案。通过对语法的深入了解,我们可以消除很多的“胶水”。这篇文章举了几个怪异的C语法的例子,以及如何在不导致歧义(注2)的情况下,利用(滥用?)他们实现更高效的代码。
( h$ {5 T* L/ L' }: c
$ t& F4 t, p) m( M2 c斜视角图形引擎:它适合你吗?
$ A+ `) d. \: h* e) V- i3 _Update: 2005-2-20 Author: 张戴维 From: GameRes
7 x# m9 v. t- q% |7 v7 f1 d5 E4 ^ 说到斜视角图形引擎,可追溯到早期的图形化电脑游戏。《Fairlight》、《上帝也疯狂(Populous)》及较近期的《暗黑破坏神(Diablo)》等游戏使它闻名。它仅通过对位图的绘制便展现出一个三维的场景。本文中我将谈谈何谓斜视角图形引擎、如何使用它、以及我们为什么需要它。
) l9 e. w& w X- S n: S1 w- F) t9 i! e1 `8 R
Windows游戏编程快速入门
2 E7 z% _$ k0 B% t( ~- F4 j0 jUpdate: 2005-2-5 Author: 宋良(Easideao) From: GameRes
% `% o) S; O2 x( c) { 虽然毅力在学习的过程中有着不可置疑的位置,但是有个合适的方法和适合自己的方法还是很重要的。假如你的兴趣和毅力都过了关,我接下来将以一个游戏的代码编写过程写下来,我坚持写下来,你坚持读完,按照我讲述的步骤去做。我这里不会把所有细节都讲述出来,因为那是太庞大的任务,我的力量无法实现,我们下面的方法就是:我说怎么做,你就怎么做,先知道怎样做一些事情,当你能够按照我说的做出正确的结果说明你已经会了,如果有不懂得再去查看相关资料。 k2 ^) O' {$ a! D' E: h
! f4 i! M4 X* N' w, a深入Managed DirectX9(五) + i. J( N, u' S9 q5 `. Z, Z7 L
Update: 2005-1-31 Author: clayman From: GameRes 3 v2 }* \4 i% E
至今为止,我们的渲染工作效率都很低。每次渲染场景时,都要分配新的顶点列表,并且所有东西存储在系统内存里。现代显卡集成了足够的显存,把顶点数据存放在显存可以获得大幅的新能提升:存放在系统内存里的数据,渲染每一帧时都要拷贝到显卡,这会带来极大的损失。只有移除每帧时的这种分配才能帮助我们提高性能。 9 O. V6 V( n Q' l& p4 G V8 ^
2 H ^/ x4 {: {4 E4 n/ n' j2 @$ R
深入Managed DirectX9(四) 7 g: w" v5 j) C( y# \$ F. x
Update: 2005-1-27 Author: clayman From: GameRes
+ J8 [+ |& D% z" J The number of possible permutations when cretion a device is quite staggering. 如今,市场里有大量不同类型的显示卡,记住每种显卡所支持的特性几乎时不可能的。你应该询问device,让它告诉你它所支持的特性。 % }5 A v' Z3 H
. t9 D9 j1 D* W! W* S深入Managed DirectX9(三) / [* t5 ^* \& A8 J1 @" m$ [
Update: 2005-1-24 Author: clayman From: GameRes
6 q8 m; Q+ b9 O+ w- ~, o j 任何曾经使用C++或VB开发DirectX3D的人都知道,在改变窗口大小时,需要重新设置devicd,否则,DirectX3D会按原来的分辨率继续渲染场景,并且把结果拷贝到(通过拉伸)新的窗口。当通过Windows Form控件创建device时,聪明的Mamaged DirectX能发现你改变了窗口的大小,并且重置device。毫无疑问,程序总是能在正常的行为下运行,同时,你也能方便的自己重置device。
1 I' B( j: p8 B! w0 G! W- B0 D: X
深入Managed DirectX9(二) ; M! h* \1 l/ b% r2 h1 m; R
Update: 2005-1-22 Author: clayman From: GameRes $ U: I8 t2 _! V; y0 y3 m
再来看看我们的程序,看起来并不是那么“三维”。而且我们所做的都能用GDI+轻易完成。So,我们应该怎样在3维空间里绘图,并且给人留下深刻的印象呢?实际上,简单的修改就能达到这样的效果。 ; {2 U8 P Y4 S
( p, n0 ~4 i1 t) E
深入Managed DirectX9(一) - [% D8 c; `) k0 A5 Z, M n
Update: 2005-1-21 Author: clayman From: GameRes ! K+ b# o5 ^; D& q4 i- F2 k0 Z( }
Device类是DirectX里的所有绘图操作所必须的。可以把这个类假想为真实的图形卡。场景里所有其他图形对象都依赖于device。你的计算机里可以有一个到几个device,在Mnaged DirctX3D里,你可以控制任意多个device。
5 o3 P+ y5 {- l; t5 c; Z* V5 G" E: |& m8 w& d/ B( r2 F
6 r! S/ }* y7 V3 B0 L& F+ jC#游戏开发教程
8 o2 l: [+ u7 N7 U: P- r5 H& gUpdate: 2004-12-17 Author: genic From: GameRes
; J$ Q5 L( o! r9 _3 O+ d/ B 本文适合有一定编程基础的爱好者!本文不会涉及基本的语法等内容,本文适合所有游戏开发初学者,本文从Microsoft DirectX 9.0 SDK (Summer 2004)中的D3D下Tutorials文件夹下的例子开始! 6 [% @- r7 U1 ? j
( U5 G- Q# |) _Windows网络编程
4 P/ t- X, [4 s5 w5 |8 `Update: 2004-11-7 Author: 快乐魔导师 From: Ares
# W% {9 q2 B+ y A 我写这个专题的目的,一方面是为了通过对网络编程再一次系统的总结,提高自己的网络编程水平,特别是Windows下的网络编程水平。同时,我也希望,能为众多初学网络编程的人提供一点帮助,因为我开始学习网络编程的时候,能找到的资料就很少。当然,花钱可以买到翻译版本的书:)
0 l$ f" t. z q3 o0 k8 z8 M: U4 H8 Y7 ^( J. g. j+ ~
C/C++语言编码规范 4 K$ t3 K+ V" _
Update: 2004-10-5 Author: unknow From: CSDN
- m( ?2 p" P' W: S: B 语言编码规范是为了保证在软件开发过程中,全体成员的代码风格一致,便于维护,提高软件产品的质量和保持开发产品的延续性,特制定本编码规范。本规范详细规定了源代码书写、变量命名、函数/过程的书写、错误和异常处理等方面。 0 Q P, {/ G7 b# V& V/ ^; ]
1 p- {6 @$ t2 M2 g3 W9 r& J1 d4 [
游戏开发指南 * p) }6 j A/ [3 U9 S& w
Update: 2004-8-12 Author: 无情公子 From: GameRes - n: F5 L) B9 X8 O
造一个什么样的游戏?如果叫您来答,您会答什么?是角色扮演还是即时战略?对于广大游戏编程爱好者来说,答案肯定会是角色扮演。
$ \' t! A0 _' G; u6 T$ j2 l. S9 l 那么,我们要造一个什么样的角色扮演型游戏呢?相信这个问题也是毋庸质疑的,大家肯定都会说:“《仙剑》式”。的确,《仙剑奇侠传》自1995年出世以来,在游戏界中已经成了一个不败的神话。 7 m9 }. u1 [7 ~$ W% E2 C% ]% S0 y
+ B8 H& ~% B6 ]: _+ j. ?/ p' a; a- A
学VC、编游戏[下载档] - a1 ^, i. c' s; @* ^5 v/ P: `
Update: 2004-7-14 Author: 唐明理 From: GameRes
6 n$ [: X: ` V/ a# n) ` DW游戏教学方案,本方案的教学内容是从在VC环境中建立一个程序框架入手,一步一步地介绍在计算机上实现游戏的方法;其中根据游戏发展的需要介绍VC编程的具体方法。每一教学环节的完成,就是游戏的一个效果的完成。
5 t4 }' _9 F3 @( A1 M
. Q6 P( t$ X* t z8 c梁健雄游戏制作方案 , k+ @, R) z9 g9 m9 w; R
Update: 2004-5-19 Author: 梁健雄 From: 健工作室
" V# x' f# E: x5 f0 F 虽然说的很简洁,但这些都是我自己理解之后,一字字打出来的,都是在互联网上找到并总结的。具体的程序在网上有很多的下载,我也不会很正规的说一大堆。& c. e9 b7 I- w6 @
如果可以写完上面那四个例子,我就可以详细地设计一个龙与地下城风格的MMORPG的游戏,是大型的3D再线游戏。这是我这次学习游戏编程的毕业论文吧。 " c2 E, N5 t' w4 B1 E) ~3 s
) A9 Z$ S( K3 {- |1 iVAE范例:Apple 制作过程
' A8 z* [5 Z. m# F6 WUpdate: 2004-5-17 Author: From: vczh游戏工作室 " g- y) d, w4 `3 `8 y/ v8 i4 p
介绍VAE的文章终于写成几篇了,我便忍不住要开发一个完整的小游戏并写一篇文章来展示展示。所以,这个Apple就新鲜出炉了。这里将介绍Apple这个游戏如何编写,可以通过下载Apple这个游戏来进行参照学习。VAE专题页面。% q5 u- A8 Y) }( C; {8 Z
! p b2 x) _) t8 \7 `1 }) {+ E( ^: m$ i; X* f
Tile Based Engine的设计 - Tile形状的选取
" P0 G- Y" A4 X X$ _0 n% yUpdate: 2004-5-13 Author: 云风 From: 云风工作室 - K- h8 H: @4 ]) G: B5 d. F
Tile Base Engine的优点在于其处理速度,如果我们设计Isometric Engine而无视这个优点,那未免太亏了,所以贪图一时编程或美工的方便,将游戏设计成Tile大小随意,而又不去发挥任意大小Tile的优势,(例如形状任意,Sprite 运动路线的任意等等)将无法超越从前的游戏Engine。
7 b% y0 r# Z8 u* H* B' J! `+ F8 \$ i% v) D0 N- I( d: j
, Y" \& ^3 T& k! W6 n5 yTile Based Engine的设计 - 精灵链表 8 K- ^5 z* h( K3 U9 w
Update: 2004-5-12 Author: 云风 From: 云风工作室 # V j ^1 T2 B
通常说来, 第三人称 2D 游戏中通常把景物和精灵分开处理 (至少我是这样的) 尤其是游戏机上, 硬件对精灵有支持. 现在我们的显卡多也支持显存间的 keycolor 检查 Blt 操作, 实际就是用来加快精灵处理的 (也包括景物)。
' k a* X5 Q* _8 f' A ?' R6 u2 l2 h% u, c& O, T1 n) o+ J! d
Tile Based Engine的设计 - 坐标变换 2 G3 {, I$ }2 E2 L2 U1 v' L, l
Update: 2004-5-10 Author: 云风 From: 云风工作室
4 l$ X& m! H0 \- z# s. E5 Y Isometric Tile的处理比矩形的稍微复杂一点的地方在于屏幕是矩形的, 而反映出来的游戏世界的坐标轴有些不同. 无论是精灵的移动, 还是处理 Tile 都需要经过坐标变换. 而一个屏幕的区域在游戏世界的地图上却成了一个菱形. 我想,所有第一次设计 Isometric Tile 引擎的程序员都为这个烦躁过 (自己的感受啦;-) 不排除因为这个原因修改自己的原始设计的可能性 ^_^. ' j5 { O, [4 z/ w, r5 V
% |& |4 b( w f2 a
% f: L" N+ h1 S4 i4 eTile Based Engine的设计 - 遮挡处理
: u- P. N5 w% N' |* t. h4 aUpdate: 2004-5-7 Author: 云风 From: 云风工作室 ) ^! o! Q3 ]. [9 f1 B
所谓 Isometric, 应该是指等距视角, 和透视相对, 指视野内的物体, 无论远近都用同一大小来表现. 而Tile 就是指的砖块, 我们平常所见的许多 2D 游戏, 都是 Tile 的. 比如新出的决战朝鲜, 还有去年的皇朝霸业;-), 这两个游戏都是典型的 Tile 游戏, 游戏中的元素被分割为一个个的砖块拼装起来. 不同的是, 前者是矩形的 Tile, 而后者是 Isometric 的. 它的Tile 有高度, 底面为一个菱形. Isometric 的外观更接近真实物体。
r+ |2 Q, q B( y" O9 |4 F
: N7 {; e# T3 O _9 x/ A& ]5 I
- V( G p. ^+ f$ vTile Based Engine 中的墙壁自动拼接处理
: G8 o9 H; ?( m; g6 PUpdate: 2004-5-5 Author: 云风 From: 云风工作室 ; ]1 o; t) s. u6 E4 t/ S& m7 B
基于 Tile 的引擎中重复利用率最高的图素,除了地面就是墙壁了, 大家回想一下恺撒III 中的修筑城墙, 或是 Simcity2000 中拉扯电线, 道路,每种物体都只有十几种基本的图素来拼接,而交叉处理都是程序自动选择正确的图素. 假设我们做一个地图编辑器, 这个功能应该也不能少吧:-) 6 c K6 u% e1 v
4 { W2 \" ]) {$ N
角色移动的步长、步速与滑步现象
; Z& _& _6 w/ O4 s' }Update: 2004-4-30 Author: 云风 From: 云风工作室 6 \9 M; f/ i' u3 F% r( e
滑步只跟步长有关,就是一轮人物行走(或跑步)实际移动的像素。当然国产游戏大多做的不好。大多数根本不去认真做人物行走的播放程序,简单一帧帧播放动画,并随意移动小人在地图上的位置了事。 o+ A7 d7 z( D; ]! F
/ n% d. A4 j& f! t) T: Z$ s
斜45度角地图拼接 5 G6 s T5 v" h% O
Update: 2004-2-2 Author: Lacutis From: cn-gamedev.net
D3 |: ]8 ~$ l: F- y# R( ` 一篇斜45度场景地图拼接的介绍,对想了解斜45度场景地图制作的朋友会有所帮助。 % Q( ^- H& H/ Z9 D) e
& g$ m5 E- t0 a$ b- C+ f8 [DirectX—昨天,今天,明天[2]
5 F( x+ R! Y2 }, Y# xUpdate: 2004-1-20 Author: 龙芯X From: 计算机科学技术网
& j! f, u6 O0 k7 l& R DirectX这个词对玩家来说似乎并不陌生,现在的很多游戏说明里都有“该游戏需要DirectX….以上版本支持”此类的话,甚至3DS Max启动时的加速模式选项中也有DirectX身影。那么DirectX究竟是什么呢?现在就让我们揭开它面上这层神秘的面纱,一探究竟吧。 ; A8 x" a4 U) [% j( _5 i
$ T. U% n6 M6 A! Q2 R. y2 ?+ DDirectX—昨天,今天,明天[1] ! `3 F+ e6 E; n
Update: 2004-1-19 Author: 龙芯X From: 计算机科学技术网 / E: ~/ u c9 m& Z; A: i
DirectX这个词对玩家来说似乎并不陌生,现在的很多游戏说明里都有“该游戏需要DirectX….以上版本支持”此类的话,甚至3DS Max启动时的加速模式选项中也有DirectX身影。那么DirectX究竟是什么呢?现在就让我们揭开它面上这层神秘的面纱,一探究竟吧。 W! } A, P" P) _6 U$ ]3 j; t& u
3 e% z8 u4 B4 l5 C
DirectDraw 与 DirectInput 的游戏编程体验 / I k' B5 Z" l, f: Y
Update: 2003-11-10 Author: 徐优 From: 放飞技术网 6 d% p5 `# F$ s$ l" {- S
我想关于这个主题的文章,不算少,但也不算太多。但大多是分别介绍 DirectDraw 与 DirectInput,而并没有将其结合起来,也许你会问:“分开与合并起来并没有本质区别啊!”。其实的确没有本质区别,但那样使那些最初对游戏编程报有极大热情的爱好者感到非常失望,因为这其中的一个并不能完全满足他们的要求,并且使其感到巨大的阻力,从而失去信心。所以本文将 DirectDraw 与 DirectInput结合起来去讲一个主题就是“游戏编程”,请注意是“游戏编程”,当然这只是一个简单的桌面游戏,但这已经与先前有很大的不同了,这已不是简单的 DirectDraw或 DirectInput编程。我想你现在应该能够体会出其中的区别了。 $ _ X# I& u) H# _: n
7 l6 @ }! ~6 j9 ^5 @游戏开发—图形图像篇
l2 M% W0 o' Q% X- P- FUpdate: 2003-9-5 Author: [url=mailto ava_Leon@163.com]lava_Leon[/url] From: CSTC 2 x- q! P- F8 ^
记得我第一次玩的PC game 是KKND(绝地风暴),当时的游戏平台是DOS,我只是觉得很好玩,经常和几个小学同学一起厮杀到12点。可是现在回忆起来,KKND无论是从智能设计还是在游戏画面与操作上都是非常出色的。他的音效同样是很棒的,而且全中文配音让当时很多不懂英语的玩家找到了许多的亲切感。这真是一款很棒的游戏。It is great!
5 l+ A1 {" Z. g- @6 B1 _6 I" p7 N K4 G
游戏程式设计指南(HoHo篇) Lesson 5 — 字体绘制篇
! Y) G& i$ N3 e- A9 M0 p5 T* rUpdate: 2003-8-20 Author: 林德辉(Sea_Bug) From: GameRes . t/ Z5 f1 C7 s! F
图像作为游戏的主要输出途径,其中不可或缺的就是文字,不管是作为游戏中使用,或者作为我们程式的调试手段,文字的输出表示是相当重要的,本节就是要给大家介绍如何在HoHo游戏程序中绘制文字;HoHo为大家提供了两种绘制方式,一种是通过Windows的GDI来进行文字绘制,另外一种则是通过HoHo自己的处理方式来进行文字绘制。
$ X- b0 ]9 m: i5 q) r
$ A, C4 R7 C- I! `- Z: Y o; ^游戏程式设计指南(HoHo篇) Lesson 4 — 图形绘制篇 $ I- {$ E* {+ Y c4 f$ F/ ~
Update: 2003-8-17 Author: 林德辉(Sea_Bug) From: GameRes
7 o; u. k6 L" P/ T5 Y+ Q" _ 这节讲述的是HoHo的2D模块最重要的功能,不用我多说,这就是HoHo的图像绘制部分,相信没人会否认图像绘制对于游戏的重要性,基本上游戏给玩家的表述多是用图像来说明,HoHo提供了多种多样的图像绘制方式,同时在性能方面也有相当的表现。 8 |0 m* F+ b# l4 T8 I# \
5 N3 d D1 s+ h$ T9 @
游戏程式设计指南(HoHo篇) Lesson 3 — 图形加载篇
( o6 ]% K. C1 F" r" ~Update: 2003-8-13 Author: 林德辉(Sea_Bug) From: GameRes ) k! A4 N' H2 T: w+ h
通过Lesson1和Lesson2的介绍说明,我们的游戏程序框架基本上已经具备了初步形态,同时也完成图形部分的初始化工作,接下来我们来了解一下利用HoHo引擎,游戏是如何将图像文件的数据装载到内存中。
( X$ w; f! I* d/ x4 ^, a1 q) l3 I4 l& h$ Z& }$ n
游戏程式设计指南(HoHo篇) Lesson 2 — 完善篇 2 C9 w2 J: p3 O2 R# c7 ` I# \/ S# k
Update: 2003-8-11 Author: 林德辉(Sea_Bug) From: GameRes $ H) C& b4 {$ O9 T; D# z
此章节的内容不单单是为了HoHo游戏引擎所使用,实际上是讲述了Windows应用程序的控制方式,不管你是否使用HoHo,多了解一下用Windows API来创建控制应用程序对你来说会有所帮助的。
4 j3 D) w7 I7 ?7 z; J+ W( \& u# Y
: r$ w# O) w9 ~, u3 Q. C1 k/ \游戏程式设计指南(HoHo篇) Lesson 1 — 基础篇 3 ]# ^0 x( }+ u
Update: 2003-8-10 Author: 林德辉(Sea_Bug) From: GameRes
& W; i5 _. H& m 游戏程式设计是令人向往而神秘的学科,其中涉及到非常广的程式技术,同时还需要对数理算法有相当的认识,可以说游戏程式设计是一条非常艰苦而漫长的道路,此文的目的就是希望能 通过对HoHo游戏引擎的介绍,让读者能尽快的成为真正的“游戏程式”。 # {6 z% o, T& B# ~- i( k# |3 H) l
+ y( U( X4 J- v《游戏编程》第一部 基础篇 + i, u: J% z O$ T+ ]
Update: 2003-6-14 Author: Sailor From: GameDIM.com 7 L2 Z6 _1 P9 ^; s% [4 F! b
其实现在网上关于游戏编程的技术文章越来越多了,但是我发现关于最基本的了解游戏的文章还是比较少的。大多数文章是以 DirectX 作为开始教学起始的,因此,我觉得花点时间写下这篇文章还是值得的。今天,我就开始介绍一些关于游戏编程的基础东西,以便大家能够真正的开始了解游戏,从而能够很快的转入游戏开发。 |