diff options
| -rw-r--r-- | contributing.md | 2 | ||||
| -rw-r--r-- | design.tex | 44 | ||||
| -rw-r--r-- | notulen/wk1-1.txt | 22 | ||||
| -rw-r--r-- | notulen/wk1-2.txt | 32 | ||||
| -rw-r--r-- | notulen/wk2-1.txt | 41 | ||||
| -rw-r--r-- | notulen/wk2-2.txt | 40 | ||||
| -rw-r--r-- | notulen/wk3-1.txt | 38 | ||||
| -rw-r--r-- | notulen/wk3-2.txt | 43 | ||||
| -rw-r--r-- | notulen/wk4-1.txt | 43 | ||||
| -rw-r--r-- | notulen/wk4-2.txt | 47 | ||||
| -rw-r--r-- | research.tex | 77 | ||||
| -rw-r--r-- | style.md | 3 | ||||
| -rw-r--r-- | time.txt | 28 | 
13 files changed, 457 insertions, 3 deletions
| diff --git a/contributing.md b/contributing.md index 46cfeca..8105e0d 100644 --- a/contributing.md +++ b/contributing.md @@ -7,7 +7,7 @@ other document.  - Indent using tabs  - Wrap long lines at column 80  - ASCII only (LaTeX syntax should be used instead of UTF-8, i.e. `fa\c{c}ade` -  instead of `façade`, `---` instead of `—`) +  instead of `façade`, `---` instead of `—`, `cr\^epe` instead of `crêpe`)  - Images should be placed in the img/ folder  - Labels and bibliography keys should only consist of characters from the    following set: `[a-z0-9:-]` (lower-case, numbers, colon, dash). @@ -3,8 +3,52 @@  \title{Software Design}  \begin{document} +\tablestables +\newpage + +\section{Introduction} + +This document outlines the design and development process of the cr\^epe game engine, +detailing the key decisions made during its creation. The primary goal of this engine +is to offer a streamlined, Unity-like experience tailored for developing 2D games +similar to Jetpack Joyride. + +The cr\^epe engine is designed to ease the transition for developers familiar with +Unity, ensuring minimal friction when switching platforms. Our aim is to preserve +many of Unity’s core features while introducing a lightweight and open-source +alternative, licensed under the MIT License. + +The engine is primarily aimed at indie developers who have prior experience with +Unity and are looking for a flexible, cost-effective solution with familiar +workflows. + +\section{Overview} + +\subsection{Core} + +\subsection{Patterns} + +\section{Design} + +\subsection{Rendering} + +\subsection{Physics} + +\subsection{Scripting} + +\subsection{Audio} + +\subsubsection{Fa\c{c}ade}  \includepumldiag{img/facade-audio.puml} +\subsection{Input} + +\subsection{Physics} + +\section{Tools} + +\section{Conclusion} +  \end{document} diff --git a/notulen/wk1-1.txt b/notulen/wk1-1.txt new file mode 100644 index 0000000..eb48e74 --- /dev/null +++ b/notulen/wk1-1.txt @@ -0,0 +1,22 @@ +	Documents +		Project plan +			Setup project plan +				2 meetings 30 minutes standup + 1 hour discussion +		document standard +			Ask if APA is a requirement. +	Git +		Setup document repo +		Setup code repo +		Setup code standard +	Environments +		Setup environment code +		Setup environment document +	Research +		3rd party tools +			SDL2 +			SFML +		Watch video project introduction unity + + + + diff --git a/notulen/wk1-2.txt b/notulen/wk1-2.txt new file mode 100644 index 0000000..36b3c3f --- /dev/null +++ b/notulen/wk1-2.txt @@ -0,0 +1,32 @@ +	Documents +		Research Document +			Setup research document +		Project plan +			[closed]Setup project plan +				[closed] 2 meetings 30 minutes standup + 1 hour discussion +			Continue adding information to project plan +		document standard +			Add updates when needed +			[closed] Ask if APA is a requirement. (not needed) +	Git +		[closed] Setup document repo +		[closed] Setup code repo +		[closed] Setup code standard +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		[closed]Setup environment code + +		Setup environment document +			issues with windows and linux compatibility latex +	Research +		3rd party tools +			SDL2 +			SFML +		[closed] Watch video project introduction unity +		research unity game engine + + + + diff --git a/notulen/wk2-1.txt b/notulen/wk2-1.txt new file mode 100644 index 0000000..a83e028 --- /dev/null +++ b/notulen/wk2-1.txt @@ -0,0 +1,41 @@ +	Documents +		Research Document +			[closed] Setup research document +		Project plan +			Continue adding information to project plan +			Review document +		document standard +			Add updates when needed +			use autocite for sources +		requirement +			setup requirement document +			add userstories to requirement +		design document +			setup design document +	Git +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		Setup environment document +			issues with windows and linux compatibility latex. (different issue) +	Research +		[closed] 3rd party tools (added to research document) +			SDL2 +			SFML +		research unity game engine (reviewing added information) +		start research gameloop + eventmanager +		start research resource manager +		start research renderer +		start research scripting +		start research debugging/profiling +		start research gameobject +		start research physics +		start research audio +	Design +		discussed class diagram +		Discussion SDL2 and SFML + + + + diff --git a/notulen/wk2-2.txt b/notulen/wk2-2.txt new file mode 100644 index 0000000..2835d9b --- /dev/null +++ b/notulen/wk2-2.txt @@ -0,0 +1,40 @@ +	Documents +		Research Document +			Continue adding research information +		Project plan +			[closed] Continue adding information to project plan +			Review document +		document standard +			Add updates when needed +			[closed] use autocite for sources +		requirement +			[closed] setup requirement document +			[closed] add userstories to requirement +		design document +			[closed] setup design document +	Git +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		Setup environment document +			[closed] issues with windows and linux compatibility latex. +	Research +		[closed] research unity game engine (reviewing added information) +		start research gameloop + eventmanager +		start research resource manager +		start research renderer +		start research scripting +		start research debugging/profiling +		start research gameobject +		start research physics +		start research audio +		start research ecs +	Design +		discussed class diagram +		Discussing validation application +		[closed] Discussion SDL2 and SFML + + + + diff --git a/notulen/wk3-1.txt b/notulen/wk3-1.txt new file mode 100644 index 0000000..5894627 --- /dev/null +++ b/notulen/wk3-1.txt @@ -0,0 +1,38 @@ +	Documents +		Research Document +			Continue adding research information +		Project plan +			Final Review document +		document standard +			Add updates when needed +		requirement +			- +		design document +			- +		no version control +	Git +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		- +	Research +		start research gameloop + eventmanager Starting POC +		start research resource manager POC +		start research renderer +		start research scripting +		start research debugging/profiling +		start research gameobject +		start research physics Starting POC +		start research audio POC +		start research ecs +	Design +		discussed class diagram +		Making first version of class diagram +		Change string from audio and sprint to a instance of an object (resource) +		[closed] Discussing validation application + + + + + diff --git a/notulen/wk3-2.txt b/notulen/wk3-2.txt new file mode 100644 index 0000000..699bd2c --- /dev/null +++ b/notulen/wk3-2.txt @@ -0,0 +1,43 @@ +	Documents +		Research Document +			Continue adding research information +		Project plan +			Final Review document +		document standard +			Add updates when needed +		requirement +			- +		design document +			- +		[closed] no version control +		[closed] Converting meeting nodes +	Git +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		- +	Research +		start research gameloop + eventmanager Starting POC adding to documentation +		start research resource manager POC add to documentation +		start research renderer +		start research scripting +		start research debugging/profiling +		start research gameobject +		start research physics Starting POC +		start research audio finishing POC +		start research ecs +		start research particels +		start research loading level and sprite (visuals) +	Design +		discussed class diagram +		Making first version of class diagram +		[closed] Change string from audio and sprint to a instance of an object (resource) +		[closed] Discussing validation application +	Product +		Creating 3rd party tool facade audio + + + + + diff --git a/notulen/wk4-1.txt b/notulen/wk4-1.txt new file mode 100644 index 0000000..f6d49ce --- /dev/null +++ b/notulen/wk4-1.txt @@ -0,0 +1,43 @@ +	Documents +		Research Document +			Continue adding research information +		Project plan +			[closed] Final Review document +		document standard +			Add updates when needed +		requirement +			- +		design document +			- +	Git +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		- +	Research +		start research gameloop + eventmanager Starting POC adding to documentation +		start research resource manager POC move some functionality +		start research renderer +		start research scripting +		start research debugging/profiling +		start research gameobject +		start research physics Starting POC +			Discussed functional phiscics requirements +		[closed] start research audio finishing POC +		start research ecs (creating POC) +		start research particels +		[closed] start research loading level and sprite (visuals) +	Design +		discussed class diagram +		[closed] Making first version of class diagram +		Adding design audio +		Adding design resource manager + +	Product +		Creating 3rd party tool facade audio + + + + + diff --git a/notulen/wk4-2.txt b/notulen/wk4-2.txt new file mode 100644 index 0000000..2bfbadb --- /dev/null +++ b/notulen/wk4-2.txt @@ -0,0 +1,47 @@ +	Documents +		Research Document +			Continue adding research information +		Project plan +			- +		document standard +			Add updates when needed +		requirement +			- +		design document +			- +	Git +		Code standard +			Add updates when needed +			add doxygen code comments +	Environments +		- +	Research +		[closed] start research gameloop + eventmanager +		start research resource manager POC move some functionality +		start research renderer +		start research scripting +		start research debugging/profiling +		start research gameobject +		start research physics Starting POC +			Discussed functional phiscics requirements +		start research ecs (showed poc design must change asked customer if design can change) +		start research particels +	Design +		discussed class diagram +			one instance of rigidbody and collider +			Gameobject is not the owner of the component but the manager is +			and one component type per gameobject. +			Functions within a model can they change? +		Adding design audio +		Adding design resource manager +		Adding design gameloop + eventmanager +	Product +		Creating 3rd party tool facade audio +		class diagram to c++ will wait until some design changes +	Test +		Add unit test for audio + + + + + diff --git a/research.tex b/research.tex index 5aa7c4f..1b8a5ab 100644 --- a/research.tex +++ b/research.tex @@ -1,6 +1,6 @@  \documentclass{projdoc} -\title{Research document} +\title{Research Document}  \begin{document}  \tablestables @@ -310,6 +310,80 @@ for audio some options could be: FMOD, Wwise, or iirKlang  \subsection{Findings} +\subsection{Unity formats} + +% TODO: +ref (urldate 2024-09-11) +Unity has many different asset file types that can be imported to use for a game +\href{https://docs.unity3d.com/Manual/BuiltInImporters.html}{unity imports}. The most +important formats are the audio, text and sprite formats. + +\subsubsection{Audio} + +% NOTE: multicols to save space (is this list necessary?) +The unity engine supports a lot of different audio formats:\noparbreak +\begin{multicols}{5} +\begin{itemize} +	\item ogg. +	\item aif. +	\item aiff. +	\item flac. +	\item wav. +	\item mp3. +	\item mod. +	\item it. +	\item s3m. +	\item xm. +\end{itemize} +\end{multicols} + +\subsubsection{Sprite formats} + +% NOTE: multicols to save space (is this list necessary?) +Unity supports many different image formats:\noparbreak +\begin{multicols}{5} +\begin{itemize} +	\item jpg. +	\item jpeg. +	\item tif/tiff. +	\item tga. +	\item gif. +	\item png. +	\item psd. +	\item bmp. +	\item iff. +	\item pict. +	\item pic. +	\item pct. +	\item exr. +	\item hdr. +\end{itemize} +\end{multicols} + +\subsection{Audio Format} + +% TODO: +ref (both urldate 2024-09-12) +The choice of audio format for the cr\^epe game engine depends on several factors, +including sound quality, memory usage, and licensing. According to various sources +\href{https://dev.to/tenry/comparison-of-audio-formats-for-games-jak}{comparison audio formats}, +\href{https://www.universityofgames.net/articles/audio-file-formats-used-in-game-development/}{Audio files in games}, +the most commonly used audio formats in game development are WAV, MP3, and Ogg. + +\subsubsection{Licensing} + +Historically, MP3 had patents on the audio format, but these restrictions have +expired. Ogg and FLAC, both developed by Xiph.Org, are open-source formats. +Additionally, the WAV format, though widely used, does not require a specific license +for distribution. + +\subsubsection{Conclusion} + +For the cr\^epe game engine, Ogg and FLAC are the preferred audio formats due to +their open-source licenses and high compatibility. FLAC is ideal for high-quality +audio with minimal compression, while Ogg is better suited for lower-quality audio +that requires reduced memory usage. Both formats come from the same non-profit +organization, Xiph.Org, ensuring that they align with open-source values and +licensing flexibility. +  \subsection{Conclusion}  \section{Rendering} @@ -431,3 +505,4 @@ the most suitable (and only) audio library for use in this project.  \subsection{Conclusion}  \end{document} + @@ -13,6 +13,9 @@ reference.    instead of a slash, etc.)  - Quotes are closed before punctuation marks.  - Do not use contractions, modal adverbs or rhetorical questions. +- The engine is stylized in lowercase, and is just called 'crêpe'. Additional +  words describing what crêpe is (i.e. '(game) engine') should not be +  capitalized, as crêpe is not written like a porper noun.  # References @@ -44,6 +44,12 @@ loek: 2024-09-22 2h15m docs :: research  loek: 2024-09-24 1h45m project meeting  loek: 2024-09-25 3h implementation :: audio facade and API  loek: 2024-09-26 2h project meeting +loek: 2024-09-25 1h20m implementation :: audio facade and API +loek: 2024-09-27 20m PR merge and style guide update +loek: 2024-09-27 55m implementation :: fix library import structure +loek: 2024-09-28 2h20m implementation :: audio facade and API +loek: 2024-09-29 1h55m implementation :: debug logging facilities +loek: 2024-09-29 20m implementation :: audio facade  max: 2024-09-02 1h project kickoff  max: 2024-09-02 45m first project meeting @@ -71,6 +77,13 @@ max: 2024-09-19 45m sixt project meeting (part two)  max: 2024-09-19 20m researching facade design pattern  max: 2024-09-20 1h30m checking PvA (and fixing LaTeX)  max: 2024-09-20 3h researching engine structure +max: 2024-09-24 2h seventh project meeting +max: 2024-09-24 45m PvA review with Bob +max: 2024-09-25 7h30m Creating EnTT POC and considering other ECS +max: 2024-09-25 1h wrote email to Bob +max: 2024-09-25 2h40m make my own ECS (homemade ECS) +max: 2024-09-26 2h eight project meeting +max: 2024-09-26 1h wrote email to Bob (after project meeting)  wouter: 2024-09-02 1h project meeting :: project kickoff  wouter: 2024-09-02 45m project meeting @@ -94,6 +107,9 @@ wouter: 2024-09-19 15m project meeting  wouter: 2024-09-19 1h30m project meeting  wouter: 2024-09-19 45m project meeting  wouter: 2024-09-19 15m docs :: remove versioning +wouter: 2024-09-26 2h eight project meeting +wouter: 2024-09-26 3h researching event manager +  niels: 2024-09-02 1h project meeting :: project kickoff  niels: 2024-09-02 45m project meeting @@ -120,6 +136,11 @@ niels: 2024-09-19 1h30m project meeting  niels: 2024-09-19 45m project meeting  niels: 2024-09-19 15m PvA reviewing  niels: 2024-09-22 2h30m Adding spritesheet functionalities +niels: 2024-09-23 2h researching and POC tiled library tmxlite +niels: 2024-09-24 2h project Meeting +niels: 2024-09-24 45m meeting with Bob +niels: 2024-09-25 6h integrate the resource manager spritesheet, tmxlite, texture. +niels: 2024-09-26 2h project meeting   jaro: 2024-09-02 1h project meeting :: project kickoff  jaro: 2024-09-02 45m project meeting @@ -152,5 +173,10 @@ jaro: 2024-09-19 30m project meeting  jaro: 2024-09-19 1h30m project lesson  jaro: 2024-09-19 1h project meeting  jaro: 2024-09-19 30m project plan and class diagram - +jaro: 2024-09-24 3h45m physics research and poc +jaro: 2024-09-24 3h30m project: meeting + delivery project plan +jaro: 2024-09-26 2h30m physics research and poc +jaro: 2024-09-26 30m preparing meeting +jaro: 2024-09-26 2h team meeting +jaro: 2024-09-27 45m converting notes  # vim:ft=cfg |