[program-l] Re: About Mathematics and Software Development

  • From: "Andy B." <sonfire11@xxxxxxxxx>
  • To: "program-l@xxxxxxxxxxxxx" <program-l@xxxxxxxxxxxxx>
  • Date: Sat, 2 Apr 2016 10:18:51 -0400

Sounds like #5 refers to a 3d graph.

On Apr 2, 2016, at 4:22 AM, Yuma Decaux <jamyad7@xxxxxxxxx> wrote:

Hi,

Please don't take this as a must have set of skills to start coding an audio 
game, and the below is only for a full binaural 3D audio engine with complex 
A.I routines and gaming industry standard patterns for controlling the whole 
system.

The  list of things to have in tow is relatively large but in mathematics 
here is what is regular occurence so far:
1-linear algebra: know your vectors, matrices and euler angles, trigonometry, 
dot and cross products, and the transformations, rotations and scaling of 
all. If you want to be more efficient, know the inverses of matrices, their 
eigan values and vectors, co-variance matrices. These are all used for moving 
your things around the world and A.I routines as well as encoding for 
networking.
2-boolean algebra: Beyond the single true false logic, know your discreet 
propositional maths, rules and laws like deMorgan's, conjunctive and 
disjunctive, commutative, associative etc. They are useful for structuring 
your system properly to guarantee the outcome you are looking for no matter 
the arbitrary value input into a simulation.
3-Modular arithmetic: these are useful tools for encoding your system logic 
into nicely isolated sets for turn based logic. The rules that come with 
modular arithmetic gives you better code than long lists of if else or switch 
statements which a lot of coders unfortunately use.
4-Statistics: most stats based computations are used for A.I routines, when 
you start using rule systems over larger sets of objects, such as divising a 
normal distribution and using randomisers that fall within a standard 
deviation when you apply these rules to a simulation.
5-Graph theory: especially in a 3D audio game, this is very recurrent, so 
knowing the relations between graph types, vertices or nodes and edges and 
how they all interract will be essential to quote visualise your system or 
world so you won't get lost. The audio part will also heavily use graphs for 
connections between input through nodes through filters and finally through 
the main output.

This is pretty much all you will encounter during the process of making a 3D 
audio game. However, there are a few concepts as listed below that you will 
need to know:

1-MVC pattern: Model View Controller pattern is very useful to mutually 
exclude parts of your application, from the data you use and transform 
throughout the game, to the way it interacts, finally going to the view or 
interface which the user will interact with.
2-Entity Component System: This is the standard used by indie and large game 
companies for their games. It allows an easy separation of large sets of 
models without sub classing them and creating dependencies which will make 
your code inefficient. This pattern uses components that can be readily 
attached and detached from entities so that classes can be associated a 
combination of features which are inherent to all entities or unique to 
itself in a dynamic fashion. This system is not only limited to games, and it 
guarantees a set of outcomes if you structure your system, allowing for 
efficient parallelism and asynchronous computations as well as low cache 
misses. I especially recommend the martin ECS which is the most optimised 
albeit most complex system to implement.
3-Fly factory pattern: This design pattern allows you to be efficient with 
caches, basically loading a set of assets once and assigning only references 
or pointers to loaded data instead of loading multiple instances of an 
object. The referencing requires more complexity in the code but the end 
result is having much leaner memory allocation, allowing you to pack in way 
more objects in your scenes without suffering lower framerates.

This is what I have encountered so far omitting details.

Good luck,


On 1/04/2016, at 2:28 AM, Sharon Hooley <shooley42@xxxxxxxxx 
<mailto:shooley42@xxxxxxxxx>> wrote:

Hi,

How much knowledge of mathematics would I need to become a programmer of 
software that doesn't really use it beyond the basic four  operations, 
addition, subtraction, etc?  For example, I'd like to be able to create 
interactive communication software and/or audio games.

Thanks,


Sharon H.** To leave the list, click on the immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe] ;
<mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]>
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx <mailto:program-l-request@xxxxxxxxxxxxx>
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq] ;
<mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]>
** or send a message, to
** program-l-request@xxxxxxxxxxxxx <mailto:program-l-request@xxxxxxxxxxxxx
with the Subject:- faq


Other related posts: