Program/Dev Structure
Data Oriented Programming, Linear Programming
* Structs, routines, subroutines
* Data organized after access
* functions applied to data(The two are separate)
* Main-loop
-> when you need serious speed, used for special cases
This is very interesting, I will check out data-oriented programming, linear programming, call it what you want, eventually.
All old school programming is linear programming with data structures and routines separated.
Object-oriented Programming
* classes, objects and functions
* Data organized after composition
* Functions tied to classes/objects
* Main-loop
-> Best in general for maintainability and readability
You can think of objects as programs as well.
Think for example about html documents, should they be stored with components separate(folder for html, css, javascript)
or as complete documents(each html document has it's own folder with css folder, js folder, graphics folder)
In most cases you want the latter.
Pro-tip:
First think of the data structures you are working with, then start thinking of the functions.
You can think of source code as the recipe and the executable as the finished dish.
Just like you can reverse engineer a dish, you can reverse engineer an executable.
source: 8-bit guy.
Compiled code != unintelligble
I really don't like it when programing tutorials describe compiled code as an incomprehensible mess, it is not.
Your objects are still right there, just in a different format.
Making file formats
Make raw formats first, then compressed versions later
It is no fun working with compressed files first.
raw files are soo much more fun because they are readable and easily editable.
So I have difference-field-format(diff-fields-audio, diff-fields-image, diff-fields-model) = best for storage/compilation
and raw format(raw-model, raw-wave, raw-bitmap) => More fun, editable, playable
Also remember, there is no such thing as lossy compression, the word you are looking for is reduction!
Optimizing
* Instancing
* LODing(without jarring transitions preferably)
* Culling
* Hashing
* Simplifying
Sound Effects
Sound effects are like crack, please do include some.
Meta info on software box
Tested setups: for example, Surface 5 laptop, Dell Precision 360 Professional Workstation Win 2000 Pack 4Pro
Target platform: for example, home PC, gaming PC,
Style: for example, 2000s, realism, toon,
LOD: for example, 1024px/m, 2000qds/md, 2048^2px/md
Ideology: for example socialism
Difference Field Compression
Compression is done using difference fields.
in the file fields of similar values are stored as differences from an absolute, an absolute being anything from a wave to a value to a gradient.
Here AI is particularly useful for identifying fields during compression.
Diff-field compression, cheap to decompress, expensive to compress.
Same amount of information in smaller space = compression.
smaller amount of information = reduction.
Solid-Field Compression
Means you mark a field as being one value.