Skip to content

Latest commit

 

History

History
113 lines (103 loc) · 4.87 KB

README.md

File metadata and controls

113 lines (103 loc) · 4.87 KB

Plan of action

  • Setting up project for cross-platform build support
  • Import mesh/textures
  • Rendering in a scene
  • Keyboard & Mouse inputs
  • Window resize
  • Importing c# written fluid-simulation in this engine
  • Migrating 2D spatial hashing
  • Shader pipeline
  • Support for mac
  • Find a way to debug coding after built application
  • Add Proper logging & profiler system
  • Create Basic UI elements like a button and text
  • Documentation & UML Diagrams
  • Auto UML Creator tool
  • Implement ECS
  • Add physics library (jolt / physx / box2d / bullet3) -> physx
  • Add FPS Counter
  • Implementing PhysX (left handed or right handed)
  • Multithreading for rendering and update loop
  • Creating library for performing maths functions
  • Reworking camera system and merging rotations with other objects in game using new custom math library
  • Implement Tracy throughout engine especially for tracking memory allocations
  • Creating vehicle using PhysX
  • Break...
  • Updating bash files for supporting physx on mac and web builds
  • Creating wrapper for switching between different physics engine
  • If simple, add basic light and sky box
  • Position, Scale, Rotation handles after selecting objects
  • Improving current shader pipeline to handle shaders dynamically
  • Create Unique ID generator for items
  • Documenting done items and different approaches and used libraries
  • Researching on auto-build deployment and build status
  • On repo update - auto build emscripten for web and upload
  • Creating support for multi-scene compilation
  • File Manager (Reading from file paths and avoiding enums)
  • Ability to read/write on file for saving import references (instead of hard-coded enums)
  • Create build modes for debug and release
  • Find a way to isolate and build code while developing simulations
  • HTML navigation multi scenes on demand (async download and load scenes)
  • Support for window
  • Create a template for dump-testing shaders
  • Add Unit Testing
  • Dynamic Window Layout & save'n'load
  • Simple tool for importing files like textures/meshes
  • Setting up Vulkan
  • Creating 3D spatial hashing (showcase & in-built)

Build

Folder Structure

Compatibility

  • Unix Console on Mac
  • Mac (x84) (Rosetta)
  • Windows
  • Web

Tools

  • Emscripten
  • OpenGL ES3
    • Mac: OpenGLES/ES2/gl.h
    • Emscripten: GLES2/gl2.h
  • SDL/SDL2 (mac framework) or GLFW
  • Imgui
  • Tracy Profiler

Setup

  • Run project/console/setup.sh to install packages
  • Run project/console/build.sh to build the project (auto runs the executable)
  • Run project/emscripten/build.sh to build the project for web
  • Run project/macos/setup.sh and run Physicat.xcodeproj and hit play button

Issue Links to Query

If emcc on terminal won't work?

Activate PATH and other environment variables in the current terminal $source ./emsdk_env.sh

Shortcuts to note

Mini - TODO

  • Explore what's happening in internal_ptr script with the templates and internal_ptr thing
  • Empty namespaces name declaration & using namespaces vs include headers

References