刷新
从零开始游戏开发——2.1 向量

博主头像 在介绍向量前,首先要介绍下坐标系统,因为向量是依赖于坐标系统的,最常用的是笛卡尔直角坐标系。坐标系分为左手坐标系和右手坐标系,如下图,当我们使用向量[a,b,c]来做为我们的坐标系时,使用的是右手坐标系,而使用[c,b,a] 做为坐标系时,则使用了左手坐标系统,即两个基向量进行叉乘a x b = c ...

泊松盘采样(Poisson Disk Sampling)生成均匀随机点

博主头像 当需要生成随机点且要求随机点自然均匀的分布时,使用泊松盘采样就较为适合。 但该方法与统计学上的概念关联不大,这个只相当于点在面积上服从泊松分布, 而实现这个结果有很多做法。 最终效果: 圆形为含半径的点,圆形的中心代表生成点 B站有一个不错的搬运教程(Bridson方法): https://www. ...

相机控制, 相机跟随

# 实现的功能 (1) 滚轮拉近, 推远相机(带惯性) (2) 鼠标左键左右,上下转动相机(带惯性) (3) 相机跟随角色 # 待实现功能 (1) 转动相机时,如果相机和跟随角色间出现了障碍物,相机自动拉近 (2) 跟随的角色向左或向右行走时,相机自动缓慢转动 # ground为可行走地面(绿色), ...

3D建模布线技巧

博主头像 一、多边面转四边面 Ⅰ、三边面转四边面 在三边面中间增加一个点。 将这个新增的点分别连向三条边。 Ⅱ、五边面转四边面 选择一条边在上面增加一个点。 将新增的点连向离它最远的顶点。 Ⅲ、六边面转四边面 选择一个顶点,连向离它最远的顶点。 Ⅳ、七边面转四边面 先通过连接间隔三条边的两个顶点,分隔出一个四 ...

A/B测试助力游戏业务增长

博主头像 更多技术交流、求职机会、试用福利,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 中国游戏行业发展现状及挑战 国内市场增长乏力 2021年游戏销售收入2965.13亿元,同比增长6.4%,增速相较于2020年减少近15%。游戏用户规模达6.66亿人,同比增长仅为0.22%。2021年游 ...

从零开始游戏开发——1.2 内存管理

博主头像 软件项目中最为重要的内容之一就是内存管理,游戏开发尤为如此。一款游戏的运行需要占用大量内存资源,特别是移动设备在硬件受限的情况下,如果不能管理好内存,系统很快就会因为内存不足导致程序崩溃。内存管理中最为关心的两类问题是内存泄露和内存碎片问题。使用C++进行开发时,我们new出一个对象后很容易忘记释放 ...

Vector3常用方法

# Vector3.Dot(v1, v2), 向量点乘 (#) 计算公式1: |v1|*|v2|*cos_a, 其中|v1|=根号(x1*x1 + y1*y1 + z1*z1), |v2|=根号(x2*x2 + y2*y2 + z2*z2) (#) 计算公式2: x1*x2+y1*y2+z1*z2 ...

游戏架构设计——高性能并行编程

博主头像 这次的主题主要是利用线程级并行减少 CPU-bound,从多线程的角度出发 CPU-bound 与 memory-bound float 类型的计算类耗时: 1次float乘法 ≈ 1次float减法 ≈ 1次float加法≈ 4次float加法(SIMD优化成功)≈ 32次float加法(CPU有 ...

使用C#和MonoGame开发俄罗斯方块游戏

博主头像 小的时候就看到有同学使用C语言在DOS下做过一款俄罗斯方块的游戏,当时是启用了DOS的图形化模式,感觉也挺有意思。最近上海疫情封控在家,周末也稍微有点空余时间,于是使用Visual Studio 2019,C# 9.0配合MonoGame 3.8,自己也写了一个俄罗斯方块的游戏,效果如下: 当然,光 ...

The Bevy Book - 1.介绍

博主头像 介绍 如果您来到这里是因为想学习如何使用Bevy制作2D/3D游戏,可视化用户界面或其他图形应用程序...您来对地方了!如果没有,无论如何都要坚持下去。我保证这会很有趣。 Bevy在英语里是一群鸟的意思! 但Bevy在这里是一个Rust构建的简单数据驱动的游戏引擎。它永远免费和开源的。 Bevy有以 ...

Unity实现UI面板拖拽

博主头像 UI元素可拖动的功能,可以使UI操作更开放,在和3D场景结合密切的UI界面需求更多,依托现在Unity3d的强大的UGUI系统可以很轻松的实现该功能。那么到底是怎么实现的呢?接下来阿然就教你一步步实现。 第一步:新建一个UI画板 然后再建一个空对象ItemBox,空对象下边建一个UI 的Image图 ...

Unity-UGUI-无限循环列表

前言:项目准备新增一个竞技场排行榜,策划规定只显示0-400名的玩家。我一想,生成四百个游戏物体,怕不是得把手机给卡死?回想原来在GitHub上看到过一个实现思路就是无限循环列表,所以就想自己试试。公司用的是NGUI,花了1个多小时还是没做出来,但是基本思路有了,又到了下班时间,不想赖在公司怕带坏了 ...

DirectX11--CPU与GPU计时器

博主头像 前言 GAMES104的王希说过: 游戏引擎的世界里,它的核心是靠Tick()函数把这个世界驱动起来。 本来单是一个CPU的计时器是不至于为其写一篇博客的,但把GPU计时器功能加上后就不一样了。在这一篇中,我们将讲述如何使用CPU计时器获取帧间隔,以及使用GPU计时器获取GPU中执行一系列指令的间隔 ...

【Unity TIL】Unity 通过 DrawInstance 一次绘制多个实例(三)

游戏开发中,可能会碰到一次绘制多个拥有相同 mesh 的物体,它们可能是位置,旋转等不同,或者是材质的某些参数不同,我们要做的就是配合 Unity 的渲染方式,尽可能地减少绘制的操作。 由于下文主要讨论的是 DrawInstance 和 MaterialPropertyBlock,所以其他的一下影响 ...

Unity实现简单的对象池

博主头像 #一、简介 先说说为什么要使用对象池 在Unity游戏运行时,经常需要生成一些物体,例如子弹、敌人等。虽然Unity中有Instantiate()方法可以使用,但是在某些情况下并不高效。特别是对于那些需要大量生成又需要大量销毁的物体来说,多次重复调用Instantiate()方法和Destory() ...

123···6>