pull/2/head
jaysunxiao 2021-10-26 22:19:49 +08:00
parent 916dfb003d
commit 2934f5b86c
1 changed files with 36 additions and 33 deletions

View File

@ -1,52 +1,55 @@
# 为什么选择godot而不选择unity和ue
# 为什么选择godot而不选择cocos, unity, ue
- 比unity简单更加易上手GDScript学起来也比C#简单
- godotcocos, unity, ue简单,更加易上手
```
大部分使用unity的都在和lua做斗争虽然unity官方说的是用C#但是实际上工作用的大部分是luaC#脚本中的脚本比如原神就有用到lua
虽然unity可以把C#编译成二进制,但是使用这种方式也就意味着放弃了热更新
这个利弊对于不同项目不一样需要频繁更新的游戏使用脚本语言更加友好不需要频繁更新的完全使用C#也可以
现在需要频繁更新的功能比如活动在王者荣耀中这些活动大部分都是用h5页面去做了这个只需要JavaScript就可以了比较完美和超前的解决方案
- godot
- godot的源代码比cocos的源代码少一倍所以godot源代码更加的简洁简洁的代码更容易学习底层原理
- cocos主要都用在2D方面2D方面godot支持的更加全面
- GDScript比JavaScript更加简单因为GDScript是定制过后的语言
GDScript兼顾性能的同时还带来比较简洁的语法还可以热更新只需要用一个语言理论上远远比unity简单
```
- godot和unity对比
- unity代码不开源但是即使开源unity的源代码体积绝对大于godot一倍以上
- godot安装包50Munity安装几个g
- 目前2d方面godot优于unity3d方面unity优于godotgodot4.0有望大大缩小和unity的差距
- GDScript学起来也比unity的C#和Lua简单
```
大部分使用unity的开发人员都在使用Lua做开发虽然unity官方说的是用C#但是C#不能热更新所以实际上工作用的大部分使用的是能够热更新的Lua
比如原神就有用到Lua来去做热更新
现在需要频繁更新的功能比如活动在王者荣耀中这些活动大部分都是用h5页面去做了这个只需要JavaScript就可以了比较完美和超前的解决方案
所以unity的语言比较杂用C#LuaJavascript都有可能
GDScript兼顾性能的同时还带来比较简洁的语法还可以热更新。
因为godot只需要用一个GDScript语言所以远远比unity简单
```
- godot和ue对比
- 自主可控(避免被“卡脖子”)从开源软件的角度分析godot是游戏引擎界的Linuxue和unity算是Windows
- ue虽然开源源代码但是代码量太大历史包袱太重不适合深入研究底层代码的人
![Image text](engine-source.PNG)
- godot的作者尽最大努力的减少第三方库的依赖最终使其代码非常精简适合学习
- 源代码开源不收费unity和ue都是要收费的ue超过100万美元触发5%的分成费用
![Image text](apache-license.png)
![Image text](gd-home.JPG)
- godot的源代码比cocos的源代码少一倍简介的代码更容易学习底层原理
```
godot的作者尽最大努力的减少第三方库的依赖最终使其代码非常精简适合学习
unity和ue安装后都得1g以上godot下载包50m就搞定了而且不用安装
ue虽然开源源代码但是代码量太大历史包袱太重不适合深入研究底层代码的人
```
![Image text](engine-source.PNG)
- 自主可控(避免被“卡脖子”)从开源软件的角度分析godot是游戏引擎界的Linux自己能够本地编译godot源代码成就感爆棚
```
使用godot你既可以用GDScript去编写代码也可以用C++去编写代码,还可以去改底层引擎代码
游戏行业到最后都是C++如果想把游戏当作自己的事业那绝对不要满足在脚本上游戏最后的优化都是基于硬件显卡之上的只能用C++
```
- 使用godot你既可以用GDScript去编写代码也可以用C++去编写代码,还可以去改底层引擎代码
- 用godot你能感觉我能把控底层我能把控每一行代码的底层细节这个是程序员的浪漫godot在国外比较火是有原因的
# 为使用godot我应该选择什么语言C# or GDScript
- GDScript比python和lua更加简单
- 快速加载无需编译,无任何等待
- 有内置的高性能类型入Vector更加有效率
- 多线程支持更加友好,其它脚本多线程支持很差
- 直接由godot内置引擎解析
- gd没有gc没有垃圾回收器C#带GC垃圾回收器的语言虽然也是内存安全的但由于GC的存在已与底层无缘
- GDScript快速加载无需编译无任何等待
- GDScript有内置的高性能类型入Vector更加有效率
- GDScript多线程支持更加友好其它脚本多线程支持很差
- GDScript直接由godot内置引擎解析
- GDScript没有gc没有垃圾回收器C#带GC垃圾回收器的语言虽然也是内存安全的但由于GC的存在已与底层无缘
- gds更加简单支持的更加完整而且是脚本可以热更新
- C#很多库用不了有限制如果是为了性能可以在godot中使用C++
- unity在很久之前也同时支持过js和C#最后放弃了js主要是因为unity是mono和C#非常友好
- 通过学习gds也可以学到一些编译原理的知识
- 通过学习GDScript也可以学到一些编译原理的知识
- godot不仅仅是一个游戏引擎而且还是一个优质的学习资源
- C#对于godot来说比较重推荐gds