aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-09-13 16:42:40 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-09-13 16:42:40 +0200
commitfea8645802845447a4e03bd40bc481b1bed48f75 (patch)
tree017b098a7ab3af9ef51f091d843093d22a3a664d
parent454b9e222473c67d0b3bb6935bf3bfb8d2e2043d (diff)
parent188fbffafda0942014b12dd2e2313ad139bcd1cc (diff)
merge WIP research (update time.txt)
-rw-r--r--makefile1
-rw-r--r--research.tex62
-rw-r--r--time.txt4
3 files changed, 64 insertions, 3 deletions
diff --git a/makefile b/makefile
index 02c583e..15eae95 100644
--- a/makefile
+++ b/makefile
@@ -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}
diff --git a/time.txt b/time.txt
index d25d83b..e345cde 100644
--- a/time.txt
+++ b/time.txt
@@ -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