Pull to refresh
64
0.3
Николай Шалакин @AskePit

Программист

Send message

Магическая система типов Rust

Level of difficultyEasy
Reading time9 min
Views2.5K

Код из КДПВ — кусок дерьма; кошмар, который вот-вот случится. Чтобы понять, почему и как это исправить, сначала нужно понять главный урок, который мне преподал Rust: силу использования системы типов для обеспечения инвариантов.

Давайте разбираться
Total votes 10: ↑9 and ↓1+13
Comments62

Многопоточность в играх

Level of difficultyEasy
Reading time16 min
Views9.4K

Современные игры щедры на обилие контента, геймплейные механики и интерактивность. На экране происходит много всего и сразу — мир живой, отзывчивый и даже без активного участия игрока жизнь в нем продолжает кипеть, и мы наблюдаем исполнение множества событий одновременно.

Давайте окунемся в детали реализации этого многообразия игровых событий и выясним, какую роль в этом всем играет многопоточность, и сколько ядер нужно типичной игре.

Читать далее
Total votes 24: ↑23 and ↓1+27
Comments15

Punk riff generator

Level of difficultyMedium
Reading time38 min
Views1.7K

В данной статье мы будем воспроизводить звук в браузере на примере небольшого проекта под названием Punk riff generator.

В проекте заложена нехитрая идея: дать возможность генерировать и воспроизводить в браузере 4 случайных аккорда, которые можно было бы в последствии использовать как основу для очередной панк-песни. Ну не здорово ли?

Читать далее
Total votes 15: ↑15 and ↓0+19
Comments13

Игровые паттерны программирования: Game Loop

Level of difficultyEasy
Reading time19 min
Views8K

Это перевод одной из глав книги Game programming patterns Роберта Найстрома. Так как книга по сути состоит из подробного описания шаблонов проектирования, каждая глава может рассматриваться как самостоятельная статья, чем я и воспользовался и перевел, как мне кажется, статью с самым важным паттерном в игростроении — Game loop.

Читать далее
Total votes 10: ↑10 and ↓0+11
Comments4

Используйте Arc<[T]> вместо Vec<T>

Level of difficultyMedium
Reading time13 min
Views6.3K

В этой статье я хотел бы поговорить о том, почему вы могли бы предпочесть использование Arc<[T]> вместо Vec<T> в качестве варианта по умолчанию в вашем Rust-коде.

Читать далее
Total votes 16: ↑15 and ↓1+17
Comments20

Git в условиях экстремальной атомарности веток

Level of difficultyEasy
Reading time3 min
Views4.6K

Как устроены ваши ветки в git? Как они выглядят, какого размера? Под катом я вам расскажу, как сначала загнать себя в жесткие рамки, а потом одним лайфхаком справиться с последствиями.

Читать далее
Rating0
Comments2

Вороной, Манхэттен, рандом

Level of difficultyEasy
Reading time34 min
Views19K

Это история про то, как не довести дело до конца, но получить уйму опыта, и вообще ни разу не обломаться.

Итак, у нас был один программист, один художник, абсолютное непонимание рабочего процесса, незнакомый нам игровой движок и желание что-то намутить. Если вам интересно, как в одном месте сошлись карта Вороного, частный случай расстояния Минковского, преобразования над полигонами, процедурная генерация и шумы — и все это в красивой стилизованной обертке, то вам под кат.

Осторожно, очень много картинок!

Читать далее
Total votes 160: ↑160 and ↓0+160
Comments53

Делаем разработку на Rust еще более потной с помощью git

Level of difficultyEasy
Reading time8 min
Views7.3K

Rust же создавали, чтобы держать программиста в ежовых рукавицах? Так почему бы не заставить git скооперироваться с Rust и не издеваться над программистом на пару?

На самом деле статья не сколько про Rust, сколько про git, поэтому если вы не особо знакомы с Rust, не смущайтесь сильно — повествование будет скорее про флоу разработки нежели чем про язык. Rust в статье выбран скорее за его удобный пакетный менеджер cargo, который сделает суть повествования лаконичнее и нагляднее.

Читать далее
Total votes 16: ↑13 and ↓3+13
Comments13

Что нам недодали в C++

Level of difficultyMedium
Reading time12 min
Views24K

C++ последний десяток с лишним лет стремительно развивается. Тем не менее в наших кодовых базах все еще присутствуют многочисленные helper-файлы и классы, которые помогают восполнить пробелы в стандартной библиотеке языка. Как же так вышло, что там в этих ваших helper-файлах, и когда это закончится?

Читать далее
Total votes 64: ↑62 and ↓2+81
Comments177

Information

Rating
2,418-th
Date of birth
Registered
Activity

Specialization

Backend Developer, Game Developer
Middle
From 350,000 ₽
C++
Game Development
Git
Python
Rust
OOP
English