zoukankan      html  css  js  c++  java
  • 游戏开发经常使用算法概述

    游戏开发属于软件开发中的一种。但又是很特殊的一种。

    游戏开发差点儿能够用到软件设计中的不论什么一种算法,不论什么一种设计模式,不论什么一种编程思想,较普通的软件开发,难度相对要大一些。

    游戏差点儿模拟出一个完整的世界。

    以下是我收集的一些经常使用的算法、设计模式及变成思想。欢迎拍砖和补充。


    一 算法


    1 随机数

    经常使用于抽装备,暴击,闪避等

    2 最短路径

    用于地图中寻找到达指定位置的最短路径。dota,LOL中,点击地图上任一可达的点,英雄单位就会找到最短的路径。到达指定点。
    不知道有木有人玩起凡,起凡中的寻路算法就比較坑爹,找的不是最短路径。



    二 设计


    1 观察者模式

    用于对全局数据的监听。但数据改变时。界面做出对应的刷新。

    比如,玩家升级时。玩家的属性界面须要刷新。关卡界面也须要做出对应的刷新,如开启新的关卡等。

    2 有限状态机

    对于游戏中简单的NPC能够用状态机来实现

    3 行为树

    行为树多用于英雄单位,或者敌方单位等有多种复杂行为的单位


    三 思想


    1 MVC

    数据与界面分离。由于游戏的UI一般是须要经过多次的迭代和挑战。假设数据与UI没有分离,每一次挑战修改量就会很大。
    使用MVC思想写出的代码,一般不是太大的修改仅仅须要调整UI部分的代码,而数据部分是不用改的。

    2三层结构

    三层结构结构一般是指的对于数据的操作。是对MVC思想中的M进行了更具体的划分。



    接下来的一段时间。将一一学习上面列举出来的东西。


  • 相关阅读:
    直接插入排序
    简单选择排序
    xml错误: A pseudo attribute name is expecte
    接口, 抽象类
    The hierarchy of the type AudienceAdvice is inconsistent 《spring in action》
    spring配置文件出错解决办法
    Sangfor tester 实习总结
    求一棵树的面积,2014百度开发测试笔试题
    百度2014校招-深圳-开发测试-求最小“不重复数”
    二个数相加,不使用加减乘除
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5080534.html
Copyright © 2011-2022 走看看