[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

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数