视频连接:游戏开发入门系列(一):游戏开发概述
这是看了视频以及一个博主的笔记,自己总结的笔记留存使用。


视频梗概(提炼了一些有用的问题)

  • 课程的目标是什么?

    • 开始游戏开发之路
  • 游戏是如何开发的,开发流程是什么?
  • 开发游戏需要掌握哪些技术?
  • 我们应该如何学习这些技术?
  • 要如何学习这一系列的课程?
    • 保持对游戏的浓厚兴趣和激情。
    • 主动自学所有细节。
    • 通过课程了解专业技能概况,掌握学习方法。
    • 通过实战磨练和验证学习的成果。
  • 学完这一系列课程应该得到什么?
    • 一个粗略的游戏开发知识体系。
    • 对游戏开发方法,开发流程有了初步的了解。
    • 知道自己离真正的游戏开发者的差距,并且知道如何去提高。
    • 一堆练习,一堆demo和一个自己开发的小游戏
  • 什么需要你自己去巩固学习?
    • 语言的基础
    • 引擎的使用或者IDE的使用
    • 学校里、书本上、课堂上讲的都需要自己巩固
  • 课程中的练习有什么?
    • 课堂练习
    • 课后练习
    • MiniGame

游戏的技术发展(一些经典作品)

  • 原始阶段:pong
  • 红白机:魂斗罗
  • PS、Xbox
  • PC单击游戏:仙剑奇侠传
  • 局域网对战游戏:魔兽1,dota,红警,cs
  • 大型多人游戏:传奇
  • 页游:QQ农场
  • 手游:Angry Bird
  • VR,AR

游戏发展对技术的要求

  • 原始的游戏:编程能力和对游戏的认识
  • 游戏逐渐复杂,需求变多:程序设计能力、脚本编程技术、引擎技术(封装底层)
  • 大型3D游戏:图形图像编程、物理计算技术、动画技术、特效技术、场景及场景管理技术
  • 网络游戏:网络通信技术(例如:TCP和UDP,不丢包技术如何实现)、下载升级技术、同步技术(多人游戏时候如何做到一致)

游戏是如何开发的,游戏开发流程

职业分工

  • 原始阶段,游戏都是一个或者两个人开发的,既做美术,又做程序,同时自己设计游戏。
  • 随着游戏越来越复杂,团队越来越庞大,分工越来越精细,并且各自领域专业性研究更加深入:
    • 策划:主要工作是编写游戏背景故事,制作游戏规则,设计游戏交互环节,计算游戏公式,以及整个游戏世界的一切细节等:剧情、关卡、玩法、数值、系统(商城、好友列表)…
    • 美术:游戏中一些看得见的实物的表现力:模型、特效、动画、场景、UI…
    • 程序:根据策划设定的规则,驱动美术的表现资源,将游戏实实在在实现在电子设备上的人:实现需求、提供团队工具、修复程序中存在的问题、优化基础体验(例如:加载怪物很多的时候,怎么加载;为了避免卡顿,采用什么技术)…
      注:游戏程序员是先是游戏人再是程序员

开发流程

  • 讨论确定游戏基本内容、类型等,进行游戏立项。
  • 游戏程序员构建最基本的游戏框架(单机或网游、平台)(有些非常简单的游戏demo也可以跳过编程,直接使用游戏引擎)
  • 策划对游戏细节进行设计与构建(剧情、玩法、关卡、数值、系统等)
  • 程序、美术、策划三方不断的相互沟通完善游戏内容并不断的测试调优(好的游戏都是改出来的),这里策划还将为程序员留出来的接口做各种配置(由于项目需求变化过于频繁)
  • 游戏内容基本完成后,需要质检人员开始测试,程序员修复Bug
  • 游戏经过一定测试后,发布。同时交由运维人员做基本的维护,发布前期一定有Bug,还需要团队相互配合

简单总结

  • 需求产生
  • 设计选型
  • 程序实现、美术制作、策划配置
  • 循环调优

游戏开发需要哪些技术

  • 作为一个程序员需要的基本素质:包括掌握基本语言编程,深入了解语言特性,了解计算机相关基础,设计模式。
  • 构建一个游戏,需要了解不同平台的相关技术(特别是不同操作系统)。
  • 需要有一定的引擎知识,尽可能熟悉引擎各个功能的使用。
  • 常见的基本技术(lua等)。
  • 随着3D游戏的发展,需要对图形图像知识有一定深度的理解(特别是数学)。
  • 网络游戏需要掌握基本网络基础知识(TCP/IP,Socket,Http),了解同步机制。
  • 动画技术,基本的物理引擎,基本的场景管理技术。
  • AI技术。

游戏程序员负责的内容是什么

  • 实现策划需要(大部分是逻辑需求)
  • 提供内部工具,加快开发。比如当前引擎不支持某种NPC对象的高亮显示,无法拖拽资源到游戏里面等功能,需要程序员提供,提高开发效率。
  • 修复Bug。
  • 优化体验,也就是常说的性能优化,提高帧数,减小内存开销等。

