aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-09-29 16:41:01 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-09-29 16:41:01 +0200
commit9fa3780a3fc34d6894680aa88d1b37888f3574a9 (patch)
treec90fbc9c5c1d7ee4cec97040f2ac92c7858ce8ff
parent900805f3d6ddcf31fc3141a460e888c3f90a8099 (diff)
parent7a044bb0081f73e2b500f2c1c82d6ad298fc98a1 (diff)
merge `master` into `loek/design`
-rw-r--r--contributing.md2
-rw-r--r--design.tex44
-rw-r--r--notulen/wk1-1.txt22
-rw-r--r--notulen/wk1-2.txt32
-rw-r--r--notulen/wk2-1.txt41
-rw-r--r--notulen/wk2-2.txt40
-rw-r--r--notulen/wk3-1.txt38
-rw-r--r--notulen/wk3-2.txt43
-rw-r--r--notulen/wk4-1.txt43
-rw-r--r--notulen/wk4-2.txt47
-rw-r--r--research.tex77
-rw-r--r--style.md3
-rw-r--r--time.txt28
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).
diff --git a/design.tex b/design.tex
index bfc49ad..dcde483 100644
--- a/design.tex
+++ b/design.tex
@@ -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}
+
diff --git a/style.md b/style.md
index 8dca81b..2229947 100644
--- a/style.md
+++ b/style.md
@@ -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
diff --git a/time.txt b/time.txt
index fc1394c..6dc2f0c 100644
--- a/time.txt
+++ b/time.txt
@@ -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