独立游戏开发的 6 个步骤
- 💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】
- 🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址
- 🤟 基于Web端打造的:👉轻量化工具创作平台
- 💅 想寻找共同学习交流,摸鱼划水的小伙伴,请点击【全栈技术交流群】

目录
- 1. 选择一个(小)想法
- 2. 选择引擎或框架
- 非程序员
- 程序员
- 2D 与 3D
- 3. 创建原型
- 4. 寻找资产
- 5. 将其变成一个完整的游戏
- 每次“完成”看起来都不一样
- 真正完成一款游戏的价值
- 6.开始一些新的事物!

独立游戏开发可用的工具和资源比以往任何时候都多。这意味着独立游戏开发者可以制作十年前不可能制作的游戏,但这也可能使入门变得非常困难。
为了让大家走上正确的道路,我将分享一些有用的步骤,如何选择正确的库或框架,以及对于初级游戏开发者来说真正重要的是什么。
1. 选择一个(小)想法
新游戏开发者经常会受到他们喜欢玩的游戏的启发。如果你对《文明》或《星露谷物语》之类的游戏感兴趣,那么你可能想从一开始就深入研究类似的项目。
游戏开发是一项需要不断练习才能成长起来的困难技能。这就像学习钢琴一样——你必须从简单易懂的歌曲开始,然后逐渐扩展到更具挑战性的曲目。
开始学习游戏开发的最佳方式是选择一个简单的想法或类型,然后将其缩小到可玩所需的最核心功能。你想制作一款平台游戏吗?你可能不需要任何敌人、花哨的机制或移动平台。从根本上讲,你所需要的只是简单的玩家移动、跳跃能力和获胜条件。
制作像这样的简单游戏是开始成长的最佳方式。无论游戏有多小,拥有一个完整的游戏都会帮助你保持学习的动力。
2. 选择引擎或框架
下一步是确定你想要使用什么引擎、框架或库。
- 游戏引擎(如 Unity 或 Unreal)通常带有图形界面和大多数内置功能。
- 框架和库通常只是用现有编程语言编写的代码。它们提供了创建游戏和在屏幕上显示内容所需的所有功能,但它们需要更多设置。随着游戏的发展,它们通常缺少一些对更成熟的游戏有用的复杂功能(游戏引擎提供)。另一方面,由于它们更轻量,它们通常可以让你更自由地按照自己的意愿构建代码和游戏。
在尝试选择完美的游戏引擎或框架时,很容易不知所措。我能给出的最好建议是找到让你最专注于游戏开发的选项。
非程序员
如果你没有编程经验,我建议使用 Unity 或 Godot 等引擎。它们通过图形界面提供许多功能,这意味着你无需完全掌握某种编程语言就可以开始制作游戏。你最终仍需要学习如何编码,但引擎会让你在学习过程中更容易做到这一点。
程序员
如果你是一名程序员,我会寻找一个你熟悉的语言的游戏框架。大多数框架都相对容易学习,熟悉这些工具将使你能够专注于学习如何制作游戏。
程序员有时会对使用 GUI 有一种天生的厌恶感,这可能导致他们完全避免使用游戏引擎。这是可以理解的,学习引擎的 UI 无疑是一项艰巨的任务。但从长远来看,使用引擎的好处是巨大的。
我鼓励所有程序员尝试在引擎中制作一款完整的小型游戏。你可能会惊讶地发现你有多喜欢它,以及它有多容易。无论你决定继续使用引擎还是重新使用框架,你都会了解双方的优缺点。
2D 与 3D
顺便说一句,即使你的目标是制作 3D 独立游戏,我也建议在前几款游戏中开始学习 2D。2D 工作更简单,查找或制作资产(如艺术和动画)也容易得多。
你的目标是学习,使用 2D 可以帮助你在开始时更有效地学习。一旦你熟悉了一点,过渡到 3D 就会容易得多。

3. 创建原型
现在是时候开始实际开发了。你的目标是创建一个最小可行产品 (MVP)。删除所有对你的核心机制或想法不必要的功能。现在甚至不必担心艺术或声音;使用基本的方形精灵来制作所有内容(或同样简单的东西)。
这不仅有助于你限制游戏的范围,而且还能提供宝贵的经验,让你学习如何让游戏变得有趣。如果你有一个平台游戏,你所能做的就是移动和跳跃,那么你游戏的乐趣就直接与你的移动和跳跃机制的感觉息息相关。调整跳跃的高度或角色的奔跑速度会对游戏的感觉产生巨大影响。
核心机制始终是游戏趣味性的最大因素。即使是功能非常酷的大型游戏也无法挽救糟糕的核心机制。从简单的原型开始,你可以轻松试验机制并学习如何调整它们以获得最佳体验。
4. 寻找资产
下一步是将图片和声音添加到你的游戏中。如果你对此感兴趣,当然可以尝试自己制作。但对于大多数人来说,最好在网上找到免费资源。itch.io 和 OpenGameArt 等网站有很多很棒的资源。你制作的大多数游戏在早期版本中都会有原型或临时资源,因此学习如何在线查找占位符图像和声音是很好的。
尝试不同的声音和图形。你会注意到,添加真实资产(尤其是声音)会对游戏的感觉产生巨大影响。

