帖子位于 "游戏" 分类 RSS

拥有英特尔技术,游戏如虎添翼。了解我们的近期策划,以及我们关于下一个重大举措的设想。

Amazed 游戏学习二 坐标的分析

作者: gaomatrix (1 篇文章) 日期: 一月 13, 2012 在 4:33 下午
评论 (0)

对于这种和贪吃蛇类似的游戏,坐标的计算在程序中占了很大的比重,只有坐标算对了,才能在正确的时间、正确的地点画出来正确的东西。 下面是Maze迷宫的坐标计算 01.// maze level data 02.private static int[] mMazeData; 这个一维数组存放所有的tile的类型 01.// maze tile size ...

继续 ›

分类: 博客征文专栏, 游戏

八款开源 Android 游戏引擎 (巨好的资源)

作者: iamsheldon (1 篇文章) 日期: 一月 13, 2012 在 4:30 下午
评论 (3)

初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。 下面我就罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。 1、Angle Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。 最低运行环境要求不详。 项目地址:http://code.google.com/p/angle/ 2、Rokon rokon是一款Android 2D游戏引擎,基于OpenGL ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,该项目最新版本为 2.0.3 (09/07/10)。总体来说,此引擎最大的优点在于其开发文档相当之完备,并且项目作者对反馈Bug的修正非常之神速,所以该框架的使用在目前也最为 广泛,有人干脆将它称为Cocos2d-iPhone引擎的Android版(业务逻辑和编码风格上也确实很像)。附带一提,国内某个需要注册会员才能下 ...

继续 ›

分类: Android 开发, 博客征文专栏, 游戏

案例研究:使用英特尔GPA优化《兵王》游戏的性能

作者: Cage Lu (Intel) (3 篇文章) 日期: 一月 6, 2012 在 3:59 下午
评论 (0)

作者:英特尔:卢卷彬, Kiefer Kuah 巨人:余娜娜 下载PDF版本:使用英特尔GPA优化《兵王》游戏的性能 1. 介绍 《兵王》是由巨人网络公司旗下,上海巨贤公司耗时两年自主研发的一款未来战争MMORGP。《兵王》使用了优秀的3D引擎技术,在声光特效方面有极其优秀的表现。为了使《兵王》能够流畅的运行在更多玩家的机器上,我们在英特尔 ...

继续 ›

分类: 图形和视觉计算, 游戏
标签:, ,

HTML5之Web Storage

作者: 章政 (3 篇文章) 日期: 十二月 26, 2011 在 12:00 下午
评论 (0)

WebStorage的出现是为了弥补cookie的不足,cookie一方面是容量小,4k/8k,存几个电子邮件都不够,二来是全局的,容易被误用,盗用。 在HTML5中网络存储按照生命周期分为2种,一种是基于会话(session),这种存储周期只是当前会话,当网页[注1]被关被后,或者被转到其他网站后,存储也就被销毁; sessionStorage.varName = “生成新变量”; sessionStorage.varName = “变量操作”; delete sessionStorage.varName; //删除变量 另外一种是本地存储,当网页下次被打开的时候,你仍然可以访问上次打开该网页时存储的数据,比如本地存储的网站用户名就可以使用这种方式。 用法和基于会话的存储一样,只是前缀名改成了localStorage localStorage.varName = “生成新变量”; localStorage.varName ...

继续 ›

分类: Android 开发, Blog Challenge, 全国博客大奖赛, 全国大学生软件创新大赛专栏, 其他, 博客征文专栏, 图形和视觉计算, 并行计算, 开放源代码, 服务器, 游戏, 移动技术, 英特尔® 软件网络 2.0, 英特尔信息技术峰会, 虚拟化技术, 软件开发工具, 软件技术学习及认证, 高校博客大奖赛

使用英特尔GPA优化《轩辕传奇》游戏的性能

