- + P A

- 关于奇魄科技的一些情况

      游戏开发 2012-1-3 21:37:00
确实沉寂了很久。经历了丁果的一波三折,奇魄科技的成立之初完全是在默默的开发中渡过。工作繁忙之余,除了休息,实在找不出时间来写一点东西。 现在,奇魄科技的第一款ios游戏Angry God(中文名还未确定,就暂时称为“上帝之怒”吧)开发完成了。这是一款看起来并不复杂的动作+策略游戏,玩家将遵循上帝的意旨,用各种自然力量杀死僵尸,拯救危机中的城市和人们。为什么要开发这样一款游戏?目前ios平台僵尸类题材仍旧是热门,如何制作出一款不一样的僵尸杀戮游戏,而不是利用植物或者武器,这就是Angry God的初衷。游戏另一个目前看来比较隐晦的要素是:保护自然。Angry God将来会有大量的免费更新),僵尸杀戮只是其中很少的一部分内容。今后,玩家将要对付的敌人还包括动物偷猎者、森林砍伐者等等。通过爽快的技能组合,狠狠地惩罚那些破坏大自然的恶棍;在动作游戏的基础上,又有一些策略的成分,这就是游戏的核心乐趣所在吧! 另一款养成类ios游戏Lucky Fish也即将完成。这是一款很有特色的养鱼游戏,我们受到“孢子”的启发,将遗传与变异……
标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 天朝的悲哀

      游戏开发 2011-4-3 22:31:00
以前在上海工作的时候,向一个老程序员请教问题,对方拖拖拉拉就是不回答。后来逼得紧了,他说你知不知道我学这些东西花了多少精力,我如果告诉你了,我的优势在哪里。大体这个意思吧。我当时想你也就这个水平,你不要说跟卡马克比,你就是跟欧美一个最普通的程序员比,你也差远了。中国的程序员不互相学习指导,光顾着窝里斗,有什么意义,人家早就把你拉开不知道好大一截了。 反正我以后带的每一个程序员,都是倾囊相授的,只不过每一个带出来的人,也都离我而去了。以前在一些技术研发的群里,我就发现一个很奇怪的现象,大家平时不喜欢共享些心得,就聊些没用的。然后我总是在那热心地解答问题,或者发一些有用的资料或者代码出来。然后很多人拿到这些资料就马上收藏,代码就存下来然后把版权和作者部分改成自己的。然后继续不共享自己的经验心得。 在国内也谈不上什么技术、知识产权保护,基本上你项目团队里面只要有人拿到了代码,那只要这人一离职,所谓的技术积累就没了。你就是签了保密协议也是没用的,人家只要把变量名字改一下就OK了。于是你花了几年时间写的东西,就变成了别人的了,人家拿来找投资也好,做项目也好,那是忙得不亦乐乎。时隔多……
标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 最近玩一个网页游戏,深有感触

      游戏开发 2011-3-26 17:08:00

国内玩家的消费习惯还真是很奇怪,让他花10块钱买个游戏,是肯定不干的,一定要去玩盗版破解版。

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 关于蒙皮(vertex-skinning)的零散收集

      游戏开发 2009-12-26 13:52:00
汤锴(42350817)  13:49:53关于最近计算蒙皮(vertex skinning)的一些经验:1 蒙皮可以在CPU或GPU端计算,各有优缺点,具体采用哪种算法要看实际情况,可以参考: http://www.gamedev.net/community/forums/topic.asp?topic_id=4527702 如果在GPU端计算蒙皮,就要受到unifrom register数量的限制,因此每次draw primitive时骨骼数量有严格限制,一般来说不超过16根。而一个模型几乎肯定会超过16根骨骼,所以必须对mesh分组,按16根骨骼分成一组。3 如果在CPU端计算蒙皮,有几个东西需要考虑,首先必须针对memory和cache优化(可以看我等下发的聊天记录),使用多流,然后如果硬件有VFPU可以用SSE指令进行运算本身的优化4 如果美术认为骨骼动画支持缩放很有必要,那么就必须计算matrix inverse transpose才可以正确变换normal和tangent(我等下发的聊天记录里也有这个)5 变换position可以用vec3tranform就……
标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 《七夜》发售有感

      游戏开发 2009-6-18 21:08:00

