(一)前言

策划 x 程序 x 抽象 x 复用 x 易用 = 降本增效
公式为什么是乘法而不是加法?

如果是加法,任何一个维度的数据为0时结果可能还是正数;如果是乘法,任何一个维度数据都不能为0否则结果就是0,亦即:缺一不可。

注:

本文所述的策划(主策)、产品(经理)是一个层次的对象,技术包含技术经理范畴,产品和技术词汇含义要联系上下文。

(二)为什么要架构

有很多游戏公司,一个产品上线数据不好之后很快就会裁员或者解散,由于赶时间缺少合理架构与抽象,这个产品的代码就是一堆电子垃圾。

即使是一个成功的游戏,如果代码缺少合理架构与抽象,后续开发和维护时间和人工成本也会很高,会被技术所拖累、甚至拖垮(这就是技术债)。
真正的高手都具备高度抽象能力

高级开发者,能够根据业务的特点,抽象出软件最合理的设计,使得程序具有良好的可读性和扩展性,通常一开始写出的逻辑就为了以后的重用。许多开发框架就是一步步抽象/埋坑/优化而来的[3]。

(三)和谁架构

然而,现实当中,有的产品/策划一意孤行:我就是要这样功能,我就要这样的配置表。

当然,也有的技术在闭门造车,脱离应用环节导致策划使用起来很复杂、麻烦。

我一贯主张:

产品经理和技术经理要头脑风暴和思维碰撞,哪怕打架也要打出共识。如下图1所示:



图1

(四)架构哲学

架构思维:抽象、分层、分治、演化[1]。软件架构设计的核心:抽象与模型、“战略编程”[2]。

架构需要头脑风暴和沟通协调,开始肯定进度缓慢,但后面肯定能追赶上来,而且随着时间推移和演进,它体现的生产力优势越突出。

而没有架构或者架构不好的系统,开始貌似进度快,但是前面欠下的技术债后面都会还回来的。

在脑力劳动范畴的程序开发领域,架构师是思想者,程序员是行动者。舒马赫《解惑》中将科学分为两种:操纵的科学、理解的科学。程序员要体现算法的高超、逻辑的强度(操纵的科学),那么架构师体现什么?

很多人会都说,你有功能我也有,凭什么你做的就是架构而我做的就不是。举个简单的例子,先进武器(操纵的科学)能使战争的胜算一边倒,但是兵法(理解的科学)也可以以少胜多、以弱胜强,如果战力(操纵的科学)相当那么兵法会吊打一切。

所以,架构师是智慧的集成,架构是功能的有机结合(整体统筹),非架构是功能的无机集成(拼凑)。

不要用行动(战术)的勤奋来掩盖思想(战略)的懒惰。



图2

(五)游戏工业化

工业化:降低边际成本、提高生产效率、流水线生产(工序与分工)等等。

游戏工业化:复用、易用、开发流程化.....



图3

(六)工业化动了谁的奶酪

在我初入游戏行业时遇到了几位非常出色的策划大佬,其中一位后来他去一家业内有名的游戏公司推动游戏工业化(非代码架构层面),他美化了过程(但实际过程很曲折),如图4所示。



图4

在代码架构层面我推行游戏工业化之时,在实现图3最底下一层的时候也遇到了同样的问题。

有的公司工业化的目的是降低人工成本(最终裁掉剩余劳动力),有的是为了横向或纵向发现。无论说架构还是说软件工业化,最后都会弱化使用者的技术门槛、降低使用者的技术存在感(这是程序员自豪感的根源),甚至淘汰旧有开发平台的劳动力或者让他们转型(转型是有阵痛的)。

工业化动了谁的奶酪?

(七)志同道合

成就一件事情需要志同道合的集体来完成,工业化之路也不例外:包含产品和技术一起。志同道合:方向一致、同一条道,即时是方向一致、两条平行道路都很难实现既定目标(多数情况下两条竞争赛道的人会互相攻击)。

只有优秀的才能成功架构师,他们有总设计的权利,其他人更多的是执行力的体现。优秀的人有一个特长:

优秀的人发现问题和纠正问题比一般人强。

无论在哪里,追随和服从优秀的人是没有错的的。

远离遇到问题只会逃避、抱怨的人。

(八)相关链接

1、架构思维:抽象、分层、分治、演化

https://www.cnblogs.com/it-rabbit-cyj/p/14887783.html

2、软件架构设计的核心:抽象与模型、“战略编程”

https://cloud.tencent.com/developer/article/2098588

3、真正的高手,都具备高度抽象能力

https://blog.csdn.net/weixin_45719624/article/details/102482305

