设计个游戏,写10万行代码去实现梦想,你也可以!

最近我的游戏安卓版本已经上线Google Play,iOS卡在税上面,过一段时间应该也上线了,游戏已经前前后后开发了3年,在这里做一个总结吧,给那些想了解独立游戏,或者想自己做游戏的人留些经验。

1. 模仿还是创造

最初要做这个游戏是因为人在公司,有很多想法上司是不会同意的,做设计的人都懂,上司很多时候都是保守的,那个时候经理总是说,你这个想法有被证明的先例吗?那个时候年轻气盛,就觉得证明你妹啊,老乔发明iPhone有先例吗?爱迪生发明电灯有先例吗?这个东西就是个永恒的悖论,你是在迎合需求还是创造需求。

给年轻人一个忠告,学会模仿,学会创新。一个不会模仿的人是不会创新的,即使乔老爷也是模仿德国人的设计,就是Dieter Rams这个设计师的家居系列,配色,质感,都一样一样的。


在模仿的时候,你才能感受这个产品的精华,也才能更好的改造,我们去读书的过程本身不也是把别人的东西拿过来自己用,这个过程其实是一样的,只不过聪明人能在模仿的基础上去创新,而不是一味的模仿。

就这样在模仿各种游戏的基础上, 加上自己的创新,就慢慢的形成了自己的设计方案。

2. 一颗创业的心

无论你进入职场还是学生,无论是在哪里,请有一颗创业的心,这样的虚心,野心,将在未来的某一天让你受益。

一颗创业的心,让你懂得要有主见,要有自己的事业,即使你在现在的工作受挫了,你依然可以用现在学习到的东西服务自己的未来,如果你觉得老板特别sb,那么就把这些sb的表现,原因记录下来用于警醒自己不要做这样的老板,如果你觉得同事有特别值得学习的地方,一定要能够发现和总结别人的能力,然后去模仿,去超越,而不是嫉妒和抱怨。

有的人,出生,养家,然后离开这个世界,如果你也想过这样的生活,那么还是关了这个文章吧。如果你不想,我当然相信每个读到这些文字的你会仔细记下,琢磨这些话,然后努力去实践属于你自己想法,这个世界终有一天会感谢你的存在!

3. 游戏感

对于游戏来说,无论你设计什么,最重要的就是对游戏感的把握。

一个好的游戏设计师,一定是一个玩家,然后才是游戏设计师,如果玩你自己设计的游戏,都没有心跳加速的感觉,那么是时候好好反思一下是为什么?

你不一定要玩过太多游戏,玩太多游戏也许你就没时间思考了,但是你一定要知道一个游戏是为什么吸引人的,并且这个游戏感是如何造就的,有这两点就够了。你就一个合格的游戏设计师了。

给自己一个封号就去江湖闯荡吧!

是不是不够干货,这里就不分享细节了,这篇文章主要是个综述,如果看的人多再写续篇吧。

4. 教练,我想学编程

我的10万行代码,前端写了6万,后端写了4万,如果你是一个游戏设计师,不要怕,你是可以学会编程的,并且慢慢的开发创造自己的游戏世界。

如果你0基础,那么恭喜你,你有一个机会让自己的人生更加丰富,每次前行都会让你感觉充实,你一定会爱上这个感觉。我不敢说每个人都能学会编程,但是编程没有你想到的那么复杂。

作为一个门外汉,我大学的时候自学了网络工程,然后考取了国家认证的中级网络工程师,那年青岛大概过了50个人,我好像是我们学校唯一一个过的,我还是学文科的。对于一个不懂技术的人学技术,你需要的只有两个条件:逻辑和好奇

逻辑让你可以在大脑中回放代码一样的思考,而好奇则促使你想要知道代码背后的“魔法”,如果某一天你意识到代码的执行本质就是一个快速的算盘,那么也许你就没有什么惧怕了。

对于0基础的人如何学习编程,也许以后展开会讲,但是请记住上面的两个条件,逻辑与好奇。推荐学习的语言,Javascript,找个入门的书籍,先自己写几个网页,这个对于每个人来说都是最简单的,可以不需要学css,只要javascript就够。

5. Unity

当你懂了一些JS,或者你自己是程序猿,那么我推荐你使用Unity作为开发游戏的主要工具,理由如下:

A 语言简单容易上手,大部分人都会JS,那么UnityScirpt基本是一样的,或者对于懂Java的人C#也不会陌生

B Unity很成熟,非常稳定,用的人多,社区庞大,有问题尽管去社区问,你不是一个人在战斗!

C 2D 3D都可以开发,这个对于满足不同人群的需求来说是太好了,也为你的未来提供了更多的可能不是嘛

D 跨平台,这个真的不需要解释,平台通吃,省去太多太多的麻烦

E 专业的角度说,Unity的API设计真的是简洁而且易于举一反三,学习Unity不用所有的东西一次都懂,比如UI,3D,动画,你只要掌握了API的基本用法,这些知识块可以一点点的学,用到什么再学,学习曲线很平滑。

6. 服务器的堡垒之语言

如果你打算只做一个单机游戏,那么这部分可以跳过了。如果你希望自己的游戏有联网的功能,那么你可以继续看下去。