《七夜》发售有感

6月18日凌晨2点,七夜发售第3天。我躺在床上,辗转难眠,这几天来发生的一切,让我觉得很有必要记录下来。

==========================================

先说说与发行公司的合作:

其实我们并不排斥与发行公司的合作,我们刚出来的创业的时候,都是很单纯,想法很天真的。
但后来呢?我们遇到了一些事:

广东XX公司,向我们要游戏试玩版,说如果感觉好就代理。我们把试玩版发给他们之后,很久不见动静,去他们的网站一看,他们居然已经拿着我们的试玩版上线卖了!我们只好跟他们补签协议,可是第一个月的结算下来了,他们说我们的游戏销量为零。。。
是的,销量为零!你没看错。这就是SP,他说你卖多少,你就卖多少。真实的销售数据,你永远也得不到。这就是手机游戏行业的潜规则,一个显然很不公平,但大
家都熟视无睹的现实。

北京XX公司,与我们合作游戏项目,先是拖欠预付款,又在游戏收入结算上大作文章,搞虚假数据。
到最后,他们公司去上海参加游戏年会,干脆就直接把我们的游戏说成是他们开发的,估计直到今天还有很多人被蒙在鼓里,以为这个游戏真的就是他们开发的。
这个公司,他们在会议上演讲的题目就是:《

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 关于opengl es的聊天记录

      游戏开发 2008-12-29 17:33:00

汤锴(42350817) 17:00:44
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=249053&fpart=1
汤锴(42350817) 17:01:19
opengl可以说是一片沙漠,相对dx的完善来说
巫毅(15971627) 17:02:25
啧啧
巫毅(15971627) 17:02:29
才JB惨的对比形容
汤锴(42350817) 17:03:04
我简直不知道该怎么完善地、统一地、全局地实现opengl es的特效系统
汤锴(42350817) 17:03:14
到目前为止找不到任何方法
汤锴(42350817) 17:03:20
第3方的工具也很匮乏
巫毅(15971627) 17:03:37
意思关于特效方面以后很麻烦?
汤锴(42350817) 17:03:46
看了这个帖子的讨论更让我确定了这一点
李玉坤(344620154) 17:04:13
这个网页杂打不开
汤锴(42350817) 17:04:20
怎么办呢,还要仔细想一想才行
opengl es的shading language和opengl还有点不太一样
汤锴(42350817) 17:04:33
opengl都找不到好的办法,更别说opengles了
汤锴(42350817) 17:05:14
ati的render monkey的opengl

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 如何提高IO效率

      游戏开发 2008-11-9 18:30:00
标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 简单的加密技术

      游戏开发 2008-11-9 12:16:00

简单的加密技术:

1
在游戏版本中增加若干个垃圾文件,这些文件中包含版权信息的字符串。而游戏运行根本不需要这些文件。
可以把这些字符串加密(或者就是简单的逆序),并用二进制保存。
由于游戏通常有成千上万的资源文件,所以从其中找到这些垃圾文件几乎不可能。

2
通过自定义的算法,向游戏上千张纹理图片的某几个之中,插入版权信息,同样难以发现。

3
作为后期处理,加密EXE,而无须对开发过程造成额外麻烦。
方法是先在代码中添加24个字节的密钥,然后在其后附加若干字节的空白内存。
版本完成后,用一个小程序打开EXE并搜索密钥,然后用加密后的版权信息覆盖空白内存。

组合上述3种技术,花费不了多少代价,就可以达到难以破解的程度。

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 从软件渲染过渡到硬件渲染

      游戏开发 2008-10-4 14:34:00

