联机射击中开火与命中的RPC同步流程

项目截图1

本文为针对联机射击游戏的实验探索。该项目用 ENetMultiplayerPeer 和 RPC 搭一个主机/客户端射击流程,把开火请求、模拟延迟、服务端计算、命中确认结合,并完整实现了过程可视化。

阅读更多

程序化地形生成与侵蚀模拟

方块地形填充示例

本文我将着重介绍根据柏林噪声程序化生成地图并实现类似我的世界地图的方块填充策略以及通过侵蚀模拟对噪声地形进行更细致的雕刻。

最开始我想学习地形生成的理由很简单,就是复刻一个简易的《我的世界》,真正开始探索后问题很快变成了数据组织。地形可以用连续网格展示,也可以离散成方块,还可以交给侵蚀算法改写,每个阶段的表现形式都在变,但万变不离其宗的就是高度数据。

阅读更多

血液喷溅特效模拟

复刻的血液喷溅效果图

这篇文章旨在我对于《武士零》血液特效的细节探索。项目从角色受击生成血液贴花继续推进,重点在受击方向、喷射节奏、血滴飞行、溶解、落点贴花和场景材质融合。

迭代到当前版本时,我觉得血滴飞出去以后要有重量感,消失时不能像突然删节点,落到场景里的痕迹要和背景有关系,多个血迹还要能各自保存喷射方向。

阅读更多

蒙版生成地图碰撞与分层状态机

游戏截图1

本篇记录的是一个类 Celeste 平台跳跃 Demo 的工程拆分。项目里我把地图表现和地图碰撞拆成两份资源: PNG 负责显示,BMP 蒙版负责生成碰撞;将角色跳跃、下蹲、冲刺、蹬墙和抓墙交给分层状态机处理。

阅读更多

自制ECS库-MyECS

0.前言

因受到entt启发,以学习为目的,我仿照entt制作了一个纯头文件ecs库,目前许多功能还在实验中。其大部分接口与逻辑与entt相同,但在底层实现上一些差别。该博客主要是对ECS的介绍,对MyECS库的介绍并附带一些对entt的一些思考之类的。最后本人水平知识有限,请大佬轻喷(doge),非常欢迎大家来交流学习。

github网址 ↓

MyEcs:  https://github.com/Flaaax/MyECS

entt:   https://github.com/skypjack/entt

阅读更多

二面放一起了

杭州一家小公司的两次面试,第一次15分钟就通过,第二次拷打了半小时

阅读更多

让SDL程序不使用控制台

本文以生化危鸡项目为例,展示如何取消掉程序运行后的出现的控制台(通常以黑框的形式出现)。
需要工具:Visual Studio 2022,SDL2。

注意:本文以SDL2作为演示。关于SDL3,参见文末SDL3部分。

阅读更多

EasyX图片处理

1.图片处理函数

1
2
3
4
5
void Resize(
IMAGE* pImg,
int width,
int height
);

参数

pImg

指定要调整尺寸的绘图设备。如果为 NULL,则表示默认绘图窗口。

width

指定绘图设备的宽度。

height

指定绘图设备的高度。

阅读更多

四叉树学习笔记

什么是四叉树,我们为什么使用它

在游戏开发的背景下,我们经常会遇到需要检测两个对象是否发生碰撞的情况。通过实现四叉树,我们可以减少需要检查碰撞的对象数量,只关注同一象限或相邻象限内的对象。

阅读更多