diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-13 16:42:40 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-13 16:42:40 +0200 |
commit | fea8645802845447a4e03bd40bc481b1bed48f75 (patch) | |
tree | 017b098a7ab3af9ef51f091d843093d22a3a664d | |
parent | 454b9e222473c67d0b3bb6935bf3bfb8d2e2043d (diff) | |
parent | 188fbffafda0942014b12dd2e2313ad139bcd1cc (diff) |
merge WIP research (update time.txt)
-rw-r--r-- | makefile | 1 | ||||
-rw-r--r-- | research.tex | 62 | ||||
-rw-r--r-- | time.txt | 4 |
3 files changed, 64 insertions, 3 deletions
@@ -1,4 +1,5 @@ all: plan.pdf +all: research.pdf LATEXMKFLAGS += -cd LATEXMKFLAGS += -interaction=nonstopmode diff --git a/research.tex b/research.tex index 1d44c92..ad33d10 100644 --- a/research.tex +++ b/research.tex @@ -176,14 +176,71 @@ for audio some options could be: FMOD, Wwise, or iirKlang \subsection{Conclusion} -\section{Profiling/debugging} +% TODO: this entire section +\section{Profiling and debugging} + +% Which profiling and debugging features are wanted? +% How to provide those profiling and debugging features? +% Can most of the profiling/debugging be handled by external tools? + +% Ideas: +% - flame graph +% - watchtable (combine w/ fps/speed control overlay?) +% - debug printing utility functions \subsection{Introduction} \subsection{Findings} +\subsubsection{Callgrind} + +\begin{comparison} + \pro{Source code does not need to be modified for profiling} + \con{Execution speed is severely impacted} +\end{comparison} + \subsection{Conclusion} +% TODO: this entire section +\section{Audio} + +% should audio research be scoped down to SDL2 (if that's what we're going with) or +% standalone libraries only (for modularity?). + +The game engine is required to have an audio system with support for playing multiple +audio streams (i.e.~tracks or samples) simultaniously. Since writing a custom live +audio mixing engine is outside the scope of this project, this section compares +various standalone audio engines that could be used in the engine. + +% TODO: requirements first! + +% REQ ~ is cross-platform +% REQ ~ supports multiple audio formats (TODO: which) +% REQ ~ supports simultanious playback / mixing +% REQ ~ has an open-source license +\begin{table} + \centering + \begin{tabular}{llc} + \toprule + \textbf{Library} & \textbf{License} & \textbf{API}\\ + \midrule + miniaudio & MIT-0 & C\\ + YSE & EPL & C++\\ + SoLoud & Zlip/LibPng & C++\\ + \bottomrule + \end{tabular} + \caption{Audio engine library comparison} + \label{tab:audio-engines} +\end{table} +% TODO: ref https://miniaud.io/ +% TODO: ref https://www.attr-x.net/yse/ + +Not considered further: +\begin{description} + \item[FMOD] is proprietary + \item[PortAudio] requires manual mixing +\end{description} + \section{Physics} \subsection{Introduction} @@ -199,6 +256,7 @@ for audio some options could be: FMOD, Wwise, or iirKlang \subsection{Findings} \subsection{Conclusion} + \section{Audio} \subsection{Introduction} @@ -259,6 +317,4 @@ can not have more than one parent. \subsection{Conclusion} -\section{Conclusion} - \end{document} @@ -19,7 +19,11 @@ loek: 2024-09-10 25m briefing :: watch bob videos loek: 2024-09-10 5m docs :: update readme loek: 2024-09-10 12m docs :: add comparison package and more example latex code loek: 2024-09-10 30m project meeting +loek: 2024-09-11 1h40m research :: profiling and debugging loek: 2024-09-12 15m integration :: PR merge +loek: 2024-09-12 30m research :: audio +loek: 2024-09-13 1h10m project meeting +loek: 2024-09-13 45m integration :: PR merge max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting |