Android小游戏:功夫蛇 团队开发经验总结
前言
曾经没有代码管理的习惯,不用回版本控制工具。这种陋习虽然让原来千穿百孔的代码远离了实现,但这种逃避未必就是一件好事吧;)。
于是从博客中挖出了原来的文章,并千辛万苦找到了最早的代码贴出来。
这篇文章是参加 Google 的 Android 应用开发大赛时,写的总结帖。主要从团队和设计两个方面进行了分析总结。虽然如今看来一些内容显得稚嫩和粗糙,
但没有功劳还是有苦劳的!还是那句话,我们要不断收集生活中的珠子,等到最后,才能串成一条链。
我同步的将代码贴到了自己的 github 里。对于这份代码,或许以后有时间,可以重构下代码?又或者没有时间?
这都无所谓。能够让原来的脚印在路途中获得一席之地,也才有之后更好的旅程。
内容不做修改,这就是 12 年 1 月时,我的思维层次总结啦。
原文
此文从团队和设计两方面,进行了一些经验总结。没有涉及技术实现的讨论。
KongfuSnake,这是一款取材自贪吃蛇的 android 游戏。(弱弱的说,这个取材其实这是我最不敢说出口的,被大多数人评价为老套、
过时的创意><…但需要解释的是,我们确实做了很多“微创新”~)。
下载链接:KongfuSnake
1.背景
参加的 google 的 android 应用大学生挑战赛上个月已经画上了句号。
结果是幸运的,最终我们跟另外的 4 只队伍一起,获得了全国总决赛二等奖。当然,名次并不是最重要,重要的是经历了什么,学到了什么。于是,用心的敲下这些文字,给自己的旅途留下脚印,期望对以后的学习、生活有所助益。也算是认知盈余吧。
11 年 6 月份吧,大三下学期萌发参加比赛的念头。
当时的考虑是,自己由于时间安排的关系,无法参加暑期实习,而本科前三年重心一直不在编程上,想借暑假的空闲机会,体验一下比赛的乐趣,
也算见识下 android 的开发体系。而作为团队参加也可以积累些许技术沟通的经验,于是找到了同专业的一个同学,一起组队参赛。
后期,又邀请了工业设计专业的一位同学加入,为作品的 UI 润色,用足了比赛规定的最多三个名额的限定。
回过头来,那些小九九也算达到了一些~甚至还有当时没有考虑到的收获,比如对小游戏设计方面的浅显理解。
2.团队
这是一个三人的小规模学生团队,说我们小打小闹也罢,团队里的沟通交流总归是存在的。麻雀虽小,五脏俱全~
2.1.团队的组成
经历过以前一些团队作业,我觉得大学生团队最重要的问题就是是否每个人都有足够的时间。基于这个原则,我找到了 yzq 童鞋。
后期,我们发现必须找人润色 UI,又通过学校论坛征到了比我们低一级的 mqx 童鞋,这一步走的略显仓促,与项目早期自己的侥幸心理有关><….
准备不周全。幸运的是,最终效果还不错。
值得反思的是,最初我在征 UI 设计时,没有与候选人沟通好具体的职责:
团队需要的是能尽可能的提供 UI 的整套解决方案,而不仅仅是按照程序开发者的意愿 P 几张图而已。
由于这一失误,mqx 童鞋后来的大多数时间里只是照着后半句在做,让我们编程人员力不从心><….。
当然,另一个侧面,也算是培养了自己产品设计的一些理念吧。。
2.2.团队沟通
开发期间,由于暑假回家、之后我出国交流等原因,大家很多时间都不在一起。只是通过 QQ 进行交流的。交流的方式也比较随意。
由于项目小,我们没有使用到 svn、git 等版本控制工具。这些原始的沟通方式,虽然在小项目中负面影响不大,但相信随着项目规模的增大,
它们对效率的影响会显现出来,特别是版本控制方面。这里以后需要注意。
另外,在沟通技巧上,自己比较欠缺。由于专业不同的关系,我与负责 UI 的童鞋对某些设计的理解不尽相同,
而自己起初没有注意到这一点,让大家无谓的耗费了精力;每个人都会有不同的想法,在处理矛盾想法的解决时,作为项目发起人,
我的方式不够委婉。
2.3.团队建设
我有意识的提及一旦获奖,我们可以获得的收益,想借此激励大家的积极性。不过技巧性还需要提炼。
3.设计
评价一款手机游戏的优缺点,相对来说比较容易。但真的要做出决策如何设计一款游戏,则难了很多。
看过网上很多移动应用开发的设计指南,一条一条的罗列挺纷繁的,总结自己粗劣的设计经验,是如下两条:创新的想法和合理的取舍(trade-off)。
创新能挖掘出用户的需求,合理的取舍,能让众多创新的想法融合出一个完整的产品构图。
3.1 关于创新
不要被原来的设计需求禁锢。创新可以挖掘出新的需求。
刚开始的时候无法囊括所有的创新点,新的点子可能在之后的经历中又突然冒出,毫不犹豫的去尝试,不断迭代改进。
当然很多创新点可能在游戏的整体中不和谐,但这些层出不穷的创新只要有千分之一是可行的,就可能让产品脱颖而出,不再陈旧。
3.2 关于取舍(trade-off)
突出主题。
手机界面相对较小,视觉上容量本就不多。细小的图形元素容易造成蔓延昏花的效果。突出能抓住用户眼球的主题很重要
,必要的时候,需要适当舍弃可能造成混淆的元素。
增强元素的表现力和区分度。视觉、听觉、触觉(震动)等各个方面增强各个元素之间的区分度和表现力。
统一风格。每一个按键,每一个游戏元素,包括背景、布局、音效,都需要统一风格。
另
由于时间拖得比较久,没有及时的总结经验教训,感觉很多细节都已经离我远去了><…下次得注意了。
另另
由于代码写的比较搓,也就不公开放出了强奸大家的眼球了><…,要学的还有很多。
原文地址:http://biaobiaoqi.github.com/blog/2013/09/06/kongfu-snake-project-summary/
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
Android小游戏:功夫蛇 团队开发经验总结的更多相关文章
- android小游戏模版—重力感应
好久没更新博客了,今天来谈谈android小游戏---重力感应,一般在游戏里运用的比較多,比方这类游戏有:神庙逃亡.极品飞车,平衡球.三围重力迷宫,重力赛车等. 首先什么是重力感 ...
- 软件工程 Android小游戏 猜拳大战
一.前言 最近学校举办的大学生程序设计竞赛,自己利用课余时间写了一个小游戏,最近一直在忙这个写这个小游戏,参加比赛,最终是老师说自己写的简单,可以做的更复杂的点的.加油 二.内容简介 自己玩过Andr ...
- 介绍一款Android小游戏--交互式人机对战五子棋
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编 ...
- 第一个windows 小游戏 贪吃蛇
最近用dx尝试做了一个小的贪吃蛇游戏,代码放到github上面:https://github.com/nightwolf-chen/MyFreakout 说一下自己实现的过程: 首先,我把蛇这个抽象成 ...
- 使用JavaScript实现简单的小游戏-贪吃蛇
最近初学JavaScript,在这里分享贪吃蛇小游戏的实现过程, 希望能看到的前辈们能指出这个程序的不足之处. 大致思路 首先要解决的问题 随着蛇头的前进,尾巴也要前进. 用键盘控制蛇的运动方向. 初 ...
- JavaScript面向对象编程小游戏---贪吃蛇
1 面向对象编程思想在程序项目中有着非常明显的优势: 1- 1 代码可读性高.由于继承的存在,即使改变需求,那么维护也只是在局部模块 1- 2 维护非常方便并且成本较低. 2 这个demo是采用了 ...
- Android开发系列(十六):【Android小游戏成语连连看】第二篇
写的晚了,在分工个Z市高中的一个成绩查询的系统,原系统居然是用VB写的,我不得不佩服原本写系统的那位哥们真能耐得住. 明天搭建下SVN就等着先发project款然后開始项目了.想想有工资进账,心里也为 ...
- python【控制台】小游戏--贪吃蛇
传统贪吃蛇相信大家都玩过,也是一款很老很经典的游戏,今天我们用python控制台实现 项目有很多bug没有解决,因为本人一时兴起写的一个小游戏,所以只是实现可玩部分功能,并没有花较多的时间和精力去维护 ...
- 手把手教学h5小游戏 - 贪吃蛇
简单的小游戏制作,代码量只有两三百行.游戏可自行扩展延申. 源码已发布至github,喜欢的点个小星星,源码入口:game-snake 游戏已发布,游戏入口:http://snake.game.yan ...
随机推荐
- Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7--转
原文地址:http://blog.csdn.net/u013281331/article/details/40824707 在Eclipse中检出Maven工程,一直报这个错:“Missing art ...
- POJ 1018 Communication System 贪心+枚举
看题传送门:http://poj.org/problem?id=1018 题目大意: 某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m个厂家提供生产,而每个厂家生产的同种设备都 ...
- Oracle空间数据库的备份与恢复
大型GIS系统,存储.管理海量(TB级)空间数据时,数据库备份变的尤其重要.这里随笔说说冷备份的一种方法. 基于ArcSDE.Oracle空间库的冷备份: (1) 在数据入库工作后或者更新变动较大时, ...
- python3的函数
#摘自廖雪峰的程序教程 函数名是变量: 如abs()是一个求绝对值的函数, >>> x = abs(-10) >>> x 10 变量可以指向函数 用f指向函数abs ...
- POJ 1887 Testing the CATCHER(LIS的反面 最大递减子序列)
Language: Default Testing the CATCHER Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...
- mina架构分析
使用的版本号是2.0.9 IoService分析 AbstractIoAcceptor定义了全部的public接口,并定义了子类须要实现的bindInternal函数,AbstractPollingI ...
- C++ 指针(不论什么一个指针本身的类型都是unsigned long int型)
1.指针数组: 即 数组的元素是指针型; 例:int*pa[2]; 明明是一维的指针数组.竟当作二维数组用. [cpp] view plain copy //利用指针数组存放单位矩阵 #include ...
- jquery 多选框 checkbox 获取选中的框
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- notepad++ 正则替换
比如原来的代码是 {$id['nihao']}{$id['lal']}{pigcms:$id.leere} 查找目标写 \{\$id\['(\w+)'\]\} 替换为写 \{pigcms:\$id\. ...
- Android 使用Canvas在图片上绘制文字
一个小应用,在图片上绘制文字,以下是绘制文字的方法,并且能够实现自动换行,字体自动适配屏幕大小 private void drawNewBitmap(ImageView imageView, Stri ...