游戏开发之路(一):游戏开发概述
视频连接:游戏开发入门系列(一):游戏开发概述
这是看了视频以及一个博主的笔记,自己总结的笔记留存使用。
视频梗概(提炼了一些有用的问题)
- 课程的目标是什么?
- 开始游戏开发之路
- 游戏是如何开发的,开发流程是什么?
- 开发游戏需要掌握哪些技术?
- 我们应该如何学习这些技术?
- 要如何学习这一系列的课程?
- 保持对游戏的浓厚兴趣和激情。
- 主动自学所有细节。
- 通过课程了解专业技能概况,掌握学习方法。
- 通过实战磨练和验证学习的成果。
- 学完这一系列课程应该得到什么?
- 一个粗略的游戏开发知识体系。
- 对游戏开发方法,开发流程有了初步的了解。
- 知道自己离真正的游戏开发者的差距,并且知道如何去提高。
- 一堆练习,一堆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;
- 场景进行组织的时候为什么用八叉树,而不是用四叉树)
- 多总结,多思考
- 将自己遇到过的问题总结,方面遇到后再次查阅
- 试着理解自己做的每一个工作对游戏的影响
游戏开发之路(一):游戏开发概述相关推荐
- 【近3万字分享】《Android开发之路——10年老开发精心整理分享》
目录 前言 1 Android开发学习路线 1.1 大神最新总结(推荐直接看这个) 2021 最新Android知识体系 1.2按内容划分 1.3按阶段划分 1.4Android进阶路线(思维导图) ...
- 【毕业生的商业软件开发之路】商业软件开发基础
近期开始接触到在校学生.高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一 ...
- [黑莓开发之路][01][黑莓开发平台介绍][01][概述]
概述 RIM推出新一代BlackBerry智能手机的同时,也重新整合了BlackBerry开发平台,使BlackBerry程序开发不再局限于J2ME程序.简单来说,黑莓开发平台分成三个版块:Black ...
- 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他...
2019独角兽企业重金招聘Python工程师标准>>> <h2 id="toc_0">UnrealEngine 4和Unity3d的选择</h2 ...
- h5builder php,小强的HTML5移动开发之路(49)——HTML5开发神器HBuilder
今天给大家介绍一款开发HTML5的神器--HBuilder. 下载地址:http://www.php.cn/ 一.新建文件 可以看到支持web app开发和普通网站前端开发,我们首先建立一个移动App ...
- unity 角度限制_喵的Unity游戏开发之路 推球:游戏中的物理
前言很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本 ...
- confluence 编辑器这次没有加载_喵的Unity游戏开发之路 - 多场景:场景加载
如果丢失格式.图片或视频,请查看原文:喵的Unity游戏开发之路 - 多场景:场景加载 很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏 ...
- 喵的Unity游戏开发之路 - 推球:游戏中的物理
很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...
- 喵的Unity游戏开发之路 - 玩家控制下的球的滑动
很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...
最新文章
- cassandra mysql_cassandra命令行操作
- 同一接口有多个实现类,怎么来注入一个指定的实现?@Resource、@Autowired、@Qualifier
- pandas python groupby_python – 如何使用pandas groupby汇总多个列?
- __call__方法解析
- 我的angularjs源码学习之旅1——初识angularjs
- 马斯克:特斯拉汽车产量今年有望达到50万辆
- 写程序,流程图很重要!
- xmemecached中的一致性hash算法
- java编写一个web 留言板_Java Web在线留言板
- 计算机网络练习题-1
- 设 l í {a,b,c}* 是满足下述条件的符号串构成的语言,陇东学院《编译原理》练习题及答案...
- XP系统如何禁止别人在电脑上安装程序
- 【转】为什么要使用ModelDriven
- TPC-H测试超详细介绍
- Android实现简单的计算器
- Unrecognized DataType
- SAP删除成本中心组
- 艾默生流量计传感器的调整事项
- Python:键值对
- android-连续播放多个视频,VideoView实现视频无缝连续播放