架构哲学与游戏工业化:策划x程序x抽象x复用x易用=降本增效的更多相关文章

  1. 怎样在SharePoint管理中心检查数据库架构版本号、修补级别和修补程序的常规监控

    怎样在SharePoint管理中心检查数据库架构版本号.修补级别和修补程序的常规监控 准备: 确保你是可以訪问管理中心的场管理员. 開始: 1. 打开管理中心--升级和迁移. 2. 点击"查 ...

  2. Java生鲜电商平台-服务化后的互联网架构实战(针对生鲜电商小程序或者APP)

    Java生鲜电商平台-服务化后的互联网架构实战(针对生鲜电商小程序或者APP) “微服务架构”的话题非常之火,很多朋友都在小窗我,说怎么做服务化?解答“怎么做”之前,先得了解“为什么做”. 画外音:做 ...

  3. Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生

    一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...

  4. 为什么不用C++写游戏(聪明的程序员不用C++折磨自己)(这些工作,QT都替开发者解决了,C++没有根类导致太多的问题,也没有字符串类)

    当今世界上绝大多数游戏都是C++写的,为什么要说不呢? 要做什么?写游戏. 写游戏首先要考虑些什么?做什么样的游戏,图形.音效.游戏逻辑如何实现. 用C++要先考虑什么?定义跨平台数据类型抽象,实现常 ...

  5. 微信小程序全面实战,架构设计 && 躲坑攻略(小程序入门捷径教程)

    最近集中开发了两款微信小程序,分别是好奇心日历(每天一条辞典+一个小投票)和好奇心日报(轻量版),直接上图: Paste_Image.png 本文将结合具体的实战经验,主要介绍微信小程序的基础知识.开 ...

  6. 浅谈全区全服架构的SNS游戏后台

    版权声明:本文由梁本志原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/198 来源:腾云阁 https://www.qclo ...

  7. .NET应用架构设计—工作单位模式(摆脱程序代码的重要思想,反击DDD)

    阅读文件夹: 1.背景介绍 2.过程式代码的真正困境 3.工作单元模式的简单演示样例 4.总结 1.背景介绍 一直都在谈论面向对象开发.可是开发企业应用系统时.使用面向对象开发最大的问题就是在于,多个 ...

  8. 阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?

    工作3—5年后,程序员们的成长将迈入一个全新阶段.这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向. 3—5年程序员的发展和出路在哪里? 是继续做技术人,还是向管理 ...

  9. iPad游戏 Calcculator: The Game 程序自动计算求解方法

    今天在iPad上下了个小游戏,主要是一个计算器的界面,有开始值,目标值,限定步数,以及一些加减乘除,还有作者脑洞想出来的功能键,主要有左移,直接把一个数加到末尾,将其中的某个数改为另一个数等等..玩到 ...

  10. 看完这篇微服务架构设计思想,90%的Java程序员都收藏了

    本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 微服务 软件架构是一个包含各种组织的系统组织, ...

随机推荐

  1. Luogu P9646 SNCPC2019 Paper-cutting 题解 [ 紫 ] [ manacher ] [ 贪心 ] [ 哈希 ] [ BFS ]

    Paper-cutting:思维很好,但代码很构式的 manacher 题. 蒟蒻 2025 年切的第一道题,是个紫,并且基本独立想出的,特此纪念. 判断能否折叠 我们先考虑一部分能折叠需要满足什么条 ...

  2. flutter ios 深色模式下状态栏文字是白色的,白色背景下看不见

    flutter ios 深色模式下状态栏文字是白色的,白色背景下看不见 theme: ThemeData( appBarTheme: const AppBarTheme( systemOverlayS ...

  3. Typecho博客网站底部添加网站已运行时间教程

    样式一: 1. 将代码放入 functions.php 一般在主题根目录:网站 /usr/themes/ 主题 修改一下你自己的网站时间 // 设置时区 date_default_timezone_s ...

  4. PowerShell实现读取照片并做灰度处理

    Powershell一直是我的学习目标.做一个小例子.PowerShell实现读取照片并做灰度处理.还想要保存这张灰度照片并直接打开查看. 分析需求: [读取照片]  需要借助.net framewo ...

  5. Arduino LED流水灯·基础实验

    Arduino初学IO控制,流水灯实验是很好的学习对象.分两个进程学习. 一.假流水灯,即基础效果实现 二.真流水灯,即采用PWM模拟真实流水渐变效果 我们设立5盏灯,正极分别连接数字口(Digita ...

  6. logback-spring.xml 模版

    <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...

  7. linux中如何判断一个rpm是手动安装还是通过yum安装的

    现状 对于一个不熟悉的服务器或者是虽然是自己的服务器,但历史比较久远,对于上面安装了的一些软件包,我们记忆都慢慢模糊了. 我今天遇到一个情况,在安装一个工具x2openEuler时,安装失败,提示依赖 ...

  8. GPU CPU运算时间测试

    GPU CPU运算时间测试 本文主要探讨GPU,CPU在做一些复杂运算的时间测试 实验任务 1.向量加法 两个相同维度的向量a,b做加法,分别测试GPU并行时间(包含数据拷贝时间),CPU串行时间. ...

  9. WEBGL 笔记

    目录 前言 h2 { text-align: center } 前言 WebGL 是一个在浏览器里使用的高效渲染二维和三维图形的 javascript API,于 2006 年起源,该技术基于 Ope ...

  10. BFS 2025/1/16

    BFS Basic 主要特点:空间复杂度较高,基于队列 经常用于求最优解的搜索题 经典模型:连通块,最短迷宫路径,曼哈顿距离 Question 01 [ACP2056 山峰与山谷] 主体是广搜模板 难 ...