diff --git a/latex/bibliografia.bib b/latex/bibliografia.bib index 3ead7df..10069c2 100644 --- a/latex/bibliografia.bib +++ b/latex/bibliografia.bib @@ -218,6 +218,63 @@ pages = {1181--1195} } +% Unity History and Wikipedia +@misc{unity_wikipedia, + author = {{Wikipedia}}, + title = {Unity (game engine)}, + howpublished = {Dostęp zdalny: \url{https://en.wikipedia.org/wiki/Unity_(game_engine)}}, + year = {2024} +} + +@misc{unity_components_docs, + author = {{Unity Technologies}}, + title = {Introduction to components}, + howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/Components.html}}, + year = {2024} +} + +@misc{unity_gameobject_docs, + author = {{Unity Technologies}}, + title = {Introduction to GameObjects}, + howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/6000.3/Documentation/Manual/GameObjects.html}}, + year = {2024} +} + +@misc{unity_animation_docs, + author = {{Unity Technologies}}, + title = {Animation State Machines}, + howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/AnimationStateMachines.html}}, + year = {2024} +} + +@misc{unity_ugui_docs, + author = {{Unity Technologies}}, + title = {Unity UI (uGUI)}, + howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/index.html}}, + year = {2024} +} + +@misc{unity_uitoolkit_docs, + author = {{Unity Technologies}}, + title = {UI Toolkit}, + howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/UIElements.html}}, + year = {2024} +} + +@misc{unity_netcode_docs, + author = {{Unity Technologies}}, + title = {Netcode for GameObjects}, + howpublished = {Dostęp zdalny: \url{https://docs-multiplayer.unity3d.com/netcode/current/about/}}, + year = {2024} +} + +@misc{unity_audio_docs, + author = {{Unity Technologies}}, + title = {Audio Overview}, + howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/AudioOverview.html}}, + year = {2024} +} + % Unity Documentation and Official Sources @misc{unity_urp_docs, author = {{Unity Technologies}}, @@ -399,6 +456,50 @@ year = {2024} } +@online{glau2021touhou, + author = {Vanessa Glau}, + title = {Why Touhou Project is the most beloved}, + year = {2021}, + url = {https://vanessaglau.substack.com/p/why-touhou-project-is-the-most-beloved}, + note = {Accessed: 2026-01-24} +} + +@misc{unreal_wikipedia, + author = {{Wikipedia contributors}}, + title = {Unreal Engine --- Wikipedia{,} The Free Encyclopedia}, + howpublished = {Dostęp zdalny: \url{https://en.wikipedia.org/wiki/Unreal_Engine}}, + year = {2026}, + note = {Accessed: 2026-01-24} +} + +@misc{unreal_blueprints, + author = {{Epic Games}}, + title = {BluePrints Visual Scripting in Unreal Engine}, + howpublished = {Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/blueprint-visual-scripting-in-unreal-engine/}}, + year = {2024} +} + +@misc{unreal_sequencer, + author = {{Epic Games}}, + title = {Sequencer in Unreal Engine}, + howpublished = {Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/working-with-sequencer-in-unreal-engine/}}, + year = {2024} +} + +@misc{unreal_livecoding, + author = {{Epic Games}}, + title = {Live Coding in Unreal Engine}, + howpublished = {Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/live-coding-in-unreal-engine/}}, + year = {2024} +} + +@misc{unreal_docs, + author = {{Epic Games}}, + title = {Unreal Engine Documentation}, + howpublished = {Dostęp zdalny: \url{https://docs.unrealengine.com/}}, + year = {2024} +} + @misc{unreal_insights, author = {{Epic Games}}, title = {Unreal Insights}, @@ -423,3 +524,25 @@ year = {2014}, pages = {757--759} } + +% Market Statistics and Industry Reports +@misc{vgi2025engines, + author = {{Video Game Insights}}, + title = {The Big Game Engine Report of 2025}, + howpublished = {Dostęp zdalny: \url{https://app.sensortower.com/vgi/assets/reports/The_Big_Game_Engines_Report_of_2025.pdf}}, + year = {2025} +} + +@misc{g2gameengines, + author = {{G2}}, + title = {27 Game Engine Statistics About the Rise of Gaming}, + howpublished = {Dostęp zdalny: \url{https://learn.g2.com/game-engine-statistics}}, + year = {2024} +} + +@misc{creativebloq2024unreal, + author = {{Creative Bloq}}, + title = {Steam data shows the meteoric rise of Unreal Engine for game development}, + howpublished = {Dostęp zdalny: \url{https://www.creativebloq.com/3d/video-game-design/unreal-engine-dominates-as-the-most-successful-game-engine-data-reveals}}, + year = {2024} +} diff --git a/latex/komentarze_do_wersji/komentarz_wersja_1.txt b/latex/komentarze_do_wersji/komentarz_wersja_1.txt new file mode 100644 index 0000000..1368582 --- /dev/null +++ b/latex/komentarze_do_wersji/komentarz_wersja_1.txt @@ -0,0 +1,10 @@ +W tekście występują ostrzeżenia +,,Overfull hbox'' (przekroczenie marginesu). objawiają się one drobnym przekroczeniem marginesu w tekście (na przykład w streszczeniu +two- +rzeniem +(kreska przy two- przekracza margines) +Próbowałem różnych rozwiązań: ręczne dzielenie wyrazów, \texttt{\textbackslash mbox}, +\texttt{\textbackslash linebreak}, pakiet \texttt{microtype}, +\texttt{\textbackslash hyphenation\{\}} --- niestety żadne nie rozwiązuje +problemu +Czy to będzie problem przy ocenie pracy? \ No newline at end of file diff --git a/latex/main.app b/latex/main.app index bf1bec9..560559f 100644 --- a/latex/main.app +++ b/latex/main.app @@ -1,2 +1,2 @@ -\contentsline {subsection}{\hspace *{-1.1em}1.\hspace *{0.5em} Nazwa załącznika 1}{86}{section*.131}% -\contentsline {subsection}{\hspace *{-1.1em}2.\hspace *{0.5em} Nazwa załącznika 2}{88}{section*.133}% +\contentsline {subsection}{\hspace *{-1.1em}1.\hspace *{0.5em} Nazwa załącznika 1}{87}{section*.131}% +\contentsline {subsection}{\hspace *{-1.1em}2.\hspace *{0.5em} Nazwa załącznika 2}{89}{section*.133}% diff --git a/latex/main.bbl-SAVE-ERROR b/latex/main.bbl-SAVE-ERROR index 5e9eccf..739b106 100644 --- a/latex/main.bbl-SAVE-ERROR +++ b/latex/main.bbl-SAVE-ERROR @@ -517,6 +517,569 @@ \field{pages}{1181\bibrangedash 1195} \range{pages}{15} \endentry + \entry{petridis2012benchmarking}{inproceedings}{}{} + \name{author}{4}{}{% + {{hash=f1851bd2dbc041a126299dcde1f0a744}{% + family={Petridis}, + familyi={P\bibinitperiod}, + given={P.}, + giveni={P\bibinitperiod}}}% + {{hash=f1cfebd83f192750ed5ced388fd917a6}{% + family={Dunwell}, + familyi={D\bibinitperiod}, + given={I.}, + giveni={I\bibinitperiod}}}% + {{hash=53b4f8e563d66b5b48bde099de64a971}{% + family={De\bibnamedelima Freitas}, + familyi={D\bibinitperiod\bibinitdelim F\bibinitperiod}, + given={S.}, + giveni={S\bibinitperiod}}}% + {{hash=702fca0e9138167f448104f52bdaa6dd}{% + family={Panzoli}, + familyi={P\bibinitperiod}, + given={D.}, + giveni={D\bibinitperiod}}}% + } + \list{publisher}{1}{% + {IEEE}% + } + \strng{namehash}{50bb79040aac027b30c1955f14bca5d6} + \strng{fullhash}{a15b577b15958f2e299a1c4fb8e1546f} + \strng{fullhashraw}{a15b577b15958f2e299a1c4fb8e1546f} + \strng{bibnamehash}{a15b577b15958f2e299a1c4fb8e1546f} + \strng{authorbibnamehash}{a15b577b15958f2e299a1c4fb8e1546f} + \strng{authornamehash}{50bb79040aac027b30c1955f14bca5d6} + \strng{authorfullhash}{a15b577b15958f2e299a1c4fb8e1546f} + \strng{authorfullhashraw}{a15b577b15958f2e299a1c4fb8e1546f} + \field{sortinit}{1} + \field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{2010 Second International Conference on Games and Virtual Worlds for Serious Applications} + \field{title}{An~engine selection methodology for~high fidelity serious games} + \field{year}{2010} + \field{pages}{27\bibrangedash 34} + \range{pages}{8} + \endentry + \entry{unity_urp_docs}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{1} + \field{sortinit}{1} + \field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest}} + \field{title}{Universal Render Pipeline overview} + \field{year}{2024} + \endentry + \entry{unity_hdrp_docs}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{2} + \field{sortinit}{1} + \field{sortinithash}{4f6aaa89bab872aa0999fec09ff8e98a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest}} + \field{title}{High Definition Render Pipeline overview} + \field{year}{2024} + \endentry + \entry{parker2010optix}{inproceedings}{}{} + \name{author}{11}{}{% + {{hash=5165cf099e66ed42a550745bed80d960}{% + family={Parker}, + familyi={P\bibinitperiod}, + given={S.\bibnamedelimi G.}, + giveni={S\bibinitperiod\bibinitdelim G\bibinitperiod}}}% + {{hash=3a0aaa65fc0e089f543339acfb4656a9}{% + family={Bigler}, + familyi={B\bibinitperiod}, + given={J.}, + giveni={J\bibinitperiod}}}% + {{hash=0baa9053b5cf67807598c7c9baf0802d}{% + family={Dietrich}, + familyi={D\bibinitperiod}, + given={A.}, + giveni={A\bibinitperiod}}}% + {{hash=dc54993f3b0c8156cf976de9870a2961}{% + family={Friedrich}, + familyi={F\bibinitperiod}, + given={H.}, + giveni={H\bibinitperiod}}}% + {{hash=ce5526fff73888a0ac33f15fcd6e1e35}{% + family={Hoberock}, + familyi={H\bibinitperiod}, + given={J.}, + giveni={J\bibinitperiod}}}% + {{hash=b45fd1a30394b5c3d019b655e705fb6a}{% + family={Luebke}, + familyi={L\bibinitperiod}, + given={D.}, + giveni={D\bibinitperiod}}}% + {{hash=bf8558be7d1fe43b8b30e7fae87d651f}{% + family={McAllister}, + familyi={M\bibinitperiod}, + given={D.}, + giveni={D\bibinitperiod}}}% + {{hash=4d1c0b33c29679bdd90be27de5e2197c}{% + family={McGuire}, + familyi={M\bibinitperiod}, + given={M.}, + giveni={M\bibinitperiod}}}% + {{hash=fd69a05e7b33f39a7b09078c7f808847}{% + family={Morley}, + familyi={M\bibinitperiod}, + given={K.}, + giveni={K\bibinitperiod}}}% + {{hash=787b2a614401ca9ea9b459cd364207dc}{% + family={Robison}, + familyi={R\bibinitperiod}, + given={A.}, + giveni={A\bibinitperiod}}}% + {{hash=70e60db46a7dd8c255b9f70f8358e44a}{% + family={Stich}, + familyi={S\bibinitperiod}, + given={M.}, + giveni={M\bibinitperiod}}}% + } + \strng{namehash}{6161d0c76465a2c3a98fbb7a8617caac} + \strng{fullhash}{ea143ed1fe4c79ddf65cf17872c656b1} + \strng{fullhashraw}{ea143ed1fe4c79ddf65cf17872c656b1} + \strng{bibnamehash}{6161d0c76465a2c3a98fbb7a8617caac} + \strng{authorbibnamehash}{6161d0c76465a2c3a98fbb7a8617caac} + \strng{authornamehash}{6161d0c76465a2c3a98fbb7a8617caac} + \strng{authorfullhash}{ea143ed1fe4c79ddf65cf17872c656b1} + \strng{authorfullhashraw}{ea143ed1fe4c79ddf65cf17872c656b1} + \field{sortinit}{2} + \field{sortinithash}{8b555b3791beccb63322c22f3320aa9a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{ACM SIGGRAPH 2010 papers} + \field{title}{OptiX: a general purpose ray tracing engine} + \field{year}{2010} + \field{pages}{1\bibrangedash 13} + \range{pages}{13} + \endentry + \entry{unreal_lumen}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{1} + \field{sortinit}{2} + \field{sortinithash}{8b555b3791beccb63322c22f3320aa9a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/lumen-global-illumination-and-reflections-in-unreal-engine/}} + \field{title}{Lumen Global Illumination and Reflections} + \field{year}{2024} + \endentry + \entry{unreal_nanite}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{2} + \field{sortinit}{2} + \field{sortinithash}{8b555b3791beccb63322c22f3320aa9a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/nanite-virtualized-geometry-in-unreal-engine/}} + \field{title}{Nanite Virtualized Geometry} + \field{year}{2024} + \endentry + \entry{anthes2016state}{article}{}{} + \name{author}{4}{}{% + {{hash=6435973202afb320acd8313c499e7e0c}{% + family={Anthes}, + familyi={A\bibinitperiod}, + given={C.}, + giveni={C\bibinitperiod}}}% + {{hash=57d147820e98e81f002cc157074c6a94}{% + family={García-Hernández}, + familyi={G\bibinithyphendelim H\bibinitperiod}, + given={R.\bibnamedelimi J.}, + giveni={R\bibinitperiod\bibinitdelim J\bibinitperiod}}}% + {{hash=eedfff65cd31869c7013dc82007e50c3}{% + family={Wiedemann}, + familyi={W\bibinitperiod}, + given={M.}, + giveni={M\bibinitperiod}}}% + {{hash=d7b8166d40ab9bf3d882941069f0417b}{% + family={Kranzlmüller}, + familyi={K\bibinitperiod}, + given={D.}, + giveni={D\bibinitperiod}}}% + } + \strng{namehash}{a582c128728ca51ec6cd2930b37c88d7} + \strng{fullhash}{b7906cd8b3b761705d2eb9ee466bd2d0} + \strng{fullhashraw}{b7906cd8b3b761705d2eb9ee466bd2d0} + \strng{bibnamehash}{b7906cd8b3b761705d2eb9ee466bd2d0} + \strng{authorbibnamehash}{b7906cd8b3b761705d2eb9ee466bd2d0} + \strng{authornamehash}{a582c128728ca51ec6cd2930b37c88d7} + \strng{authorfullhash}{b7906cd8b3b761705d2eb9ee466bd2d0} + \strng{authorfullhashraw}{b7906cd8b3b761705d2eb9ee466bd2d0} + \field{sortinit}{2} + \field{sortinithash}{8b555b3791beccb63322c22f3320aa9a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{journaltitle}{2016 IEEE Aerospace Conference} + \field{title}{State of the art of virtual reality technology} + \field{year}{2016} + \field{pages}{1\bibrangedash 19} + \range{pages}{19} + \endentry + \entry{unity_shader_graph}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{3} + \field{sortinit}{2} + \field{sortinithash}{8b555b3791beccb63322c22f3320aa9a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unity3d.com/Packages/com.unity.shadergraph@latest}} + \field{title}{Shader Graph} + \field{year}{2024} + \endentry + \entry{farina2013shader}{book}{}{} + \name{author}{3}{}{% + {{hash=6ca52220dab72505e42a2ee6a5df166b}{% + family={Farina}, + familyi={F\bibinitperiod}, + given={C.}, + giveni={C\bibinitperiod}}}% + {{hash=b16a5e52b80ec6d4477275d9158d471a}{% + family={Di\bibnamedelima Benedetto}, + familyi={D\bibinitperiod\bibinitdelim B\bibinitperiod}, + given={M.}, + giveni={M\bibinitperiod}}}% + {{hash=f33de23ff515d5bacfb8ce29af5c9126}{% + family={Cignoni}, + familyi={C\bibinitperiod}, + given={P.}, + giveni={P\bibinitperiod}}}% + } + \list{publisher}{1}{% + {A~K~Peters/CRC Press}% + } + \strng{namehash}{2f1e4db8ccc9c63fd50976ed7e156cdc} + \strng{fullhash}{d13c08493794758fc34897f3bb1b9e23} + \strng{fullhashraw}{d13c08493794758fc34897f3bb1b9e23} + \strng{bibnamehash}{d13c08493794758fc34897f3bb1b9e23} + \strng{authorbibnamehash}{d13c08493794758fc34897f3bb1b9e23} + \strng{authornamehash}{2f1e4db8ccc9c63fd50976ed7e156cdc} + \strng{authorfullhash}{d13c08493794758fc34897f3bb1b9e23} + \strng{authorfullhashraw}{d13c08493794758fc34897f3bb1b9e23} + \field{sortinit}{2} + \field{sortinithash}{8b555b3791beccb63322c22f3320aa9a} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{ShaderX and GPU Pro series -- Advanced rendering techniques} + \field{year}{2013} + \endentry + \entry{unreal_material_editor}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{3} + \field{sortinit}{3} + \field{sortinithash}{ad6fe7482ffbd7b9f99c9e8b5dccd3d7} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/unreal-engine-material-editor-user-guide/}} + \field{title}{Material Editor User Guide} + \field{year}{2024} + \endentry + \entry{nvidia_physx}{inproceedings}{}{} + \name{author}{1}{}{% + {{hash=9ad14fae09b617d96cb4af76c555b394}{% + family={{NVIDIA Corporation}}, + familyi={N\bibinitperiod}}}% + } + \strng{namehash}{9ad14fae09b617d96cb4af76c555b394} + \strng{fullhash}{9ad14fae09b617d96cb4af76c555b394} + \strng{fullhashraw}{9ad14fae09b617d96cb4af76c555b394} + \strng{bibnamehash}{9ad14fae09b617d96cb4af76c555b394} + \strng{authorbibnamehash}{9ad14fae09b617d96cb4af76c555b394} + \strng{authornamehash}{9ad14fae09b617d96cb4af76c555b394} + \strng{authorfullhash}{9ad14fae09b617d96cb4af76c555b394} + \strng{authorfullhashraw}{9ad14fae09b617d96cb4af76c555b394} + \field{sortinit}{4} + \field{sortinithash}{9381316451d1b9788675a07e972a12a7} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://developer.nvidia.com/physx-sdk}} + \field{title}{NVIDIA PhysX SDK Documentation} + \field{year}{2024} + \endentry + \entry{unity_physics}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{4} + \field{sortinit}{4} + \field{sortinithash}{9381316451d1b9788675a07e972a12a7} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unity3d.com/Manual/PhysicsSection.html}} + \field{title}{Physics in Unity} + \field{year}{2024} + \endentry + \entry{unreal_chaos}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{4} + \field{sortinit}{5} + \field{sortinithash}{20e9b4b0b173788c5dace24730f47d8c} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/chaos-physics-in-unreal-engine/}} + \field{title}{Chaos Physics} + \field{year}{2024} + \endentry + \entry{unity_vfx_graph}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{5} + \field{sortinit}{5} + \field{sortinithash}{20e9b4b0b173788c5dace24730f47d8c} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@latest}} + \field{title}{Visual Effect Graph} + \field{year}{2024} + \endentry + \entry{unreal_niagara}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{5} + \field{sortinit}{5} + \field{sortinithash}{20e9b4b0b173788c5dace24730f47d8c} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/creating-visual-effects-in-niagara-for-unreal-engine/}} + \field{title}{Niagara Visual Effects} + \field{year}{2024} + \endentry + \entry{unreal_metasounds}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{6} + \field{sortinit}{6} + \field{sortinithash}{b33bc299efb3c36abec520a4c896a66d} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/metasounds-in-unreal-engine/}} + \field{title}{MetaSounds} + \field{year}{2024} + \endentry + \entry{unity_profiler}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{6} + \field{sortinit}{6} + \field{sortinithash}{b33bc299efb3c36abec520a4c896a66d} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unity3d.com/Manual/Profiler.html}} + \field{title}{Unity Profiler} + \field{year}{2024} + \endentry + \entry{unreal_insights}{misc}{}{} + \name{author}{1}{}{% + {{hash=f74dc6a40e6ed3e07e99f3e972a5394a}{% + family={{Epic Games}}, + familyi={E\bibinitperiod}}}% + } + \strng{namehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{fullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{bibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorbibnamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authornamehash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhash}{f74dc6a40e6ed3e07e99f3e972a5394a} + \strng{authorfullhashraw}{f74dc6a40e6ed3e07e99f3e972a5394a} + \field{extraname}{7} + \field{sortinit}{7} + \field{sortinithash}{108d0be1b1bee9773a1173443802c0a3} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://docs.unrealengine.com/5.3/en-US/unreal-insights-in-unreal-engine/}} + \field{title}{Unreal Insights} + \field{year}{2024} + \endentry + \entry{statista_unity_market}{misc}{}{} + \name{author}{1}{}{% + {{hash=62182ca58a739daa8ddd8a48b7b19abb}{% + family={{Statista}}, + familyi={S\bibinitperiod}}}% + } + \strng{namehash}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{fullhash}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{fullhashraw}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{bibnamehash}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{authorbibnamehash}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{authornamehash}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{authorfullhash}{62182ca58a739daa8ddd8a48b7b19abb} + \strng{authorfullhashraw}{62182ca58a739daa8ddd8a48b7b19abb} + \field{sortinit}{8} + \field{sortinithash}{a231b008ebf0ecbe0b4d96dcc159445f} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://www.statista.com/statistics/}} + \field{title}{Most popular game engines among mobile game developers worldwide as of 2023} + \field{year}{2023} + \endentry + \entry{unity_gaming_report}{misc}{}{} + \name{author}{1}{}{% + {{hash=3f56ad8f8e05fcad24de3fcf878fb50b}{% + family={{Unity Technologies}}, + familyi={U\bibinitperiod}}}% + } + \strng{namehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{fullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{bibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorbibnamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authornamehash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhash}{3f56ad8f8e05fcad24de3fcf878fb50b} + \strng{authorfullhashraw}{3f56ad8f8e05fcad24de3fcf878fb50b} + \field{extraname}{7} + \field{sortinit}{8} + \field{sortinithash}{a231b008ebf0ecbe0b4d96dcc159445f} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{howpublished}{Dostęp zdalny: \url{https://unity.com/resources/gaming-report}} + \field{title}{Unity Gaming Report 2024} + \field{year}{2024} + \endentry \enddatalist \endrefsection \endinput diff --git a/latex/main.pdf b/latex/main.pdf index d2c6505..1059314 100644 Binary files a/latex/main.pdf and b/latex/main.pdf differ diff --git a/latex/main.tex b/latex/main.tex index cdffe26..fc2b4a4 100644 --- a/latex/main.tex +++ b/latex/main.tex @@ -12,6 +12,13 @@ \graphicspath{{tex/img/}} % Katalog z obrazkami. \addbibresource{bibliografia.bib} % Plik .bib z bibliografią +\usepackage{placeins} +\usepackage{float} +% Fix ToC number width for deep sections (e.g. 5.10.1) +\usepackage{tocloft} +\setlength{\cftsecnumwidth}{3em} +\setlength{\cftsubsecnumwidth}{4em} +\setlength{\cftsubsubsecnumwidth}{5em} %------------------------------------------------------------- % Wybór wydziału: diff --git a/latex/tex/1-wstep.tex b/latex/tex/1-wstep.tex index 97f1dbb..cf0a3a4 100644 --- a/latex/tex/1-wstep.tex +++ b/latex/tex/1-wstep.tex @@ -2,38 +2,60 @@ \section{Wstęp} \subsection{Motywacja i cel pracy} -Współczesny rynek gier komputerowych charakteryzuje się dynamicznym rozwojem technologicznym i~rosnącymi wymaganiami zarówno twórców, jak i~graczy. Wybór odpowiedniego silnika gier jest kluczową decyzją, która wpływa na cały proces tworzenia gry, jej wydajność oraz możliwości techniczne. +Współczesny rynek gier komputerowych charakteryzuje się dynamicznym rozwojem technologicznym +i~rosnącymi wymaganiami zarówno twórców, jak i~graczy. Wybór odpowiedniego silnika gier jest +kluczową decyzją, która wpływa na cały proces tworzenia gry, jej wydajność oraz możliwości techniczne. -Celem niniejszej pracy jest kompleksowe porównanie wydajności i~możliwości współczesnych silników gier komputerowych, ze szczególnym uwzględnieniem ich wpływu na proces tworzenia gier oraz końcową jakość produktu. +Celem niniejszej pracy jest porównanie wydajności i~możliwości dwóch głównych, współczesnych +silników gier komputerowych, ze szczególnym uwzględnieniem ich wpływu na proces tworzenia gier +oraz końcową jakość produktu. \subsection{Zakres pracy} Praca obejmuje analizę następujących aspektów: \begin{itemize} - \item Wydajność renderowania grafiki 2D i~3D + \item Wydajność renderowania grafiki \item Możliwości i~funkcjonalności oferowane przez różne silniki \item Łatwość użycia i~krzywa uczenia się - \item Wsparcie dla różnych platform docelowych + \item Praca z narzędziem przy użycji dużych modeli językowch \item Ekosystem narzędzi i~społeczność deweloperska \end{itemize} \subsection{Wybór gry testowej -- gatunek bullet hell} \label{subsec:bullet-hell} -W~celu przeprowadzenia praktycznych testów wydajnościowych zdecydowano się na implementację gry z~gatunku \textbf{bullet hell} (dosł.~,,piekło pocisków''), znanego również jako \textbf{danmaku} (z~jap.~,,kurtyna pocisków'') lub \textbf{manic shooter}. +W~celu przeprowadzenia praktycznych testów wydajnościowych zdecydowano się na implementację +gry z~gatunku \textbf{bullet hell} (dosł.~,,piekło pocisków''), znanego również jako +\textbf{danmaku} (z~jap.~,,kurtyna pocisków'') lub \textbf{manic shooter}. \subsubsection{Charakterystyka gatunku} -Bullet hell to podgatunek gier typu shoot 'em up (strzelanka), w~którym gracz steruje zwykle niewielkim statkiem kosmicznym lub postacią, mierząc się z~falami przeciwników wystrzeliwujących ogromne ilości pocisków tworzących skomplikowane wzory na ekranie. Kluczowe cechy gatunku obejmują: +Bullet hell to podgatunek gier typu shoot 'em up, w~którym gracz steruje zwykle +niewielkim statkiem kosmicznym lub postacią, mierząc się z~falami przeciwników wystrzeliwujących +ogromne ilości pocisków tworzących skomplikowane wzory na ekranie. Kluczowe cechy gatunku obejmują: \begin{itemize} - \item \textbf{Masowa ilość pocisków} -- na ekranie jednocześnie może znajdować się od kilkuset do kilku tysięcy pocisków, tworzących złożone formacje geometryczne - \item \textbf{Precyzyjne hitboxy} -- obszar kolizji postaci gracza jest znacznie mniejszy niż jej wizualna reprezentacja (często ograniczony do kilku pikseli), co umożliwia nawigację między gęstymi wzorami pocisków - \item \textbf{Wzory pocisków} -- przeciwnicy wystrzeliwują pociski według określonych algorytmów, tworząc spirale, fale, rozgałęzienia i~inne formacje + \item \textbf{Masowa ilość pocisków} -- na ekranie jednocześnie może znajdować się od kilkuset + do kilku tysięcy pocisków, tworzących złożone formacje geometryczne + \item \textbf{Precyzyjne hitboxy} -- obszar kolizji postaci gracza jest znacznie mniejszy niż + jej wizualna reprezentacja (często ograniczony do kilku pikseli), co umożliwia nawigację między + pociskami + \item \textbf{Duża liczba przeciwników} -- na ekranie jednocześnie pojawia się wiele jednostek przeciwnika, co zwiększa złożoność sytuacji i obciążenie systemu \item \textbf{Ciągły ruch} -- gracz musi nieustannie przemieszczać się po ekranie, unikając kolizji - \item \textbf{Eskalacja trudności} -- wraz z~postępem gry wzrasta liczba przeciwników i~gęstość pocisków + \item \textbf{Eskalacja trudności} -- wraz z~postępem gry wzrasta liczba przeciwników + i~gęstość pocisków \end{itemize} -Klasyczne przykłady gatunku to serie \textit{Touhou Project}, \textit{DoDonPachi}, \textit{Ikaruga} oraz \textit{Geometry Wars}. +Klasyczne przykłady gatunku to serie \textit{Touhou Project}, +\textit{DoDonPachi}, \textit{Ikaruga} lub +\textit{Geometry Wars}. +\begin{figure}[!h] + \centering + \includegraphics[width=1\linewidth]{touhou.jpg} + \caption{Przykład gry z gatunku bullet hell (seria Touhou). \cite{glau2021touhou}} + \label{fig:touhou} +\end{figure} + + \subsubsection{Uzasadnienie wyboru gatunku} @@ -52,7 +74,6 @@ Gatunek bullet hell został wybrany jako podstawa testów wydajnościowych z~nas \item \textbf{Reprezentatywność dla gier 2D} -- gatunek jest typowym przedstawicielem gier 2D, co pozwala ocenić wsparcie silników dla tego segmentu rynku - \item \textbf{Wymuszenie optymalizacji} -- ze względu na ekstremalną liczbę obiektów, implementacja bullet hell wymusza stosowanie technik optymalizacyjnych (object pooling, spatial partitioning), których efektywność może różnić się między silnikami \end{enumerate} \subsubsection{Parametry gry testowej} @@ -60,12 +81,10 @@ Gatunek bullet hell został wybrany jako podstawa testów wydajnościowych z~nas Zaimplementowana gra testowa charakteryzuje się następującymi parametrami: \begin{itemize} - \item Czas rozgrywki: 90 sekund (tryb przetrwania) + \item Czas rozgrywki: 90 sekund \item Eskalacja trudności: liniowy wzrost częstotliwości spawnu przeciwników \item Typy przeciwników: 3 warianty z~różnymi wzorami strzelania - \item Maksymalna liczba jednoczesnych pocisków: do 500 obiektów \item System punktacji oparty na eliminacji przeciwników - \item Object pooling dla pocisków (eliminacja alokacji w~runtime) \end{itemize} Te parametry zapewniają wystarczające obciążenie systemu do ujawnienia różnic wydajnościowych między silnikami, pozostając jednocześnie w~granicach typowych dla gier indie z~tego gatunku. diff --git a/latex/tex/2-przeglad-literatury.tex b/latex/tex/2-przeglad-literatury.tex index 837e3a3..2dcd1c9 100644 --- a/latex/tex/2-przeglad-literatury.tex +++ b/latex/tex/2-przeglad-literatury.tex @@ -2,16 +2,43 @@ \section{Przegląd literatury i istniejących rozwiązań} \subsection{Historia rozwoju silników gier} -Silniki gier ewoluowały znacząco od prostych bibliotek graficznych lat 80. i 90. XX wieku po współczesne, kompleksowe środowiska deweloperskie. Według Ullmann et al. \cite{ullmann2022game}, współczesne silniki gier charakteryzują się modularną architekturą, która umożliwia ponowne wykorzystanie komponentów między różnymi projektami. +Silniki gier ewoluowały znacząco od prostych bibliotek graficznych +lat 80. i 90. XX wieku po współczesne, kompleksowe środowiska +deweloperskie \cite{gregory2018game}. Wczesne biblioteki, takie +jak Allegro (1990), OpenGL (1992), DirectX (1995) czy SDL (1998), +dostarczały podstawowe funkcje graficzne i obsługę wejścia, +lecz nie oferowały zintegrowanych narzędzi do tworzenia gier. +Według Ullmann \cite{ullmann2022game}, współczesne silniki +gier charakteryzują się modularną architekturą, która umożliwia +ponowne wykorzystanie komponentów między różnymi projektami. -Gregory \cite{gregory2018game} w swojej fundamentalnej pracy "Game Engine Architecture" przedstawia kompleksowy przegląd ewolucji silników gier, definiując je jako "oprogramowanie zaprojektowane specjalnie do tworzenia gier". Jego analiza pokazuje, że współczesne silniki gier składają się z kilku kluczowych warstw: warstwy platformy (platform layer), warstwy podstawowych systemów (core systems), warstwy zasobów (resource manager), warstwy renderingu (rendering engine), systemów animacji, fizyki oraz gameplay. Ta architektura warstwowa umożliwia modularność i ponowne wykorzystanie komponentów. +Gregory \cite{gregory2018game} w swojej pracy +"Game Engine Architecture" przedstawia kompleksowy +przegląd ewolucji silników gier, definiując je jako +"oprogramowanie zaprojektowane specjalnie do tworzenia gier". +Jego analiza pokazuje, że współczesne silniki gier składają się z +kilku kluczowych warstw: warstwy platformy (platform layer), +warstwy podstawowych systemów (core systems), warstwy zasobów +(resource manager), warstwy renderingu (rendering engine), +systemów animacji, fizyki oraz gameplay. +Ta architektura warstwowa umożliwia modularność i ponowne +wykorzystanie komponentów. -Pierwsze silniki gier były ściśle powiązane z konkretnym sprzętem i grami, jak np. silniki do gier id Software (Doom, Quake). Według Gregory'ego \cite{gregory2018game}, przełomem było zrozumienie, że oddzielenie logiki gry od podstawowej infrastruktury technicznej pozwala na tworzenie bardziej uniwersalnych rozwiązań. Przełomem było wprowadzenie pierwszych uniwersalnych silników, które mogły być adaptowane do różnych rodzajów gier. Dzisiejsze silniki oferują zintegrowane środowiska deweloperskie z edytorami wizualnymi, systemami skryptowymi i zaawansowanymi narzędziami do debugowania. +Pierwsze silniki gier były ściśle powiązane z konkretnym sprzętem +i grami, jak np. silniki do gier id Software (Doom, Quake). +Według Gregory'ego \cite{gregory2018game}, przełomem było +zrozumienie, że oddzielenie logiki gry od podstawowej +infrastruktury technicznej pozwala na tworzenie bardziej +uniwersalnych rozwiązań. Przełomem było wprowadzenie pierwszych +uniwersalnych silników, które mogły być adaptowane do różnych +rodzajów gier. Dzisiejsze silniki oferują zintegrowane środowiska +deweloperskie z edytorami wizualnymi, systemami skryptowymi i +zaawansowanymi narzędziami do debugowania. \subsection{Klasyfikacja silników gier} \subsubsection{Architektura silników według Gregory'ego} -Gregory \cite{gregory2018game} przedstawia szczegółową taksonomię architektur silników gier, wyróżniając kilka kluczowych typów organizacji: +Gregory \cite{gregory2018game} przedstawia taksonomię architektur silników gier, wyróżniając kilka kluczowych typów organizacji: \begin{itemize} \item \textbf{Silniki obiektowe} - bazujące na hierarchii obiektów gry z dziedziczeniem @@ -27,50 +54,45 @@ Analiza literatury pokazuje wyraźne różnice między rozwiązaniami komercyjny Sharif i Ameen \cite{sharif2021game} podkreślają, że wybór między rozwiązaniem komercyjnym a open source zależy głównie od budżetu projektu i wymagań dotyczących dostosowania silnika do specyficznych potrzeb. \subsubsection{Silniki specjalistyczne vs. uniwersalne} -Pavkov et al. \cite{pavkov2017comparison} przedstawiają podział na silniki dedykowane konkretnym gatunkom gier (np. silniki do gier strategicznych czasu rzeczywistego) oraz rozwiązania uniwersalne mogące obsługiwać różnorodne typy gier. Silniki specjalistyczne oferują zoptymalizowane funkcjonalności dla określonego zastosowania, podczas gdy uniwersalne zapewniają większą wszechstronność kosztem specjalizacji. +Pavkov \cite{pavkov2017comparison} przedstawiają podział na silniki dedykowane konkretnym gatunkom gier (np. silniki do gier strategicznych czasu rzeczywistego) oraz rozwiązania uniwersalne mogące obsługiwać różnorodne typy gier. Silniki specjalistyczne oferują zoptymalizowane funkcjonalności dla określonego zastosowania, podczas gdy uniwersalne zapewniają większą wszechstronność kosztem specjalizacji. \subsection{Aktualny stan badań} \subsubsection{Badania wydajności} -Messaoudi et al. \cite{messaoudi2017performance} przeprowadzili kompleksową analizę wydajności silnika Unity na urządzeniach mobilnych i stacjonarnych, koncentrując się na zużyciu CPU i optymalizacji logiki gry. Ich badania pokazują znaczące różnice w wydajności między platformami mobilnymi a desktop. +Messaoudi \cite{messaoudi2017performance} przeprowadzili kompleksową analizę wydajności silnika Unity na urządzeniach mobilnych i stacjonarnych, koncentrując się na zużyciu CPU i optymalizacji logiki gry. Ich badania pokazują znaczące różnice w wydajności między platformami mobilnymi a desktop. Abramowicz i Borczuk \cite{abramowicz2024comparative} porównali wydajność Unity i Unreal Engine w grach 3D, skupiając się na renderowaniu, systemach fizyki i zarządzaniu pamięcią. Wyniki wskazują na przewagę Unreal Engine w renderowaniu zaawansowanej grafiki 3D, podczas gdy Unity wykazuje lepszą wydajność na urządzeniach o ograniczonych zasobach. \subsubsection{Metodologie porównawcze} -Pattrasitidecha \cite{pattrasitidecha2014comparison} opracował macierz porównawczą dla silników gier mobilnych 3D, definiując kryteria selekcji i kluczowe aspekty oceny. Ta metodologia została szeroko adoptowana w późniejszych badaniach. +Pattrasitidecha \cite{pattrasitidecha2014comparison} +opracował macierz porównawczą dla silników gier mobilnych 3D, +definiując kryteria selekcji i kluczowe aspekty oceny. -Vohera et al. \cite{vohera2021game} przedstawili architekturę silników gier i przeprowadzili studium porównawcze Unity, GameMaker, Unreal Engine i CryEngine, koncentrując się na parametrach wydajności, funkcjonalności i łatwości użycia. +Vohera \cite{vohera2021game} przedstawili architekturę silników gier i przeprowadzili studium porównawcze Unity, GameMaker, Unreal Engine i CryEngine, koncentrując się na parametrach wydajności, funkcjonalności i łatwości użycia. \subsubsection{Specjalizowane zastosowania} -Marks et al. \cite{marks2008evaluation} oceniali silniki gier pod kątem zastosowań w symulacjach medycznych i szkoleniach klinicznych, wprowadzając specyficzne kryteria oceny dla aplikacji edukacyjnych. +Marks \cite{marks2008evaluation} oceniali silniki gier pod kątem zastosowań w symulacjach medycznych i szkoleniach klinicznych, wprowadzając specyficzne kryteria oceny dla aplikacji edukacyjnych. -Ali i Usman \cite{ali2016framework} opracowali framework do selekcji silników gier dla zastosowań w gamifikacji i serious games, uwzględniając specyficzne wymagania tych dziedzin. +Ali i Usman \cite{ali2016framework} opracowali framework do selekcji +silników gier dla zastosowań w gamifikacji i serious games, +uwzględniając specyficzne wymagania tych dziedzin. \subsubsection{Badania społeczności i ekosystemu} Barczak i Woźniak \cite{barczak2019comparative} przeprowadzili kompleksowe studium porównawcze silników gier, analizując nie tylko aspekty techniczne, ale również dostępność zasobów edukacyjnych, aktywność społeczności i długoterminowe wsparcie. -\subsection{Identyfikacja luk badawczych} +\subsection{Motywacja i cel pracy} -Analiza dostępnej literatury ujawnia kilka istotnych luk badawczych: - -\begin{enumerate} - \item \textbf{Brak kompleksowych badań wielokryterialnych} - większość istniejących prac koncentruje się na pojedynczych aspektach (wydajność, funkcjonalność) bez holistycznego podejścia - - \item \textbf{Ograniczone badania długoterminowe} - brakuje analiz wpływu aktualizacji silników na stabilność i wydajność projektów - - \item \textbf{Niewystarczające dane o współczesnych silnikach} - wiele badań koncentruje się na starszych wersjach silników, nie uwzględniając najnowszych możliwości - - \item \textbf{Brak standaryzacji metodologii} - różne badania stosują odmienne kryteria oceny, co utrudnia porównanie wyników - - \item \textbf{Ograniczone badania cross-platform} - niewiele prac analizuje wydajność silników na różnych platformach docelowych w sposób systematyczny -\end{enumerate} - -Niniejsza praca ma na celu wypełnienie tych luk poprzez przeprowadzenie kompleksowej analizy porównawczej współczesnych silników gier z zastosowaniem ustandaryzowanej metodologii i wielokryterialnego podejścia do oceny. +Przegląd literatury pokazuje, że istnieje wiele badań porównawczych +silników gier, jednak większość z nich koncentruje się na wybranych +aspektach, takich jak wydajność renderowania, łatwość użycia czy +wsparcie dla konkretnych platform. Niniejsza praca wpisuje się w ten +nurt, przeprowadzając praktyczne porównanie silników Unity i Unreal +Engine pod kątem wydajności w wybranych scenariuszach testowych. \subsection{Trendy technologiczne} Ostatnie badania wskazują na rosnące znaczenie technologii ray tracing, sztucznej inteligencji w grach oraz wsparcia dla rzeczywistości wirtualnej i rozszerzonej. Masood et al. \cite{masood2022high} analizują wykorzystanie silników gier do wysokowydajnego renderowania terenu GPU, pokazując nowe kierunki rozwoju technologii renderowania. -Badania Firat et al. \cite{firat2022sound} dotyczące przestrzennego dźwięku 3D w silnikach gier wskazują na rosnące znaczenie immersyjnych doświadczeń audio jako czynnika różnicującego poszczególne rozwiązania. +Badania Firat. \cite{firat2022sound} dotyczące przestrzennego dźwięku 3D w silnikach gier wskazują na rosnące znaczenie immersyjnych doświadczeń audio jako czynnika różnicującego poszczególne rozwiązania. % Bibliografia zawiera odniesienia do kluczowych publikacji naukowych, % dokumentacji technicznej oraz raportów branżowych diff --git a/latex/tex/3-silniki-gier.tex b/latex/tex/3-silniki-gier.tex index c3b0a00..2f8ba9d 100644 --- a/latex/tex/3-silniki-gier.tex +++ b/latex/tex/3-silniki-gier.tex @@ -3,14 +3,33 @@ \subsection{Kryteria wyboru silników do analizy} -Rynek silników gier komputerowych oferuje szeroki wachlarz rozwiązań, od prostych frameworków 2D po zaawansowane środowiska do tworzenia fotorealistycznych produkcji AAA. W ramach niniejszej pracy zdecydowano się na dogłębną analizę dwóch silników: \textbf{Unity} oraz \textbf{Unreal Engine}. Wybór ten podyktowany był kilkoma kluczowymi czynnikami: +Rynek silników gier komputerowych oferuje szeroki wachlarz rozwiązań, +od prostych frameworków 2D po zaawansowane środowiska do tworzenia +fotorealistycznych produkcji AAA \cite{gregory2018game}. +W ramach niniejszej pracy zdecydowano +się na dogłębną analizę dwóch silników: \textbf{Unity} +oraz \textbf{Unreal Engine}. Wybór ten podyktowany był +kilkoma kluczowymi czynnikami: \begin{itemize} - \item \textbf{Dominacja rynkowa} -- według danych z~2024 roku, Unity i~Unreal Engine wspólnie obsługują ponad 70\% globalnego rynku gier komputerowych i~mobilnych - \item \textbf{Reprezentatywność podejść architektonicznych} -- silniki reprezentują odmienne filozofie: Unity opiera się na języku C\# z~garbage collectorem, a~Unreal wykorzystuje natywny C++ z~ręcznym zarządzaniem pamięcią - \item \textbf{Różnorodność zastosowań} -- Unity tradycyjnie dominuje w segmencie gier mobilnych i indie, natomiast Unreal jest preferowany w produkcjach AAA i projektach wymagających fotorealistycznej grafiki - \item \textbf{Dostępność} -- oba silniki oferują darmowe wersje dla małych zespołów i projektów edukacyjnych, co czyni je dostępnymi dla szerokiego grona deweloperów - \item \textbf{Bogata dokumentacja} -- zarówno Unity jak i Unreal dysponują rozbudowaną dokumentacją oficjalną oraz aktywnymi społecznościami + \item \textbf{Dominacja rynkowa} -- według raportu Video Game Insights, + w~2024 roku 51\% gier wydanych na platformie Steam powstało w~Unity, + a~28\% w~Unreal Engine \cite{vgi2025engines} + \item \textbf{Reprezentatywność podejść architektonicznych} -- + silniki reprezentują odmienne filozofie: Unity opiera się na + języku C\# z~garbage collectorem, + a~Unreal wykorzystuje C++ z~własnym systemem refleksji, + makrami oraz garbage collectorem dla obiektów UObject + \item \textbf{Różnorodność zastosowań} -- Unity dominuje + w~segmencie gier mobilnych (71\% z~top 1000 gier mobilnych) + oraz wśród deweloperów indie, natomiast + Unreal generuje większe przychody w~produkcjach AAA + (31\% przychodów Steam w~2024 vs 26\% dla Unity) + \cite{vgi2025engines, g2gameengines} + \item \textbf{Dostępność} -- oba silniki oferują darmowe wersje + dla małych zespołów i projektów edukacyjnych + \item \textbf{Aktywna społeczność} -- Unity posiada ponad + 5~milionów zarejestrowanych deweloperów \cite{g2gameengines} \end{itemize} \subsection{Unity} @@ -18,42 +37,70 @@ Rynek silników gier komputerowych oferuje szeroki wachlarz rozwiązań, od pros \subsubsection{Wprowadzenie i historia} -Unity to wieloplatformowy silnik gier stworzony przez Unity Technologies, którego pierwsza wersja została wydana w 2005 roku jako ekskluzywne narzędzie dla systemu macOS. Od tego czasu silnik przeszedł znaczącą ewolucję, stając się jednym z najpopularniejszych rozwiązań do tworzenia gier na świecie. +Unity to wieloplatformowy silnik gier stworzony przez Unity +Technologies, którego pierwsza wersja została zaprezentowana +w czerwcu 2005 roku na konferencji Apple Worldwide Developers Conference +jako narzędzie dla systemu Mac OS X \cite{unity_wikipedia}. +Od tego czasu silnik przeszedł znaczącą ewolucję, stając się jednym +z najpopularniejszych rozwiązań do tworzenia gier na świecie. -Kluczowym momentem w historii Unity było wprowadzenie w 2010 roku darmowej wersji silnika (Unity Free), co znacząco obniżyło barierę wejścia dla początkujących deweloperów i małych studiów. Decyzja ta przyczyniła się do eksplozji popularności silnika w segmencie gier mobilnych oraz indie. +Kluczowym momentem w historii Unity było wprowadzenie darmowej wersji +silnika, co znacząco obniżyło barierę wejścia dla początkujących +deweloperów i małych studiów \cite{unity_wikipedia}. Decyzja ta +przyczyniła się do wzrostu popularności silnika w segmencie gier +mobilnych oraz indie. -Unity wykorzystuje język programowania \textbf{C\#} działający na platformie .NET/Mono, co zapewnia: +Unity wykorzystuje język programowania \textbf{C\#} działający na +platformie .NET/Mono, co zapewnia: \begin{itemize} \item Automatyczne zarządzanie pamięcią poprzez garbage collector \item Bezpieczeństwo typów i obsługę wyjątków \item Bogatą bibliotekę standardową - \item Stosunkowo łagodną krzywą uczenia dla programistów znających Javę lub podobne języki \end{itemize} -Architektura Unity opiera się na wzorcu \textit{GameObject-Component}, gdzie każdy obiekt w scenie (GameObject) może posiadać dowolną liczbę komponentów definiujących jego zachowanie. Podejście to promuje kompozycję nad dziedziczeniem i ułatwia tworzenie modularnego kodu. +Architektura Unity opiera się na wzorcu \textit{GameObject-Component}, +gdzie każdy obiekt w scenie (GameObject) może posiadać dowolną +liczbę komponentów definiujących jego zachowanie +\cite{unity_components_docs, unity_gameobject_docs}. +Podejście to promuje kompozycję nad dziedziczeniem i ułatwia +tworzenie modularnego kodu. \subsubsection{Możliwości i funkcjonalności} Unity oferuje kompleksowy zestaw narzędzi do tworzenia gier 2D i 3D: \begin{itemize} - \item \textbf{Rendering} -- wsparcie dla wielu pipeline'ów renderowania: Built-in, Universal Render Pipeline (URP) dla platform mobilnych oraz High Definition Render Pipeline (HDRP) dla wysokiej jakości grafiki - \item \textbf{Fizyka} -- integracja z silnikami PhysX (3D) i Box2D (2D) - \item \textbf{Animacja} -- system Mecanim z obsługą maszyn stanów i blendingu animacji + \item \textbf{Rendering} -- wsparcie dla wielu pipeline'ów + renderowania: Built-in, Universal Render Pipeline (URP) dla platform + mobilnych oraz High Definition Render Pipeline (HDRP) dla wysokiej + jakości grafiki \cite{unity_urp_docs, unity_hdrp_docs} + \item \textbf{Fizyka} -- integracja z silnikami PhysX (3D) i Box2D + (2D) \cite{unity_physics} + \item \textbf{Animacja} -- system Mecanim z obsługą maszyn stanów + i blendingu animacji \cite{unity_animation_docs} \item \textbf{Audio} -- wbudowany system dźwięku przestrzennego - \item \textbf{UI} -- dwa systemy interfejsu użytkownika: legacy uGUI oraz nowoczesny UI Toolkit - \item \textbf{Multiplayer} -- Netcode for GameObjects oraz integracja z usługami sieciowymi + \cite{unity_audio_docs} + \item \textbf{UI} -- dwa systemy interfejsu użytkownika: uGUI oraz + nowoczesny UI Toolkit \cite{unity_ugui_docs, unity_uitoolkit_docs} + \item \textbf{Multiplayer} -- Netcode for GameObjects oraz + integracja z usługami sieciowymi \cite{unity_netcode_docs} \end{itemize} \subsubsection{Narzędzia deweloperskie} -Edytor Unity zapewnia intuicyjny interfejs graficzny z następującymi funkcjonalnościami: +Edytor Unity zapewnia interfejs graficzny z następującymi +funkcjonalnościami \cite{unity_wikipedia}: \begin{itemize} - \item Hierarchiczny widok sceny z możliwością edycji w czasie rzeczywistym - \item Inspektor właściwości z obsługą serializacji pól poprzez atrybut \texttt{[SerializeField]} + \item Hierarchiczny widok sceny z możliwością edycji w czasie + rzeczywistym + \item Inspektor właściwości z obsługą serializacji pól poprzez + atrybut \texttt{[SerializeField]} \item Wbudowany profiler wydajności (CPU, GPU, pamięć) - \item Asset Store -- marketplace z gotowymi zasobami i rozszerzeniami - \item Obsługa hot reload -- możliwość edycji kodu podczas działania gry + \cite{unity_profiler} + \item Asset Store -- marketplace z gotowymi zasobami i + rozszerzeniami + \item Obsługa hot reload -- możliwość edycji kodu podczas działania + gry \end{itemize} \subsection{Unreal Engine} @@ -61,48 +108,61 @@ Edytor Unity zapewnia intuicyjny interfejs graficzny z następującymi funkcjona \subsubsection{Wprowadzenie i historia} -Unreal Engine to silnik gier stworzony przez Epic Games, którego historia sięga 1998 roku, kiedy to zadebiutował wraz z grą \textit{Unreal}. Od początku silnik był projektowany z myślą o tworzeniu gier pierwszoosobowych (FPS) o wysokiej jakości graficznej, co nadal pozostaje jego mocną stroną. +Unreal Engine to silnik gier stworzony przez Epic Games, +którego historia sięga 1998 roku, kiedy to zadebiutował wraz z +grą \textit{Unreal} \cite{unreal_wikipedia}. Od początku silnik był projektowany z myślą o +tworzeniu gier pierwszoosobowych (FPS) o wysokiej jakości graficznej, +co nadal pozostaje jego mocną stroną \cite{unreal_wikipedia,unreal_docs}. -Przełomowym momentem było wydanie Unreal Engine 4 w 2014 roku na licencji royalty-free (5\% od przychodów powyżej \$1 miliona), a następnie Unreal Engine 5 w 2022 roku, wprowadzającego rewolucyjne technologie takie jak Nanite (wirtualizowana geometria) i Lumen (globalne oświetlenie w czasie rzeczywistym). +Przełomowym momentem było wydanie Unreal Engine 4 w 2014 roku na +licencji royalty-free (5\% od przychodów powyżej \$1 miliona), a +następnie Unreal Engine 5 w 2022 roku, wprowadzającym +technologie takie jak Nanite (wirtualizowana geometria) i Lumen +(globalne oświetlenie w czasie rzeczywistym) \cite{unreal_wikipedia,unreal_nanite,unreal_lumen}. -Unreal Engine wykorzystuje język programowania \textbf{C++} z rozszerzeniami specyficznymi dla silnika (makra UE), co zapewnia: +Unreal Engine wykorzystuje język programowania \textbf{C++} z +rozszerzeniami specyficznymi dla silnika (makra UE), co zapewnia: \begin{itemize} \item Maksymalną wydajność dzięki kompilacji do kodu natywnego \item Pełną kontrolę nad zarządzaniem pamięcią - \item Dostęp do kodu źródłowego silnika (po uzyskaniu licencji) \item Strome krzywe uczenia, szczególnie dla programistów bez doświadczenia w C++ \end{itemize} -Dodatkowo Unreal oferuje system \textbf{Blueprints} -- wizualny język skryptowy pozwalający na tworzenie logiki gry bez pisania kodu. Blueprinty są szczególnie przydatne dla designerów i artystów, choć dla złożonych systemów mogą być mniej wydajne niż natywny C++. +Dodatkowo Unreal oferuje system \textbf{Blueprints} -- +wizualny język skryptowy pozwalający na tworzenie logiki gry +bez pisania kodu \cite{unreal_blueprints}. Szczególnie przydatne dla +designerów i artystów, choć dla złożonych systemów mogą +być mniej wydajne niż natywny C++. \subsubsection{Możliwości i funkcjonalności} Unreal Engine wyróżnia się zaawansowanymi możliwościami graficznymi: \begin{itemize} - \item \textbf{Rendering} -- fotorealistyczna grafika z obsługą ray tracingu, Nanite i Lumen - \item \textbf{Fizyka} -- silnik Chaos Physics z obsługą destrukcji i symulacji ciał miękkich - \item \textbf{Animacja} -- Control Rig, Animation Blueprints, IK Retargeting - \item \textbf{Landscape} -- zaawansowane narzędzia do tworzenia dużych terenów - \item \textbf{Niagara} -- system efektów cząsteczkowych nowej generacji - \item \textbf{Sequencer} -- narzędzie do tworzenia cinematików i cutscen + \item \textbf{Rendering} -- fotorealistyczna grafika z obsługą ray tracingu, Nanite i Lumen \cite{unreal_nanite,unreal_lumen} + \item \textbf{Fizyka} -- silnik Chaos Physics z obsługą destrukcji i symulacji ciał miękkich \cite{unreal_chaos} + \item \textbf{Animacja} -- Control Rig, Animation Blueprints, IK Retargeting \cite{unreal_docs} + \item \textbf{Landscape} -- zaawansowane narzędzia do tworzenia dużych terenów \cite{unreal_docs} + \item \textbf{Niagara} -- system efektów cząsteczkowych nowej generacji \cite{unreal_niagara} + \item \textbf{Sequencer} -- narzędzie do tworzenia cinematików i cutscen \cite{unreal_sequencer} \end{itemize} \subsubsection{Narzędzia deweloperskie} Unreal Editor oferuje rozbudowane środowisko deweloperskie: \begin{itemize} - \item Edytor poziomów z obsługą streamingu i Level of Detail (LOD) - \item Blueprint Visual Scripting -- programowanie wizualne - \item Material Editor -- węzłowy edytor materiałów - \item Wbudowany profiler z analizą GPU/CPU i pamięci - \item Marketplace -- sklep z zasobami i pluginami - \item Live Coding -- eksperymentalne wsparcie dla hot reload w C++ + \item Edytor poziomów z obsługą streamingu i Level of Detail (LOD) \cite{unreal_docs} + \item Blueprint Visual Scripting -- programowanie wizualne \cite{unreal_blueprints} + \item Material Editor -- węzłowy edytor materiałów \cite{unreal_material_editor} + \item Wbudowany profiler z analizą GPU/CPU i pamięci \cite{unreal_docs} + \item Marketplace -- sklep z zasobami i pluginami \cite{unreal_docs} + \item Dostęp do kodu źródłowego silnika \cite{unreal_wikipedia} + \item Live Coding -- eksperymentalne wsparcie dla hot reload w C++ \cite{unreal_livecoding} \end{itemize} \subsection{Porównanie architektoniczne} - -\begin{table}[ht] +\FloatBarrier +\begin{table}[H!] \centering \caption{Porównanie kluczowych cech Unity i Unreal Engine} \label{tab:unity-vs-unreal} @@ -122,21 +182,31 @@ Kod źródłowy & Częściowo dostępny & Pełny dostęp \\ \hline Rozmiar pustego projektu & $\sim$100 MB & $\sim$1-2 GB \\ \hline -Krzywa uczenia & Łagodna & Stroma \\ -\hline -Główne zastosowania & Mobile, indie, 2D & AAA, FPS, fotorealizm \\ +Główne zastosowania & Mobile, indie, 2D & AAA, FPS, 3D \\ \hline \end{tabular} \end{table} \subsection{Uzasadnienie wyboru do badań} +Wybór Unity i Unreal Engine jako przedmiotu porównania pozwala na +analizę dwóch fundamentalnie różnych podejść do tworzenia gier: -Wybór Unity i Unreal Engine jako przedmiotu porównania pozwala na analizę dwóch fundamentalnie różnych podejść do tworzenia gier: +Motywacja wyboru: Unity i Unreal Engine pozostają dwoma najpopularniejszymi silnikami używanymi w większości nowoczesnych produkcji — zarówno w segmencie indie, jak i w grach AAA — co czyni ich porównanie reprezentatywnym dla współczesnego rynku gier \cite{vgi2025engines,g2gameengines}. + +Wybór Unity i Unreal Engine jako przedmiotu porównania pozwala na +analizę dwóch fundamentalnie różnych podejść do tworzenia gier: \begin{enumerate} - \item \textbf{Produktywność vs wydajność} -- C\# w Unity oferuje szybszy rozwój kosztem pewnego narzutu wydajnościowego, podczas gdy C++ w Unreal wymaga więcej pracy, ale zapewnia maksymalną kontrolę - \item \textbf{Dostępność vs specjalizacja} -- Unity celuje w szeroki rynek z niskim progiem wejścia, Unreal koncentruje się na produkcjach premium - \item \textbf{Elastyczność vs integracja} -- Unity pozwala na większą swobodę w doborze zewnętrznych narzędzi, Unreal oferuje bardziej zintegrowane rozwiązania + \item \textbf{Produktywność vs wydajność} -- C\# w Unity oferuje + szybszy rozwój kosztem pewnego narzutu wydajnościowego, podczas + gdy C++ w Unreal wymaga więcej pracy, ale zapewnia maksymalną + kontrolę + \item \textbf{Dostępność vs specjalizacja} -- Unity celuje w + szeroki rynek z niskim progiem wejścia, Unreal koncentruje się + na produkcjach premium + \item \textbf{Elastyczność vs integracja} -- Unity pozwala + na większą swobodę w doborze zewnętrznych narzędzi, Unreal + oferuje bardziej zintegrowane rozwiązania \end{enumerate} Analiza tych dwóch silników dostarcza kompleksowego obrazu współczesnego stanu technologii do tworzenia gier i pozwala na sformułowanie praktycznych rekomendacji dla deweloperów. diff --git a/latex/tex/4-metodologia.tex b/latex/tex/4-metodologia.tex index 12a89f3..2d0edc4 100644 --- a/latex/tex/4-metodologia.tex +++ b/latex/tex/4-metodologia.tex @@ -3,7 +3,8 @@ \subsection{Założenia metodologiczne} \subsubsection{Cel badań} -Głównym celem badań jest obiektywne porównanie wydajności i możliwości wybranych silników gier w kontrolowanych warunkach. +Głównym celem badań jest porównanie wydajności i możliwości +wybranych silników gier. \subsubsection{Hipotezy badawcze} \begin{enumerate} diff --git a/latex/tex/img/touhou.jpg b/latex/tex/img/touhou.jpg new file mode 100644 index 0000000..9b2e1d6 Binary files /dev/null and b/latex/tex/img/touhou.jpg differ