Building Roads Procedurally Using Unity's Spline Package
Shows how to create intersections, add UV and decals with additional details.
https://youtu.be/ZiHH_BvjoGk
#spline #road #decals
Shows how to create intersections, add UV and decals with additional details.
https://youtu.be/ZiHH_BvjoGk
#spline #road #decals
YouTube
How To Build Roads Procedurally In Unity with the Splines Package
Roads are more common in videogames than you might think so in this episode we'll look at how we can use Unity's new spline package to build out a tool that procedurally creates a road mesh along a spline, and ALSO handles intersections at the same time.…
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Open Source Kinematic Character Controller for Unity
There are also links in the denoscription with videos about kinematic controllers, which might be useful to check before implementing your own solution.
Code is also pretty well organized.
https://github.com/nicholas-maltbie/OpenKCC
#kinematic #character
There are also links in the denoscription with videos about kinematic controllers, which might be useful to check before implementing your own solution.
Code is also pretty well organized.
https://github.com/nicholas-maltbie/OpenKCC
#kinematic #character
👍2👎1
Chunk Iteration in Entities 1.0
The author doesn't mention clearly when to use chunk iteration so here's a little note on this:
Iterating with IJobChunk requires more code setup than using IJobEntity (which generates an IJobChunk under the hood). To automatically benefit from any future source-generation improvements, most jobs that perform a single iteration over a chunk's entities should prefer IJobEntity (optionally implementing the IJobEntityChunkBeginEnd interface as well, for any custom chunk-level operations before and after the core entity iteration loop).
Some examples of use cases which require IJobChunk:
- jobs which do not iterate over each chunk's entities at all (e.g. gathering per-chunk statistics)
- jobs which perform multiple iterations over a chunk's entities, or which iterate in a unusual order
https://coffeebraingames.wordpress.com/2023/06/25/chunk-iteration-in-entities-1-0/
#dots #chunk #ecs
The author doesn't mention clearly when to use chunk iteration so here's a little note on this:
Iterating with IJobChunk requires more code setup than using IJobEntity (which generates an IJobChunk under the hood). To automatically benefit from any future source-generation improvements, most jobs that perform a single iteration over a chunk's entities should prefer IJobEntity (optionally implementing the IJobEntityChunkBeginEnd interface as well, for any custom chunk-level operations before and after the core entity iteration loop).
Some examples of use cases which require IJobChunk:
- jobs which do not iterate over each chunk's entities at all (e.g. gathering per-chunk statistics)
- jobs which perform multiple iterations over a chunk's entities, or which iterate in a unusual order
https://coffeebraingames.wordpress.com/2023/06/25/chunk-iteration-in-entities-1-0/
#dots #chunk #ecs
COFFEE BRAIN GAMES
Chunk Iteration in Entities 1.0
I have this article from 2018 which describes how to code the most fundamental thing to do in Unity’s ECS: chunk iteration. I think it needs an update now that Entities 1.0 has been released.…
👍2
Weighted Random Sample
The implementation of this technique allows for the random selection of items with varying probabilities based on their assigned weights, e.g. loot boxes, or skill selection system similar to Vampire Survivors, where you have more chances to receive upgrade for an already obtained skill rather than a new random one.
https://gist.github.com/Nox7atra/3611b5dc0ccd45906010987b694bd43a
#weighted #random
The implementation of this technique allows for the random selection of items with varying probabilities based on their assigned weights, e.g. loot boxes, or skill selection system similar to Vampire Survivors, where you have more chances to receive upgrade for an already obtained skill rather than a new random one.
https://gist.github.com/Nox7atra/3611b5dc0ccd45906010987b694bd43a
#weighted #random
Gist
Взвешенная вероятность - пример
Взвешенная вероятность - пример. GitHub Gist: instantly share code, notes, and snippets.
👍1
Happy Harvest demo: See the latest 2D techniques | Unity Blog
It incorporates best practices any 2D creator can use, including not baking shadows into a sprite, keeping sprites flat, moving shadow and volume information to secondary textures, advanced Tilemap features, a day-to-night cycle, 2D animation and IK, VFX graph for 2D effects.
https://blog.unity.com/games/happy-harvest-demo-latest-2d-techniques
Sample: https://assetstore.unity.com/packages/essentials/tutorial-projects/happy-harvest-2d-sample-project-259218
#urp #2d #sample
It incorporates best practices any 2D creator can use, including not baking shadows into a sprite, keeping sprites flat, moving shadow and volume information to secondary textures, advanced Tilemap features, a day-to-night cycle, 2D animation and IK, VFX graph for 2D effects.
https://blog.unity.com/games/happy-harvest-demo-latest-2d-techniques
Sample: https://assetstore.unity.com/packages/essentials/tutorial-projects/happy-harvest-2d-sample-project-259218
#urp #2d #sample
Unity
Happy Harvest demo: See the latest 2D techniques
Our new sample, Happy Harvest, shows new techniques for creating 2D lights, shadows, animation, and VFX with the Universal Render Pipeline in Unity 2022 LTS.
👍2
Unity Serialization System
The author has been digging into Unity's serialization system for a few years and created kind of a cheat sheet with everything related to the Unity serialization system: how to serialize private fields and properties in Unity, plus techniques with ScriptableObjects serialization and other common problems related to the Unity Serialization System
https://blog.gladiogames.com/all-posts/unity-serialization-system
#serialization
The author has been digging into Unity's serialization system for a few years and created kind of a cheat sheet with everything related to the Unity serialization system: how to serialize private fields and properties in Unity, plus techniques with ScriptableObjects serialization and other common problems related to the Unity Serialization System
https://blog.gladiogames.com/all-posts/unity-serialization-system
#serialization
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Grass System (BIRP & URP)
Provides a tool to paint grass on the terrain, culling system, terrain blending, and interaction with objects.
https://www.patreon.com/posts/83683483
#grass #urp #editortool
Provides a tool to paint grass on the terrain, culling system, terrain blending, and interaction with objects.
https://www.patreon.com/posts/83683483
#grass #urp #editortool
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
A multi-threaded GOAP (Goal Oriented Action Planning) system for Unity.
https://github.com/crashkonijn/GOAP
#goap #ai
https://github.com/crashkonijn/GOAP
#goap #ai
👍7🔥2
NativeMessenger: This is system-wide native messenger for Unity Entities. It provides an efficient way to trigger systems on demand without involving entities data or any structural changes.
https://github.com/bustedbunny/NativeMessenger/
#ecs #entities
https://github.com/bustedbunny/NativeMessenger/
#ecs #entities
GitHub
GitHub - bustedbunny/NativeMessenger: This is system-wide native messenger for Unity Entities. It provides an efficient way to…
This is system-wide native messenger for Unity Entities. It provides an efficient way to trigger systems on demand without involving entities data or any structural changes. - GitHub - bustedbunny/...
👍3
Metroidvania: Open source metroidvania game.
It is an open source unity project with the goal of demonstrating how a complete game structures asset folders, connects systems, handles editor tools and much more.
Recently I've started to play around with my own pet project that contains platformer elements. So I skimmed through a bunch of samples and this one seems pretty decent to look at and see how particular stuff might be implemented.
https://github.com/kennedyvnak/unity-metroidvania
#platformer #metroidvania #sample
It is an open source unity project with the goal of demonstrating how a complete game structures asset folders, connects systems, handles editor tools and much more.
Recently I've started to play around with my own pet project that contains platformer elements. So I skimmed through a bunch of samples and this one seems pretty decent to look at and see how particular stuff might be implemented.
https://github.com/kennedyvnak/unity-metroidvania
#platformer #metroidvania #sample
👍7
Using StringBuilder To Replace Values
We commonly think of StringBuilder as a class to build up new string values, but it could also be used to alter an existing string efficiently.
Author's benchmarks show significantly less allocations. The StringBuilder implementation allocates about 20% of what the String implementation does.
https://khalidabuhakmeh.com/using-stringbuilder-to-replace-values
#string #performance
We commonly think of StringBuilder as a class to build up new string values, but it could also be used to alter an existing string efficiently.
Author's benchmarks show significantly less allocations. The StringBuilder implementation allocates about 20% of what the String implementation does.
https://khalidabuhakmeh.com/using-stringbuilder-to-replace-values
#string #performance
Khalid Abuhakmeh’s Blog
Using StringBuilder To Replace Values
StringBuilder.Replace can be an easy performance boost to updating existing strings
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
How to create a Space Portal with HLSL in Unity
https://www.jettelly.com/blog/how-to-create-a-space-portal-with-hlsl-in-unity/
#shader #portal
https://www.jettelly.com/blog/how-to-create-a-space-portal-with-hlsl-in-unity/
#shader #portal
👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
project-curator: A convenient tool to help cleaning and maintaining Unity Projects 🧹✨
Project Curator is an Unity Editor window that, based on the currently selected Asset, displays the following information: Each asset it depends on (called dependencies). Each asset that depends on it (called referencers) Very useful to know if an Asset is can be safely deleted or not.
Whether the asset is included in the build or not, depending on the nature of the Asset and its referencers (checked recursively)
https://github.com/ogxd/project-curator
#editortool
Project Curator is an Unity Editor window that, based on the currently selected Asset, displays the following information: Each asset it depends on (called dependencies). Each asset that depends on it (called referencers) Very useful to know if an Asset is can be safely deleted or not.
Whether the asset is included in the build or not, depending on the nature of the Asset and its referencers (checked recursively)
https://github.com/ogxd/project-curator
#editortool
👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Simple 2D Character Controller
A good starting point for implementation of your own kinematic 2D character controller.
https://roystan.net/articles/character-controller-2d/
Repo: https://github.com/IronWarrior/2DCharacterControllerTutorial
#character #kinematic
A good starting point for implementation of your own kinematic 2D character controller.
https://roystan.net/articles/character-controller-2d/
Repo: https://github.com/IronWarrior/2DCharacterControllerTutorial
#character #kinematic
👍3
Unity3D - Personal Notebook: A notebook filled with a variety of Unity-related content by a seasoned game developer.
It is especially helpful for new developers as it provides the following:
- A list of existing assets that the author typically includes in their projects.
- UI tips: Although Unity's documentation has greatly improved in terms of UI and its optimizations, this notebook can still serve as a handy cheat sheet to refresh your knowledge.
- The building process and how to troubleshoot potential issues.
- Optimization tips
- Editor tips and tricks
and many more
https://docs.google.com/document/d/1-EFSFLf8bJTZq60kwLzHBOTnb9nv6_Oelu5ho6J_-uI/edit#heading=h.qolyg3va2zkn
#book #tips
It is especially helpful for new developers as it provides the following:
- A list of existing assets that the author typically includes in their projects.
- UI tips: Although Unity's documentation has greatly improved in terms of UI and its optimizations, this notebook can still serve as a handy cheat sheet to refresh your knowledge.
- The building process and how to troubleshoot potential issues.
- Optimization tips
- Editor tips and tricks
and many more
https://docs.google.com/document/d/1-EFSFLf8bJTZq60kwLzHBOTnb9nv6_Oelu5ho6J_-uI/edit#heading=h.qolyg3va2zkn
#book #tips
Google Docs
Unity3D - Personal Notebook
Unity3D - Personal Notebook Last updated: Sat 10 Apr 2021 (Please note: This is a live document by Steven Yau @yaustar & https://stevenyau.co.uk) I tend to jump between engines/languages/frameworks depending on my job and wanted to put together a document…
🔥2👍1
Improving Burst Inspector search performance
Another example how standard methods might be a lot slower due to various reasons, for instance safety checks. And how own implementation may leverage some assumptions to provide performance gains.
But as usual, always profile.
https://blog.unity.com/engine-platform/improving-burst-inspector-search-performance
#optimization
Another example how standard methods might be a lot slower due to various reasons, for instance safety checks. And how own implementation may leverage some assumptions to provide performance gains.
But as usual, always profile.
https://blog.unity.com/engine-platform/improving-burst-inspector-search-performance
#optimization
Unity
Improving Burst Inspector search performance
Discover ways to use the Unity Profiler to investigate performance bottlenecks in your program and how to fix them.
👍2
How to Design Levels With the "Super Mario World Method"
This article explores how challenges evolve and expand in platformers, using Super Mario as an example.
https://gamedevelopment.tutsplus.com/how-to-design-levels-with-the-super-mario-world-method--cms-25177a
#leveldesign #gamedesign
This article explores how challenges evolve and expand in platformers, using Super Mario as an example.
https://gamedevelopment.tutsplus.com/how-to-design-levels-with-the-super-mario-world-method--cms-25177a
#leveldesign #gamedesign
Code Envato Tuts+
How to Design Levels With the "Super Mario World Method"
A couple of years ago, I wrote a book analyzing every level in Super Mario World (1990), where I identified the systematic way in which most of the game’s levels were created. Super Mario World is...
👍3
Ocean waves simulation with Fast Fourier transform
https://www.youtube.com/watch?v=kGEqaX4Y4bQ
Repo: https://github.com/gasgiant/FFT-Ocean
#fft #water
https://www.youtube.com/watch?v=kGEqaX4Y4bQ
Repo: https://github.com/gasgiant/FFT-Ocean
#fft #water
YouTube
Ocean waves simulation with Fast Fourier transform
How does ocean waves simulation with Fast Fourier transform work?
Source code:
https://github.com/gasgiant/FFT-Ocean
Music:
https://soundcloud.com/igor_vaiman
Catlike Coding on Gerstner waves:
https://catlikecoding.com/unity/tutorials/flow/waves/
3Blue1Brown…
Source code:
https://github.com/gasgiant/FFT-Ocean
Music:
https://soundcloud.com/igor_vaiman
Catlike Coding on Gerstner waves:
https://catlikecoding.com/unity/tutorials/flow/waves/
3Blue1Brown…
👍2
Compute Shaders in Unity: Processing transforms with GPU
The noscript is a bit misleading, it's about how to pass data to a compute shader, modify, and then return back to a C# noscript. Transforms are still processed on the main thread. But it's still a decent example how to use compute shaders.
https://www.artstation.com/blogs/degged/KOre/compute-shaders-in-unity-processing-transforms-with-gpu
#compute #shader
The noscript is a bit misleading, it's about how to pass data to a compute shader, modify, and then return back to a C# noscript. Transforms are still processed on the main thread. But it's still a decent example how to use compute shaders.
https://www.artstation.com/blogs/degged/KOre/compute-shaders-in-unity-processing-transforms-with-gpu
#compute #shader
Artstation
ArtStation - Compute Shaders in Unity: Processing transforms with GPU
Technical Art Compute Shaders in Unity. Processing transforms with GPU
👍3
Technical Interview Preparation
A notebook by a seasoned game developer with questions that are usually asked at technical interviews.
https://docs.google.com/document/d/1GEy-tPO048rsg4XNS_f-jiHZWYlH6gXAUJ_v7PoUynA/
#interview
A notebook by a seasoned game developer with questions that are usually asked at technical interviews.
https://docs.google.com/document/d/1GEy-tPO048rsg4XNS_f-jiHZWYlH6gXAUJ_v7PoUynA/
#interview
Google Docs
Technical Interview Preparation
Technical Interview Preparation Last updated: Sat 24 Sep 2022 (Please note: This is a live document by Steven Yau @yaustar & https://stevenyau.co.uk) This is what I use and keep updated to prepare for technical interviews based on my previous experience…
👍3🔥1💩1
Position-Based-Dynamics: A PBD fluid in unity running on the GPU
Position based dynamics is a method used to simulate physical phenomena like cloth, deformation, fluids, fractures, rigidness and much more. The key process in PBD is to simulate the object as a set of points and constraints. Forces are applied to the points to move them and then the constraints make sure the points wont move in a way that violates the simulation.
https://github.com/Scrawk/PBD-Fluid-in-Unity
#simulation #fluid
Position based dynamics is a method used to simulate physical phenomena like cloth, deformation, fluids, fractures, rigidness and much more. The key process in PBD is to simulate the object as a set of points and constraints. Forces are applied to the points to move them and then the constraints make sure the points wont move in a way that violates the simulation.
https://github.com/Scrawk/PBD-Fluid-in-Unity
#simulation #fluid
GitHub
GitHub - Scrawk/PBD-Fluid-in-Unity: A PBD fluid in unity running on the GPU
A PBD fluid in unity running on the GPU. Contribute to Scrawk/PBD-Fluid-in-Unity development by creating an account on GitHub.
👍2