一、为什么用HW取代SW?

1 效率的提高:
  CPU和GPU能够并行运行
  GPU分担了大部分渲染的开销
  CPU可以处理更复杂的物理,AI,特效
  更高的帧率

2 品质的提升:
  贴图品质的提升,免费获得MipMapping,Binlinear Filtering
  更高效的Alpha Blending使很多特效成为可能
  更多的Polygon,更复杂的场景
  很多SW无法负担的高级特性(虽然理论上SW能实现最好的效果,但由于效率的原因,大多都不能做到RealTime)
  渲染采用浮点,避免了定点数带来的精度误差(同时也避免了数据溢出)

二、常见的注意事项?

1 尽量不用CPU读写RenderTarget。不使用OS DrawCall,尽量使用Polygon渲染2D内容。
2 尽可能少的DrawCalls。批量渲染尽可能多的Polygon。
3 避免CPU和GPU等待同步。仔细安排每帧的代码段执行次序。减少渲染状态的切换。
4 尽量使用MipMapping(能提高效率)和Binlinear Filtering(不影响效率)。节约使用Trilinear Filtering。
5 尽可能测试多种实现方式,Be

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- OpenGL ES概述

      游戏开发 2008-9-15 14:42:00

主要参考网站:http://www.khronos.org/opengles

OpenGL_ES是khronos协会从OpenGL裁剪定制而来的,专为手机,游戏机等嵌入式设备而设计。它的接口其实和Open_GL很类似。

OpenGL_ES有几个主要版本,但对游戏开发来说,需要关注的只有两个:
OpenGL_ES_1.x_和OpenGL_ES_2.x

两者的特性和主要区别如下:

OpenGL_ES_1.x:
为固定渲染管线(Fixed_Function)而设计。
子版本包括:1.0,1.1。
1.0从OpenGL_1.3裁减而来;1.1从OpenGL_1.5裁减而来。1.1向下兼容1.0。
经研究,1.1因为更先进,而且相比1.0增加的特性也都很有用,所以基本上不用考虑1.0了。
1.1和1.0的变化不算很大,应该芯片的价格也不会高出很多?当然我并不确定。
1.1的技术规范参见:es_full_spec.1.1.12.pdf
或者:es_cm_spec_1.1.12.pdf(篇幅较短,只叙述了相比OpenGL_1.5的差异)

OpenGL_ES_2.x
为可编程渲染管线(Programmable)而设计。
目前只有2.0这一个子版本,从OpenGL_2.0裁减而来。
和1.x的区别是可以支持vertex和pix

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 令外国人震撼的邮件

      游戏开发 2007-12-14 21:14:00

前言:关于我们:

我们是 成都丁果科技

我们是 2007-2008 IMGA 世界手机游戏大赛 最佳3D游戏的入围者,这样的荣誉只属于 世界上5家公司,我们是其中之一。

我们开发了优秀的手机游戏 《七夜》,这款游戏和世界上任何一家著名公司开发的手机游戏相比,都毫不逊色,或者说,《七夜》更加优秀。

我们正在 为中国赢得荣誉

=====================================================

话题:令人感伤的来信:

IMGA曾多次来信,邀请我们参加一些重要的会议,我们都一一拒绝了,原因是我们根本没有钱去参加,光是差旅费就很惊人了

IMGA最近又邀请我们参加MWC2008,这是一个很重要的会议,我们是作为IMGA被提名者,被荣誉邀请的。IMGA为我们安排了展位,而只收取很低的价格。我不知道该怎么回信,我们太穷。

IMGA怀疑自己的眼睛:他们怎么可能错过这样的好机会?难道是没有收到邮件?

于是IMGA重发了邀请函,并且打上了RSVP的标签(法语:敬请回复)。

于是我回信说,我们太穷,参加不起。

这件事在公司内部引发了很多讨论,我节选一些贴在这里:

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 乱弹,关于3D游戏中的AI实现

      游戏开发 2007-12-14 2:54:00


