怎样开发做一款简单的小游戏小游戏

那些让你无法自拔的游戏们是怎么做出来的?
稿源:优设网
注:阅读本文大概需要 23 分钟Riceman
:《阴阳师》、《王者荣耀》、《绝地求生》、《旅行青蛙》——爆款游戏在过去两年层出不穷。不知道你有没有想过,那些在你手机里让你「无法自拔」的游戏们是怎么做出来的呢?为什么游戏会有让人愿意为之「挥金如土」的魔力?为什么你会对着游戏哭泣又大笑?这次,我们请到了网易游戏的设计总监邵堃和资深设计师邵腾,一起来聊一聊游戏设计。一款游戏是怎样诞生的?UX Coffee&:对一个游戏来说,从想法的产生,到开发,再到运营,整个诞生的过程是什么样的呢?邵堃&:我觉得游戏的诞生可以用一句话来概括,就是整个过程是一个测试的过程,是对于想法的反复论证。具体来讲,我们会先做出一个非常精简的只有核心体验的演示
Demo。所谓核心体验,拿第一人称射击游戏来说,它的核心体验就是几个人打来打去,我们会做一个 Demo
来表达出我们的想法,把这个体验最有趣的部分做出来。如果这个 Demo 能够达到我们的预期,我们就会进行立项,然后会进入到 Alpha
开发阶段。这个阶段大概会把这个游戏的核心体验做得更完善,然后加入一些「游戏系统」,所谓游戏系统,就是比如说登录、好友系统、聊天系统、背包系统、商城系统等等。把这些系统加入进去之后会再进行一次测试,如果测试顺利,就会进入到
Beta 阶段,加入更多的玩法系统,比如养成系统、枪支和装备的强化、交易系统等,让你和其他玩家进行情感上、经济上的联系。△ 《终结者2:审判日》战斗主界面,图片来源:网络这个阶段通常才是我们第一次把游戏拿到真实的玩家面前进行测试的时候。我们会找很小规模的玩家(几百人)去真正体验这个游戏。我们会看玩家在你这个游戏生态里是怎么玩的,会收集很多反馈,比如核心体验好不好玩,社交顺不顺畅,交易系统能不能达到他们的预期等等。之后我们会结合玩家反馈继续深度开发。这个时候可能会进行第二次玩家测试,这个时候我们要平衡玩家的需求和我们开发组/公司的需求。当玩家的留存、传播等数据还不错的时候,我们就会进入到游戏的后期开发阶段。就是把所有东西做一个整合。在这个阶段我们会极大地去优化画质,提升用户体验。等这个开发阶段做得差不多的时候,我们会去找玩家进行「付费测试」。游戏毕竟是一个商业产品,我们不仅要看这个游戏好不好玩,还要看它在商业上的表现怎么样。我们会看有多少人愿意去花钱,他们是愿意花一块钱还是愿意花一百块钱?△ 《王者荣耀》商城界面,图片来源:腾讯新闻在付费测试之后,我们就会开始做推广、营销和运营方面的准备了。对于游戏来说,发布时机也是很重要的。比如一些主打青少年的游戏,我们会把发布时间定在暑期或者节假日。发布之后,游戏会进入运营阶段,它其实也是一个反复测试、论证的过程。几百万上千万的玩家,跟我们几百人规模的小测试是完全不同的。我们需要了解这个量级下用户对游戏的诉求,他们在游戏里面是否还能够持续感受到乐趣,他们是否需要交更多的朋友?能不能获得更多的成长和成就?游戏是一个文化和内容的消耗品,玩家可能花两个月时间,就把你游戏所有的内容和副本、故事都已经打通了,这个时候玩家就可能会流失。所以这时候游戏还需要不断开发出新的内容、新的故事,比如说《魔兽世界》每年都会推出一个新的资料片去完善它,我们也是一样的。其实运营也是一个丰富游戏、扩充游戏内容,获取玩家反馈这样一个不断行进的过程。一个好的游戏可以运营十几年,上线之后的除了优化自己之前内容之外,还不断让玩家有更多的东西可以体验。△ 《魔兽世界》游戏界面,图片来源:百度知道要快、要好、要新——做游戏真的很难!UX Coffee :大家都说做游戏行业的从业者上辈子都是折翼的天使,因为非常累。能跟我们讲一讲你们开发一款游戏的速度有多快吗?邵堃 :手游的话,平均在一年到一年半,在一些特殊的情况下,可能会被压缩到半年,甚至只有几个月的时间。一个公司可能有非常多的游戏,在某个玩法火了之后,其实可以把它的技术体验迅速移植,在另一个产品上呈现给玩家,那成本和时间线就大大缩短了。邵腾 :在多短的时间里高效地将一个游戏想法实现出来,说明了一个公司的成熟度。UX Coffee :感觉现在游戏越来越趋同,有一个玩法或者概念爆火以后,很多游戏公司就一拥而上抓着这个想法做很多个类似的游戏。你们怎么看这种现象?邵堃 :游戏行业发展到今天,你可以看到市场上会有各种各样的游戏给到玩家。去完全创造一个之前没有的玩法是非常难的。各种游戏类型,每一个游戏类型的各种设备,甚至每一个设备下的每一种玩法,几乎都可以找到,游戏行业已经是一片红海了。比如最近流行的「吃鸡」,其实最早起源于 H1Z1
这个游戏,玩法到今天都基本类似,就是一堆人在一个城里互相杀,最后生存的那一名玩家可以「吃鸡」。后来差不多玩法的《绝地求生》爆火了,他们花了两年的时间把这个游戏打磨运营到现在这样 2000 多万玩家的规模、大家都看到了这样一个产品的火爆,很多公司就决定把它从端游转到手游上。《阴阳师》之前爆火,但很多人不知道其实在它之前也是有一些类似玩法的游戏的,其中有一款叫《魔灵召唤》。只不过《阴阳师》在品质、美术、画风、声优等用一种日式和风的东方文化把它重新包装,契合了中国这几年比较火的二次元文化,用一个新的题材来包装一个旧的玩法,无意间就引爆了。△ 网易游戏旗下《阴阳师》,图片来源:图片来源:u17邵腾 :其实相同的核心玩法下,不同的题材/包装是会有不同的受众的,几款类似的游戏的目标用户可能会是不同的,这才是我们做这件事情的价值,并不是因为这个游戏火了我们才要做。邵堃 :我们平时看到大家讨论的都是一些有名的游戏,其实大部分人都没有看到更多在冰山下面被遗弃的游戏。可以说99%以上的游戏都在冰山之下,不为人所知。
有好的文章希望站长之家帮助分享推广,猛戳这里
本网页浏览已超过3分钟,点击关闭或灰色背景,即可回到网页怎样去开发一款游戏_百度知道
怎样去开发一款游戏
我有更好的答案
步骤一.选择你的游戏库除非你想写自己的游戏库,包括那些麻烦的图形和声音编程模你应该需要一个开源的游戏库,他们都提供了相同的基本功能。任何一款优秀的游戏库所需具备的特征:加载和播放声音;加载和显示图像;基础的图像操作(旋转缩放等);原始图形绘制方法(点,线,矩形等);显示文字的方法;多线程支持;基本的计时器功能。一些游戏引擎:Simple Fast Multi-Media Library (SFML): Simple DirectMedia Layer (SDL): Allegro: penGL (GFX only, however, there are wrapper libs like AllegroGL): DirectX (Windows only): Irrlicht (3d lib): 步骤二.确定好剧本所有游戏都从这里开始,想法来自大脑。首先,想出一个游戏的点子,一旦你有了一个简单的点子,就去扩展它。例如,一个棋盘游戏,主题是什么,胜利条件是什么,规则又怎样。如果一个游戏有人物或故事,就去创造他们。一定要保证当你的游戏完成时,你对你的游戏将要成为什么样非常清楚。游戏越是复杂,在开始之前你就越需要花时间来计划,这样当你在编码的时候就不用去担心这些问题了。记住,你的游戏会像你当初创建它的样子。步骤三.定制你的引擎到这一步,你需要计划出你的游戏引擎所需的各个组件,并且能够让它们融合在一起,根据你项目的复杂程度,你也许不需要这个步骤,这也是检验你游戏引擎哥哥部分正常工作的好时机,确保他们在放到实际项目之前是正常工作的。同时,你也因该开始设计你项目中的类(如果你使用OOP的话)。记住,已经有一些现成的引擎,并且适用大部分的项目。步骤四.编写你的引擎(如果你要自己动手的话)现在可以正式开始编写游戏引擎了,这里不是说开始写游戏,而是核心渲染,物理,文件管理等等。用引擎里的类和方法来构建你的游戏。根据游戏的复杂度,引擎的代码可能与游戏的代码类似。对于一个很复杂的游戏,可能还需要一个资源管理器,一个资源管理器所做的就像它的名字那样,管理资源(图像,音乐,声音等等),它可以保持代码整洁,并帮助你避免内存泄漏。可以参考一个优秀的资源管理器Xander314.尽量让你的代码严谨,接口简单,这样做之后,当你在写游戏的时候就不需要去查看源代码,找函数名了。一种好的编程方式就是OOP。
采纳率:95%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您还可以使用以下方式登录
当前位置:&>&&>&&>& > 利用JavaScript简单知识,开发一个小游戏~,超简单
利用JavaScript简单知识,开发一个小游戏~,超简单
& 今天给学生讲软件项目管理,发现学生想睡觉,灵机一动,给大家写个小游戏,一起猜猜看~&&&&&& 简单效果图:&&&&&&&&&&& 示例源码:&&&&&&view plaincopy to clipboardprint?&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&&&html xmlns=&http://www.w3.org/1999/xhtml&&&&head&&&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&&&title&猜猜看&/title&&&script&&//随机产生一个随机整数&&//&&&&&&&&&& 四舍五入&&&&&& 随机数(0-1)&&var num = Math.round(Math.random()*1000);&//定义一个标志变量&&var falg=&//定义一个变量,统计猜得次数&&var count=1;&&document.write(&&br&&br&&br&&br&&br&&br&&br&&br&&);&&//执行while循环&&while(falg){&&&&&&&&& if(count&=10){&&&&&&&& //第一步,接受用户输入的内容&&&&&&&&& var inputnum=prompt(&请输入您要猜得数字!&,1);&&&&&&&&&&&&&&&&& //第二步,把用户输入的内容和产生的随机数进行比较&&&&&&&&&&&&&&&&&&&& //三种情况: 1)输入的数大于产生随机数& 提示&大了&&&&&&&&&&&& if(inputnum&num){&&&&&&&&&&&&&& //输出一句话,&&&&&&&&&&&&&&& document.write(&这是您第&+count+&次机会,您本次输入的数字为&+inputnum+&,您输入的数字大了&br&&);&&&&&&&&&&&&&&&& count++;&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&& //三种情况: 2)输入的数小于产生随机数& 提示&小了&&&&&&&&&&&& if(inputnum&num){&&&&&&&&&&&&&& //输出一句话,&&&&&&&&&&&&&&& document.write(&这是您第&+count+&次机会,您本次输入的数字为&+inputnum+&,您输入的数字小了&br&&);&&&&&&&&&&&&&&& count++;&&&&&&&&&&&&& }&&&&&&&&&& //三种情况: 1)输入的数等于产生随机数& 提示&对了& ,设置标志位为&&&&&&&&&&& if(inputnum==num){&&&&&&&&&&&&&& if(count&=3){&&&&&&&&&&&&&&&&&&& //输出一句话,&&&&&&&&&&&&&&&&&&&& alert(&你超牛X,猜对了!&);&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&& if(count&=6&&count&3){&&&&&&&&&&&&&&&&&&& //输出一句话,&&&&&&&&&&&&&&&&&&&& alert(&你还可以,也猜对了!&);&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&& if(count&=10&&count&6){&&&&&&&&&&&&&&&&&&& //输出一句话,&&&&&&&&&&&&&&&&&&&& alert(&勉强,也猜对了!&);&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&& //标志位设置false&&&&&&&&&&&&&&& falg=&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }else{&&&&&&&&&&&&&&&&&&&&&&& //输出一句话,&&&&&&&&&&&&&&& alert(&我晕,10次都没有猜对,怎么搞的?!&);&&&&&&&&&&&&&&& //标志位设置false&&&&&&&&&&&&&&& falg=&&&&&&&&& }&&&&&&}&&&/script&&&&&/head&&&&body&&&&/body&&&/html&&&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&&html xmlns=&http://www.w3.org/1999/xhtml&&&head&&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&&title&猜猜看&/title&&script&//随机产生一个随机整数//&&&&&&&&&& 四舍五入&&&&&& 随机数(0-1)var num = Math.round(Math.random()*1000);//定义一个标志变量var falg=//定义一个变量,统计猜得次数var count=1;document.write(&&br&&br&&br&&br&&br&&br&&br&&br&&);//执行while循环while(falg){&&if(count&=10){&&//第一步,接受用户输入的内容&&var inputnum=prompt(&请输入您要猜得数字!&,1);&&&&//第二步,把用户输入的内容和产生的随机数进行比较&&&&& //三种情况: 1)输入的数大于产生随机数& 提示&大了&&&& if(inputnum&num){&&&& //输出一句话,&&&& document.write(&这是您第&+count+&次机会,您本次输入的数字为&+inputnum+&,您输入的数字大了&br&&);&&&&& count++;&&&}&&&&&& //三种情况: 2)输入的数小于产生随机数& 提示&小了&&&& if(inputnum&num){&&&& //输出一句话,&&&& document.write(&这是您第&+count+&次机会,您本次输入的数字为&+inputnum+&,您输入的数字小了&br&&);&&&& count++;&&&}&&& //三种情况: 1)输入的数等于产生随机数& 提示&对了& ,设置标志位为&&& if(inputnum==num){&&&& if(count&=3){&&&&&& //输出一句话,&&&&&&&&& alert(&你超牛X,猜对了!&);&&&&& }&&&& if(count&=6&&count&3){&&&&&& //输出一句话,&&&&&&&&& alert(&你还可以,也猜对了!&);&&&&& }&&&& if(count&=10&&count&6){&&&&&& //输出一句话,&&&&&&&&& alert(&勉强,也猜对了!&);&&&&& }&&&& //标志位设置false&&&& falg=&&&}&&&&&&&&&&&}else{&&&&&&&&& //输出一句话,&&&& alert(&我晕,10次都没有猜对,怎么搞的?!&);&&&& //标志位设置false&&&& falg=&&}&}&/script&&/head&&body&&/body&&/html&&有兴趣的同学研究下~&作者&liwei3gjob的专栏&就爱阅读www.92to.com网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。
欢迎转载:
推荐:    社会化媒体
了解更多>>
桂ICP备 号
阅读下一篇
自媒体运营攻略
行业经验交流
Hi,在你登录以后,就可以永久免费的收藏任何您感兴趣的内容,关注感兴趣的作者!
手机注册或邮箱注册
点击按钮进行验证
请输入正确的邮箱
已有帐号请点击
帐号创建成功!
我们刚刚给你发送了一封验证邮件
请在48小时内查收邮件,并按照提示验证邮箱
感谢你对微口网的信任与支持
你输入的邮箱还未注册
还没有帐号请点击
点击按钮进行验证
你输入的邮箱还未注册
又想起来了?
你已成功重置密码,请妥善保管,以后使用新密码登录
邮件发送成功!
我们刚刚给你发送了一封邮件
请在5分钟内查收邮件,并按照提示重置密码
感谢你对微口网的信任与支持
对不起,你的帐号尚未验证
如果你没有收到邮件,请留意垃圾箱 或
意见与建议
请留下您的联系方式
* 留下您正确的联系方式,以便工作人员尽快与你取得联系
转藏至我的藏点开发者须知 如何做好一款交互游戏?_搞趣网

我要回帖

更多关于 h5小游戏开发 的文章

 

随机推荐