喵个咪的博客喵个咪的博客
喵个咪的技术与生活
文章列表
文章分类
文章标签
时间线
喵个咪的技术与生活
文章列表
文章分类
文章标签
时间线
健康养生 2Python编程 5随笔日志 1产品设计 1C++编程 10运维技术 34Flutter编程 12编程技术 67设计模式 1汽车 1Go编程 64架构设计 3游戏开发 13量化开发 6物联网开发 7GoWind风行 41生活杂记 1
Roguelike与Roguelite究竟是什么?

Date: 1/1/2020Category: 游戏开发Tag: Roguelike, Roguelite

如果有留意独立游戏,应该不时会看到「Roguelike」或「Roguelite」等字眼,我们介绍过的独立游戏中亦不乏此类作品。下文会为大家科普「Roguelike」的种种,以后看到游戏介绍中有这些字眼时,便知道是否自己想玩的类型了。

《Rogue》的诞生

原来「Roguelike」并不是一个生字,而是由「Rogue」及「like」两字组成,指的是「像Rogue的游戏」。《Rogue》,全名《Rogue: Exploring the Dungeons of Doom》,是由Michael Toy 和Glenn Wichman开发的地下城冒险游戏,当时两人都是加州大学克鲁兹分校的学生。

升级旧版本的Unity项目

Date: 1/1/2020Category: 游戏开发Tag: Unity

UnityEngine.Application' does not contain a definition for bundleIdentifier'

把 Application.bundleIdentifier修改为Application.identifier。

升级粒子系统

Unity2018.2.x之后,旧版 Particle System 相关API就完全移除掉了,这个升级器是Unity官方发布的,它可以ParticleEmitter, ParticleAnimator, ParticleRenderer等组件转换为ParticleSystem 和 ParticleSystemRenderer组件。

Unity AssetBundle文件

Date: 1/1/2020Category: 游戏开发Tag: Unity

什么是AssetBundle

AssetBundle 为资源的集合,可包含贴图(Textures),材质(Materials),声音(Audio),动画资源(Animation Clips & Animator controllers),文字(Text assets),甚至场景(Scenes) 等各式资源,允许游戏在运行时向远端服务器(Remote server),要求载入AssetBundle 并且使用里头的资源。

因此可以利用AssetBundle 功能来制作关卡更新资源包,下载新的关卡资源,即是DLC (Downloadable content)。亦可用来更新游戏,例如特殊节庆时,更新游戏贴图材质,让游戏与玩家一同过节。

24款最佳Roguelike游戏

Date: 1/1/2020Category: 游戏开发Tag: Roguelike

roguelike 的魅力在于:重复奖励和诱人的希望,无论是因为你收集的新工具、你开发的新技能,还是你增强的新统计数据,你的下一次运行都会更加成功比最后一次。Roguelike 游戏很难停止,因为通常情况下,你会在某些方面有所进步。

尽管 Roguelike 的流行是最近才出现的现象,但其历史可以追溯到 40 多年前——准确地说,是从 1980 年开始。

尽管如此,Roguelike 游戏直到最近十年左右才进入主流。事实上,它们已经变得如此流行。天哪,2021 年最好的游戏之一是 PlayStation 工作室的 Roguelike 游戏。这导致了市场的某种程度的饱和,通常很难知道数百种游戏中哪一款最适合您。这就是我们进来的地方。

Spine骨骼动画版本降级

Date: 1/1/2020Category: 游戏开发Tag: Spine

下载Skeleton Viewer

下载页面:https://zh.esotericsoftware.com/spine-skeleton-viewer

打开界面

java -jar skeletonViewer.jar
数织 (Nonogram)

Date: 1/1/2020Category: 游戏开发Tag: 数织

什么是数织?

数织是一种逻辑游戏,以猜谜的方式绘画黑白位图。在一个网格中,每一行和列都有一组数,玩家需根据它们来填满或留空格子,最后就可以由此得出一幅图画。例如,“4 8 3”的意思就是指该行或列上有三条独立的线,分别占了4、8和3格,而每条线最少要由一个空格分开。传统上,玩家是以黑色填满格子,和以“×”号标记一定不需要填充的格子。数织是一个NP完全的问题。

数织是在1987年由日本人西尾彻也发明的。数织的日文名称是“お絵かきロジック”,意思是“绘画逻辑”。数织初见于日本的谜题杂志,玩家用纸和笔来玩。随后,任天堂以“Mario's Picross”为名推出了两款Game Boy和九款超级任天堂游戏。现时NDS上亦有名为Picross DS的同款游戏。2015年十二月,任天堂推出了名为“Pokemon Picross”的3DS游戏。

帧同步和状态同步

Date: 1/1/2020Category: 游戏开发Tag: 状态同步, 帧同步

帧同步/锁步同步 (Lockstep Synchronization)

