试用了一下学长黄杨等人开发的《shield star》游戏。

                      

  其实作为一个学弟,我对cocos2d-x引擎还算是比较了解,所以对于这样一款很“典型”的cocos游戏,我想从优点和缺点两个方面来说:

  1. 优点

    • 画面很炫,这是不得不承认的。因为游戏中的技能,炮弹等主要是cocos2d-x的自带特效,唯一的自己做的美工“飞机”,也是经过引擎的渲染,所以也没有什么好说的。
    • 引擎跨平台:学长很明智的选择了跨Android,IOS,WP8, Windows Store App 等主流平台的2d游戏引擎, Cocos2d-x,并且有做多个平台的版本,很好。
    • 模式简单: 游戏的规则应该说还算是比较创新(用手画盾),规则简单,适用于手机使用
  2. 缺点及我会怎么做: 
    • 难以操控,趣味性差:用手画盾算是一个创新,但是两三下玩下来就索然无味了,究其原因,是因为它违背了射击游戏的一个原则,玩家的攻击方式只有反弹地方的攻击,玩得很被动。如果是我来做这款游戏,我会增加主动攻击的方式。
    • 过于简单:整个游戏,我玩了15分钟竟然敌军没有任何的改变,只是在数量上有所增加;其次,游戏只有开始结束最高分,没有别的功能(比如将记录上传到人人,Facebook等),如果是我,我会加上更多的难度,以及技能等等。同时,我将引入在线的模式,增强趣味性。
    • 很难以想像这个游戏可以到学长声称的两万行代码,同样作为cocos2d-x引擎爱好者的我,曾经做过一个类似的射击游戏,画面效果不逊于此,模式更为复杂,也只用了7000行左右。(毕竟这种飞行射击游戏的设计是最为简单的,因为不需要使用地图,切片,骨骼动画,物理引擎等等,只需要做简单的碰撞检测)。最让人觉得奇怪的是,学长贴出来的代码统计结果中竟然包含了这款开源引擎的自身源码,所以,在没有见到代码之前,我斗胆对其代码的质量提出质疑。
    • 如果是我来做这款游戏,a)我会对代码的质量进行把关,增强代码的复用性。2)而且,我会对我的代码进行诚实报告,至少不会把引擎的代码加入声称是我的工作。

  对于挑选project,我的看法是尽量给自己定一个不要太高的目标,比如我要做学长的这么一款简单的飞行射击游戏,那么我会首先把目标降低为我肯定能够完成的一个雏形,再在雏形的基础上利用剩余的时间来增进完善,从而能够在规定时间完成任务。而学长的做法是最开始就声称要做多个平台的射击游戏,导致最终没有时间去学习或者写代码而“跳票”,并以编译和数据库考期作为理由来反驳。其实我想现实生活中大部分的软件开发也会遇到不同的问题,远比编译和数据库考期来得猛烈,但是他们是怎么完成呢? 所以,选定一个合适的目标是非常重要的。

编辑:毛宇

