Neuron Simulation Engine

Brain Abuse

Advanced simulation engine based on C++ Unified Abstraction Library

Tags
Programming C++ CMake Vulkan OpenCL

Minimal Requirements

  • CPU: Quad Core (Intel Core i7 900 series, AMD Buldozzer series or later)
  • VGA: OpenCL 1.2 and OpenGL 4.4 (core profile) capable with atleast 1GB GDDR5 dedicated memory (Nvidia GeForce 400 series, Nvidia GeForce 500 series, Nvidia GeForce 600 series, Nvidia GeForce 700 series, ATI Radeon HD 5000 series, AMD Radeon HD 6000 Series, AMD Radeon HD 7000 Series or later)
  • Memory: 4GB

Operating System Support

  • Windows XP/Vista/7/8/10
  • GNU/Linux 3.8 or later
  • OpenBSD/FreeBSD
  • OSX
  • iOS
  • Android
  • Playstation 3/4
  • Xbox 360/One
  • Nintendo Wii (U)

Host Architecture Support

  • x86/i386
  • x86_64/amd64
  • ARM
  • ARM64
  • PowerPC
  • Cell

Device Architecture Support

  • Parallella
  • AMD A4 or later
  • AMD GCN 1.0 or later
  • Intel Haswell or later
  • Nvidia Kepler or later

Drivers

  • Nvidia GeForce video cards must have atleast 310 driver version installed (Windows XP/Vista/7/8, Ubuntu Linux 12.04 or later).
  • AMD Radeon HD video cards must have atleast Catalyst 14.12 driver version installed (Windows XP/Vista/7/8, Ubuntu Linux 12.04 or later).

Game Architecture Goals

  • World Simulation - Graphics & Physics -> primary
  • Round Fighting with RPG elements (ex. Mortal Kombat) -> primary
  • First-Person Shooter (ex. Counter-Strike, Battlefield) -> primary
  • Action RPG & Hack’n’Slash (ex. Mass Effect, Path of Exile & Diablo) -> primary
  • Sports (ex. Pro Evolution Soccer, FIFA & NBA 2K)
  • Real-Time Strategy (ex. StarCraft)
  • MMO - (ex. PlanetSide & World of Warcraft) -> still not sure

==== Engine Modules ====

Input Module (Support for different devices) Renderer Module (OpenGL, OpenGLES & Direct3D) Physics Module Audio Module Resource Module Network Module Artificial Intelligence Module Scene Management Module (Updates the renderer according to its module dependancies)

==== Module Plan ====

Input Module:

  • only one thread to decide how to handle and recognize multiple input events

Audio Module:

  • a thead which processes messages and spawns more threads to play audio files in parallel

Network Module:

  • a thread to constantly recieve and send data
  • and a second thead to analyze the data

Renderer Module:

  • a thead for messaging and matrix manipulation; manages more threads depending on the number of visible objects
  • Raster rendering method
  • Raster & Ray-Tracking hybrid rendering method (OpenGL + OpenCL/CUDA)

Resource Modules:

  • only one thread to manage specific resource type (ex. models, audio files, textures, save files, etc.)
  • all resource modules share common encryption/decryption algorithm

Physics Module:

  • a main thread to process messages and environmental laws of physics; manages more threads depending on the number of dynamic objects

Artificial Intelligence Module:

  • a thread to process messages between AI objects; manages more threads depending on the number of AI objects

Scene Management Module:

  • only one thread to construct the whole scene

=====================================

total threads: 9 ensured + extra (depending on module type)