上篇主要介绍自己个人的经历,这篇主要讲下学习新语言的过程。

  上次说到最终选择的语言是swift,框架用spritekit,上次有网友对为什么选择用这俩呢,为什么不用cocos和unity呢,cocos和unity我觉得相对来说比较成熟,但是一开始觉得要接触的东西会比较多,对我来说学习的成本要大点,spritekit 本身集成在xcode中,对新手来说会省去很多的配置工作,可以很快的进入开发工作,spritekit目前用的人确实不多,现成的开发库也比较少,遇到问题也不好解决,这个在我们后面开发中也能感受到了,不过swift在xcode的中的编码和调试还是蛮顺畅的,所以有想法自己做游戏的朋友,根据自身特点,选择合适的框架。

  接下来进入正题,讲下自己是怎么学习swift和spritekit的。

  苹果推出新语言的时候,就很感兴趣,也一直想做移动的应用,所以一直关注,期间也看了一本中文的swift的语法书,觉得这个语言其实跟C#和JavaScript很像的,当时的也没觉得有什么特别之处,就是一些形式的改变,但比起object-c的语法感觉要容易理解多了。

  刚开始学习spritekit的时候也是网上找书,可是讲spritekit的中文书确实很少,也没买到。然后就是在一个技术网站上发现了有一套入门教程,感觉比较适合,那套教程原价好几百吧,不过在淘宝花了几十买了学习码,可以直接学习,不过只能看一周的时间,所以那几天一直没有停歇,一天看几课,每课的我都照着事例写一遍,有时候看到凌晨几点,觉得除了高考没有这么努力过,就这样把这套视频完整的看下来了,也写了几十个小例子,可以说对游戏开发和spritekit有了初步的了解。

  因为学习spritekit的过程中,发现自己swift语言的有些不足,觉得语言的基础也要再了解一遍了,就下了官方的swift的教程(The Swift Of Programming Language),那时候正式赶上十一期间,看朋友群的朋友各种发出去游玩的照片,自己确在小屋里看书,程序员的孤独谁能懂,当时给自己定的目标是十一期间看完这本书,每天逼着自己看几章,而且是英文的,自己英文水平也是一般,想想是有多费劲,但就这样还看了一大半吧,后面的章节觉得对我游戏编程影响不是很多,而且光看语言,没有实际的操作,觉得提高不是很大,也不好理解,就没继续看了,不过这本书写的确实有水平,后面遇到的一些问题也在此书里找到一些解决办法。

  之后找到两个Spritekit的QQ群,从群里找到一本比较新的Spritekit的英文教程(Game Development with Swift),花了2天时间给看完了,也更加清楚了游戏开发的一些事情,这其中包括精灵、摄像机、动作、控制、物理引擎、碰撞、菜单、声音、GameCenter、上传Appstore等等,慢慢发现自己英语水平也有所提高了,书中大部分意思也都能看懂了。另外加群还有很多好处,后面会讲。

  现在基本知识学习的差不多了,游戏设计也快成型了,已经清楚做什么类型的游戏了,可以开始做一个游戏DEMO出来了。

  我们这次做的是一款迷宫类型的游戏,最主要涉及到的核心算法就是寻路算法。接下来两天就一直在网上开始找和学习寻路算法,最后找到有两个算法用的比较多,一个是Dijkstra算法,一个是A*算法。Dijkstra算法是比较有代表性的寻找最短路径的算法,A*算法引入了估价函数,估价值与实际值越接近,估价函数取得就越好。游戏中多用A*算法比较多,效率也更好点,所以我们也是选择了A*算法,并用这个算法写出了一个的寻路的小DEMO。

  今天就写到这里吧,写到这里的时候我们正在推广自己的小游戏,推广确实不太容易哈,后面会讲我们推广的一些方法和途径。

  下篇会主要讲开发游戏的过程,希望大家继续关注,有什么问题的话,大家可以留言与我交流。

  未完待续,敬请期待。  