5. 将其变成一个完整的游戏
你制作了一款小游戏,游戏机制简单、良好,还带有一些图形和声音,将所有内容整合在一起。现在它真的开始像一款游戏了!制作你的第一款完整独立游戏还有最后一步,我认为这是最重要的一步:实现完整的游戏循环,包括获胜、失败和重新开始。
我再怎么强调这一点也不过分。要想成为一名更优秀的游戏制作者,你能做的最有价值的事情就是完成你的游戏。完成一款游戏并不意味着你再也不会改变它。这意味着完整的游戏就在那里——无论它有多小。你可以赢,可以输,如果愿意的话,可以继续玩它。
每次“完成”看起来都不一样
当然,并非所有游戏都有获胜或失败的条件。例如,有些游戏涉及获得尽可能高的分数,或者尝试看看你能坚持多久。所谓完成游戏,我的意思是实现所有适合你正在制作的特定游戏的总体游戏机制。对于某些人来说,这可能需要主菜单或保存和加载系统。做适合你的游戏的事情,但要小心,不要被你所制作的游戏实际上不必要的功能所诱惑。
真正完成一款游戏的价值
你会惊讶于拥有一款完整的游戏会带来多大的不同。没有什么比拥有可以与他人分享并获得反馈的东西更能激励你了。此外,如果游戏循环已经存在,以后添加功能会容易得多。你已经拥有了完全可测试和可玩的东西,因此更容易看到新添加的内容如何影响现有内容的平衡。
对于大多数刚进入游戏开发领域的人来说,最大的障碍之一就是他们从未学会如何完成一款游戏。习惯于现实地规划项目范围(这样你才有机会完成它们)并推动自己完成整个游戏循环是学习将其作为开发日常工作的重要一步。
6.开始一些新的事物!
恭喜!你已经制作了自己的第一款独立游戏。你不仅制作了它,而且完成了它。你完成了调整核心机制、添加图形和声音等重要资产以及完全实现游戏循环的工作。你已经比大多数想要进入游戏开发领域的人走得更远,并且你获得的经验将继续使你开始的每个新项目都比之前的项目更容易。
现在继续吧!学习制作游戏的最好方法就是制作游戏,无论游戏有多简单或多小。找到你以前没有尝试过的新机制或想法,想出一个使用这些想法的最简单的游戏,然后制作它。随着你继续拓展和尝试新事物,你会越来越熟悉你的工具和制作游戏本身的基础知识。
记住,在制作每款游戏时都要遵循所有这些步骤。如果你继续磨练技能并完成游戏,你很快就会拥有一份令人印象深刻的作品集。你很快就能准备好处理你梦想中的游戏并开始更大的项目。
除了本指南之外,我还制作了专栏来帮助大家使用 JavaScript 创建游戏。如果你希望进一步提高游戏开发技能,我希望你查看这些教程。祝你在游戏开发之旅中好运!
相关文章:
独立游戏开发的 6 个步骤
💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…...
Stable Diffusion AI绘画:从创意词汇到艺术图画的魔法之旅
文章目录 一、Stable Diffusion的工作原理二、从提示词到模型出图的过程三、Stable Diffusion在艺术创作中的应用《Stable Diffusion AI绘画从提示词到模型出图》内容简介作者简介楚天 目录前言/序言本书特色特别提示 获取方式 在科技的飞速发展中,Stable Diffusion…...
使用C++实现高效的套接字连接池
在现代网络应用中,高效管理网络连接是实现高并发和低延迟的重要因素。下面将详细介绍如何使用C实现一个高效的套接字连接池,以便在需要时快速复用连接,从而提高系统性能和资源利用率。 一、什么是连接池? 连接池是一种管理网络连…...
个人百度百科怎么创建
编辑百度词条是一个相对简单的流程,但需要注意的是,并不是所有的词条都可以编辑,部分锁定的词条是无法编辑的,但可以通过官方平台申请解封。以下百科优化网yajje分享是详细的步骤: 注册百度账号 首先,用户…...
Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:潍柴雷沃智慧农业无人驾驶
潍柴雷沃智慧农业科技股份有限公司,是潍柴集团重要的战略业务单元,旗下收获机械、拖拉机等业务连续多年保持行业领先,是国内少数可以为现代农业提供全程机械化整体解决方案的品牌之一。潍柴集团完成对潍柴雷沃智慧农业战略重组后,…...
ICPC训练赛补题集
ICPC训练赛补题集 文章目录 ICPC训练赛补题集D - Fast and Fat (负重越野)I-路径规划G. Inscryption(邪恶铭刻)NEW Houses雪中楼(西安交通大学)L.BracketGenerationE - Checksum D - Fast and Fat (负重越野) 原题链接:原题链接 题意:体重大的背体重小的…...
The First项目报告:解读去中心化衍生品交易所AVEO
2023 年12月8日凌晨,Solana 生态 MEV 基础设施开发商 Jito Labs 开放了 JTO 空投申领窗口,JTO 的价格在开盘短暂震荡后迅速攀高,一度触及 4.94 美元。 JTO 是加密社区这两日关注的热门标的,而在这场讨论中,除 Solana …...
Docker 快速更改容器的重启策略(Restart Policies)以及重启策略详解
目录 1. 使用 docker update 命令2. 在启动容器时指定重启策略3. 在 Docker Compose 文件中指定重启策略4. 总结 官方文档:Start containers automatically 1. 使用 docker update 命令 Docker 提供了 docker update 命令,可以在容器运行时更改其重启策…...
docker 启动关闭,设置仓库地址
1. 配置/etc/docker/daemon.json cat /etc/docker/daemon.json# 内容 {"registry-mirrors": ["https://0nth4654.mirror.aliyuncs.com"],"insecure-registries": ["harbor.domain.io"] }2. 配置systemd启动文件 和方法1配置会有冲突&a…...
二叉树的链式结构实现
前言 该篇是在二叉树介绍及堆-CSDN博客的基础上的。该篇会有点抽象大家要自己多画画图自己感受一下。现在我们开始吧! 在学习二叉树基本操作时,我们需要先有一个现成的二叉树。来方便我们练习。因为现在我们对二叉树的理解也并不是很深入。在这里创建一个…...
MySQL远程连接
文章目录 MySQL远程连接(Linux)一、更改MySQL配置文件二、进入MySQL修改用户表host值三、使用其他电脑即可远程访问数据库MySQL远程连接(Linux)一、修改my.ini中的配置文件二、修改用户权限三、远程连接 MySQL远程连接(Linux) 以下MySQL远程连接:MySQL部署环境为Ubu…...
奔驰大G升级电动踏板效果
奔驰大G车型的升级旋转电动踏板是一项非常实用的功能,它为驾驶者提供了诸多便利和舒适性。以下是关于这一功能的实用性介绍: 便利的上下车体验:旋转电动踏板可以在车辆停稳的情况下自动伸出,为乘客提供便利的上下车体验。特别是对…...
【xilinx】vivado中的xpm_cdc_gray.tcl的用途
背景 【Xilinx】vivado methodology检查中出现的critical Warning-CSDN博客 接上篇文章,在vivado进行 methodology检查时出现了严重警告,顺着指示查到如下一些问题 TIMING #1 Warning An asynchronous set_clock_groups or a set_false path (see con…...
windows中安装zookeeper
https://zhuanlan.zhihu.com/p/692451839 【zookeeper】在Windows上启动zookeeper_windows启动zk-CSDN博客 Index of /apache/zookeeper/zookeeper-3.9.2 Index of /apache/zookeeper/zookeeper-3.9.2 Zookeeper的应用场景 1、配置管理 2、服务注册中心 3、主从协调 4、…...
直接写和放在函数中不同的R语言用法
索引数据框中的某一列 df$A可以索引数据框df中列名为A的列的所有值。那么假如列名是一个R对象怎么做? df <- data.frame(A1:5, B(1:5)*2)df$A## [1] 1 2 3 4 5needed_column A# df$needed_column ? Wrong# 注意是双方括号 df[[needed_column]]## [1] 1 2 3 4…...
《mysql轻松学习·二》
1、创建数据表 contacts:数据表名 auto_increament:自动增长 primary key:主键 engineInnoDB default charsetutf8; 默认字符集utf8,不写就默认utf8 对数据表的操作: alter table 数据表名 add sex varchar(1); //添…...
Swift对比版本号
在 Swift 中比较两个版本号的大小可以使用以下方法: func compareVersions(_ version1: String, _ version2: String) -> ComparisonResult {let v1Components version1.components(separatedBy: ".")let v2Components version2.components(separatedBy: "…...
MySQL数据表的“增删查改“
我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete) 目录 一. "增"(create) 1. 普通新增 2. 指定列新增 3. 一次插入多行 4. 用insert插入时间 5. 小结 二. "查"…...
Github查询语法
转载自link 基础查询结构 一个关键词会匹配文件内容或文件路径。 多个关键词会匹配文件内容,只要包含关键词,就会出现在搜索结果中,不论前后顺序,是否是一个单词(多个关键词之间没有空格)。 还可以使用…...
pqgrid的使用
npm安装pqgrid npm install pqgridf --registryhttps://registry.npmmirror.com npm install jquery-ui --registryhttps://registry.npmmirror.comvue文件 <template><div><div id"grid_json"></div></div> </template><s…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
