看完 OC 基本语法之后, 如何涉足游戏开发? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
miaotaizi
V2EX    C

看完 OC 基本语法之后, 如何涉足游戏开发?

  •  
  •   miaotaizi 2016-06-14 17:02:25 +08:00 4444 次点击
    这是一个创建于 3408 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前是做 web 开发的, 看完了 oc 基本语法之后, 能不通过界面为主的应用积累经验直接切入游戏开发吗?
    如果可以, 是否有一些比较靠谱的开发教程之类?
    41 条回复    2016-06-16 16:20:03 +08:00
    pheyer
        1
    pheyer  
       2016-06-14 17:06:15 +08:00
    先做个 flappy bird 出来?
    lingo233
        2
    lingo233  
       2016-06-14 17:11:16 +08:00 via Android
    你还得先学会画画
    miaotaizi
        3
    miaotaizi  
    OP
       2016-06-14 17:13:11 +08:00
    @lingo233 我要求不高, 只要能点能划什么的就行了, 至于美工这种东西, 我也知道也不是一下子就能弄出来的
    bjtugun
        4
    bjtugun  
       2016-06-14 17:19:07 +08:00
    可以啊,能往屏幕上 render 东西了吗?不是显示控件的意思啊。
    spritekit 会用了吗?

    做游戏其实很少用 oc ,用 cocos2d 或者 unity 多些
    miaotaizi
        5
    miaotaizi  
    OP
       2016-06-14 17:26:18 +08:00
    @bjtugun 你这么一说我就懵逼了, 看来还得充实一些知识.
    acros
        6
    acros  
       2016-06-14 17:32:19 +08:00
    只知道 cocos2d 有 oc 版的(虽然现在大都用 cocos2d-x 好跨平台),游戏开发好像用 oc 的真不算多啊~~~
    program2000
        7
    program2000  
       2016-06-14 17:40:33 +08:00
    你需要掌握些框架, spritekit , cocos2d-iphone ,等等等等,然后还要自己画各种简单的 sprite sheet........
    beginor
        8
    beginor  
       2016-06-14 21:36:37 +08:00 via Android
    再学一下 C#用 Unity 开发游戏吧,我逃...
    onemoo
        9
    onemoo  
       2016-06-14 22:05:57 +08:00
    @miaotaizi 要学的太多了。
    这问题相当于:我学会拿画笔了,怎样才能画出漂亮的油画?
    了解完 OC 语法只相当于刚学会拿画笔(还不一定能熟练使用),离能画出一幅名作还远着呢!

    想要省些事的话...还是用一些现成的手游解决方案吧,比如大家提到的 unity ,当然这需要你再去学下 C#...
    miaotaizi
        10
    miaotaizi  
    OP
       2016-06-14 22:31:47 +08:00
    @acros 那 ios 上的游戏用啥开发? 难道不是 oc 吗?
    akring
        11
    akring  
       2016-06-14 22:57:59 +08:00
    @miaotaizi 技能点错了少年,你该学 cocos-2d 的
    OC 只能学 SpriteKit 了
    wohenyingyu01
        12
    wohenyingyu01  
       2016-06-14 23:01:05 +08:00 via iPhone
    @miaotaizi ios 上的游戏不都是 c/c++开发的么...
    Rubbly
        13
    Rubbly  
       2016-06-15 01:10:58 +08:00
    既然目标是游戏开发 感觉 oc 并不是一个好的选择(
    l7sevenup
        14
    l7sevenup  
       2016-06-15 01:31:10 +08:00
    其实学游戏开发学不学 oc 语法都不是关键的,关键是要学游戏设计的理念架构还有一些框架。如果你用 oc/swift 苹果之前推出的 SprinteKit 挺合适,或者学习 cocos2d 开始。
    JustZht
        15
    JustZht  
       2016-06-15 03:57:19 +08:00 via iPad
    几乎没有 ObjC 的游戏框架可用,当然 scenekit 和 spritekit 算是,但以我使用 scenekit 的经历来看,不值得浪费时间在 ObjC 的三维游戏框架上
    - scenekit 中有关向量的运算部分很弱,需要你自己去写很多重载
    - scenekit 的 material 目前还不是 pbr 的,当然据说 ModelIO 是有 pbr 支持的,但是用的时候就知道两者没办法互通
    - 如果对 cg , hlsl 等不是很熟悉的话 shaderprogram 基本用不了,对于初学者来说还是 unity 配合可视化材质编辑器容易上手
    - 没生态环境,想买个 asset 都没地方买,对比 unity assets store 不仅有美术资源还有很多代码,直接买就可以搞定一部分功能
    综上 楼主还是学 unity 吧。
    yanchao7511461
        16
    yanchao7511461  
       2016-06-15 08:32:40 +08:00
    想入游戏行业,就....VR 吧...
    miaotaizi
        17
    miaotaizi  
    OP
       2016-06-15 09:05:26 +08:00
    @akring 我隐约好像也发现这个情况了, 起初我以为跟平台的语言有关, 现在看来好像是走岔路了....
    是不是要去看看 c/c++啊
    miaotaizi
        18
    miaotaizi  
    OP
       2016-06-15 09:35:31 +08:00
    @JustZht 我之前的理解是以为 游戏引擎就是个盒子, 实现一些效果, 最终要 OC 来处理逻辑
    现在看来, 好像是应该直接学 unity 跟 cocos 之类
    min
        19
    min  
       2016-06-15 09:43:10 +08:00
    技能点错了吧,游戏开发应该熟悉 C#才对啊
    ipomelo
        20
    ipomelo  
       2016-06-15 09:46:11 +08:00
    @miaotaizi 不一定用 OC 。看你用什么引擎。 cocos2dx 是用 C++, cocos 有个 quick 版本是用 lua 。 unity3d 用 C#或者 js 。也有使用 oc 的框架,没用过不太敢说……
    bigbook
        21
    bigbook  
       2016-06-15 10:12:59 +08:00
    OC 会了是可以做游戏,就是麻烦点
    最好的方法还是搞起 Unity ,同时不要进 cocos2d 系列的大坑。
    chunqiuyiyu
        22
    chunqiuyiyu  
       2016-06-15 10:39:32 +08:00
    如果是简单的 2D 小游戏的话,建议楼主上手 html5 游戏,原生的 web 技术。如果效果好的话,再把游戏打包成 APP ,分发到 Android 或者 IOS 平台。
    unoyx
        23
    unoyx  
       2016-06-15 10:56:36 +08:00
    做游戏其实能画点就行了。
    coddmajes
        24
    coddmajes  
       2016-06-15 10:59:07 +08:00
    cocos2d-x 很容易上手
    nellace
        25
    nellace  
       2016-06-15 10:59:13 +08:00
    少年加错技能点了。。。。我当年也是吭吭呲呲搞了半天 oc ,卧槽后来一看 cocos2dx 是用 c++啊。。。。。
    nellace
        26
    nellace  
       2016-06-15 10:59:58 +08:00
    cocos2d 是可以用 oc 干的,只是基本跨平台都是上 2dx 用 c++撸
    nellace
        27
    nellace  
       2016-06-15 11:01:09 +08:00
    稍微学学看着 demo 撸个打地鼠 打飞机的游戏还是可以哒
    Mutoo
        28
    Mutoo  
       2016-06-15 11:03:26 +08:00
    cocos2d 最早是 python week 几个学生的作品,后来被移植到 cocos2d-iphone 并发扬光大。
    接着有了 cocos2d-java 支持的 android 版,然后国内王哲等人使用 c++ 移植了 cocos2d-x 能够跨平台编译,支持各种主流平台。后来随着脚本语言的流行有了 quick cocs2d-x(基于 lua ,后改名 cocos2d-lua) 和 cocos2d-html5(后改名 cocos2d-js)。

    cocos2d-iphone 原先是 objective-c 版,现在分流成 cocos2d-objc 和 cocos2d-swift 两个版本。虽然不跨平台,但是在国外还是有很大市场份额。
    oosky1994
        29
    oosky1994  
       2016-06-15 11:05:00 +08:00
    不是很少有用 oc 开发游戏的么应该
    miaotaizi
        30
    miaotaizi  
    OP
       2016-06-15 12:42:23 +08:00
    @Mutoo 这么讲 cocos2d-objc 是专门应对 oc 平台, cocos2d-swift 是专门应对 swift 平台的对吗?
    但是如果要做一份可以跨平台编译的游戏的话, 就得上 cocos2d-x 学 c++是吧?
    Mutoo
        31
    Mutoo  
       2016-06-15 12:54:50 +08:00
    @miaotaizi 嗯是的。对于 cocos2d-x 除了 c++ 以外还有两个脚本语言可选, lua 和 Javascript ,如果你有 web 经验的话, cocos2d-js 是挺不错的选择。 cocos2d-js 编写的游戏可以运行在 web / android / ios 上(参看 http://www.cocos2d-x.org/wiki/Engine_Architecture
    wobuhuicode
        32
    wobuhuicode  
       2016-06-15 12:58:47 +08:00
    cocos2d ~入门必做游戏 flappy bird 。这个游戏做起来简单学到东西也不少。鸟和管道碰撞检测(以后很多游戏会用到)和管道回收和复用(优化游戏性能需用)。鸟的飞行和下落(两种动画模式)等等。这些都是基本!
    wuyuchenshishabi
        33
    wuyuchenshishabi  
       2016-06-15 14:17:08 +08:00
    看了楼上一大半跑出来不懂装懂和装逼的。
    您如果想做个简单的游戏建议使用 iOS 自带的 Sprite Kit.很方便,
    mingming
        34
    mingming  
       2016-06-15 16:00:22 +08:00
    目前在做 iOS 开发,也想接触一下游戏,在学 Lua love2d 这个框架。所以我建议你不如先学习一下简单的 2d 框架。
    youxiachai
        35
    youxiachai  
       2016-06-15 16:24:39 +08:00
    @mingming 我去...居然还有人学这个啊...想想..我是 5 年前接触..虽然啥成绩都没...
    mingming
        36
    mingming  
       2016-06-15 16:29:23 +08:00
    @youxiachai 额,所以我还要学么,你想说你是反面例子么。。哈哈
    lizhenda
        37
    lizhenda  
       2016-06-15 16:40:54 +08:00
    u3d 吧
    reasonMix
        38
    reasonMix  
       2016-06-15 19:46:51 +08:00 via iPhone
    要学习 矢量 矩阵 opengl 再看引擎 和语言没啥关系
    Hysteria
        39
    Hysteria  
       2016-06-16 01:56:41 +08:00   1
    @youxiachai
    @mingming 5 年前的 LVE 跟现在的不可同日而语,用 LVE 做点 DEMO 性质的挺好,自己多努点力,多搭建点基础设施,用来生产还是也是没问题的。
    @miaotaizi 撸主要是想转游戏开发的话,还是直接学 cocos2dx 或者 unity 吧,市场需求量大,能找到工作。如果是纯兴趣爱好,其实真的用 Lua 配合 LVE 引擎挺好。
    williamx
        40
    williamx  
       2016-06-16 12:46:20 +08:00
    都说“行百里者半九十”。看完 OC 的基本语法,相当于走了一里。
    miaotaizi
        41
    miaotaizi  
    OP
       2016-06-16 16:20:03 +08:00
    @williamx 那就把剩下的都走完! 我会坚持下去的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1045 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 18:29 PVG 02:29 LAX 11:29 JFK 14:29
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86