-
Stratégies de paris sur les matchs à fort enjeu
Le problème qui fait mal Les gros paris, c’est le cœur qui s’arrête, le cerveau qui brûle. Vous avez repéré le choc du siècle, les enjeux monétaires explosent, et pourtant vos gains restent toujours en dessous des attentes. Le souci principal ? Vous suivez les hype, pas la data. Vous avez envie d’une victoire éclatante, mais…
-
在Cocos中开垦属于你的“Minecraft”
事情是这样的,有个建模师朋友跟我聊天: 朋友:雕地形把颈椎雕坏了,能不能帮我写一个代码自动生成地形?我:可以… 于是有了这篇文章。 今天,就带大家揭秘 “无限地形生成” 的底层技术。 这项技术不仅是《Minecraft》、《Terraria》、《No Man’s Sky》这些大作背后的核心技术之一! 更能让你用几行代码,在 Cocos 中亲手开垦出属于自己的“无限大陆”! 关键技术 —— 噪声 这里说的“噪声”,不是电流里的杂音,而是指一种连续的伪随机函数。 以下是常见的噪声生成函数: Perlin Noise(柏林噪声):经典,很多老游戏用。 Simplex Noise:改进版,性能更好。 OpenSimplex Noise:社区维护的版本,专门解决专利和维度问题。 它们的特点是: 看起来像随机,但其实是连续的。 相邻的输入点,输出不会差太多,像自然界里的山脉、河流一样。 输入坐标可以无限扩展,所以理论上能生成无限地图。 以下是使用柏林噪声和白噪声(纯随机)的对比图,可以看到柏林噪声生成的数值是连续的。 由于本文更关注于噪声的应用,因此关于噪声的原理就不再赘述,大家可以自行了解。 游戏里怎么用? 很多你耳熟能详的游戏,都在背后默默用着这项技术: 游戏名称 类型 噪声应用场景 特点与效果 Minecraft 沙盒建造 地形(平原、山脉、洞穴)、矿脉分布 经典案例,无限方块世界 Terraria 2D 沙盒冒险 地下洞穴系统、地形起伏 横版随机地图,每局不同 No Man’s Sky 太空探索 星球地貌、动植物生态、气候 分形+噪声生成,几乎无限的宇宙 在 Cocos Creator 里实践:用噪声生成地形 光说原理可能有点抽象,咱们直接来点实战。…
-
经典IP焕新!《雷霆战机:集结》研发专访|Created with Cocos
近日,飞行射击(STG)品类再度引爆市场。 经典 IP 《雷霆战机》的回归之作——《雷霆战机:集结》——在上线后迅速发力,于五六月间成功登顶微信小游戏畅销榜! 不止于此,其 iOS 版本也取得了 AppStore 免费榜第二、畅销榜第25名的亮眼成绩。 今天,小编有幸请到了《雷霆战机:集结》的研发商——北京轻舟创游,和我们聊聊这款王牌空战游戏背后的故事! Q1:首先请团队介绍一下自己 我们是北京轻舟创游,《雷霆战机:集结》的研发商,成立于2023年10月。 虽然公司很年轻,但我们的创始团队成员已有十多年的合作经历,彼此高度信任、能力互补、协作默契。 我们秉承“游戏创造快乐,热爱成就经典”的理念,致力于打造好玩、创新的全球化游戏。 目前团队规模60人,主攻方向是“操作闯关玩法 + 卡牌/RPG养成”。 Q2:请介绍下《雷霆战机:集结》,它是如何在众多同类游戏中脱颖而出的? 《雷霆战机:集结》是一款经典弹幕飞行射击结合卡牌养成的游戏。 它在复刻2014年《雷霆战机》版本内容的基础上,进行了大幅调整与玩法创新。 首先是独特的科幻黄金时代视觉风格与现代审美的融合,带来了酣畅淋漓且运行流畅的战斗体验。 扎实的打击感、不肝不氪的养成系统,是留住玩家的关键。我们特别控制了付费深度,保证小额付费和免费玩家也能有良好体验。 同时,我们通过持续为玩家减负、简化重复操作,降低‘打工感’,并及时补充乐趣丰富的新玩法,保持游戏的新鲜感。 在长线运营中,团队也始终把握着最核心的游戏体验: 运行流畅、审美在线、设计新颖、不逼氪不骗氪,并密切关注留存、活跃、在线时长等核心数据。 Q3:《雷霆战机:集结》能够取得现在成绩的关键因素有哪些呢? 《雷霆战机:集结》的成功,是多方面因素共同作用的结果。 天时地利: 首先,微信小游戏平台足够成熟,其技术能力满足了飞行射击游戏的高性能需求。 即点即玩的特性和天然的社交分享优势,极大地便利了用户触达和传播。 经典 IP 的强大影响力也吸引了大量高质量的种子用户;同时游戏圈功能完善,可以巩固游戏和核心用户的关联。 产品定位: 游戏本身的弹幕飞行射击玩法,相比时下流行的 RogueLike,反馈更直接,恰好填补了市场的一个空缺。 研发基石: 当然,这一切也离不开高效的研发管线。 Cocos 引擎开发全流程完善的功能,与我们自研的自动化工作流完美结合,极大提高了研发、评审、验收、整合、QA 效率。 Q4:STG游戏对性能和流畅度要求极高。在开发过程中,有没有遇到什么印象深刻的技术挑战? STG 游戏对性能和流畅度要求极高,比如同屏海量弹幕的性能压力、群星意志等华丽战神的渲染压力、大量 C++ 代码移植到 TS,以及 UI 上的透视表现需求等。 逻辑优化上,我们使用了缓存池、碰撞分区等方法;渲染优化上,则采用了图集、分层等方式优化 DrawCall。 在移植方面,我们使用了多种 AI 工具来批量翻译代码。 我们在确保高性能的…
-
TypeScript编码规范
目的与声明 我们的目的是通过统一专业术语、统一规格标准的方式来提高团队整体协作的效率。 我们尊重每个成员的编码习惯,我们只纠正那些容易导致错误的不良习惯。 我们通过技术手段实现统一的编码规范,而非仅仅是口头约定。 我们的编码要求非常宽松,但是对于明显不符合要求的代码将拒绝签入。 编码格式 文件编码 统一使用 UTF-8 无 BOM 格式读写所有代码。 缩进 使用 1 个 TAB(占 4 个空格的宽度)(推荐)、4 个空格或 2 个空格创建缩进。 您在输入缩进时应使用 Tab 键,而不是使用空格键。 您在删除缩进时应使用 Shift+Tab 键,而不是使用退格键。 换行 您应该使用和操作系统相同的换行符。 这意味着您应该在 Windows 上使用 CR(Unicode 13) LF(Unicode 10) 作为换行符, 在 Mac/Linux 上使用 LF(Unicode 10) 作为换行符。 对于生成的代码应该忽略操作系统的区别,始终使用 LF 作为换行符。 在程序中您应该固定使用 ‘n’ 作为换行符。 空格 我们追加空格,可以让代码看起来不那么紧凑,减少阅读者的视觉压力。 代码中只允许使用空格键 (Unicode 32)…
-
AI Agent助力Cocos项目性能暴涨6倍!
最近老菜和圣子将 PC 端 3D 星图应用《Cosmos》 移植到移动端 Native 平台时,遭遇了性能灾难——帧率从 60FPS 暴跌至个位数,画面卡顿几乎无法使用。 面对近万个星体实例、数万条连线和复杂天文计算,移动端不堪重负。这就需要 AI 配合从多维度进行精准优化。 渲染优化 CPU 计算 内存管理等 老菜讲如何分享下使用 Agent 来帮助优化经验和系统性优化,最终实现了从 8FPS 到 60FPS 的性能飞跃。 三角形数从57万降至11万(-80.9%), GFX 纹理内存从305 MB 压缩到65 MB(-78.7%),且视觉效果基本不变。 优化前 优化后 Agent 创建 创建自己的 AI Agent,由多个 MD 文档组成,包括了 Agent 的 System Prompt 和 Agent 的优化案例。 你是一位精通 Cocos Creator 3.8 的高级性能优化专家。擅长使用各类 Profiler 工具进行性能分析和优化代码,重点关注:## 核心优化目标1. 减少函数调用开销 – 合并频繁调用的函数,减少函数调用层级2. 降低运算复杂度 – 简化算法,减少不必要的计算3. 最大化对象复用 – 使用对象池,避免频繁创建销毁对象## 具体优化要求### 1. 函数调用优化- 将高频调用的小函数内联化- 减少…
-
用Cocos实现三国志战略版六边形大地图
引言 传统的正方形网格地图如下图: 鬼武者战略版游戏截图 与许多传统战略游戏使用的正方形网格不同,《三国志战略版》采用了错位的正方形网格,可以理解成六边形网格的变种。 三国志战略版游戏截图 本文将给大家介绍《三国志战略版》中用到的六边形网格地图原理,以及如何在 Cocos Creator 中实现六边形网格地图! 什么是六边形网格地图? 文明6游戏截图 想象一下蜜蜂的蜂巢,或者一些策略游戏的地图,那就是最典型的六边形网格。 它是由正六边形这一种图形,以边对边的方式无缝、无重叠地铺满整个平面。 六边形网格地图有什么特点? 以下是六边形网格地图的主要特点: 方向:比传统的方形网格多2个方向,即6个方向。 距离:一个格子有且只有6个邻居,且中心到所有邻居中心的距离完全相等。 了解特点后,我们一起来看下如何在 Cocos Creator 中实现一个六边形网格地图。 来实现一个六边形网格地图 我们根据以下的步骤一步一步来实现一个2D版本的六边形网格地图: 1. 环境 引擎版本:Cocos Creator 3.8.7 编程语言:TypeScript 2. 资源准备 简单找两个六边形格子分别表示地图格子的不同状态,再找一个其他图片作为主角。 然后将资源放进去项目,并且简单制作一下地图格子的预制体和主角的预制体,方便生成。 3. 编写代码 首先新建一个Main.ts脚本,简单预制一下地图数据用于演示,可以通过配置加载。 其中0=空地,1=障碍物,2=玩家起点 然后绑定一下预制体、图片和切换关卡按钮,以及一些常量的定义。 将脚本拖拽到节点上,然后就可以进行绑定: 然后在start中初始化游戏,以及绑定按钮事件。 点击模拟进入下一关。 其中初始化游戏包括: 清理上一关的内容 获取当前关卡配置数据 创建关卡 创建关卡的关键在于: 1. 格子坐标的计算 偶数行的格子向右偏移1/4个宽度。 2. 格子和主角的创建 instantiate克隆预制体。 addChild添加到游戏世界。 3. 突出主角 为了突出主角,我们给主角加个简单的上下动的tween动画。 4.…
-
App Store Mini App Partner Program 隆重推出
苹果推出了 Mini App Partner Program,进一步扩展 App Store 对那些提供小程序的 App 的持续支持。小程序是使用 HTML5 和 JavaScript 等网页技术构建的独立体验。这项计划旨在帮助那些托管小程序的开发者拓展业务,进一步提升小程序在 App Store 上的销售范围,同时仍提供出色的顾客体验。 参与计划的开发者在销售符合条件的 App 内购买项目时,可享受 15% 的收益抽成减免。要符合享受这一收益抽成减免的条件,参与计划的 App 必须支持某些 App Store 技术,包括 Declared Age Range API 和 Advanced Commerce API,以便为所有年龄段的顾客提供安全流畅的体验。 点击【阅读原文】,获取更多信息。
