GithubHelp home page GithubHelp logo

ziqirubik / ue4-campus-simulation-demo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kylerlizi/ue4-campus-simulation-demo

0.0 0.0 0.0 29.82 MB

UE 4.22 2人开发一款校园模拟游戏中,使用适合的设计模式,从搭建UE4 C++框架开始。编写部分GamePlay、任务、Npc系统等基类。创建对话音波、任务处理组件,实现了不同类型的Npc对象,使用行为树、EQS、Detour Crowd AI制作了成型的地铁站行人模拟。

C# 1.08% C++ 98.81% C 0.11%

ue4-campus-simulation-demo's Introduction

UE4-Campus-Simulation-Demo 2019.08-2019.11

2人开发一款校园模拟游戏中,初始场景位于火车站,从搭建C++框架开始。
使用适合的设计模式UE4 C++搭建框架,解决了多人开发时蓝图时不易合并、可扩展性、C++结构清晰效率更高等问题。
目前包含:

  • GamePlay框架
    • GameMode中采用单例模式创建任务、Npc、奇遇事件管理器
    • 对象资源、信息存放使用DataAsset
    • 资源加载方式使用FSoftObjectPtr,防止处理不当,就会在游戏开始时加载全部资源
    • USaveGame实现存档,UGameInstance永远存在,保护存档信息
  • 任务系统
    • 采用观察者模式,使用Delegate广播告知玩家任务状态的改变,UMG更新任务列表
    • 任务对象使用虚函数暴露接口,使任务可自定义接受、进行、完成时的操作
    • 几个简单的任务:等待一段时间、移动到目标点、A处接任务 与B对话完成任务并交任务
    • ……
  • 奇遇系统
    • ……
  • Npc系统
    • 采用工厂模式创建Npc对象,Info Class管理Npc数据结构体
    • 继承UActorComponent创建对话音波组件、任务处理组件,用于扩展不同的Npc功能
    • 播控对话时的Sequence动画
    • 完成了地铁站行人模拟
      • Detour Crowd AI Controller实现人群避障,并修正了转向不平滑问题
      • EQS与情景查询行人随机生成点、销毁点与大厅休息点
      • 寻路网格导航、黑板、行为树自定义任务控制行人运动

CSDN技术分享

行人模拟效果

StrangerSimulate

EQS与行为树

EQS
BehaviorTree

Git协作记录

UploadRecord

ue4-campus-simulation-demo's People

Contributors

kylerlizi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.