This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
technical_faq [2023/07/05 16:26] – removed - external edit (Unknown date) 127.0.0.1 | technical_faq [2025/02/14 14:57] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Technical FAQ ====== | ||
+ | |||
+ | Often technical questions regarding programming techniques, data structures, optimization and other questions that are not specifically game-related are asked of Knuckle Cracker. This is a collation of answers to those questions, in the event (hopefully) these answers are useful to others as well. | ||
+ | |||
+ | ? IXE: Why Pixel graphics? ((https:// | ||
+ | : For IXE, I wanted to explore adding additional simulations to the game that would work in conjunction with the creeper, and I wanted the terrain to be simulated at the most basic unit. Work backwards from the computational capabilities of current home computers running multi-threaded SIMD compiled code, and you get a " | ||
+ | |||
+ | :: Pixel graphics are not just an artistic choice for this game. They are a technical choice to get to the game play I want to explore. If computers were 16x faster, the pixels you see in IXE would be 1/4 their current size. | ||
+ | |||
+ | :: So nobody is required to like it, even if this is the reason. Folks like what they like and everybody wants from games something slightly, or majorly, different from others. I'm not trying to convince anybody to like these choices, and I respect everyone' | ||
+ | |||
+ | :: As a footnote, the creeper and terrain simulators in this game are the fastest, most advanced, most multithreaded, | ||
+ | |||
+ | ? CW4: What data structures and rendering methods are used for terrain rendering? ((https:// | ||
+ | |||
+ | : The terrain is held internally as a flattened 2D array (a single dimensional array treated as 2D data). Each position in the array represents a height, essentially creating a basic height map. The game dynamically generates a mesh for the terrain, where the points/ | ||
+ | |||
+ | :: To enhance the visual appearance, shaders, textures, and other elements are necessary. Most of the work involves applying a shader with fancy stochastic methods to blend and shuffle textures, eliminating seams between textures as they tile across the surface. Additionally, | ||
+ | |||
+ | :: For your game, you may prefer smoother terrain. Unreal Engine (UE) likely provides shaders that can render terrain in a standard and visually appealing way. If not, UE offers excellent shader authoring support, surpassing even Unity. If I were starting from scratch in Unity today, I would follow a similar approach, but utilize the NativeArray to hold the flattened data, and utilize Unity' | ||
+ | |||
+ | :: This is a general overview of the terrain representation and rendering technique. There may be additional considerations regarding surface normals and other details that you will likely address as you progress further. | ||
+ | |||