什么是帧同步:帧同步常被RTS(即时战略)游戏常采用。在游戏中同步的是玩家的操作指令,操作指令包含当前的帧索引。一般的流程是客户端上传操作到服务器, 服务器收到后并不计算游戏行为, 而是转发到所有客户端。这里最重要的概念就是 相同的输入 + 相同的时机 = 相同的输出。

实现帧同步的流程一般是:

  1. 同步随机数种子。(一般游戏中都设计随机数的使用, 通过同步随机数种子,可以保持随机数一致性)
  2. 客户端上传操作指令。(指令包括游戏操作和当前帧索引)
  3. 服务器广播所有客户端的操作。(如果没有操作, 也要广播空指令来驱动游戏帧前进)。
游戏的本地化和国际化

Date: 1/1/2020Category: 游戏开发Tag: 本地化, 国际化

有3个专有名词:

  • I18N - 国际化,internationalization,缩写源自于在I和N之间有18个字母。
  • L10N - 本地化,localization,缩写源自于在L和N之间有10个字母。
  • M17N - 多语言化,multilingualization,缩写源自于在M和N之间有17个字母。

国际化 (I18N)

该术语用于设计、分析和采用支持本地市场甚至全球市场多语言的软件。

国际化是指去本地化,移除本地语言写的提示信息,异常信息,区域信息等,采用国际标准或者提取资源。

如何解压Unity WebGL游戏的UnityWebData1.0资源包

Date: 1/1/2020Category: 游戏开发Tag: Unity WebGL

什么是 UnityWebData

UnityWebData 文件是在 WebGL 游戏中与 WebAssembly 文件一起加载和使用的文件,主要是组合所有资产(Asset)、资源(Resource)和元数据(Meta)文件的文件。

UnityWebData

UnityWebData的结构体

本节介绍基于UnityWebData1.0的二进制文件的结构进行介绍。

需要注意:int值必须以Little Endian方式读取。

怎样在MacOS下安装游戏引擎Godot 4

Date: 1/1/2020Category: 游戏开发Tag: MacOS, Godot

在本文中,我将向您展示如何在 Mac 上安装Godot 4 游戏引擎。

在MacOS下面有两种安装途径可供使用:

  1. Godot官网下载软件包安装;
  2. brew安装。

1. Godot官网下载软件包安装

步骤 1. 安装 .Net SDK(可选)

Godot从4.0版本开始支持C#作为其脚本语言。

如果您希望能够使用 C# 编写和构建 Godot 项目,则需要先安装 .Net SDK。

从微软官方下载页面下载并安装:https://dotnet.microsoft.com/zh-cn/download

字体渲染

Date: 1/1/2020Category: 游戏开发Tag: 字体渲染

位图字体(Bitmap Font)

最简单的文本渲染方式是:点阵字体 (Dot-matrix-fonts) 也叫位图字体 (Bitmap-fonts)。

位图字体通过将所需的独特字形光栅化为单个纹理(称为 纹理图集(Texture atlas)),使用的时候再找到对应的字符的 UV,再绘制文本。

位图字体(Bitmap Font)

Cocos Creator问题集

Date: 1/1/2020Category: 游戏开发Tag: Cocos Creator

小程序真机无法显示ttf字体

根据论坛里面说的是,主要的原因是因为字体的font-family名字里面带有空格。

需要使用字体修改工具High-Logic FontCreator来修改font-family名,修改之后,确实生效了。

  1. 打开FontCreator,将ttf文件拖到FontCreator打开。
  2. 菜单项选择:Font -> Properties,打开Font Properties弹窗。
  3. 在弹窗里面看到有几个子标签页,其中Identification标签页里面的 Font Family即为字体的英文名,自行修改成自己需要的值。
  4. 在Custom标签页里面,可以看到列表里面的第一列是语言ID,第二列是Name ID,简体中文系统上,找到行 Chinese-People's Republic of China Font Family,
  5. 繁体中文或者其他语言的系统下,应该是修改对应的行,没有的也可以Add添加新的行,这个我没有测试,猜测是这样。
  6. 修改完毕后点击OK保存。
  7. 菜单项选择:File -> Export Font As... -> Export as Desktop Font(ttf/otf),弹出Export as Desktop Font(ttf/otf)窗口。
  8. 在弹出窗口中将Outline Format项,通过下拉选择TrueType,不建议选CFF(测试时这个选项可能Identification标签页里面字体名不生效)。
  9. 底部三个按钮点击Export即可。最终保存文件窗口自己选择文件格式。
Cococs2dx 瓦片地图

Date: 1/1/2020Category: 游戏开发Tag: Cococs2dx

渲染方式

  • Rectangle/Orthogonal:正交,正常矩形瓦片
  • Isometric:等距瓦片,45度
  • Hexagon:六边形

参考资料

  • Cocos2D-X Tile Map Tutorial: Part 1
  • Cocos2D-X Tile Map Tutorial: Part 2
  • Introduction to Tiled Map Editor: A Platform-Agnostic Tool for Level Maps
  • 笔记:TileMap坐标转换
  • 韩版《传奇2》源码分析与 Unity 重制(四)服务端地图对象管理