Советы падаванам C++ ( Часть 1 )

///////////////////////////////////////////////////

// Начальный курс создания компьютерных игр на C/C++

[0][1][2][2.5][3][4][5][5.5][6][6.2][7][7.2][8][9][9.2][10]


Всем привет! :]


Количество подписчиков в группе перевалило за отметку 256, а значит нужно их чем-то порадовать. :) На полноценные посты об играх у меня сейчас к сожалению нет времени, поэтому попробую себя в новом формате. Встречайте новую рубрику мини-постов "Советы падаванам C++"! :]

Советы падаванам C++ ( Часть 1 ) Программирование, Курсы программирования, Обучение, C++, Dansken, Длиннопост
Советы падаванам C++ ( Часть 1 ) Программирование, Курсы программирования, Обучение, C++, Dansken, Длиннопост
Советы падаванам C++ ( Часть 1 ) Программирование, Курсы программирования, Обучение, C++, Dansken, Длиннопост
Советы падаванам C++ ( Часть 1 ) Программирование, Курсы программирования, Обучение, C++, Dansken, Длиннопост

P.S. Первый блин может быть комом, поэтому напишите пожалуйста в комментариях ваши мнения, пожелания и жалобы. Cya! :)

Лига программистов C/C++

60 постов4.8K подписчиков

Добавить пост

Правила сообщества

Соблюдайте правила Pikabu:

https://pikabu.ru/html.php?id=wtf


Помимо этого ЗАПРЕЩЕНО:

- Размещать в сообществе посты стиля "Подскажите как удалить вирус", "Подскажите как установить программу", "Подскажите как починить монитор/телевизор/мышь/тостер/стиральную машину" или "Напишите за меня лабу в универ". Пожалуйста размещайте такие посты вне этого сообщества или в соответствующих для этого сообществах.

22
Автор поста оценил этот комментарий
Пишу субъективное мнеие, потому не обессудь.


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


О языке:

- Правило трех(пяти).

- RAII, умные указатели, исключения.

- C++11(14) особенности и улучшения, как было плохо раньше и как красиво сейчас.

- Новые штуки стандартной библиотеки, вроде chrono, многопоточности, насколько это легко и классно.


Паттерны: цикл статей с объяснением и примерами применения в играх (для поддержания интереса аудитории).


Обзор каких-то базовых возможностей библиотек:

- Boost

- Qt, wxWidgets, GTKmm и прочие

- OpenCV

- ...


Цикл статей на тему создания сетевой игры. Хотя бы модификация танков на два игрока.


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


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

Тут важно, конечно, о чем тебе самому писать интереснее, ибо без мотивации будет ерунда =)

раскрыть ветку
2
Автор поста оценил этот комментарий

В стандартной библиотеке есть такая замечательная вещь, как assert, которая конкретно в MSVC реализована через __debugbreak. В Release версии assert превращается в пустую строку. И не надо самому писать кучу макросов для того, чтобы реализовать подобное для разных окружений.


Ну и самый простой пример


void DoSmth(int* pointer)
{
if(pointer == nullptr)
{
assert(!"Unexpected nullptr");
}


...

}

P.S. А ещё, если пост для новичков, то следует подробнее разъяснить в каких случаях нужно использовать assert / __debugbreak, а в каких нужно проверять при помощи if и писать полноценную реакцию. Когда впервые с этим сталкиваешься, это не особо понятно.
2
Автор поста оценил этот комментарий

Кстати, вдруг кто не знает, очень полезно:

макросы __FILE__ __FUNCTION__ __LINE__ - содержат текущее имя файла, текущую функцию и линию в коде.

10
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку
4
Автор поста оценил этот комментарий

Простое правило про include guards: никогда не используйте include guards

Все современные компиляторы поддерживают #pragma once

1) Это производительней

2) Это понятнее

3) Это не вызовет косяков, если встретятся файлы с одинаковым названием

раскрыть ветку