找回密码
 立即注册
查看: 388|回复: 6

iOS游戏开发流程?

[复制链接]
发表于 2021-9-29 17:01 | 显示全部楼层 |阅读模式
小弟最近空闲时间比较多,每天保证最少4小时的学习时间,想利用这些时间学学IOS手游开发,做一个独立开发者。一狠心一咬牙,入手Mac book pro,已入坑。有过几年的.NET开发经验,已完成了OC基本知识学习,最近在看Metal相关资料。由于对游戏开发行业了解很少,现在感觉有些迷茫,一直在知乎潜水看各位大神的回复学习,现虚心向各位请教:

    1. 我个人对游戏开发的基本知识非常缺乏,比如纹理,渲染管道等等,有没有非常基础的概念性书籍推荐看看?
    2. 个人计划做一个3D游戏,但是对整个游戏开发的流程并不是很清楚,看知乎有人回答游戏开发并不需要熟悉APP的开发,于是学完OC后就直接看Metal了,Metal官方文档看完了,但是收获不多,目前处于停滞阶段,效率很差。请各位大神帮忙解释一下IOS手游的开发过程。
    3. 游戏引擎是用来做什么的?在游戏开发中是不是必须的?我了解的Unity 3D引擎是付费的,我是个人开发者,由于成本问题,所以可能没有这么高的投入。那么我找一个开源多建模工具,然后自己用Metal实现游戏开发,会不会工作量非常大?PS:有一个小团队,我和一个朋友,都可以做程序,他有不错的美术功底,可以负责建模等等工作。
4. 用Metal是不是一个好的选择?个人在这个领域是初学者,这个技术又是比较新的技术,目前参考资料非常少,只有Metal官方文档,有些影响进度。有没有更好的,更容易上手的来替代?
    真的非常想把这个计划进展下去,但是现阶段处于停滞期,希望各位朋友多多帮忙,让我走出这个迷茫期。谢谢!
发表于 2021-9-29 17:05 | 显示全部楼层
1. 推荐看一下图形学的相关知识,比如Learning Modern 3D Graphics Programming 看完之后,相信你对纹理和渲染管线都会有一定的了解了。

2. 3D游戏的开发是比较复杂的,我个人建议如果你之前没有游戏开发经验的话,可以先从简单的2D游戏入门。推荐从苹果的SpriteKit开始入手,SpriteKit是苹果模仿cocos2d-iphone而设计出来的一套专门针对iOS平台的游戏引擎。如果楼主今后只想在iOS平台上面发布游戏的话,SpriteKit是首选。关于SpriteKit的学习资料,强烈推荐楼主从Tutorials – sprite-kit.com开始看。至于Metal是比较底层的图形API了,建议先可以不要花太多时间去研究它。你要的是做游戏,而不是构建一个游戏引擎。

3. 游戏引擎一般是基于一套底层的图形API接口来做的,比如苹果的SpriteKit基于的是OpenGLES和Metal, cocos2d-ihone也差不多, cocos2d-x是基于OpenGLES、OpenGL和ANGLE。游戏引擎不能说是必要的,但是一般个人开发者都会选择一个已有的游戏引擎来开发自己的游戏。因为要从头构建一个游戏引擎是非常困难的,而且非常耗时间。

4. Metal是不推荐的,如果楼主对OpenGL和DirectX这些都不了解的话,建议暂时不要去碰Metal。另外,对于简单易上手的游戏引擎,Objective-C/Swift语言推荐cocos2d-iphone和SpriteKit, Java语言推荐LibGDX, C++语言推荐Cocos2D-X。如果楼主专注的是iOS平台,建议使用SpriteKit,这个是苹果出品的,质量有保证,而且与Xcode集成的很好。
发表于 2021-9-29 17:06 | 显示全部楼层
1.游戏开发就是游戏开发,没有所谓的ios游戏开发。
2.如果励志做游戏开发请不要学习app、oc、swuft这些无关技术。游戏开发指的就是使用商业引擎开发游戏。做好的游戏可以选择ios、安卓、主机、pc任何一个平台发布。
3.游戏开发入门步骤:熟悉引擎的gameplay框架(u3d或者ue4,推荐ue4,u3d快过时了)—以独立游戏开发的角度出发做几款完整的游戏—进入真正做游戏的公司锻炼学习。
发表于 2021-9-29 17:15 | 显示全部楼层
U3d个人有免费版,用来入门足够了。
发表于 2021-9-29 17:22 | 显示全部楼层
题主,我也刚入游戏坑,我的缘起是因为在公司的hackathon里面和同事开发了一个小游戏,算是电子宠物吧。