Week1 Team Homework #1 from Z.XML-对于学长项目《shield star》的思考和看法的更多相关文章

  1. Week1 Team Homework #1 from Z.XML-总结学长经验教训

    谭传奇学长: 我们的弯路可能是,一开始没有从最基础的部分开始迭代开发,一开始就想的太远了一些,每一步开的有点太大了,所以可能有些东西最后就连不上,也没有能够按时完成.如果可以先做出一个能用的版本,然后 ...

  2. Week1 Team Homework #2 from Z.XML-Introduction of team member with photos

    <Z.XML Introduction of each team member, with photos Z=周敏轩; X=肖俊鹏&薛亚杰; M= 毛宇 & 马辰; L=  李孟 ...

  3. Week1 Team Homework #1 from Z.XML-项目选择思路--基于对曾经大作业项目的思考

    这两天试玩了一下去年学长的满分工程<shield star>游戏,再结合了一下他们团队的博客记录,有一种非常牛逼的感觉.具体对于这款游戏的一些思考和看法,毛大神已经说的很好了.因此,这里主 ...

  4. Week 1 Team Homework #3 from Z.XML-软件工程在北航

    任务名称:软件工程在北航 任务要求:要求我们采访往届师兄师姐,收集他们对于软件工程这门课程的反馈.具体作业链接http://www.cnblogs.com/jiel/p/3311403.html 任务 ...

  5. Week1 Team Homework #2 Introduction of team member with photos

    小组成员介绍 组长:黄剑锟       11061164 组员:顾泽鹏        11061160 组员:周辰光         11061154 组员:龚少波        11061167 组 ...

  6. 团队博客作业Week1 Team Homework #3软件工程在北航

    这次我们采访了一位大四的学姐,让她简单地谈了谈去年学习软件工程的经历和感受. 在完成软件工程大作业的过程中,由于计划安排与实际脱节,导致时间前松后紧,平均每周花在这门课上的时间大约有8个小时. 项目完 ...

  7. Week1 Team Homework #1: Study the projects done by previous student groups

      我们研究了学长的项目:百度3D地图API的调用.下面是我们对该项目的一些看法: 优点: 界面清晰 各类之间调用及其他关系容易理清. 缺点: 前段html代码过于冗杂,很多(div)块间的层次关系不 ...

  8. Week1 Team Homework #3: 软件工程在北航

    在组内成员的共同努力,我们采访了几个学长学姐,顺利完成任务.反馈信息如下: 平均每周花在这门课上的时间 平均写的代码总行数 学到的最有用的部分 最没用的部分 <软件工程>最应该改进的地方 ...

  9. Week1 Team Homework #2: Introduction of each team member

    王洛书 我是来自浙江的王洛书.热爱历史,热爱美食,热爱代码,热爱博物馆.很喜欢软件工程这门课的上课方式,也很喜欢组里的这些同学.希望能大家一起努力,在这门课上真正地收获能力上的提升!   陈睿翊

随机推荐

  1. Restframework中的Request

    1.介绍 该篇博客主要介绍restframework内置的Request类,它扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 如: 在APIView中封装的r ...

  2. Kong Api 初体验

    请查看原文: https://www.fangzhipeng.com/nginx/kong/2016/07/11/kong-api-gateway/ Kong是一个可扩展的开源API层(也称为API网 ...

  3. iOS | AFNetworking封装

    为大家分享一个IOS处理网络请求,网络上传,网络下载等功能全面的一个第三方框架-AFNetworking,这是一个使用非常方便的网络框架. 最新的版本是基于NSURLSession,原来的NSURLC ...

  4. 台式机上如何配置并使用苹果iPhone的耳机麦克风 并且麦克风开启降噪功能

    这个资料和技巧在网络上面很少有人分享,但是可能会有不少人需要这个东西.这里分享下经验.这也是一个困扰我很久的一个问题.因为买来了这个转接头,发现,录音的时候iPhone的耳机麦克风有很大的噪音无法消除 ...

  5. python核心编程2 第十三章 练习

    13-3.对类进行定制.写一个类,用来将浮点型值转换为金额. class MoneyFmt(object): def __init__(self, value=0.0, flag='-'): self ...

  6. jquery图片滚动demo.css

    body, html { font-size: 100%; padding: 0; margin: 0;} /* Reset */*,*:after,*:before { -webkit-box-si ...

  7. QQ兴趣部落 大批量引流实战技巧

    兴趣部落,犹如pc端贴吧,除去盔甲,几乎大同小异. 在文章<QQ运动,新楛的马桶还在香,营销人不应摒弃>中,阿力推推对稍微僻静的平台做过简述,和QQ运动一样,兴趣部落稍显“僻静”,执行到位 ...

  8. (数据科学学习手札05)Python与R数据读入存出方式的总结与比较

    在数据分析的过程中,外部数据的导入和数据的导出是非常关键的部分,而Python和R在这方面大同小异,且针对不同的包或模块,对应着不同的函数来完成这部分功能: Python 1.TXT文件 导入: 以某 ...

  9. 线程基础三 使用C#中的lock关键词

    C#中lock关键字主要是为确保当一个线程使用某些资源时,同时无法其他线程无法使用该资源.下面我们看看下面的小例子. static void Main(string[] args) { var c = ...

  10. react中事件冒泡之填坑

    今天在写个组件,大致代码是这样的: class Switch extends React.Component { handlerChange = (e) => { const {onChange ...