汤锴(42350817) 02:24:44
基本看完了QuakeIII的AI代码,同时浏览了一份由开发QuakeIII Bot AI的程序员所写的文档。

感想太多,一套强劲的AI引擎并不是那么简单的,虽然我已经非常认真地看,但也只不过了解大概

QuakeIII的AI体系分成4层:

4 Team leader AI
3 Misc. AI,AI Network,Commands
2 Fuzzy,Character,Goals,Navigation,Chats
1 Area Awareness System,Basic Actions

其中第1层是基础,AAS是一套由BSP计算出来的空间解析数据,保存在单独到文件

而我们通常意义上最为关心的寻路,其实只不过是Navigation这一个子项而已

下面只讨论AAS和Navigation。

AAS作为整套AI引擎的核心,也是基于BSP的基本思想而创建的,它的最基本单位是Area,Area必须是凸集,并且不能包括Gaps(悬崖)因为Gap会导致Bot掉进去,AAS编译器用了一整套数学方法确保这一点,算法其实不是非常复杂,但对Area进行了高强度的优化和纠错(合并,融合等)

而AAS的思想,一句话概括就是:存储了Area之间的连通性。
听起来很简单,其实极其复杂,Area之间的连通方式在QuakeIII中有非常多种:
直线游泳
直线行走
直线蹲着走
跳上一个移动平台
从悬崖边落下
跳出水

传送
使用电梯
使用跳板
Using a

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 关于Android和GPhone

      游戏开发 2007-12-13 2:56:00

汤锴 01:48:06
研究了一会,跑了一下Android的模拟器上的3D图形程序,一个方盒子在转,CPU占用率98%。
网上找到已经有人在Android上做了一个简单的模型浏览器,极慢PC上跑5FPS左右。
可以想见OpenGL ES的软件渲染模式效率的确不怎么样
汤锴 02:24:39
Android支持的OpenGL ES版本为1.0,同时也支持OpenGL ES 1.1的部分功能,但是官方说这些功能还不可靠,所以开发者最好不要使用
OpenGL ES 1.0的规范类似于OpenGL 1.3,是后者的一个子集
OpenGL ES 1.x都是Fixed pipeline,也就是vs,ps肯定是不用考虑了

另外一个很重要的事情:
OpenGL ES功能是作为Android的一个lib而提供的,在模拟器目录下能找到
OpenGL ES自带软件渲染实现,所以即使没有硬件支持,也能够运行
就连Android官方对3D lib的描述也是:“当有硬件加速可用时”使用硬件加速

换句话说,GPhone不见得一定会支持硬件加速,而如果不支持,3D应用将工作在软件渲染模式下,而OpenGL ES的软件渲染效率很低(不要相信官方的说辞),根本不可能用于3D游戏(最多是那种极其简单的游戏)

这里我并不是吹嘘S3D的软件渲染优化得如何,只是OpenGL ES作为一种通用的标准,必然要考虑到通用性,而通用和效率肯定是矛盾的,OpenGL ES

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 有些苦恼。。。

      游戏开发 2007-12-11 2:47:00

最近7Days发行,这次我连客服的工作也算尝试过了。

我在干什么?公司管理,业务联络,市场研究,项目管理,程序开发,剧情策划,翻译,推广,客服。

这好像几乎涵盖了公司的一切了。

感觉有点找不到重点。

其实除了项目管理,程序开发,其它的工作量并不大,但是事情太杂确实很烦,总是互相干扰,无法集中精力。

这些事情都很重要,都必须搞好。

那么应该怎么办。

交出去给别人做?大部分都不太可能。

大约还是公司缺人吧,可是为了节约成本,又不太可能招很多人。

分析下来,最缺的还是一个能独当一面的市场专员,把业务联络,市场研究,推广,客服的工作大部分都给他做。

这样确实会减轻很多压力吧。

希望每天都有时间好好玩游戏。

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()