https://baijiahao.baidu.com/s?id=1594194162947494181&wfr=spider&for=pc
玩游戏这么简单的事情,是个人都会。三岁孩童都会偷菜,打怪。个人认为玩游戏有两种玩法,“玩好游戏”和“玩转游戏”。玩好游戏这个相信大家都会,只看你玩得多少,凭的是经验,凭的是神操作。
玩转游戏这个就不简单了,相对玩好游戏下的功夫那是要大很多。我说的玩转游戏其实是游戏开发。你玩游戏的同时会不会经常抱怨,能不能设计的更人性话点,能不能再好用点。好吧,你有这种想法我们继续往下侃。
中小型游戏大致可分为网页游戏,flash游戏,小游戏等,基本上都是一些休闲类的傻呆萌的情节和操作,这类游戏开发相对比较简单,会Javascript、HTML、flashcs、Java就可以进行开发了,一个呆萌的情节也是会吸引很多人玩的。
大型游戏一般说的是如比较早的CS、魔兽世界、星际,现在比较流行的CF(穿越火线)、LOL(英雄联盟)、守望先锋、绝地求生等。当然,移动端的“大型游戏”比如还在火热进行中的王者荣耀、荒野行动等。
开发它们肯定不是一个人能完成的,一般的大型游戏开发绝不是用某种语言这么单纯的问题。一个大型游戏的开发需要庞大的团队使用各种各样的语言和工具来完成。
总结一下主要有C/C++,汇编语言,着色器语言,脚本语言,高效的开发语言C#或Java。所以,任何一个大型游戏都不可能只用一种语言去开发。在这里呢,我们强调的是主要语言。
开发游戏我们经常听到的是游戏引擎,一个游戏引擎决定一个游戏最基本的东西操作和效果,那么一般的游戏开发架构从底到顶一般是Direct X(Windows平台)——游戏引擎——游戏。
Direct X可是大名鼎鼎相当于所有显卡的一个统一接口,为游戏提供一个利用硬件渲染的编程模型,但Direct X接口为了追求高性能功能非常简单基本的绘图功能,不利于游戏的高效开发。此时就需要根据游戏特点对其进行适当的取舍和封装,实现一组更高抽象的游戏开发接口和框架,可以理解成游戏引擎中的图形引擎。这部分的开发一般使用的语言是C/C++和少量的汇编语言。
目前,比较主流的游戏开发引擎是Unity3d。比如现在依旧比较火热的王者荣耀、神庙逃亡、穿越火线、全民无双等都是基于Unity3d(m.zz.cnitedu.cn)开发的游戏。技术底层基于Xamarin公司发明的Mono原生编译跨平台技术。Microsoft在2016年2月花了5亿美元将其公司收购,并将Xamarin开源免费,成为了原生编译跨平台App开发的解决方案。
对于游戏开发人员来说,开发大型游戏需要对游戏开发的绝大部分知识都有一定的了解,如果是客户端程序员,基本上需要了解以下知识:图形学,图形API(D3D/OGL),算法/数据结构,物理,游戏逻辑,音乐音效,人工智能,编程语言,设计模式,操作系统,工具编写,UI等。
看来想玩转大型游戏,不只能是有把刷子,得是要好多把刷子。当然,一个人完全负责整个游戏开发是不可能的,看自己擅长什么就负责哪个模块。想进入游戏开发领域工作,可以学编程,学习用Unity3D引擎来进行游戏开发。