[gdc19]《蜘蛛侠》开发解读(4/4)--研发过程和哲学

2024-02-01 17:50

本文主要是介绍[gdc19]《蜘蛛侠》开发解读(4/4)--研发过程和哲学,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

3A游戏意味着变化

即便是业界老兵insomniac,在制作spiderman的时候,也会出现制作到一半的时候,有非常大的改动。
包括不限于:

  • 物件量和规格大幅度改变:15年到17年,每个tile的物件量和规格都在不停地变化
  • 新的玩法系统:墙上爬行,表演系统,更多更复杂的任务
  • 新的模式:拍照等等

3A游戏意味着什么,意味着你要尽可能的在有限的开发周期里发挥到极限,这里有主观因素和客观因素:

  • 追求&热爱使然:能做3A游戏的团队都是充满追求和热爱的团队,所以自然有更好的想法的时候,会去尽量做
  • 自然的过程:随着迭代的进行,团队对所做的东西又更好的理解,有更多的发现,也有更多的学习,就是会有很多更好的想法,或者发现之前走错路了
  • 市场的竞争:3A我们也可以定位为头部品质,如果发现市场上有更好的出现,那么团队就也要做出相应的调整

所以做好的作品,一方面我们肯定要追求专业,追求想的透彻,计划周密,一方面也要拥抱变化,善于变化。

开发的哲学

  • 尽可能保持简单
  • 依据具体情况设计最优技术解法(tech fits context)
  • 限制美术策划的option,限制workflow,限制dependency
  • 版本要一直可玩
  • 变化剧烈的时候,要设定好目标,坐下来交流,定义什么是完成
    在这里插入图片描述

每个地方都好一点:让人惊讶的结果

其实之前团队看到蜘蛛侠的视频和游戏的时候,最惊讶的就是在曼哈顿中穿梭的画面了:https://www.bilibili.com/video/av58521396
我们一致认为这个是现在在streaming方面做得最好的,也高度怀疑里面使用了什么“黑科技”。
实际出来之后,发现其实就是围绕这个“在曼哈顿里快速穿梭”的主题,在整个游戏系统中(runtime+pipeline)每个地方都做的更好的结果。
也让我们可以重新审视我们做的系统:保持对于系统的控制力,围绕一个主题,每个模块打磨的更好,就可以把游戏带到另外一个层次,嗯,比如说帧数?

个人的共鸣

这里最大的共鸣就是在追求高品质游戏的时候,就是一个不停的变化的过程,在现有的水平上做好计划,做好实现,真的做起来的时候,就发现更多可以做的更好的地方,于是乎就产生了下一阶段要做的事情。
就如在阅读gdc中蜘蛛侠,战神的分享,对比我们自己的代码和技术实现,要做的事情就源源不断了。
走完一个台阶,然后更能看到下一个台阶,项目如此,我们也是如此。
所以何止是拥抱变化,善于变化,很多时候我个人,我们技术团队就是变化本身和变化的发起者。

然后一点经验就是,面对变化,最有力的就是保持控制,尽量压缩项目的复杂度,尽量增强自己的能力,保持沟通,对于任何变化都无往不利了。

这篇关于[gdc19]《蜘蛛侠》开发解读(4/4)--研发过程和哲学的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668002

相关文章

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于