GameDev - gusenov/kb GitHub Wiki
- LinkedIn / MY.GAMES / what creating a game actually consists of
- FronkonGames/Awesome-Gamedev A curated collection of resources to game development.
- GameDeveloper.com / Dependency Graphs In Games
Books
- Software Engineering and Computer Games by Rudy Rucker - 648 pages
History
Today
- DTF / Кадровый голод, бесплатный банк ассетов, требовательная аудитория: как выглядит российский геймдев сегодня 11 июля 2024
- Инде / «Имеет смысл выпускать игры чаще, но проще»: что происходит в 2024 году 27.08.2024
Device
- Steam Deck
- Wikipedia
- «В моем ПК стоит процессор AMD, видеокарта Nvidia, сам ПК от Falcon Northwest, плюс у меня есть мышь Corsair, клавиатура Logitech и монитор Samsung. Именно эта взаимозаменяемость деталей, совместимость и открытость платформы позволяют нам создавать такие продукты, как Steam Deck» (Габен)
- Overclockers.ru / Valve: геймеры массово переходят с клавиатур на геймпады
- GameDeveloper.com / Designing Game Controls
Developers
- Valve
- CD Projekt Red
Patterns
- Game Programming Patterns
- Entity–component–system (ECS)
- Toptal / Unity MVC Tutorial: How to Implement the Model-View-Controller Pattern for Game Development
- Game Development Patterns and Best Practices by John P. Doran , Matt Casanova - 394 pages
- Game Modeling Database
- For example, a game may maintain a data structure of game objects to support planning in the AI subsystem, but also needs to render the game objects to a graphical display device. What the graphical rendering engine expects as a data structure may be fundamentally different from what the AI subsystem expects -- which may be different yet again from how the overall gameplay logic expects to manipulate the objects. Use of TranslatorPattern makes it possible to maintain the game objects in one data structure, whilst making it simultaneously appear to be data structures appropriate to gameplay logic, graphical rendering, and AI planning.
Game Loop
- deWiTTERS Game Loop
- Gaffer On Games / Fix Your Timestep!
- FH Vorarlberg / Game Engine Architecture: The Game Loop
- Test-Driving the Game Loop
- game loop, an example of event loop
- Stack Overflow
- r/gamedev
Animation
- Pixar in a Box
- Pixar animation software
- Hands-On C++ Game Animation Programming
- Animating 2D Characters for Games in Blender™ by Alan Thorn - 132 pages
- Game Anim. Video Game Animation Explained by Jonathan Cooper
- #анимация — подборка статей на DTF
- cprogramming.com / Game Programming in C and C++
- unrealengine.com/en-US/feed/all/animation
- GameDeveloper.com / Improved Lerp Smoothing
- Alan Zucconi
- AshOfGods.com / Техника ротоскопирования
Procedural Generation
- Wikipedia
- Мне лень рисовать весь этот мир самому. Но зато мне не лень разработать алгоритмы и правила, по которым мой мир будет генерироваться сам! Единственный путь, по которому может пойти начинающий инди-разработчик - это путь генерации. Генерации всего! Всего, чего только можно сгенерировать.
- Procedural Content Generation for C++ Game Development by Dale Green - 304 pages
- An infinite, procedurally generated city, assembled out of blocks using the Wave Function Collapse algorithm
- Game Development Stack Exchange
- Ars Technica / A dev trained robots to generate “garbage” slot machine games—and made $50K
- iXBT
- Тодд Говард признал ошибочность идеи сгенерировать 1000 планет для Starfield
- «…[при работе над] Starfield перед нами было много вызов....самым большим вызовом был первый: как мы сгенерируем эти планеты? [генерация] это вообще хорошая идея? Ладно, может быть, в то время — нет, но мы сделали так, чтобы это работало….И потом, когда мы смогли сгенерировать всё это, симуляция солнечных систем развернулась вокруг вас. Но в конечном итоге, что в этом интересного? Есть техническая задача — заставить это работать, но есть и дизайнерская задача — как сделать так, чтобы это было весело от минуты к минуте, а затем от часа к часу для всех, кто в это играет?».
- Тодд Говард признал ошибочность идеи сгенерировать 1000 планет для Starfield
Generative AI
- WIRED / Generative AI Won’t Revolutionize Game Development Just Yet
- Andreessen Horowitz / The Generative AI Revolution in Games
- DTF
- Хабр
- Пикабу / Использование нейросетей и процедурной генерации в играх. Хорошо или плохо?
- MIT Technology Review
- Tales
Midjourney
- YouTube
- Medium
- 20+ Incredible Midjourney Prompts to Create Game Assets by Christie C.
- How To Create Video Game UI, Characters, and Assets on Midjourney by Josh’s AI Art and Prompts
- DEV Community / Using Midjourney for creating 2d game assets by Stefan Neidig
- LetsTryAI.com / Midjourney Prompts for Game Assets + Prompt Examples by Milan K
- Хабр
Languages
- A collection of videos on programming and scripting languages relevant to game development by Gamefromscratch
Rust
- Hands-on Rust. Effective Learning through 2D Game Development and Play by Herbert Wolverson - 342 pages
- Game Development with Rust and WebAssembly. Learn how to run Rust on the web while building a game by Eric Smith - 476 pages
- Bevy - A data-driven game engine built in Rust
- Are we game yet?
- Leaving Rust gamedev after 3 years
C++
- YouTube
- API Design for C++
- Introduction to the fundamentals of computer systems programming
- github.com/Caerind/AwesomeCppGameDev
- PVS‑Studio / #GameDev
- Single Module Builds – The Fastest Heresy in Town
- In the games industry, many large engines use ‘unity builds’. A unity build reduces the number of modules in a compilation and has a significant impact on build time.
- C++ Game Engine Libs by Brianna Townsend
Python
- RealPython.com / Top Python Game Engines
- Making Games with Python & Pygame
- Human-Computer Interaction in Game Development with Python. Design and Develop a Game Interface Using HCI Technologies and Techniques by Joseph Thachil George, Meghna Joseph George - 323 pages
Go
- Making Games in Go for Absolute Beginners by Miłosz Smółka
JavaScript
- Making Games with JavaScript by Christopher Pitt
- JavaScript for Games
- freeCodeCamp.org
- proyecto26/awesome-jsgames A curated list of awesome JavaScript Games
C#
- Building a self-contained game in C# under 2 kilobytes by Michal Strehovsky
- YouTube / Building the Smallest C# Game That Doesn’t Need .NET
Haskell
- Of Boxes and Threads: Game development in Haskell
- Developing a video game in Haskell by A.E.Veltstra
- Хабр / Змейка на Haskell с циклом Гамильтона
GDL
Databases
- CastleDB - The structured static database
- GameDeveloper.com / Relational Database Guidelines For MMOGs handling game state persistence, account management, billing, and even game logic
Hot Reloading
- Hot Reloading C++ Code (or How I Learned to Stop Worrying and Loathe the Linker) – JonCodesThings
- Game Development Stack Exchange
Math
- Vectozavr
- Matrix Transforms for Computer Games and Animation by John Vince
- Engineering Notes
- Freya Holmér
- 3D Math Primer for Graphics and Game Development
- Mathematics for Game Programming and Computer Graphics. Explore the essential mathematics for creating, rendering, and manipulating 3D virtual environments by Penny de Byl - 444 pages
- Alan Zucconi
- Amit Patel interactive explanations of math and computer science topics
- Red Blob Games interactive visual explanations of math and algorithms, using motivating examples from computer games.
- Game-related blog by Amit Patel
Physics
- Bullet Physics
- Learning Game Physics with Bullet Physics and OpenGL by Chris Dickinson
- Bullet’s Collision Algorithm
- This document attempts to better document the Bullet physics library, much of it based direclty on the Bullet Wiki
- Autodesk
- Learning Physics Modeling with PhysX by Krishna Kumar
- Beginning Math and Physics for Game Programmers by Wendy Stahler - 500 pages
- Physics modeling for game programmers by David Conger - 513 pages
- Physics for Game Developers by Bryan Bywalec, David M Bourg - 578 pages
- Game Physics by David H. Eberly - 902 pages
- Physics for Game Programmers by Grant Palmer - 472 pages
- Physics for Game Developers by David M. Bourg and Bryan Bywalec - 580 pages
- Introduction to Game Physics with Box2D by Ian Parberry - 275 pages
- Game Physics Cookbook. Discover over 100 easy-to-follow recipes to help you implement efficient game physics and collision detection in your games by Gabor Szauer - 480 pages
- CG Channel
- Minimal-dependency C++ implementation of Gilbert–Johnson–Keerthi (GJK) algorithm (classic technique for 2D & 3D narrow-phase collision detection between two convex polyhedrons) by Stan Melax (game physics wizard)
- Game Physics in One Weekend Series by Gregory Hodges (programmer at Intel, previously at id Software)
Audio
- Getting Started with C++ Audio Programming for Game Development. A hands-on guide to audio programming in game development with the FMOD audio library and toolkit by David Gouveia
- Game Audio Programming. Principles and Practices edited by Guy Somberg
- Game Audio Programming 2. Principles and Practices edited by Guy Somberg
- Game Audio Programming 3. Principles and Practices edited by Guy Somberg
- Linux Sound Programming by Jan Newmarch
- Game Audio Implementation. A Practical Guide Using the Unreal Engine by Richard Stevens and Dave Raybould - 486 pages
- Music for Film and Game Soundtracks with FL Studio by Joshua Au-Yeung - 266 pages
- Web Audio API: Advanced Sound for Games and Interactive Apps by Boris Smus
- DSP Motion
- DTF
- Video Game Audio by Leonard J. Paul
- Game Developer / Procedural Audio in Unity
- Yarsa Labs Devblog
- Realtime Procedural Audio and Synthesized Piano in Unity 3D by Shahriar Shahrabi
- GDC Vault / Procedural Audio for Video Games: Are we there yet? by Nicolas Fournel
- What’s The Deal With Procedural Game Audio?
- Хабр / Не «Эрон-дон-доном» единым: легендарные саундтреки к компьютерным играм
Visual
- Overclockers.ru / Эволюция графики в видеоиграх - от пикселей до реализма От примитивных пикселей до фотореалистичного будущего: как индустрия видеоигр эволюционировала, удивляя геймеров новыми технологиями. Что нас ждет дальше и как искусственный интеллект изменит мир игр.
- Wikipedia
- Delta timing is a concept used amongst programmers in relation to hardware and network responsiveness.
- Isometric video game graphics are graphics employed in video games and pixel art that use a parallel projection, but which angle the viewpoint to reveal facets of the environment that would otherwise not be visible from a top-down perspective or side view, thereby producing a three-dimensional (3D) effect.
- Tile-based video game is a type of video or video game where the playing area consists of small square (or, much less often, rectangular, parallelogram, or hexagonal) graphic images referred to as tiles laid out in a grid.
- Тайловая графика метод создания больших изображений (как правило, уровней в компьютерных играх) из маленьких фрагментов одинаковых размеров, подобно картинам из изразцов.
- Tiled кроссплатформенный открытый редактор тайловых карт для игр.
- DTF
- Эффекты для игр с чего начать?
- Хабр
- r/gamedev / For 3D modeling mechanical systems for a game would Solidworks be better than 3DS Max?
- Quora / Am I insane for using SolidWorks to design 3D objects for my game?
Pixel Art
Character controller
- r/unrealengine / What is the character controller thing?
- r/gamedev / Good resources on creating 3D character controllers?
- r/gamedesign / What makes a good controller ?
AI
- Beginning Game AI with Unity. Programming Artificial Intelligence with C# by Sebastiano M. Cossu - 143 pages
GUI
- UI интерфейсы из игр
- Dear ImGui — GUI-фреймворк на C++ с открытым исходным кодом, используемый при разработке многих игр и приложений, чаще всего при создании инструментов инструментов.
- Game Interface Design by Brent Fox - 212 pages
- Wikipedia
- CEGUI designed for the needs of video games
- MY.GAMES / In-game UI is a huge part of gaming experience. Players interact with interface elements like mini-map or inventory all the time while playing. Which inventory do you prefer: grid, list, or radial?
Job System
- Intel
- Bitsquid / Task Management - A Practical Example
- Christian Gyrling
Games
- Wikipedia / List of open-source video games
- Simple web game in C++14 using SDL2 / Model View Controller / Meta State Machine / Dependency Injection / Range-V3 / Emscripten
- Форум LINUX.ORG.RU / Games / Классика на свободных движках
Multiplayer
- Photon Engine | Multiplayer Game Development Made Easy
- Wikipedia
- GitHub / A Curated List of Game Network Programming Resources
- Development and Deployment of Multiplayer Online Games: from social games to MMOFPS, with stock exchanges in between
- Let’s Build a Multiplayer Phaser Game with TypeScript, Socket.IO, and Phaser by Oscar Lodriguez
- Unity Multiplayer Games. Build engaging, fully functional, multiplayer games with Unity engine by Alan R. Stagner - 242 pages
- Building Multiplayer Games in Unity. Using Mirror Networking by Dylan Engelbrecht - 235 pages
- Developing Turn-Based Multiplayer Games with GameMaker Studio 2 and NodeJS by Yadu Rajiv - 206 pages
- Multiplayer Game Programming. Architecting Networked Games by Joshua Glazer, Sanjay Madhav - 386 pages
- Networking and Online Games: Understanding and Engineering Multiplayer Internet Games by Grenville Armitage, Mark Claypool, Philip Branch - 232 pages
- Amazon GameLift Enhance session-based multiplayer experiences with dedicated cloud servers
- PRISM-games is an extension of PRISM for the verification of probabilistic systems that can incorporate competitive or collaborative behaviour, modelled as stochastic multi-player games.
- Going Super Sonic with Asio
Security
- Game hacking. Developing Autonomous Bots for Online Games by Nick Cano
- Practical Video Game Bots. Automating Game Processes using C++, Python, and AutoIt by Ilya Shpigor - 343 pages
- Боты для компьютерных игр by Илья Шпигорь
- GitHub
- dsasmblr/game-hacking Tutorials, tools, and more as related to reverse engineering video games.
- Bloomberg: студенты из Сибири «взломали» онлайн-покер и заработали миллионы
Data-Oriented Design
- Wikipedia
- A curated list of data oriented design resources
- Mike Acton "Data-Oriented Design and C++"
- Games from Within / Data-oriented design
- CppCon 2018 / Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
- Data-Oriented Demo: SOA, composition
- Data-Oriented Design
- Data-Oriented Programming. Reduce complexity by rethinking data by Yehonathan Sharvit - 451 pages
- An introduction to Data Oriented Design with Rust
- Andrew Kelley
- Хабр
- Теги:
- Our Machinery
- Data Structures Part 1: Bulk Data
- Data Structures Part 2: Indices
- Data Structures Part 3: Arrays of arrays talks a bit about how it's a good idea to structure your data in this way
- BSVino/JaiPrimer: A description of Jonathan Blow's programming language, Jai
- reddit
- Is structuring game data like a database a good idea?
- Data Oriented Design
- it is possible to structure an entire game as an in-memory database
- "table oriented design": object impedance mismatch (which occurs when building OOP apps on top of relational databases) can be solved by designing the app around the database as closely as possible, in other words embracing relational models and completely kicking OOP to the wayside
- think of a structure of arrays like it's a table with fields
- instead of implementing databases with SQL, I can implement them with structs containing C++ std::vectors (or any type of dynamically allocated array)
- code (pure functions) operates on these arrays
- program can be turned into a flat pipeline (of pure data transformations) with an obvious dataflow, simplifying optimization, design and debugging
- Because the data is stored in arrays (vectorized), utilizing SIMD instructions, applying loop optimizations (like loop nest optimizations), improving cache usage, reducing memory usage (by recycling and minimizing allocated arrays), utilizing CPU cores (data and task parallelism) all become trivial to add to the program.
- actual design of the data can be done with regular relational modelling tools (ER diagrams, normalization, etc.)
- structuring games via relational modelling is like an entity component system but with the entities being implicitly defined rather than being explicitly defined
- when I mean database, I mean structure of arrays where the arrays are like columns and the structs are like tables
- moving from an Array of Structs style to a more Struct of Arrays style of organising data
- think about your access patterns. Does it make sense to chuck everything into a big-ass array? Maybe, but maybe not.
- What about if you need to only access objects in the player's immediate area? Why bother running AI, scripting, and rendering for stuff all the way across the map that the player can't see or interact with? In this case, maybe partition the map into "chunks", each one composed of an array of only the data that chunk needs. Then only update/render the chunks in a given radius of the player.
- think about the data you need, and consider how to organize it in a way that gets it through the transforms needed as fast as possible
- computer memory literally just one "big-ass array" of bytes
- NO
- quick Google search into cache hierarchies will show you it's a lot more complicated than just a big array of bytes
- memory, at the level of the hardware, is more complex than just a long line of byte-sized cells, and although, as you say, there are various abstractions over that
- caching is far more about accelerating reads than writes
- caches are small and rely on data being accessed from sequential memory locations, and if your data isn't accessed from sequential locations, you gain no benefit from caches at all. So regardless how seamless the user-facing memory model is, laying data out in one order vs. another — while totally equivalent in the model — can be the difference between the cache working for you or not at all.
- Virtual memory is a whole other topic and set of performance considerations, and has far more to do with the total RAM your software uses (vs. how much physical RAM the machine it's running on has).
- If you mean how the data is stored on your hard drive, then no, it hasn't been one huge array for quite a while now, physically speaking. From a logical perspective yes, memory is a huge array, files are arrays of bytes, etc.
- YES
- Even if a computer has a very complicated memory model, the instruction set architecture and the operating system almost always present an interface to the memory as if the memory were a flat array of bytes. And every complicated memory model that I've discussed is basically about taking a large array of bytes and partitioning it into smaller slices/subarrays.
- Caching happens transparently to the end user. If I write to an integer in memory, then the integer (4 bytes) and the surrounding 60 bytes (for a 64 byte cache line) are loaded into a cache line. In other words, the cache is trying to anticipate all data accesses (temporal and spatial cache locality). Whether I'm using any of the other bytes it loads or not is irrelevant. If I don't set my data to be contiguous in memory, then I'm not guaranteed to be fully utilizing the cache lines. It's as if the cache lines are like little arrays that multiplex slices of the larger array (memory).
- virtual memory addressing is another example of an abstraction that makes memory more complicated. And yet again, it's the operating system that transparently takes care of calculating base and offset registers for each and every process, ensuring that no two processes can overlap in memory. The end user doesn't even need to know that it exists. It's as if the operating system splits the memory (full address space, which is like an array) into smaller sub arrays/slices, where reading and writing from the sub arrays/slices is "bounds checked" to make sure that the data accesses of one processes' owned virtual address space (which is basically a slice/sub array) does not trample on any others. That's "memory safety" in a nutshell.
- page tables are similar to the above concept, except that the memory is divided into equally sized and aligned subarrays/slices of the larger array (memory), which are called "pages". Then each process gets a base and an offset not of bytes, but of pages.
- memory is not an array of bytes... it's an array of bytes that is treated like many smaller arrays of bytes. And each process only gets one.
- NO
- Data Oriented Design is more than just "pack it all into arrays". It's a way of viewing your application from the perspective of data transformations over time, rather than from the objects/messages method of Object Oriented Design, or the provability/mutations method of Functional Programming.
- it all comes down to taking the data from one state to another. And yes, oftentimes a struct of arrays format with all necessary data packed together and coherent is the best way of doing that transformation.
- you still need ways to sort data, do searches on it, compress/decompress it, serialize it, decode/encode it. And doing all of that in an O(n) or worse way can be a nightmare for performance.
- chunking and sharding are common mechanisms for speeding up data access when there are vast datasets (think Terabytes) and massive concurrent access (think thousands or even millions of request per-second).
- added complexity from the actual graphics-engine side, performance considerations and horribly designed (from a Software Architecture point of view) game frameworks push game devs away from thinking about game data as a whole (i.e. a data structure) and from keeping it apart from non-data elements.
- many data structures and algorithms can be designed (read: flattened) to utilize arrays
- It is possible to take a binary tree (implemented using pointers and heap allocations) and flatten it so that all of the nodes are in an array, for example: [0,1,2] could be interpreted as node 0 having child nodes 1 and 2. Binary searching, an algorithm, can be done on data in binary trees and arrays (because of the previous sentence).
- Hashmaps can be implemented with linked lists or dynamically allocated arrays. A perfect hashing function can have it's entire range (possible outputs) mapped into an array that is the perfect size. No allocations outside of the first ever need to be done. For a leetcode question that I did, the most optimized solution to a problem that used a hash map for a less optimized solution, was an array that was treated like a hashmap with a perfect hashing function. I think it was the longest unique substring problem, which uses a sliding door and an array that's just big enough to store 256 chars or something.
- And for other types of graph traversal problems, adjacency lists and adjacency matrices can all be implemented with arrays.
- inserting into arrays is very slow (because it requires copying and pasting the entire array to a different hole in memory). So I can definitely see the strengths of heap allocation based data structures (like graphs) for data that is more dynamic than it is static. And then array based data structures are better for data that is more static than dynamic. And when I say dynamic, I mean that the size isn't known, or the data needs to be shifted around or moved a lot, as opposed to being transformed in place.
- if I use data structures that are not contiguous, then the cache will contain a lot of unused data. But many of the data structures that I've mentioned can be made to be contiguous.
- SoA approach
- pack the cache with only the data relevant at the time
- If you need to update positions before doing collisions, and handle collisions before rendering, it makes sense to encapsulate only the necessary data from each step into their own arrays.
- If I don't vectorize my data, how can I take advantage of SIMD?
- Unity heavily uses object composition (i.e. make a health class and instantiate it in the zombie class, player class, dog class and whatever else has health, as opposed to making an inheritance hierarchy in which zombies, players and dogs all instead inherit from the Health class.)
- Data Oriented Design
- Is structuring game data like a database a good idea?
- OOP in games, especially heavy OOP often gets a bad rep in games.
- You could check Unity's DOTS initiative if you want to see examples of data oriented design in a high-level C# subset
- Is structuring game data like a database a good idea?
SBC
- The Fundamentals of C/C++ Game Programming. Using Target-Based Development on SBC’s by Brian Beuken - 532 pages
OS
Android
- Android Developers
- Build games for Android
- Instant play games
- Full games that are packaged using Google Play Instant are eligible to be featured prominently on the homepage of the Google Play Games app. These instant games are full experience games, not trial versions. Players tap on the Instant play button to play the full game without needing to install it first.
- Хабр / Flappy Bird на Си для Android весом APK всего 92 Килобайта
Linux
- SteamOS
Web
Qt
- KDAB.com / A 3D Block Building Game in QML
Game engine
- FH Vorarlberg / Game Engine Architecture
- Game Engine Architecture
- Foundations of Game Engine Development by Eric Lengyel
- Volume 1: Mathematics - 200 pages
- Volume 2: Rendering - 412 pages
- Multi-Threaded Game Engine Design by Jonathan S. Harbour - 592 pages
- IndieGameDev
- Wikipedia
- gcup.ru Всё о создании игр
- Хабр
- Пилим движок Arcanum
- псевдо3D движок в Mindustry
- Строки в игровых движках
- DTF
- Из теории в практику: как мы создаём движок, который всё изменит
- Модульность
- Оптимизация
- Интуитивный интерфейс
- Адаптивные материалы и шейдеры
- Кроссплатформенность
- Из теории в практику: как мы создаём движок, который всё изменит
- Mod DB / Engines for Games
- LINUX.ORG.RU
- Godot for AA/AAA game development - What's missing?
- Rendering
- compatibility backend
- based on OpenGL ES 3.0 / OpenGL 3.3 / WebGL 2.0 and is intended to run on very old PC hardware as well as most older (still working) mobile phones
- modern backend
- implemented in drivers such as Vulkan, Direct3D 12
- can implement rendering methods, such as forward clustered, mobile, and more in the future (such as deferred clustered, cinematic, etc.)
- using data oriented algorithms to process the culling of objects and both secondary command buffers and automatic batching to efficiently submit the draw primitives
- material options and advanced visual effects (including circle DOF (Depth of Field), volumetric fog, AMD FSR, etc.)
- advanced global illumination techniques such as lightmapping (including SH (Spherical Harmonics) lightmapping), Voxel GI (which is fully real-time) and SDFGI (Signed-Distance Field Global Illumination) (which is a single click, open world GI solution)
- Screen space GI can be used to enhance the realism even more.
- compatibility backend
- Low level rendering access
- there is no architecture that can be considered a one size fits all solution
- cater to solving the most common use cases, and leave the door open for users to solve the less common on their own
- low level access to all the rendering server structures
- creating custom renderers or plugging custom code during the rendering steps, which is very useful for custom rendering techniques or post processes
- Physics
- soft bodies and cylinder shape support
- multiple threads
- ability to bind custom physics engines at runtime
- integrate other engines such as PhysX, Jolt, or Box2D if needed
- Scripting
- lambdas
- first class functions/signals
- useful built-in data types such as integer vectors
- Visual scripting
- visual scripting really shines when combined together with the premade behaviors
- Without a significant amount of high level behaviors available, visual scripting is cumbersome to use as it requires a lot of work to achieve simple things by itself.
- Core engine
- optimized, especially in the memory and data-oriented areas
- Extension
- add features to it practically in any language and without recompiling the engine
- modules
- pluggable, dynamic add-ons
- modular game engine
- achieve results by combining what is there
- Editor
- UI system
- Multiplayer
- Navigation
- Audio
- Animation
- Streaming
- The traditional way to make games longer since the beginning of times is to divide them in stages. As soon as one stage is completed, it is unloaded while the new one is loaded.
- Increasingly, game design has been moving from “individual stages” to “open” or “continuous” worlds where the boundaries between levels disappear.
- This is handled nowadays by a type of technology called “streaming”. It means that assets are pulled from disk on demand (loaded only at the time they are needed), rather than as a part of a larger stage. The most common types of streaming are:
- Texture streaming: All textures are loaded in a tiny size by default. As textures get closer to the camera, higher resolution versions (or mip-maps) are streamed from disk. Textures which haven’t been used for some frames are freed instead. At any given time, the textures loaded (and their detail) closely reflect the place the player is in.
- Mesh streaming: Models are loaded as low detail (few vertices). As they gradually approach the camera, higher resolution versions are streamed from disk. Models that were not used (displayed) for a while are often just freed and will be loaded again when needed.
- The most complex is mesh streaming, which generally needs to be implemented together with a GPU culling strategy to ensure that very large amounts of models can be drawn at no CPU cost.
- Animation streaming: Modern games have long cinematics, which require a lot of animation data. Loading those animations requires a lot of memory and loading them takes a lot of time. To avoid this, animations are streamed by generally keeping the first second or two in memory and then new sections are loaded on demand as the animation plays.
- Audio streaming: Similar to animation streaming, it requires storing the first second or two of audio and then streaming the rest directly from disk.
- most important feature missing for managing large scenes or open worlds
- There is also a risk of running out of memory if too many assets are loaded in parallel instead of streaming them.
- Scene job system
- servers (rendering, physics, navigation, etc.)
- Servers are also now multithreaded
- asset loading can now be done multithreaded (using multiple threads to load multiple assets)
- scene system (which uses those servers)
- Scene nodes are mostly intended to carry complex high level behaviors (such as animation trees, kinematic characters, IK, skeletons, etc.)
- Swarms
- Scenes, as mentioned before, are designed for complex high level behaviors in the hundreds of instances.
- Still, sometimes, some games require larger amounts of instances but less complex behaviors instead. This is needed for some types of game mechanics such as:
- Projectiles (bullet hell for example).
- Units in some types of strategy games with thousands of entitites roaming across a map.
- Cars/people in city simulators, where thousands appear all across the city.
- Sandbox style simulations.
- Complex custom particles that run on CPU.
- Flocks, swarms, mobs, debris, etc.
- swarm system that takes care of the rendering and physics in large amounts of those objects and the user only has to fill in the code logic
- Large team VCS support
- friendly to version control
- integration with the filesystem dock
- real-time refresh of assets if they were modified externally (and checked out)
- Support for permissions and file locking: Git does not support this out of the box, but Git LFS and Perforce do. This feature is essential for large teams to avoid conflicts and keep files protected from unintended modifications (e.g. a team member modifying code or a scene they don’t own by mistake).
- Commercial asset store
- medium-sized studios still rely on significant amounts of assets and pre-made functionality
- Game specific templates and behaviors
- provide a great set of building blocks that can be used and combined to create more specialized game functions and tools
- high level and ready to use components and behaviors
- player controller
- environment controller
- tools to manage the game pacing and flow
- Specialized artist UIs
- The difference is not so much in features supported. In fact, the feature set is fairly similar! The main actual difference is in how they are presented to the user.
- entirely dedicated and isolated interfaces for each of these tasks (materials, cinematic timeline, VFX, animation, etc.)
- Sure, they are monolithic and hence less flexible, but for a large team with high amounts of specialization, an artist does not need to understand as much in-depth how the engine works in order to produce content with it.
- provide simpler and more monolithic interfaces for artists to be able to do their job without requiring significant time investment in learning the technology
- Rendering
- SteamDB / Technologies Статистика использования игровых движков в играх на Стиме
- OSS Insight / Game Engine - Ranking
Unreal Engine
- Tech Blogs
- Wikipedia
- Epic Dev
- Unreal Engine Documentation
- Tom Looman
- UE Casts
- unrealcommunity.wiki
- Epic MegaGrants Apply For Funding to Enhance the UE Open Source Community
- UE Marketplace - Store of UE Assets for Games and 3D Rendering
- JetBrains / Unreal Engine
- The Game Dev Channel / Unreal City Building Game
- YouTube / Microsoft Visual Studio / Build Unreal Engine Games In C++ Faster
- DTF / Unreal Engine 5: Почему его переоценивают и что с ним не так
- Coursera
Pixel Streaming
- Web browser-based Unreal Engine 3D Thanks to Pixel Streaming, you don't need to own pricey hardware or install software to interact with your 3D Unreal Engine apps in real-time and experience high quality 3D in your browser.
- Pixel Streaming allows users to interact with hashtag#Unreal apps through the web browser. No need to install anything on desktop or mobile. Just send a web link to someone, and they can access the app.
4
- Beginning Unreal Engine 4 Blueprints Visual Scripting. Using C++: From Beginner to Pro by Satheesh Pv - 165 pages
- Unreal Engine 4 Game Development Quick Start Guide. Programming professional 3D games with Unreal Engine 4 by Rachel Cordone - 202 pages
- Learning C++ by Creating Games with UE4. Learn C++ programming with a fun, real-world application that allows you to create your own games! by William Sherif - 342 pages
- Unreal Engine 4.X By Example by Benjamin Carnall - 506 pages
5
- Elevating Game Experiences with Unreal Engine 5 by Gonçalo Marques, Devin Sherry, David Pereira, Hammad Fozi - 760 pages
- Nanite Teacher’s Guide
- 80.lv
- YouTube
- Udemy
- retopology tool for Unreal Engine 5 by Ayoub Attache
Unity
- Books
- Unity Game Development Succinctly
- Unity 2017 Game Development Essentials by Tommaso Lintrami - 672 pages
- Game Development Patterns with Unity 2021. Explore practical game development using software design patterns and best practices in Unity and C# by David Baron
- Game Development with Unity for .NET Developers. The ultimate guide to creating games with Unity and Microsoft Game Stack by Jiadong Chen - 584 pages
- Unity Certified Programmer Exam Guide. Pass the Unity certification exam with the help of expert tips and techniques by Philip Walker - 766 pages
- Unity Game Optimization by Dr. Davide Aversa , Chris Dickinson - 404 pages
- Introduction to Unity ML-Agents. Understand the Interplay of Neural Networks and Simulation Space Using the Unity ML-Agents Package by Dylan Engelbrecht - 204 pages
- Unity User Manual
- Unity Blog
- Unity Learn platform / Courses & tutorials in game design, VR, AR, & Real-time 3D
- The Unity Shaders Bible
- GitHub / Unity Technologies
- DOTS Bootcamp maximize your game’s performance.
- Reports
- Game Design & Development Certifications
- SRP (Scriptable Render Pipeline) lets you tailor the rendering process to your target platform so you can optimize performance for specific hardware.
- HDRP (HIGH DEFINITION RENDER PIPELINE) provides advanced 3D real-time rendering technologies optimized for PC (Windows/Mac/Linux/VR) and high-end consoles (PlayStation 4/5, Xbox One, Xbox One Series X and S).
- How Shader Graph can be applied to your 2D or 3D game
- YouTube
- Free Unity 3D Games Programming Course
- Makaka Games / Unity Tutorials
- Using finite state machines to build scalable player controllers by Michael Bitzos
- Хабр / Unity
- 80.lv
- Unity Launches Megacity Metro, A New Multiplayer Game Sample Learn how to build multiplayer experiences with ECS and Unity Gaming Services by downloading the company's new game sample.
- trained an AI to manipulate a ragdoll and walk. It then confronts the player through a sword fight
- Unity DOTS Character Controller by Steven Sell
- How to Create a Simple Player Controller Using Unity by Henry Egloff
- Toptal.com / Unity MVC Tutorial: Level Up Your Game Development with MVC
- GameDeveloper.com / Quickly Learn to Create Isometric Games Like Clash of Clans or AOE
Godot
- Открыты исходные тексты игрового движка Godot
- Godot Docs
- «Всё есть сцена»
- Visual Shader Editor is back (allows creating shaders using nodes and connections, instead of typing code)
- an open-source app to learn @godotengine's GDScript programming language right in your browser.
- Godot Editor (Beta) arrives to the Play Store
- Books
- Game Development with Blender and Godot. Leverage the combined power of Blender and Godot for building a point-and-click adventure game by Kumsal Obuz - 330 pages
- Procedural Generation in Godot. Learn to Generate Enjoyable Content for Your Games by Christopher Pitt - 253 pages
- freeCodeCamp.org / #GODOT
- Phoronix / Proposed "LibGodot" Lets You Embed Godot Game Engine Into Other Apps
- Google Play
- GameDevAcademy.org / Godot 4 Tutorial - How To Set Up A 2D Player Controller
- Hengo Godot Visual Script
The Mirror
Roblox
- Coding Roblox Games Made Easy. The ultimate guide to creating games with Roblox Studio and Lua programming by Zander Brumbaugh
- Mastering Roblox Coding by Mark Kiepe - 424 pages
- С 11 лет разрабатывает игры. Его игры посещают миллионы пользователей по всему миру.
Amazon Lumberyard
NVIDIA
- NVIDIA Developer
Autodesk
Apple
- 3D Apple Games by Tutorials by Chris Language - 462 pages
- Apple Developer Documentation / GameplayKit
SDL (Simple DirectMedia Layer) is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.
PySDL (pure Python wrapper around the SDL2, SDL2_mixer, SDL2_image, SDL2_ttf, and SDL2_gfx libraries)
SFML (Simple and Fast Multimedia Library) provides a simple interface to the various components of your PC, to ease the development of games and multimedia applications.
- Wikipedia
- GitHub
- SFML Essentials. A fast-paced, practical guide to building functionally enriched 2D games using the core concepts of SFML by Milcho G. Milchev - 156 pages
- C++ Game Development By Example. Learn to build games and graphics with SFML, OpenGL, and Vulkan using C++ programming by Siddharth Shekar - 420 pages
- SFML Game Development by Artur Moreira , Henrik Vogelius Hansson , Jan Haller - 296 pages
LibGDX
- Learning Libgdx Game Development by Andreas Oehlke - 388 pages
- Learning LibGDX Game Development. Wield the power of the LibGDX framework to create a cross-platform game by Suryakumar B Nair, Andreas Oehlke - 478 pages
raylib A simple and easy-to-use library to enjoy videogames programming
- raysan5/raylib A simple and easy-to-use library to enjoy videogames programming
Flame engine
- Building Games with Flutter. The ultimate guide to creating multiplatform games using the Flame engine in Flutter 3 by Paul Teale - 224 pages
MonoGame
Cocos Engine
- Cocos Creator is a content creation-focused, scripted, component-based and data-driven game development tool.
- Cocos2dx is the original choice for open-source game developers used by mobile phone, web, and PC game developers for over ten years.
- Cocos Store game assets, plugins, and game source codes.
- Каково это, сделать игру на китайском движке Cocos Creator 3?
Pygame is a set of Python modules designed for writing video games.
jMonkeyEngine (is a game engine for developing 3D games written in Java.)
Unigine
- Wikipedia
- Oil Rush компьютерная игра в жанре стратегии в реальном времени, разработанная компанией UNIGINE Corp.
Urho3D (free lightweight, cross-platform 2D and 3D game engine)
Defold (Cross platform game engine)
- GitHub
- What do I think about Lua after shipping a project with 60,000 lines of code? by Oleg Chumakov
Permafrost Engine (OpenGL 3.3 Real Time Strategy game engine written in C)
Xash3D (open-sourced alternative for all fans of Half-Life modding)
NeoAxis Engine (Real-Time 3D, 2D Development Platform)
ClanLib is a cross platform C++ toolkit library with a primary focus on game creation.
Löve (framework you can use to make 2D games in Lua)
INSTEAD (программа-интерпретатор для простых текстографических приключенческих игр)
Stratagus (free and open-source cross-platform game engine used to build real-time strategy video games)
PixelLight (cross-platform 3D engine)
id Tech 4 (popularly known as the Doom 3 engine)
DarkPlaces (форк известнейшего игрового движка Quake engine)
- Википедия
- Steel Storm (using the free software DarkPlaces engine)
Torque3D (C++ engine)
Irrlicht Engine (open-source game engine written in C++)
Panda3D (open-source, completely free-to-use engine for realtime 3D games, visualizations, simulations, experiments)
Delta3D (open source software gaming/simulation engine API)
Cafu Engine
Nebula Device
ShiVa Engine (Cross-platform Game Engine and IDE)
Dagon Engine (Open Source 3D game development framework based on OpenGL 4.0 core profile and SDL2)
Rod (cross-platform 2d and 3d game engine for Nim)
OpenMW
Spring RTS Engine
FIFE (Flexible Isometric Free Engine) (free, open-source cross-platform game engine)
- GitHub
- Unknown Horizons! open source real-time economy simulation game with strategy elements in an isometric 2D engine
Fyrox A feature-rich game engine built in Rust
- FyroxEngine/Fyrox 3D and 2D game engine written in Rust
gameplay3d free 2D/3D game framework
Halley Game Engine A lightweight game engine written in modern C++
Castle Game Engine Free open-source cross-platform 3D 2D game engine with editor and powerful Pascal API
GDevelop Free, Fast, Easy Game Engine - No-code, Lightweight
- Game examples
- Google Play / GDevelop - 2D/3D game maker
- How To Make A Game on an Android Phone or Tablet
GameMaker.io 2D Game engine
- Tutorials
- Blog
- iXBT.games / В движок Gamemaker добавили функцию специально для разработчиков Deltarune. Автор Undertale рассказал о прогрессе
Flax Engine
- FlaxEngine/FlaxEngine multi-platform 3D game engine
Nau Engine
- ВКонтакте / Nau Engine / Nau Engine: взгляд под капот. Ядро движка
- Хабр / Nau Engine / Nau Engine: взгляд под капот. Ядро движка
Claw Engine
- Overclockers.ru / В НИУ ВШЭ представили уникальный движок для создания видеоигр
Creation Engine
- iXBT.games / Создатель Skyrim объяснил, почему Bethesda не отказывается от игрового движка Creation Engine
- Но спорить о том, стоит ли использовать этот или тот движок, не стоит — движок служит игре....
Roadmap
Courses
- XYZ School
- Harvard University
- Utrecht University (The Netherlands) / Game and Media Technology Program / Nicolas PRONOST
- CMSC 425: 0101/0201. Game Programming introduction to the principles, practices, and technologies of computer game programming and design.
Game Design
- Books
- Game Balance by Ian Schreiber and Brenda Romero
- The Way We Play. Theory of Game Design by Michael Killick - 228 pages
- Reverse Design by Patrick Holleman
- Exploring Game Mechanics. Principles and Techniques to Make Fun, Engaging Games by Maithili Dhule - 193 pages
- How to Make a Video Game All By Yourself by Matt Hackett
- DTF
- YouTube
- Wikipedia
- Category:Video game terminology
- 4X — eXplore, eXpand, eXploit, eXterminate
- Game mechanics
- Template:Video game gameplay
- Compulsion loop (core loop) is a habitual chain of activities that will be repeated by the user to cause them to continue the activity. Typically, this loop is designed to create a neurochemical reward in the user such as the release of dopamine.
- Player character is a fictional character in a video game or tabletop role-playing game whose actions are controlled by a player rather than the rules of the game.
- LINUX.ORG.RU
- CoreMission.net Разработка игр, коллективный бэкстейдж-проект об играх и геймдеве
- YouTube / DTF / Дизайн боевок
- Грабить корованы
- Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы... И эльфу раз лесные то сделать так что там густой лес...
- ixbt.games
- Игроки ничего не понимают в разработке игр и оторваны от реалий в своих ожиданиях, считает дизайн-директор Starfield
- «Есть идеальная игра, которую вы ХОТИТЕ создать... и есть игра, которую вы МОЖЕТЕ создать. Иногда, если небеса вам благоволят, эти две игры оказываются очень близки друг к другу».
- Сложность против всех! Что бесит на высокой сложности в играх и как её используют разработчики
- Творческий директор Saber Interactive связывает провалы ААА-игр со стремлением разработчиков сделать слишком много всего разом
- то, что вы делаете каждую секунду, и то, что происходит, когда вы нажимаете эти кнопки, и основной геймплейный цикл очень важны. Поэтому мы фокусируемся...на ощущениях, которые вы испытываете.
- Игроки ничего не понимают в разработке игр и оторваны от реалий в своих ожиданиях, считает дизайн-директор Starfield
- how to never finish your indie game? try to make it perfect.
- App2Top.ru / Что поможет в создании медитативной игры?
- Skillbox Media
- Хабр
- Overclockers.ru / Кодзима мечтает создавать игры, которыми будут восхищаться в далёком будущем
Platformers
- Game Design Deep Dive. Platformers by Joshua Bycer
- Аус Хестов / Как сделать хороший платформер
Jump
Story
- Wikipedia
- RPG Maker is a series of programs for the development of role-playing video games (RPGs) with story-driven elements
- Dynamic Story Scripting with the ink Scripting Language by Daniel Cox - 272 pages
- Articy The solution for interactive storytelling and game content management.
Podcasts
- Как Делают Игры
- The House of the Dev подкаст и сообщество для разработчиков игр, которым нужна помощь любого толка — от консультаций до финансирования и внимания прессы.
Коллекции
Community
- 80 Level
- GameDev.net
- GameDev.ru
- DTF
- Хабр
- Пикабу / Лига Разработчиков Видеоигр
- Двач / Gamedev
- Valadria: The land of making & selling games Join 900+ game devs learning to make & sell games.
Conferences
Awards
- CEDEC
Magazine
- IEEE Spectrum
Press
- Routledge and CRC Press
- Apress / Game Development
- O’Reilly
Q&A
- Game Development Stack Exchange
- Arqade
- Board & Card Games Stack Exchange
- Chess Stack Exchange
- Poker Stack Exchange
- Role-playing Games Stack Exchange
Marketing
- App2Top.ru: сайт для разработчиков, издателей и маркетологов игр
- How to pitch your indie game to publishers, press, youtubers, or your
- Трейлеры
- ixbt.games
- Инди-разработчик случайно отправил Valve хомячьи системные требования. Для запуска Bat to the Heavens просят подключить грызунов
- Инди-разработчица 10 лет делала игру, которая утонула в новых релизах в Steam. Она пожаловалась на EA и продажи поползли вверх
- Издатель Manor Lords объяснил, почему многие игры проваливаются и упрекнул коллег по индустрии
- ошибки, которые, как я вижу, часто совершают издатели, а именно: при продвижении игры на рынке пытаться выдать её за что-то другое, что не совсем соответствует игре…
Careers
- Video Game Careers Demystified: Trifecta of Game Makers, Athletes, and Ecosystem in a Thriving Industry by Michael Chang
- «Я шла не за деньгами, я шла за мечтой». Белоруска бросила работу с мозаикой ради игр
- DigitalBusiness.kz / Вырос в деревне без света, но пробился в люди и теперь зарабатывает 1 млн тенге
- Skillbox Media / «Мне говорили, что денег на играх не заработать»: как в 47 лет начать путь в геймдеве
- iXBT
- Games Career Prep Roadmap
- The Tech Stack
- Small Scale Games
- Long Form Games
- Build a Portfolio Site
- Apply and Network like Crazy
- YouTube / Roman Stepanov
- dev.by / Китайская геймдев-компания отдаёт сотрудникам до 20% прибыли игр в 2021 году Lilith Games отдала 90 разработчикам AFK Arena $25 млн
Burnout
- Шутер VLADiK BRUTAL не стал успешным, отменены сиквел и DLC. У разработчика опустились руки и он задумался о будущем
- вы бы знали сколько раз я бегал по больницам, сколько раз лечился от разных болячек из-за плотной разработки брутала, вторая подобная разработка будет действительно смертельной, а не умирать за ПК не получится
- iXBT / Многие разработчики уходят из игровой индустрии ради других карьер
- веб-разработки
- растениеводства
- линейными поварами
- ремонтируют велосипеды
Competition
- Indie Cup
- itch.io / Game jams
- Game Off is an annual game jam celebrating open source created by Lee Reilly in 2012 and sponsored by GitHub.
- Wikipedia
- The GitHub Blog
- Tags
- Game Off 2022 winners
- Top-rated entries from Game Off 2021
- Highlights from Game Off 2020
- 13 ghoulish games to play, hack and slash this weekend
- Game Off 2019 Winners
- Game Off 2017 winners
- Game Off IV Highlights
- Game Off III - Everyone's a Winner
- GitHub Game Off II Winners
- GitHub Game Off Winners
- Top five Godot games and source code from Game Off 2022
News
- Игромания / Новости об играх, фильмах и сериалах, современных технологиях и киберспорте
- Новости компьютерных и консольных игр iXBT.games
- Forbes / Games
Monetization
- Wikipedia
- 1 000 000 $ на мобильных играх: 5 способов начать зарабатывать в геймдеве Как предприниматель без знаний в программировании и опыта работы в игровой индустрии смог успешно развить геймдев-студию с оборотом 80 000 $ в месяц
- iXBT
- Актёр Assassin's Creed раскритиковал менеджеров, зацикленных на идее создания игр-сервисов с большой прибылью
- «...Есть причина, по которой многие из этих крупных игровых издателей и компаний выбирают модель "игры-сервиса". Они хотят попытаться сделать следующую Fortnite, потому что это принесет им больше денег. Игры не должны быть об этом. Они не должны быть о деньгах, а должны быть о выражении [идеи], они должны быть об удовольствии, о повествовании, об интерактивности...».
- Игра Manor Lords принесла "разработчику-одиночке" и его издателю 60 миллионов долларов выручки
- Россияне стали самыми богатыми разработчиками игр в Великобритании. Их состояние в 16 раз превышает ближайшего конкурента
- 100 тысяч долларов на первой игре в Steam в 16 лет. Инди-разработчик рассказал, как пришёл к успеху
- Инвестиции в игровую индустрию. Краткий обзор ценных бумаг 4 октября 2023
- Нестандартная инди-игра за $7 заработала больше AAA-продуктов за $70. Чарт продаж Steam подтверждает запрос на оригинальные идеи 2024/10/22
- Актёр Assassin's Creed раскритиковал менеджеров, зацикленных на идее создания игр-сервисов с большой прибылью
- Overclockers.ru
- Хабр / Как создавались валюты для онлайн-игр
- App2top.ru
- Forbes.ru / Доигрался: как сооснователь Valve превратил успех Half-Life в состояние в $10 млрд
Open Source
- Electronic Arts Inc. is pleased to make available open source code ("Source Code") utilized in our products
- GitHub: Where the world builds software
- SOSCSRPG – Scott's Open-Source C# Role-Playing Game
- Phoenix Code Editor / HTML-игры
- Wikipedia
- opengaming/osgameclones Open Source Clones of Popular Games
- 201flaviosilva-labs/Open-Source-Games A list of popular/awesome video games. Any genre. Any platform. Any engine.
- r/gamedev / Good resource on source code of old games?
3D
Blender
- Wikipedia
- Creating Game Environments in Blender 3D. Learn to Create Low Poly Game Environments by Ezra Thess Mendoza Guevarra - 243 pages
- Building a Game with Unity and Blender. Learn how to build a complete 3D game using the industry-leading Unity game development engine and Blender, the graphics software that gives life to your ideas by Lee Zhi Eng - 250 pages
- DTF / Gamedev: как рисовать игры?
Maya
- Beginning 3D Game Assets Development Pipeline Learn to Integrate from Maya to Unity by Nova Villanueva - 315 pages
Glossary
Cloud
- Wikipedia
- Microsoft Azure for Game Development
- Game Backend Development with Microsoft Azure and PlayFab by Balint Bors - 378 pages
- How-To Geek / Cloud Gaming
Google Stadia (cloud gaming service)
- Wikipedia
- CDC File Transfer (it's a way for syncing and streaming files from Windows to Linux)
Intel
JetBrains
- YouTube / JetBrains
- JetBrains / Guide / Game Development
Amazon
- AWS for Games - Game Development Solutions in the Cloud to help you build, run, and grow your games.
- AWS for Games Blog
- LEARN ABOUT... / AWS for Games
CI/CD
Prefab
Subscription
- Wikipedia
Test
- Testing for Game Development
- InfoQ / The Tools We’ve Built to Test a Game Engine
- Unity
- Model Based Testing
- Model Based Testing of a Game Engine using a Mono/.NET port of GraphWalker by Marek Turski, Unity Technologies
- Model Based Testing a 3D game engine by Rasmus Møller Selsmark
- Model Based Testing
Console
- Software and hardware projects for fun from a guy who loves retro computing
- YouTube
- Хабр / Прекратил работу RomHacking — еще один сайт с образами игр для ретроконсолей. Почему они уходят?
- iXBT / Фанат создал портативную PS4. Как выглядит, насколько долго можно играть?
People
Reversing
- reddit.com/r/REGames
- GitHub
- LINIX.ORG.RU / Реверсинг некоторых форматов игр
Optimization
- iXBT
- A common video game speed optimization is to only draw on screen what the player is currently looking at. Why?
- Well, the amount of resources necessary to calculate everything, everywhere, all at once in the game state as it exists in the server is ENORMOUS. So, for better performance and lower costs, us developers/engineers only calculate what that player is currently looking at. This method is what allows us to build extremely large, seemingly endless virtual worlds that can be loaded seamlessly on-demand. It works by quickly calculating new state information and accurately displaying it on your screen when your character moves around... much like our brains do when we move around on Earth.
- Quantum physics & mechanics, "the Observer Effect", is showing to us that our reality works in a very similar way. That reality only exists when there is something there to OBSERVE it. Your perception is everything.
Profiling
- Riot Games Technology / Profiling: Measurement and Analysis what’s happening in larger scale projects, especially really large high performance stuff
- wolfpld/tracy A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.
Save
- Wikipedia
- Saved game is a piece of digitally stored information about the progress of a player in a video game.
- 4PDA.to / Автор Fallout: New Vegas раскритиковал ручные сохранения в играх
- По большому счёту, они позволяют игрокам избежать наказания за неверное решение, отчего в целом снижается азарт и падает внимательность: сложно относиться к игре всерьёз, если знаешь, что по нажатию одной кнопки можно запросто отменить любую свою ошибку.
Blockchain
- Building Games with Ethereum Smart Contracts. Intermediate Projects for Solidity Developers by Kedar Iyer, Chris Dannen - 287 pages
Indie
- LinkedIn / MY.GAMES / INDIE GAMEDEV TOOLBOX
- DTF
- Инди Истории из жизни инди-разработчиков.
- iXBT.com / Взлёт инди-игр или парадокс соврменной игровой индустрии