diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-29 16:41:01 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-29 16:41:01 +0200 |
commit | 9fa3780a3fc34d6894680aa88d1b37888f3574a9 (patch) | |
tree | c90fbc9c5c1d7ee4cec97040f2ac92c7858ce8ff | |
parent | 900805f3d6ddcf31fc3141a460e888c3f90a8099 (diff) | |
parent | 7a044bb0081f73e2b500f2c1c82d6ad298fc98a1 (diff) |
merge `master` into `loek/design`
-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 |