V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
churchill
V2EX  ›  问与答

请教各位大佬,想入门游戏开发有什么好的途径

  •  
  •   churchill · 2021-12-23 13:05:09 +08:00 · 3137 次点击
    这是一个创建于 1070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有点编程基础,目的是自娱自乐,没有靠这个找工作的想法

    有没有什么偏基础的书 /教程之类的,包括怎么设计代码架构,常用的数学 /物理在游戏中的应用

    不是那种 xxx 精通 unity 的

    13 条回复    2021-12-24 13:19:51 +08:00
    israinbow
        1
    israinbow  
       2021-12-23 13:31:14 +08:00
    复现 Minecraft, 很有意思.
    66beta
        2
    66beta  
       2021-12-23 14:05:57 +08:00
    coderluan
        4
    coderluan  
       2021-12-23 15:24:19 +08:00
    想理解设计层面的知识,个人建议,先拿 pygame 开发一遍,再拿 Godot 引擎开发一遍,再拿 Unity 引擎开发一遍,这三种开发的体验是完全不同的,然后再考虑后者是为什么要这么设计又是如何带来提升的,之后按照最复合引擎的方式设计代码结构,当然最后你发现处理的核心还是逻辑,类似于业务开发而不是开发框架,毕竟这就是游戏引擎存着的意义。

    数学物理这个有独立的书,《游戏开发的数学和物理》之类的,买本边学边看就行了,和上面的没啥优先级。
    uiosun
        5
    uiosun  
       2021-12-23 15:40:53 +08:00
    推荐 @israinbow 老哥的推荐,复现 Minecraft 真的是很有意思、很适合入门的。(如果想入 3D 的话)
    churchill
        6
    churchill  
    OP
       2021-12-23 15:59:31 +08:00
    @coderluan 谢谢回复,不过我现在纠结于一些具体的实施细节中很,一些在我看过的书中少有提及的内容。

    比如说 ecs 模式,我可以有 MovementSystem 有 PyhsicSystem ,玩家上下左右我可以放在运动系统里完成,但是射击这个动作呢,多出来一个攻击系统吗。
    比如说写碰撞检测的文章很多,但是少有提到碰撞了之后怎么解决,不同的方向撞到了我怎么重置这些对象的坐标速度等等

    我可以用蛮力搞定这些问题,做出一个完整的小游戏,但直觉告诉我,这样的代码味道是坏的。
    我写的碰撞系统可能换个方式就无效了,用户输入,碰撞检测,物理系统可能纠结在一起。

    不知道我有没有表达清楚我心中所想,也许我要的是某种“最佳实践”?
    churchill
        7
    churchill  
    OP
       2021-12-23 16:02:29 +08:00
    @uiosun 入门造航母,有这能力我也不用发帖了。。。。
    coderluan
        8
    coderluan  
       2021-12-23 16:06:35 +08:00
    @churchill 你说的“最佳实践”大多包含在游戏引擎中,好的游戏引擎就是为了让你少写代码,你要对底层的实现感兴趣,去研究引擎的源码,比如我推荐的 Gogot 就是开源的。
    uiosun
        9
    uiosun  
       2021-12-23 16:11:06 +08:00
    @churchill

    先了解一下 Minecraft Web——最早期的 Minecraft ,当时长期在官网上可免费玩,我们说的复刻,一般是指那个。

    Minecraft 本身已经相对复杂了,所以如果有人说复刻最新版的 MC……建议直接复刻 WOW 、EVE ,对吧兄弟,复刻完了还能拿去卖。

    顺带多嘴一句,请直接使用游戏引擎,没听过让你去实现碰撞的……相关的论文很多,但这就像是“飞行员怎么能不清楚飞机是怎么造出来的呢?”一样滑稽。

    你是飞行员。
    zacksz
        10
    zacksz  
       2021-12-23 16:47:08 +08:00
    @churchill
    > 玩家上下左右我可以放在运动系统里完成,但是射击这个动作呢,多出来一个攻击系统吗。

    是的,多一个攻击系统用来处理各个 Entity 之间的攻击动作

    > 碰撞了之后怎么解决,不同的方向撞到了我怎么重置这些对象的坐标速度等等

    因为那不属于碰撞了。你首先需要一个 Collision resolver ,之后就是 Simulation 系统根据 Resolver 的结果更新位置和速度。

    能上 YouTube 的话推荐这个系列[Game Engine Series](
    &list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT),初期侧重渲染,后来开始引入 ECS 、GUI 、Physics 等各个系统,还在连载中
    ffire
        11
    ffire  
       2021-12-23 17:14:39 +08:00 via iPhone
    @churchill 看起来是业余的兴趣学习。那谨慎建议,别碰什么 ECS ,只会让你的游戏编程复杂度增加。一上来别去管什么架构,都是浮云。试着自己写一个小游戏,别考虑游戏设计,游戏性这些,仅仅是一个游戏即可。
    Rwing
        12
    Rwing  
       2021-12-23 17:19:21 +08:00
    学学 C#基础语法,然后找个 unity 教程,就完事了
    Celebrity
        13
    Celebrity  
       2021-12-24 13:19:51 +08:00 via iPhone   ❤️ 1
    逐梦旅程:Windows 游戏编程从零开始。 游戏入门当然看这本书。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1228 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:10 · PVG 02:10 · LAX 10:10 · JFK 13:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.