20150110

ESP. Часть 0. Теория.

Всем привет!

Пожалуй, я достаточно много часов проработал, чтобы работа порядком поднадоела. Еще с самого первого момента, когда я заикнулся про 3D-графику в блоге, в ответ уважаемые читатели стали хором спрашивать, когда мы сделаем простенький ESP. Ну, скоро сделаем! Правда, для начала разберемся немного с теоретической частью, потому что эта тема - не поиск значений и даже не дизассемблирование, а нечто чуть более сложное. Итак!

ESP - это сокращение от английского Extrasensory Perception, проще говоря - шестое чувство. Это когда мы знаем что-то такое, чего в нормальных условиях знать не должны. Например, сколько до какого-то объекта метров. Точно, а не на глазок. Или сколько у такого-то монстра здоровья. Выглядит это примерно вот так:














Мы немного разобрались с темой 3D-графики, научились перехватывать функции рисования, так что теперь мы можем рисовать геометрические фигуры, выводить текст а так же заменять или убирать текстуры по нашему выбору. Это-то круто, конечно, но 3D-движок, который просто рисует кучу цветных треугольничков на экран, ничего не знает об имени, здоровье, оружии или чем-то таком. Он просто знает, как рисовать треугольнички. Вот (очень) примерная схема работы игры:

While( true ) {
    Fight();
    Draw();
    PlaySound();
}

Игра - это бесконечный цикл, разные куски которого отвечают за разные вещи. Один - за игровую механику, другой - за физику, третий - за звук, четвертый - за отрисовку. Я все это к тому, что игровая механика и логика (там как раз и лежат здоровье, оружие, имя и все остальное) лежат отдельно от графики.

План действий будет примерно таким:
- Получаем информацию, которую нам нужно нарисовать на экране.
- В цикле обновляем ее и выводим на экран, используя полученные в предыдущих уроках знания.

Начнем с первого, а дальше я буду объяснять по ходу дела и рассказывать все более детально.