服务器这部分比较复杂,但是依然不要怕,即使错了下次改正就好,没什么大不了。

如果你是一个高级程序员,选择自己喜欢用的就好,这部分对于你没有意义。如果你是一个新手希望得到一些推荐,那么我个人的推荐顺序是这样的,Java 和 Python 。最主要的是Java,如果你没有技术栈的累计那么Java将是非常适合你的一门语言。


我还是不讲太多废话,直接说理由好了,这些都是血泪经验教训

J1 Java语法严谨,对于养成好的编程习惯是很重要的,一开始就玩花活容易把自己玩进去

J2 生态,生态,生态,这个真的太强大,没有什么语言可以比,各种你想要的功能基本都有轮子,就学习如何开车就好

J3 安卓也是java语言,学一门语言可以后台和安卓都能使用,让你更容易写些安卓小应用

你可能在其他人那里听说了Java的效率不够高,或者Java语法过于复杂,我觉得还是看个人吧,我能告诉你的是,Java的效率不低,而语法的复杂让你更加严谨。

有一门语言是强烈不推荐的,Javascript,也就是Node.js

Node是一门 Easy to learn, impossible to master的技术,注意是impossible而不是hard to master,文章太长我就给个链接好了,大意就是一个人一年前从python换去了node,一年之后又换回去的领悟,跟我实际用起来的感受是一样的。

http://geekforbrains.com/英文的

至于PHP,我无意挑战这个“世界上最完美最强大”的语言,我只是个人选择敬而远之,轻喷。

对于Python,我还是很推荐的,因为Python简洁而强大,但是只推荐有些编程经验的人,因为unicode的问题太烦人,2 3 的版本还在过渡,对于新手来说Java更是一个不可能会犯错的选择。

7 服务器技术栈

如果你已经选择了自己喜欢的语言,那么下面要选择具体的技术栈,所谓技术栈,就是你的乐高积木,汽车部件。

这里可能会接触一些之前完全不知道的技术,不要慌张,一个个来,各个攻破就是。下面我是以Java示例,如果你有自己的选择,可以使用同样功能的框架完成。

A 主逻辑,如果采用Socket,AKKA和Netty选一,如果采用Web 就选Play。

理由:Akka的消息模型做异步高效,很适合游戏的大并发情况。Netty的异步稳定,成熟。我个人是两个版本都写过,做过测试没有太大差距,就选了Netty。 如果是Web,我目前试过Play感觉是比较稳定有潜力的。

Java千万不要迷信J2EE,这个东西太笨重,一定不要掉进去。

B 数据库,又是一场战争,个人推荐使用mongodb+redis,为什么呢?mongodb特别适合游戏这种数据模型不稳定,需要快速迭代的应用,而redis对于排名,对战,匹配等游戏常用的功能简直就是绝配,没有理由不用。  至于SQL,只建议那些经验比较多的程序员用。mongodb的入门快太多了,而且不需要复杂DBA,基本读好官网的文档就可以了。

有了这两块知识储备,构建后台基本上问题不大,如果想继续深造,可以考虑3个方向,1是架构,学习如何构建服务化,微服务化的后台。2是网络优化,学习网络工程的技术。3是效率优化,让自己的后台内存占用更少,cpu占用更少,而效率更高,这些都是实打实的银子。

8 云啊你慢慢飘

对于独立游戏的后台,肯定是放在云端的。对于云端的推荐,我个人的经验是AWS,如果你的游戏有海外市场的计划,更是推荐AWS

A 1年的免费试用,够你折腾了,这1年可以实验的东西非常非常多。

B 全球节点多,如果你刚开始只有一个节点的计划,选择东京或者北加州,对于全球都比较理想

C 扩展性强,即使你生意做大了,也可以继续使用这个平台

D 稳定,我自己的体验很少出问题

对于国内的平台,没有发言权,朋友建议过阿里云,阿里的技术还是比较过硬的,以前的公司也是用这个,应该是没有什么太大的问题吧。

9 阴阳谋

啊,看到这里真的好不容易,你可能一下子接触了太多的词语,不必担心,这个文章更像是一杯浓缩coffee,你完全可以一点点的消化,再根据自己的需求去搜索更多信息。

最后一项阴阳谋,讲的就是运营。

这个是我之前在游戏公司上班最鄙视,最不愿意接触的,但是现在自己做推广,我的态度就是180度转弯了。因为运营和推广对于游戏同样重要,如果说一个游戏做出来是你的孩子出生,那么运营就决定了你的孩子能否成年!

对于游戏运营,我也是个新手,刚刚起步,我收集了很多资料也开始自己的实践,我现在能总结的就是 1. 用工具获得社交平台粉丝 2 注重推广的内容要能引起交互。具体怎么做等以后再更新细节吧。如果你有好的文章也非常欢迎推荐给我,我们共同进步。

------------------------------------------------华丽丽的分割---------------------------------------------

很高兴你能读完,祝福我和你,祝福每个对于游戏有梦想的人都能坚持,再坚持一下就离目前越来越近。加油!

你可能感兴趣的:(设计个游戏,写10万行代码去实现梦想,你也可以!)