【亲测免费】 Defold 游戏引擎使用教程
概览
Defold 是一个免费的游戏开发引擎,支持桌面平台、移动设备以及网页游戏的开发。本教程将深入介绍 defold/defold 开源项目的核心要素,包括其目录结构、启动文件以及配置文件,帮助开发者快速上手。
1. 项目的目录结构及介绍
Defold 的仓库结构精心设计,以支持高效的开发流程。以下是主要目录及其功能简介:
-
build_tools: 包含构建配置和脚本,用于自动化工程的构建过程。 -
ci: 持续集成相关文件,专为 GitHub CI 设计,确保代码质量和持续交付能力。 -
com.dynamo.cr: Bob 引擎部分,Bob 是 Defold 内部使用的资源管理和编译系统。 -
editor: 编辑器的相关源码,提供图形化的游戏开发环境。 -
packages: 外部包和库,这些是Defold默认提供的额外功能组件。 -
scripts: 构建和实用脚本集合,涵盖编译到部署的各种自动化任务。 -
share: 共享资源和工具,比如Waf构建脚本、Valgrind抑制文件等。 -
其他核心文件如
CODE_OF_CONDUCT.md,LICENSE.txt,README.md: 分别定义了贡献者的行为准则、软件许可协议以及项目的快速入门指南。
2. 项目的启动文件介绍
Defold作为一个游戏引擎,并不像传统应用那样有一个单一的“启动文件”。它的启动逻辑分散在编辑器和命令行工具中。对于开发者来说,开始新项目通常是从访问 Defold官网 或通过编辑器启动已有项目。编辑器本身(editor目录下的内容)负责项目的新建和加载过程。在项目级别,.defold/project.lua 文件是关键,它存储项目特定设置和依赖信息,虽然这个并非引擎本身的启动文件,但在项目启动过程中起着至关重要的作用。
3. 项目的配置文件介绍
主要配置文件
-
.defold/editor.conf(位于编辑器源码内):编辑器自身的配置,不直接涉及每个游戏项目,但影响编辑器行为。 -
project.lua:位于每个Defold项目根目录下,是项目的核心配置文件。它定义了项目的元数据(如版本控制信息)、标签、预设的编译目标等。通过这个文件,开发者可以指定游戏的目标平台、资源路径、依赖项等重要配置。 -
.defold/settings(如果存在):这是用户的个人偏好设置,位于本地工作区,不直接参与项目的构建或运行逻辑,更多是个性化的工作环境配置。
环境相关的配置
在构建和发布游戏时,Defold也利用WAF这样的构建系统,相关配置可能散布于build_scripts目录和其他脚本中,它们处理编译选项、优化等级等底层细节,对于高级用户定制构建流程至关重要。
本教程仅提供了对Defold项目结构和关键配置文件的概览。实际开发中,深入了解文档、API参考和社区资源将是不可或缺的一步。开始您的Defold游戏开发之旅,探索无限创意的可能吧!
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0214
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03