目前规模较大的公司,程序员也分为多种(一般分为逻辑程序员和引擎程序员),完成的内容也有一定差别。
逻辑程序:一般属于频繁与策划沟通,直接对项目进行开发的。
引擎程序:一般是研究引擎功能,优化引擎(提升表现,提高性能等)。


游戏程序员是怎么炼成的

  • 夯实基础(非常重要)

    • 编程基础C/C++,C#,数据结构,算法。
    • 操作系统
    • 网络编程原理
    • 图形学原理
    • 程序设计基础(灵活性、耦合性、稳定性…)
  • 实践!多动手,从小目标到大目标(非常重要)
    • 选择一个游戏引擎,想办法把每个技术运用到实际小的demo中来尝试和理解。
    • 不一次性提出无法完成的大目标、量力而行、逐步完成。
    • 想办法进入业界,在正式项目中吸取经验。
  • 理解原理而不是停留在使用(新手和真正的开发者非常大的差别就在于此)
    • 保持好奇心,了解技术背后的原理(例如:unity3d中update顺序控制问题)
    • 掌握技术的优缺点,而不仅仅知道如何使用(例如:
      • 在技术选型的时候,为什么要选这个技术,而不是另一个;
      • 两个数据结构在什么时候使用更好,为什么?比如List和Vector;
      • 场景进行组织的时候为什么用八叉树,而不是用四叉树)
  • 多总结,多思考
    • 将自己遇到过的问题总结,方面遇到后再次查阅
    • 试着理解自己做的每一个工作对游戏的影响

游戏开发之路(一):游戏开发概述相关推荐

  1. 【近3万字分享】《Android开发之路——10年老开发精心整理分享》

    目录 前言 1 Android开发学习路线 1.1 大神最新总结(推荐直接看这个) 2021 最新Android知识体系 1.2按内容划分 1.3按阶段划分 1.4Android进阶路线(思维导图) ...

  2. 【毕业生的商业软件开发之路】商业软件开发基础

    近期开始接触到在校学生.高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一 ...

  3. [黑莓开发之路][01][黑莓开发平台介绍][01][概述]

    概述 RIM推出新一代BlackBerry智能手机的同时,也重新整合了BlackBerry开发平台,使BlackBerry程序开发不再局限于J2ME程序.简单来说,黑莓开发平台分成三个版块:Black ...

  4. 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他...

    2019独角兽企业重金招聘Python工程师标准>>> <h2 id="toc_0">UnrealEngine 4和Unity3d的选择</h2 ...

  5. h5builder php,小强的HTML5移动开发之路(49)——HTML5开发神器HBuilder

    今天给大家介绍一款开发HTML5的神器--HBuilder. 下载地址:http://www.php.cn/ 一.新建文件 可以看到支持web app开发和普通网站前端开发,我们首先建立一个移动App ...

  6. unity 角度限制_喵的Unity游戏开发之路 推球:游戏中的物理

    前言很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本 ...

  7. confluence 编辑器这次没有加载_喵的Unity游戏开发之路 - 多场景:场景加载

    如果丢失格式.图片或视频,请查看原文:喵的Unity游戏开发之路 - 多场景:场景加载 很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏 ...

  8. 喵的Unity游戏开发之路 - 推球:游戏中的物理

    很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...

  9. 喵的Unity游戏开发之路 - 玩家控制下的球的滑动

    很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...

最新文章

  1. cassandra mysql_cassandra命令行操作
  2. 同一接口有多个实现类,怎么来注入一个指定的实现?@Resource、@Autowired、@Qualifier
  3. pandas python groupby_python – 如何使用pandas groupby汇总多个列?
  4. __call__方法解析
  5. 我的angularjs源码学习之旅1——初识angularjs
  6. 马斯克:特斯拉汽车产量今年有望达到50万辆
  7. 写程序,流程图很重要!
  8. xmemecached中的一致性hash算法
  9. java编写一个web 留言板_Java Web在线留言板
  10. 计算机网络练习题-1
  11. 设 l í {a,b,c}* 是满足下述条件的符号串构成的语言,陇东学院《编译原理》练习题及答案...
  12. XP系统如何禁止别人在电脑上安装程序
  13. 【转】为什么要使用ModelDriven
  14. TPC-H测试超详细介绍
  15. Android实现简单的计算器
  16. Unrecognized DataType
  17. SAP删除成本中心组
  18. 艾默生流量计传感器的调整事项
  19. Python:键值对
  20. android-连续播放多个视频,VideoView实现视频无缝连续播放

热门文章

  1. 数字音乐市场上两大巨头的版权之争
  2. 【NC】NC6系列金额计算处理逻辑剖析
  3. linux直播电视软件下载,PPS网络电视 for Linux - 集P2P直播点播于一身的网络电视
  4. ZZULIOJ1212: 核电站问题
  5. 广域网优化的技术实现和展望
  6. java.beans_javabeans是什么
  7. ERP生产管理软件(针对五金机械行业)
  8. 计算机网络技术 校企合作,计算机网络技术校企合作模式探讨
  9. 如何提高新网站谷歌百度收录量
  10. win7自带一键还原怎么用?