我们做的是纯js,用到了物理引擎matter.js,基本上算是0基础开始开发了第一个游戏,主要我感觉对游戏的陌生还是因为对游戏机制的不理解,如果你知道游戏的各个部分是怎么契合在一起的,就可以有目的有方向的去学习了。

主要我们我说一下对游戏的理解,游戏本身的引擎+物理引擎+渲染模块。
游戏本身的引擎是我们自己写的,有了最基本的tick和一些引擎事件接口。
物理引擎是现成的matterjs,非常棒,自带了渲染模块,基于canvas,但是我们没用。
渲染模块是自己的,基于DOM。

游戏引擎负责整个loop,触发各模块的update,调用物理引擎进行初始化以及其他运作。
物理引擎在我们的项目里主要是计算,计算碰撞,重力,以及物体的属性(弹性,摩擦),整个世界的构架师属于物理引擎的。
渲染不言而喻就是表现,这个应该不需要详细解释。

我们剥离了本身的渲染模块主要是因为我们的游戏基于公司产品页面,想要和普通元素互动,所以canvas不适用,就换成DOM。
matterjs会调用renderer,只要简单的写一个自己的renderer,保留原有的函数signatures就可以无缝衔接。

等你大概有一个基本的小雏形出来,你就可以开始发挥想象力往上加了,看别的游戏代码也容易理解。

希望这些有帮助,虽然和苹果游戏想去甚远。从小处着手,各个击破。

如果有地方说的太菜,请各路大虾指点
发表于 2021-9-29 17:28 | 显示全部楼层
我不知道题主以后打算干什么,如果打算找工作那么别去研究乱七八糟的东西,不是说别的引擎不好效率不高之类的。什么是主流用哪个,否则你以后万一做了Gameplay Programmer进了一个团队,你之前所学的跟团队其他人不一样那该如何?铁了心做3D游戏那么去学unity3d吧,一线的大公司无论外企还是国内的大公司都在用unity,至于你说的商业版要付费之类的我没去了解过,先去几个unity的论坛问问其他个人开发者吧,应该有比较好的解决方案。
发表于 2021-9-29 17:36 | 显示全部楼层
(以下就是晚上失眠了,想到哪写到哪,所以很乱)做3d手游还是建议用U3d。
不过其实cocos2d-x也是可以做3d手游的,免费而且开源。
只是,cocos2d-x的3d部分不够完善。去年大概11月份的时候我就碰到个坑,它竟然没有获得点沿过点的射线到平面距离的函数(缺少这个基本的函数就直接导致了,如果空间中有两个物体一前一后放置,你没有办法准确的点中距离你更近的那一个)。
不过很快我就在github上的最新版cocos2d-x里发现了这个函数:)。
后来由于各种原因,公司的那个项目延期(huang)了,不过还好这个项目也就我这个ios实习生在搞cocos2d-x部分而已,公司也没什么损失,喜大普奔(读cocos2d-x源码读了半个多月的说,项目延期了还是感觉有点可惜)。
不过前段时间偶尔进cocos2d-x的github逛了下,发现貌似更新了很多的样子,相信cocos2d-x的3d部分的坑应该比去年要浅了很多,一直都在进步。而且由于开源,cocos2d-x还是非常容易学习容易上手的。
所以cocos2d-x也是可以考虑一下的。
偶尔也是可以支持下优秀的国产的嘛。
而且很多游戏引擎里的概念都是相通的,你学会了一个,想换另一个,要上手也是会很快的。
至于你题目上的几个问题。
做游戏,游戏引擎并不是必须的,而就像上面子龙山人大神说的那样,metal是比较底层的图形api,而你如果想要直接用它来开发游戏,就意味着你要自己构建一个游戏引擎。据我去年学cocos2d-x那会儿一个多月的了解,手机游戏引擎底层都是图形api(cocos2d-x是OpenGLES),对图形api进行封装(渲染引擎),再加上物理引擎,碰撞检测等等等各种游戏开发需要的各种组件就组合成了游戏引擎。
不过你既然已经学了oc,应该也可以了解一下scenekit和spritekit

(我只是接触过一个多月的cocos2d-x的菜鸟而已,以上仅供参考)
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 18:27 , Processed in 0.103965 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表