91
General Anim8or Forum / Re: WEEHEEEE oh, oh wait its dead, I thought it was dancing (CRE8OR NOTICE)
« on: June 29, 2015, 12:21:57 am »
The engine is divided up into sections which are designed to enable you to do specific things, or to handle specific things for you (so you don't have to go through my pain right now ).
These include:
Audio
-loading and saving
-low latency audio playback (with control over sample rates and buffer sizes)
-Audio manager (which manages long sections of audio to continuously feed
the buffer till that audio is finished)
Rendering
-Primitives
-models (loading and saving, the latter will be implemented later)
-Shading
-lighting
-specific drawing algorithms
-tessellation
-generation functions (eg. random point on triangle function)
-etc
Scripts
-Variable handling (<- realtime creation and destruction, array support will
come later)
-Control handling (loops and functions/sub scripts)
-Wrapping
General functions
-Math stuff
-other simple functions (such as conversions between variable types like string to int and more!)
The scripts will be able to wrap a bunch of functions in the engine to give support for a wider range of functionality; as well the scripts will be able to wrap a lot of C functions directly so that way the user (the one scripting the engine) can access to a lot of functions post compilation and in realtime (in other words the engine reads the scripts version of that function in realtime and calls the compiled version of said function).
You can get a sense for scripting by comparing it to a car.
When you drive a car you are only physically moving the steering wheel and pedals. You don't directly move the pistons and wheels but yet you still have control over where and how fast the car goes. Scripting is like the steering wheel and pedals, much easier to move and steer your car; but you may not have full control over how efficient your engine runs or the max speed of at which it can be. Programing and compiling code is much like the engine and the rest of the car.
The following images illustrate the architecture (more so in this state -> the basic structure) of each section (excluding rendering because at the moment there isn't too much going on there other than some generic opengl calls and some functions I have made, I will be making an rendering manager thingy at some point).
These include:
Audio
-loading and saving
-low latency audio playback (with control over sample rates and buffer sizes)
-Audio manager (which manages long sections of audio to continuously feed
the buffer till that audio is finished)
Rendering
-Primitives
-models (loading and saving, the latter will be implemented later)
-Shading
-lighting
-specific drawing algorithms
-tessellation
-generation functions (eg. random point on triangle function)
-etc
Scripts
-Variable handling (<- realtime creation and destruction, array support will
come later)
-Control handling (loops and functions/sub scripts)
-Wrapping
General functions
-Math stuff
-other simple functions (such as conversions between variable types like string to int and more!)
The scripts will be able to wrap a bunch of functions in the engine to give support for a wider range of functionality; as well the scripts will be able to wrap a lot of C functions directly so that way the user (the one scripting the engine) can access to a lot of functions post compilation and in realtime (in other words the engine reads the scripts version of that function in realtime and calls the compiled version of said function).
You can get a sense for scripting by comparing it to a car.
When you drive a car you are only physically moving the steering wheel and pedals. You don't directly move the pistons and wheels but yet you still have control over where and how fast the car goes. Scripting is like the steering wheel and pedals, much easier to move and steer your car; but you may not have full control over how efficient your engine runs or the max speed of at which it can be. Programing and compiling code is much like the engine and the rest of the car.
The following images illustrate the architecture (more so in this state -> the basic structure) of each section (excluding rendering because at the moment there isn't too much going on there other than some generic opengl calls and some functions I have made, I will be making an rendering manager thingy at some point).