Crave For Games


Here is a list of articles that can be useful if you are developing a video-game on Unity3d. The majority of them is a result of the StoneDrop development process.

The articles are sorted by the time of creation (not the time of publication!), so it's better to look for updates at the Facebook page.

ScriptableObject use cases in Unity

Useful talk about ScriptableObject class usage in Unity.

Show more...
Unity performance optimizations for mobiles

Key points from a Unite talk about performance optimizations for mobile games in Unity.

Show more...
Effects is Unity through graphics pipeline customization

Key points from a Unite talk about customizing Unity rendering pipeline (primarily deferred rendering).

Show more...
Performance optimizations in the game Assassin's Creed Identity

Key points from Ubisoft Blue Byte team talk at GDC about their way to overcome performance limitations on mobile devices.

Show more...
Unity content optimizations

Key points from a Unite talk about content optimization techniques for Unity.

Show more...
Optimizations in INSIDE

Key points from Playdead talk about optimization techniques and tools used in the Inside game (powered by Unity).

Show more...
The Rendering of INSIDE

Key points from Playdead talk about techniques in the Inside game (powered by Unity) which allowed to increase visual quality and improve rendering performance.

Show more...
Unity optimization tips from JoyCraftGames
No English translation...
DOOM'16 rendering pipeline

Extremely interesting implementation details of idTech 6 which is used to run recent "Doom" videogame. Conjunction of forward and deffered rendering via camera frustum clasterization and mega-textures usage seems very uncommon after working with Unity.

Graphics Study: adriancourreges.co...[1]

idTech 6: advances.realtimer...[2]

Show more...
Talk about rendering optimizations in Narcos mobile game (RU)

Usefull talk (RUS) at Unity User Group SPb 2016 about Unity tips and tricks to speed up rendering on mobiles from developers of Narcos mobile game.

Show more...
Короткие видео о гейм-дизайне
No English translation...
Работа с GameObject'ами и их компонентами в коде (Unity3d)
No English translation...
Using Dithering in custom shaders (Unity3d, Cg)
No English translation...
Оптимизация кэширования вычисленных данных при анализе игровой ситуации (Симметрия)
No English translation...
Оптимизация кэширования вычисленных данных при анализе уровней
No English translation...
Автоматическое тестирование графики (Unity3d)
No English translation...
Уровни детализации шейдеров (Unity3d)
No English translation...
Building iOS test builds (Unity3d)
No English translation...
Shader tips and tricks.
Part 3 - Post-effects, ShaderReplacement rendering
No English translation...
Shader tips and tricks.
Part 2 - Animation, passing shader parameters
No English translation...
Shader tips and tricks.
Part 1 - Normal maps, Ambient Occlusion
No English translation...
Preprocessing levels for AI (board games)
No English translation...
Normal-mapping in custom shaders (Unity3d)
No English translation...
Additions to Predictional Hashing AI algorithm (StoneDrop)
No English translation...
Искуственный интеллект с поиском в глубину (Философ)
No English translation...
Level analyzer (StoneDrop). Part 2 - Optimizations
No English translation...
Level analyzer (StoneDrop). Part 1
No English translation...
Ошибка Out Of Memory (Cannot enlarge memory arrays) в WebGL билде
No English translation...
Жадный искуственный интеллект (Ева)
No English translation...
Conditional Attribute (C#)

Objective: exclude debug method calls and data computations from release build.

Solution: Conditional attribute.

Show more...
Object-Oriented Programming approach flaws

Pretty legit deductions about OOP and why all attempts of following it will eventually lead to an overcomplicated code with some inconsistencies:

video 1

Show more...
Запуск модели вне Unity. Турниры между ИИ игроками
No English translation...
Real-time VFX with a depth buffer and a normal buffer

Presentation (pdf): beta.unity3d.com/t...[1]

A bunch of examples of shaders with cool special effects using Depth and Normals buffers.

Show more...
Game programming language

Youtube playlist: goo.gl/XCJ8Ma[1]

It's an extremely useful and inspiring set of videos from Jonathan Blow (developer of Braid and The Witness games) with ideas about new programming language for game developers.

Show more...
Interactive water surface shader (Unity3d)

This time I've tried to explain WaterSystem in a video.

video 1

Show more...
UI and Tutorial Design

Informative and useful presentation from Apple where they accumulated main insights and conventions about designing UI and tutorial levels. Following those advices helps your game to be intuitive and easy-to-learn for iOS users. Almost all ideas perfectly fit the Android market too.

video 1

Show more...
Saving data in WebGL build (Unity3d)

Goal: save valuable game data as files (not in PlayerPrefs) in WebGL build.

Approach: JS workaround, source code attached.

Show more...
Game record, Undo operation (generic gamedev approach)

Goal: be able to record all events in the game (save replays) and allow player to cancel his turns.

Approach: Command - a programming pattern.

Show more...
Multithreading (Unity3d, C#)

Goal: perform heavy computations in the backgoround w/o affecting game performance and responsiveness on Android, iOS, Standalone and WebGL build targets in Unity.

Approach: custom class based on BackgroundWorker and Coroutines, the source code is attached.

Show more...
C# Lessons (Rus)

If it accidentally happened that you know Russian language, then you'll find this youtube playlist of lectures about C# extremely helpful (in case you are interested in game-development in Unity3d): goo.gl/wvyHHr[1]

All lessons are made by a professional and fully cover topics they are touching.

Show more...
Finite-State Machine

I use a state machine approach (see more examples at gamedevelopment.tu...[1]) in my Referee class to be able to control all the game (I mean gameplay) events and at the same time to encapsulate all the logic behind them in one class.

Show more...
ECS vs. MVC
No English translation...
Entity component system (ECS)

I've come across an excellent lecture with the examples of using ECS (ECS is a key concept in Unity3d, Unreal Engine and probably in many other game engines) with maximum profit from this approach to the objects organization:

Show more...
Serialization (Unity3d, C#)

All project data (except for the localization) are stored as serialized objects, which contain all the information about a particular aspect of the game (player state, game progress, levels of a singleplayer, levels and game-boards created in editor, etc.).

Show more...
Import from Google SpreadSheets to Unity3d

Configuration data import occurs only in Unity editor. For the import process I use the library GData.dll and the written class (available in the attached Unity-package) with convenient methods of authorization and import from the Spreadsheets.

Show more...
Configuration files. Workflow

Operating procedure with the configuration data in a project:

1. All settings are made in Google Spreadsheets in a predetermined format (separate sheets of one table for different data: localization, levels, player options, game boards);

Show more...
Game architecture

First draft of application architecture is ready and presented on the figure 1. I've tried to make it in an UML diagram style, but for me it's more convenient to have a combination of class diagram and data flow diagram.

Show more...