Code Monkey home page Code Monkey logo

dissonanceengine's Introduction

Mirsario's GitHub stats

dissonanceengine's People

Contributors

dual-iron avatar mirsario avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dissonanceengine's Issues

Exception and crash at launch when no audio output present

Hi!
I found a little bit of a problem. When i launch app with no audio output present, i get this exception:

System.Exception
  HResult=0x80131500
  Message = AudioError: InvalidOperation
  Source = DissonanceEngine
  Stack trace:
   at Dissonance.Engine.Audio.AudioEngine.CheckALErrors() in F:\Gaming\AbyssCrusaders\References\ImmersionFramework\Engine\Src\Audio\AudioEngine.cs:line 45
   at Dissonance.Engine.Audio.AudioEngine.Init() in F:\Gaming\AbyssCrusaders\References\ImmersionFramework\Engine\Src\Audio\AudioEngine.cs:line 28
   at Dissonance.Engine.Game.Init() in F:\Gaming\AbyssCrusaders\References\ImmersionFramework\Engine\Src\Core\Game.cs:line 180
   at Dissonance.Engine.Game.Run(GameFlags flags, String[] args) in F:\Gaming\AbyssCrusaders\References\ImmersionFramework\Engine\Src\Core\Game.cs:line 101
   at AbyssCrusaders.Program.RunGame[T](GameFlags flags, String[] args) in F:\Gaming\AbyssCrusaders\Assets\Program.cs:line 22
   at AbyssCrusaders.Program.Main(String[] args) in F:\Gaming\AbyssCrusaders\Assets\Program.cs:line 14

Also, another small problem arises when audio output is detached with no alternatives and connected again. I get this into console(no exceptions arises), and no sound afterwards:
AL lib: (EE) Failed to get padding: 0x88890004

also, my favorite class is the spy.

'glTF' Format Support

Tracking issue for the state of glTF support. Pretty bare-bones so far.

  • Meshes with various primitive types
  • Nodes / Transformations
  • Skinning Data
  • Animations
  • Cameras
  • Images & Textures
  • Lights (KHR_lights_punctual extension)
  • Materials
    • KHR_materials_pbrSpecularGlosiness extension

Implement ECS-friendly GUI

The current (barely existing) GUI implementation is just leftovers from the old Unity-like Entity-Component design, in which every (programmable) component could override an OnGUI method, to then use static immediate GUI rendering methods in there. This is, of course, quite horrible. All the code for that should be removed, and replaced with an ECS-friendly design, in which all GUI will work with the help of specialized components.

Move to Vulkan

There are quite many unsatisfactory points about continued use of OpenGL, especially for a cross-platform engine:

  • OpenGL drivers are generally quite buggy and differ in behavior between driver vendors, with some drivers having breakages, and some drivers having things that shouldn't be working in reality work quite flawlessly, creating a ton of "it works on my machine" scenarios. OpenGL also runs quite poorly on AMD Windows drivers, since, from what I heard, they just made that driver wrap over DirectX's.
    Meanwhile, Vulkan doesn't even leave that much work to the drivers for the drivers to be able to fail as hard.
  • Apple has ceased OpenGL driver development, leaving Mac with already super outdated OpenGL 4.1, that too will disappear in the future. Screw Apple. Because of this, developers can't make use of Compute Shaders (required for implementation of Forward+ rendering pipeline), SPIR-V shader pre-compilation (lets people avoid a ton of GLSL-related driver bugs), and many other features.
    Meanwhile, Vulkan can run on Mac in pretty much full capacity using opens-source MoltenVK project. The OpenGL alternative, MoltenGL, is 100% proprietary.
  • OpenGL is an overly simplified graphics API with a ton of limitations. I would like to look into the possibility of making the engine not have a main thread, but that is counter-productive with OpenGL.
    Meanwhile, this is fully achievable on Vulkan, as proven by idTech 7 (DOOM Eternal.) And they don't even have to deal with binding textures!

Asset Management TODOs

Tracking issue for all things related to asset management.

  • Implement asynchronous asset loading.
  • Ensure all around thread-safety in Assets.
  • Implement ability to reload all present assets, as well as better manipulation over asset sources.
  • Track the last time an asset has been used and safely dispose assets that haven't been used for a while.
  • (Far in future) Staged loading of interlaced textures; Level-of-Detail based staged loading of meshes.

ECS To-Dos

The current Message-Entity-Component-System game logic environment is a bit unfinished and experimental. This is a tracking issue for things left to do with it.

  • Easy to use entity template/prefab system.
  • Full control over system ordering.
  • Entity versioning
  • Implement a way to control which systems are autoloaded for which worlds. Currently, all systems are created automatically for all worlds that are instanced. This is not good.
  • Implement world removal... ๐Ÿ—ฟ

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.