zoukankan      html  css  js  c++  java
  • 简单游戏引擎开发笔记(一)

    一.游戏引擎简介

    1.概念 

    游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。大部分都支持多种操作系统平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。

    2.著名引擎

    国外著名的MMOG专用商业引擎有:
    EA公司的Frostbite Engine引擎(战地3、战地4、极品飞车18等)
    BigWorld公司的BigWorld引擎。
    Emergent公司的Gamebryo引擎。
    EPIC公司的虚幻引擎、虚幻2引擎、虚幻3引擎、虚幻4引擎。
    Crytek公司的Cry Engine 1引擎、Cry Engine 2引擎和Cry Engine 3引擎。(孤岛危机系列、战争前线等)
    Garage Games公司的Torque 3D引擎。
    Hero公司的Hero Engine引擎。
    北京目标软件公司的OverMax引擎。
    Quantumas引擎(国人开发,超越虚幻3)
    EA DICE的寒霜引擎、寒霜2引擎、寒霜3引擎。(战地系列游戏作品就是采用此引擎)
    Valve公司的Source Engine(起源引擎)
    Infinity Ward工作室的IW 引擎。(其中有IW 2.0、IW 3.0、IW 4.0、IW 5.0版本,著名的使命召唤系列游戏作品就是采用此引擎,中文译名无尽引擎)
    幻影游戏引擎(国产,支持PC、IOS、Android的3D和2D游戏开发,也可以支持Web2D),支持程序语言:C++、Lua、VB、C#、易语言、Objective C、javascript。
    搜狐畅游公司的黑火引擎
    完美世界公司的Athena引擎

    (以上内容复制于百度,大家不要见笑)

    以及近来很火的unity3d和cocos2d-x。

    3.关于游戏引擎开发

    个人认为游戏引擎开发相对于其他方面的开发而言相对门槛较高,而且涉及的知识面较宽。首先说编程语言的选择吧,我个人比较推荐C++。为什么呢?第一,是因为C++的速度比较快,毕竟游戏对于速度的要求还是比较高的。你也不想你玩游戏的时候,画面一卡一顿的。第二,是因为他面向对象的特性。至于图形库,现在很多游戏引擎选择的图形库为DX或者OPENGL,DX适用用windows平台,而OPENGL则可以跨平台,一般用于移动端。同时游戏引擎对数学也有一定的要求,比如你要开发一个3D引擎,你至少要了解线性代数,知道矩阵变换吧。对于一些物理知识也有要求,比如你模拟一些自然现象,假设模拟物体坠落,你至少要知道自由落体吧(也许这个比如不太恰当吧)。同时算法和数据结构的基础也要扎实,当然这个对于IT的各行各业都是必须的。总之,要学习开发游戏引擎,一门语言,良好的数学与物理基础,算法基础,和学习使用一门图形库是它的基本要求。

    二.我的引擎

    首先,我只是一个普通的大三学生,知识储备和能力都十分有限。做这个游戏引擎一方面是因为自己的爱好,另一方面也想自己写一个稍微大一点的项目来锻炼一下自己。仅此而已。

    1.主要模块

    我的游戏引擎比较简单,主要包含这几个模块:

    a.渲染模块

    这个是引擎之中所有模块之中最重要的部分,因为游戏说到底其实就是在屏幕上面进行绘图,所以这个模块的好坏,直接决定了引擎的质量。

    b.图形界面模块

    这个模块封装实现了一些简单的控制,按钮,背景图,输入框等等。

    c.输入输出模块

    主要用于游戏过程中输入输出的响应与控制。

    d.多媒体模块

    这个模块主要包含了声音与视频的播放。

    e.粒子系统

    f.模型加载

    2.开发环境

    使用DirectX9.0图形库,IDE为VS2012.

    三.关于开发笔记

    由于我最近临近期末,有很多考试,所以说开发笔记的正式更新从1月开始。希望喜欢引擎开发的朋友能和我一起探讨,一起共同进步。

    第一次写博客,很多地方无从下笔,望见谅。

    作者:CodingDream
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    GET与POST类型接口
    sql查询优化 索引优化
    临时表操作
    sqlserver group by 分组使用详解
    js调用正则表达式
    后台对象转JSON字符串传到前台,前台JSON字符串转对象绑定标签赋值
    string 数组转 int 数组
    巧用XML格式数据传入存储过程转成表数据格式
    存储过程规范写法
    WebApi
  • 原文地址:https://www.cnblogs.com/CodingDream/p/3484757.html
Copyright © 2011-2022 走看看