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.
Key points from a Unite talk about performance optimizations for mobile games in Unity.
Key points from a Unite talk about customizing Unity rendering pipeline (primarily deferred rendering).
Key points from Ubisoft Blue Byte team talk at GDC about their way to overcome performance limitations on mobile devices.
Key points from a Unite talk about content optimization techniques for Unity.
Key points from Playdead talk about optimization techniques and tools used in the Inside game (powered by Unity).
Key points from Playdead talk about techniques in the Inside game (powered by Unity) which allowed to increase visual quality and improve rendering performance.
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...
idTech 6: advances.realtimer...
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.
Objective: exclude debug method calls and data computations from release build.
Solution: Conditional attribute.
Pretty legit deductions about OOP and why all attempts of following it will eventually lead to an overcomplicated code with some inconsistencies:
Presentation (pdf): beta.unity3d.com/t...
A bunch of examples of shaders with cool special effects using Depth and Normals buffers.
Youtube playlist: goo.gl/XCJ8Ma
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.
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.
Goal: save valuable game data as files (not in PlayerPrefs) in WebGL build.
Approach: JS workaround, source code attached.
Goal: be able to record all events in the game (save replays) and allow player to cancel his turns.
Approach: Command - a programming pattern.
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
Coroutines, the source code is attached.
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
All lessons are made by a professional and fully cover topics they are touching.
I use a state machine approach (see more examples at gamedevelopment.tu...) 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.
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:
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.).
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.
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);