Godot开发环境与学习资源
记得第一次听到Godot的名字时还在深圳工作,刚刚接触Unity快一年,只是匆匆在Github上star了,就没有继续了。后面时不时翻开它的Git主页,然而一直没有下载过,每每想看看开源引擎都去看Orge了,但没坚持到开始-_-||。去年年底,老孙雨show了一下Gamejam的成果,全球参与Gamejam的项目中,好像是3000,还是500都是Unity的,老孙雨得意洋洋,看看我们大Unity多V5,UE4虽然紧随其后,但相差起码一个数量级。然而我在other一栏中看到了排在第一位的是Godot,好像是90+,忘了。又再次翻开其Git主页看了看,哦,这个引擎还在,好像还有所发展了哦。
终于,现在进了引擎部,老大在Unity的GC折磨下苦不堪言,甚至祭出了下个项目要用有源码的UE4云云。但考虑到UE4的收费模式和公司一贯作风,我不认为即使公司有次时代需求就会用UE4,Unity也可以做次时代啊,效果不好优化不行别老怪引擎。这时我想起Godot,记得页面上的截图,编辑器还可以,要不试试,自己玩玩,或许有一天能派上用场。好,开始了,先学习Godot的使用,后研读Godot的代码。
主页:https://godotengine.org/
Github:https://github.com/alonecat06/godot
文档:http://docs.godotengine.org/en/latest/index.html
样例项目:https://github.com/godotengine/godot-demo-projects
资源库:https://godotengine.org/asset-library/asset
一开始从主页上下载了引擎的可执行文件,就一个exe,非常简洁。接着上Github,checkout了项目引擎源码,看着没有sln文件,就找文档看如何编译项目,找到Compling >> Compiling for Windows一节看下去。安装文中所述,安装了Python3.7,也要设置好系统环境变量的Path
接着安装Pywin32和SCon,当时遇到多个报错,多次Google后查到,需要
python -m pip install --upgrade pip
pip install -U setuptools
pip install -U wheel
升级Python的部件到最新,才能安装SCon。文档上说Godot通过SCon构建的,而非传统的CMake,开发者们极爱SCon,怎么说也不会换的,哈哈,好有个性。现在SCon好了,开始构建sln。记得必须是要从VS的Developer Command Prompt打开,转到Godot的源码目录,启动Scon才能构建出项目sln并编译出引擎。具体操作可以参考油桶上的这个教程。我只做了前面6分钟,引擎源码项目的sln就构建出来了,或许是开发者后续修复了视频中的问题。想来有时间我还是得在看看这个教程后面说什么了。
引擎源码编译成功,看者编译里面既然有bullet,嗯,源码确实值得一学。
源码先放放,先了解一下引擎的基本使用,一开始我还是沿着文档,一点一点往下看,先看看引擎的流程,从Project workflow开始。不过看下来有点乏味,后面再油桶找到了一些教程
http://www.gamefromscratch.com/page/Godot-3-Tutorial-Series-Index.aspx
http://www.gamefromscratch.com/page/Godot-Game-Engine-tutorial-series.aspx
教程有个问题是都主要专注在2d方面,我又在Godot的主页上翻了一下,发现还有个资源库和样例项目。打算先看完教程,对Godot的操作有大致了解,然后看文档和摆弄样例项目,去做3d方面的研究。之前与德立交流过,他说Godot没有prefab,但我看教程后,觉得Godot里面的scene就是prefab,当然功能有待加强。现在弄下来,比较大的一个问题是Godot不支持FBX,只支持DAE(Collada),这样的话我可以用的资源就比较少。尝试过使用Blender作为中间转化,试了两个模型,不成功,用自动桌子的FBX Converter,一个模型成功导入引擎,但在Blender还是不对。文档上说fbx格式有挺多现在,不打算原生支持,计划通插件支持。想着如果这样,可以自己尝试写一下fbx的插件,说不定还能为社区作贡献,开启开源开发的路子呢。
2018.10.14=======================================
发现一个问题,Godot的编译依赖于Python,之前是在外部独立安装了Python的3.7。结果有可能是与QuantOS使用的Anaconda出现了冲突,导致QuantOS启动不了,于是只有卸载了独立安装的Python3.7,尝试使用Anaconda里面的Python。
打开Anaconda相应的env,同样的方式安装pywin32和scons。启动scons,遇到报错:
Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding
网上Google多遍后,发现还是要设置系统的环境变量PYTHONPATH和PYTHONHOME为Anaconda的安装目录(C:\ProgramData\Anaconda3)后,scons能正常运行了。
于是cmd跳到Godot目录,调“scons p=windows vsproj=yes”想编译,结果报错。细看log,怎么会认为是arm平台的呢。原来漏了一步,要调用vcvarsall.bat。于是先调用(vs2015是Mircrosoft Visual Studio 14.0)
%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"" x86_amd64
然后再调用
scons p=windows vsproj=yes
最后scons帮我在Anaconda下编译出Godot了,yeah!
Godot开发环境与学习资源的更多相关文章
- Scala开发环境搭建与资源推荐
Scala开发环境搭建与资源推荐 本文介绍了Scala的开发环境,包括SDK.IDE的设置.常用资源列表等.Scala是一门静态语言,很有可能就是Java的继承者. AD: 2014WOT全球软件技术 ...
- JAVA入门(1.JAVA平台应用 2.核心概念:JVM,JDK,JRE 3.搭建JAVA开发环境 4.学习JAVA的原则)
主要内容: 1.JAVA平台应用 2.核心概念:JVM,JDK,JRE 3.搭建JAVA开发环境 4.学习JAVA的原则 JAVA的平台应用 JAVA的平台应用分为3个部分: 一.JAVA SE,主要 ...
- VB6.0编程笔记——(2)开发环境准备&学习前导入
工欲善其事必先利其器,着手开始学习写代码之前,我们需要先准备好需要用到的工具.这篇文章会教大家部署好环境,同时会告知前期我们需要知道的一点内容(可以不用特别理解,只要记住用法就行,后续会深入展开介绍) ...
- Android开发学习总结——搭建最新版本的Android开发环境
原文出自:https://www.cnblogs.com/xdp-gacl/p/4322165.html#undefined 最近由于工作中要负责开发一款Android的App,之前都是做JavaWe ...
- Android开发学习总结(一)——搭建最新版本的Android开发环境
Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...
- 【转】Android开发学习总结(一)——搭建最新版本的Android开发环境
最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1. ...
- 第二章 Odoo 12开发之开发环境准备
在更深入了解 Odoo 开发之前,我们应配置好开发环境并学习相关的基础管理任务.本文中,我们将学习创建 Odoo 应用所需用到的工具和环境配置.这里采用 Ubuntu 系统来作为开发服务器实例的主机, ...
- Windows下配置Java开发环境
学习Java第一步是配置本地开发环境,学习最基本的桌面开发,下面以win7为例配置Java开发环境,即:JDK+JRE+Eclipse,安装JDK的时候会默认安装JRE,根据提示安装就可以了. 首先去 ...
- Android开发环境搭建相关文章列表(转载)
Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1, ...
随机推荐
- ecplice中去掉提示信息的步骤
Window-->preferences-->Java-->Editor-->Hovers-->将Combined Hover前面的对勾去掉-->ok.
- Spring框架的AOP的底层实现之JDK的动态代理(代码了解,理解原理)
1.创建接口UserDao: package com.huida.demo1; public interface UserDao { public void save(); public void u ...
- Scrum使用心得 【转】
原文链接: http://blog.sina.com.cn/s/blog_58db96bc0100ymuk.html 1 Scrum管理模式和传统管理模式的区别 这些管理模式本质上目的相同: ...
- MySql的数据分页的Sql
一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的 ...
- 配置springMVC
1.web.xml 前端控制器 配置规则:*.do: 拦截请求路径所有的后缀为.do;/* : 拦截所有, .jsp页面也会拦截; 不会使用此配置, 因为视图会无法跳转;/ : 拦截所有, .jsp页 ...
- doctotext
文档解析库 http://www.it610.com/article/1936051.htm
- 深入应用c++11 随书代码
代码并未在作者github上提供 将书中代码敲至vc 并调试运行 依赖BOOST库 编译环境vs2015 boost1.59 // Client.cpp : 定义控制台应用程序的入口点. // #in ...
- c++11多线程学习笔记之三 condition_variable使用
从windows角度来说,condition_variable类似event. 阻塞等待出发,不过condition_variable可以批量出发. 代码如下: // 1111111.cpp : 定义 ...
- java Exception in thread "main" java.lang.NoClassDefFoundError: main (wrong name: pm/main)
javac main.java 编译后没有问题 java main 出现下面在问题: Exception in thread "main" java.lang.NoClassDef ...
- 2018.10.01 NOIP模拟 卡牌游戏(贪心)
传送门 简单贪心题. 然而考试的时候失了智少讨论了一种情况导致gg. 实际上用到了二分图匹配的思想,L每次找到刚好比当前的牌小一点的出出去,看能匹配几个. 如何处理? 我们先考虑第一种比分策略. 我们 ...