.net程序员转行做手游开发经历(二)的更多相关文章

  1. .net程序员转行做手游开发经历(一)

    从辞职到自己开发游戏也有几个月的时间了,游戏也已经在AppStore上线了,我觉得我有必要写点东西,算是留下的一些记忆,也可以和广大博友分享下自己的创业经历,这可能不是一篇成功的创业经历,因为故事还在 ...

  2. .net程序员转行做手游开发经历(四)

    今天是大年初二,在这里先给大家拜个年,祝大家在新的一年里能事事顺心. 年前的时候更新了一版,先发了内测,没有想到过年这几天,有的小伙伴们还在玩,还给我们提了很多建议和意见,让我们觉得非常温暖,给我们很 ...

  3. .net程序员转行做手游开发经历(五)

    大家好,真的是好长时间都没有更新博客了.上来博客园发现很多朋友还在关注我们,那给大家汇报下最近的一些进展. 收费版上线了,但是下载量不是很多,刚发布的时候下载每天的下载还是挺多,我们几个小伙伴在论坛. ...

  4. .net程序员转行做手游开发经历(三)

    这次就主要讲讲我们开发的过程. 策划是我们团队的一个人成员专门负责,我们几个算是出谋划策.我这边的理解是,策划首先需要对所做的事情一定要有一定的把握,意思是尽可能的想到这件事情的影响范围,类似项目管理 ...

  5. 1奶茶店创业成本: 2发饰品加盟店创业成本 3眼镜行业店创业成本 从“程序员转行卖烧饼”想到IT人创业

    总结: -------奶茶店创业成本: 而这个奶茶店初期投资是:3万元加盟费+1万元保证金+8000装修+两万设备(冰柜.展示柜.收银机等等).别说赚钱,什么时候把初期投资赚回来呀! 一个店的利润就是 ...

  6. 从“程序员转行卖烧饼”想到IT人创业

    我的一个朋友最近总在跟我念叨着“我不想做开发了,整天累死累活写程序,也攒不下几个钱.我想辞职搞点啥!” 我问他:“你想搞点啥?”. 他说:“搞啥都比做开发强,做个网站赚广告费,接私活……实在不行我去卖 ...

  7. Cocos2d-x 3.X手游开发实例详解

    Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...

  8. 程序员带你学习安卓开发-XML文档的创建与解析

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...

  9. 程序员带你学习安卓开发系列-Android文件存储

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...

随机推荐

  1. log4j 实现只输入我们指定包的日志

    #all logger output level is 'ERROR' and output position is stdout #so only write our project's DEBUG ...

  2. C语言数据库编程

    ----摘自个人C语言数据库项目报告 3.4逻辑结构的SQL语句实现 创建基本表: 3.4-1建立商品表: create table goods(goods_id int primary key,go ...

  3. mysql级联更新

    MySQL  各种级联查询后更新(update select). CREATE TABLE `tb1` (  `id` int(11) NOT NULL,  `A` varchar(100) defa ...

  4. Angular+Flask搭建一个记录工具

    平时用的最多的文本编辑器就是Notepad++,很多东西都是通过Notepad++直接记录的: 没有看完的网页链接 要整理.收藏的网页 读书笔记 要处理的事情 待看/看过的文档和电子书 等等... 随 ...

  5. apache poi导出excel报表

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为"P ...

  6. 中国移动测试大会 PPT 和视频

    PPT网盘链接:http://pan.baidu.com/s/1c0prdoG优酷专辑:http://v.youku.com/v_show/id_XMTI5NjExNjIwOA==.html?f=25 ...

  7. NOIP2015聪明的质检员[二分 | 预处理]

    背景 NOIP2011 day2 第二题 描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿 ...

  8. 第18章 图元文件_18.2 增强型图元文件(emf)(2)

    18.2.7 增强型图元文件的查看和打印程序 (1)传递EMF到剪贴板,剪贴板类型应为:CF_ENHMETAFILE (2)CopyEnhMetaFile用于复制图元文件 (3)剪贴板中的图元文件会自 ...

  9. jmeter beanshell内容

    byte [] sampledata = ctx.getPreviousResult().getResponseData(); String  smapledatastring = new Strin ...

  10. jmeter的http sample使用

    1.jmeter最简单的http sample 使用 : 最简单的get请求, 输入服务器名称或者ip, 如果有路径则添加路径 ,带参数的添加具体的参数及values值 parameters 和 bo ...