作者: Cage Lu (Intel) (3 篇文章) 日期: 十二月 26, 2011 在 11:57 上午
评论 (0)

 文章作者:英特尔:卢卷彬 Kiefer Kuah    腾讯:丛越    下载PDF版本:使用英特尔GPA优化《轩辕传奇》游戏的性能    介绍  随着集成显卡功能和性能的日益增强以及移动平台的不断普及,集成显卡已经成了游戏开发者不可忽视的重要对象。    本文介绍了使用GPA在英特尔集成显卡上分析和优化《轩辕传奇》网络游戏的案例。 《轩辕传奇》是由腾讯研发团队打造的一款MMORPG网游,是腾讯的首款史诗战争网游。该游戏在引擎技术、美术、服务器等诸多方面都力求精益求精,达到了国内顶级网游水准。为了满足更多玩家的机器配置,我们特别针对集成显卡进行了测试和优化。    性能分析开始 本文档的分析和优化基于Intel HD Graphics 3000平台,代号SandyBridge(简称SNB)。 ...

继续 ›

分类: 图形和视觉计算, 游戏
标签:, ,

《XNA游戏开发》Game1类的方法与字段

作者: xy8cn (2 篇文章) 日期: 十二月 16, 2011 在 10:41 上午
评论 (0)

  在上一篇内容中,我们了解到建好项目后生成的Game1类是继承自Microsoft.Xna.Framework.Game类型,然后再重写其中的方法,也就是说,我们的游戏主体这个Game1并不一定非要是这样的命名,当然你可以更改一个其他的名字,但是在改类名后,对应的在Program类的Main法中new的对象得相对应的变更为你改过的类型。 一、Game1中的字段: GraphicsDeviceManager graphics; SpriteBatch spriteBatch; 其中GraphicsDeviceManager为绘制界面管理类型。 SpriteBatch 为精灵处理类型(绘制处理类型)。 二、构造方法: 01.public Game1() { 02. graphics = new GraphicsDeviceManager(this); ...

继续 ›

分类: 博客征文专栏, 游戏

《XNA游戏开发》简介

作者: xy8cn (2 篇文章) 日期: 十二月 16, 2011 在 10:40 上午
评论 (0)

  一、XNA简介 XNA是基于DirectX的游戏开发环境。 以C# 为开发语言 以 .NET Framework 为基础、并加入游戏应用所需之函式库所构成的 XNA Framework 可开发XNA for Windows Phone游戏,Xbox游戏,PC游戏等。 二、XNA ...

继续 ›

分类: 博客征文专栏, 游戏

游戏服务器的架构设计

作者: smarttony (2 篇文章) 日期: 十二月 16, 2011 在 10:39 上午
评论 (0)

  游戏服务器的设计是一项颇有挑战性的工作,游戏服务器的发展也由以前的单服结构转变为多服机构,甚至出现了bigworld引擎的分布式解决方案,最近了解到Unreal的服务器解决方案atlas也是基于集群的方式。 负载均衡是一个很复杂的课题,这里暂不谈bigworld和atlas的这类服务器的设计,更多的是基于功能和场景划分服务器结构。 首先说一下思路,服务器划分基于以下原则: 1:分离游戏中占用系统资源(cpu,内存,IO等)较多的功能,独立成服务器 2:在同一服务器架构下的不同游戏,应尽可能的复用某些服务器(进程级别的复用) 3:以多线程并发的编程方式适应多核处理器。 4:宁可在服务器之间多复制数据,也要保持清晰的数据流向 5:主要按照场景划分进程,若需按功能划分,必须保持整个逻辑足够的简单,并满足以上1,2点 服务器结构图: 各个服务器的简要说明: Gateway:应用网关,主要用于保持和client的连接,该服务器需要2种IO,对client采用高并发连接,低吞吐量的网络模型,如IOCP等,对服务器采用高吞吐量连接,如阻塞或异步IO。 网关主要有以下用途: 1:分担了网络IO资源 2:同时,也分担了网络消息包的加解密,压缩解压等cpu密集的操作。 3:隔离了client和内部服务器组,对client来说,它只需要知道网关的相关信息即可(ip和port)。 4:client由于一直和网关保持常连接,所以切换场景服务器等操作对client来说是透明的。 5:维护玩家登录状态 World Server 是一个控制中心,它负责把各种计算资源分布到各个服务器 它具有以下职责: 1:管理和维护多个Scene Server 2:管理和维护多个功能服务器,主要是同步数据到功能服务器 3:复杂转发其他服务器和Gateway之间的数据 4:实现其他需要跨场景的功能,如组队,聊天,帮派等 Phys Server 主要用于玩家移动,碰撞等检测 所有玩家的移动类操作都在该服务器上做检查,所以该服务器本身具备所有地图的地形等相关信息。具体检查过程是这样的:首先,Worldserver收到一个移动信息,WorldServer收到后向Phys Server请求检查,Phys Server检查成功后再返回给world Server,然后world server传递给相应的Scene ...

继续 ›

分类: 博客征文专栏, 服务器, 游戏

Android 游戏开发菜鸟之路(一)

作者: whosemario (1 篇文章) 日期: 十二月 7, 2011 在 5:01 下午
评论 (2)

最近没有更新博客,原因之一就是在读《Pro Android Games》,其中一些样例游戏实在太有意思,忍不住又山寨一番,在Chapter3中介绍了第一个叫做Space Blaster的游戏,游戏规则蛮简单,就是你控制飞船躲过或者打击流星石。下面是一个游戏的截图: 工程总共有三个类,SpaceBlasterActivity、ArcadeGame和SpaceBlasterGame。第一个类是Android的Activity类;第二类继承了LinearLayout类,主要实现了onLayout函数(当View要为所有子对象分配大小和位置时,调用此方法),也就是说可以将游戏的初始化方法和产生周期性线程(模拟周期性的帧)放在这里。第三个SpaceBlasterGame类继承了ArcadeGame类,游戏的所有逻辑都在这里实现,例如各个Sprite之间的碰撞和显示。类的结构图如下: 接下来上一下这三个类之间的UML图吧,已经画了,不用怪可惜(⊙﹏⊙b汗): 这里不会说明所有的函数,我的代码在这里,《Pro Android Games》一书网上也有它的示例的代码。这里主要说明几点个人觉得比较重要的地方: 1、 构造方法必须有两个参数的那个,否则main.xml无法解析; 2、 Bullets和Meteors都是用数组记录信息的,一开始用ArrayList容器,游戏玩玩就会崩溃; 然后就是细节问题,这个游戏很简单,没有算法,不够建议还是自己去实现一下,在这个过程中会发现很多细节点的!

继续 ›

分类: 博客征文专栏, 游戏

Android 游戏音效控制

作者: jgl5987 (1 篇文章) 日期: 十二月 6, 2011 在 5:43 下午
评论 (0)

  游戏音效就是我们在玩游戏时出现的音乐,这个也是每个游戏必备的一部分,但有是你做游戏的背景音乐有间断的感觉的话,我们可以用getCurrentPosition()这个方法来判断一下声音播放的偏移。其实这个也是非常简单的。只要我们在代码当中设置好(初始化声音)和(加载音效资源)就可以了,别的就和音乐播放器的代码差不多,像开始,停止。不多说了,我们还是先来看看代码当中是怎么实现音效的吧: //音效的音量   intstreamVolume;      //定义SoundPool对象   privateSoundPoolsoundPool;      //定义HASH表   privateHashMapsoundPoolMap;      /***************************************************************   *Function:initSounds();   *Parameters:null   *Returns:None.   *Description:初始化声音系统   *Notes:none.   ***************************************************************/   publicvoidinitSounds(){   //初始化soundPool对象,第一个参数是允许有多少个声音流同时播放,第2个参数是声音类型,第三个参数是声音的品质   soundPool=newSoundPool(100,AudioManager.STREAM_MUSIC,100);      //初始化HASH表   soundPoolMap=newHashMap();      //获得声音设备和设备音量   AudioManagermgr=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);   streamVolume=mgr.getStreamVolume(AudioManager.STREAM_MUSIC);   }      /***************************************************************   *Function:loadSfx();   *Parameters:null   *Returns:None.   *Description:加载音效资源   *Notes:none.   ***************************************************************/   publicvoidloadSfx(intraw,intID){   //把资源中的音效加载到指定的ID(播放的时候就对应到这个ID播放就行了)   soundPoolMap.put(ID,soundPool.load(context,raw,ID));   }      /***************************************************************   *Function:play();   *Parameters:sound:要播放的音效的ID,loop:循环次数   *Returns:None.   *Description:播放声音   *Notes:none.   ***************************************************************/   publicvoidplay(intsound,intuLoop){   soundPool.play(soundPoolMap.get(sound),streamVolume,streamVolume,1,uLoop,1f);   }

继续 ›

分类: Android 开发, 博客征文专栏, 游戏