Creating an RTS Game in Unity 2023: A comprehensive guide to creating your own strategy game from scratch using C#

Creating an RTS Game in Unity 2023: A comprehensive guide to creating your own strategy game from scratch using C#

Creating an RTS Game in Unity 2023: A comprehensive guide to creating your own strategy game from scratch using C#
Автор: Cicanci Bruno
Дата выхода: 2023
Издательство: Packt Publishing Limited
Количество страниц: 548
Размер файла: 5.7 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы  Дополнительные материалы 

Кто мы....16
Наша философия....16
Наш опыт....17
Исходный код примеров....18
От издательства....19
Введение....20
О чем эта книга....20
Структура издания....21
Для кого эта книга....21
Ваше путешествие начинается....22
Часть I. Знакомство с Python и основные структуры данных
Глава 1. Введение в Python и алгоритмы....24
1.1. Назначение алгоритмов и структур данных....24
1.1.1. Значение эффективности....25
1.1.2. Организация данных....26
1.1.3. Гибкость и масштабируемость....26
1.1.4. Радость решения задач....27
1.1.5. Универсальность алгоритмов....27
1.1.6. Строительные блоки для расширенных концепций....28
1.1.7. Критическое мышление и навыки решения задач....28
1.1.8. Подготовка к техническим собеседованиям....29
1.1.9. Разные возможности....29
1.2. Эволюция программирования....30
1.2.1. Рассвет программирования: перфокарты и машинный код....30
1.2.2. Язык ассемблера и лестница абстракций....31
1.2.3. Языки высокого уровня: большой скачок....31
1.2.4. Структурная и объектно-ориентированная парадигмы....32
1.2.5. Современная эра: гибкость, открытый исходный код и Интернет....33
1.2.6. Будущее: квантовые вычисления,
искусственный интеллект и не только....34
1.2.7. Интегрированные среды разработки и инструментарий....34
1.2.8. Движение за открытый исходный код....35
1.2.9. Мобильная революция и кросс-платформенная разработка....35
1.2.10. Облачные вычисления и бессерверные архитектуры....36
1.2.11. Контейнеры и микросервисы....37
1.2.12. Неавтоматизированные и автоматизированные платформы ....37
1.3. Python и алгоритмы....38
1.3.1. Простой синтаксис Python: псевдокод оживает....39
1.3.2. Универсальность и библиотеки: сокровищница инструментов....40
1.3.3. Интерактивность с помощью Python: петля мгновенной
обратной связи....41
1.3.4. Масштабируемость: от обучения к реальным решениям....42
1.3.5. Поддержка сообщества: пишем код вместе....42
1.3.6. Проблемы производительности и не только....42
1.3.7. Философское выравнивание: «Дзен Python» и алгоритмическое
мышление....43
1.3.8. Адаптация: эволюция Python и современные алгоритмы....44
1.3.9. Красота разнообразия: многообразие парадигм
и гибкость алгоритмов в Python....44
1.4. Роль Python в разработке алгоритмов....45
1.4.1. Доступная точка входа в Python:
путь к алгоритмическому мышлению....46
1.4.2. Прототипирование: от идеи до воплощения....47
1.4.3. Визуализация и отладка: видеть — значит верить....47
1.4.4. Преодоление препятствия: перевод Python на другие языки....48
1.4.5. Создано для сотрудничества: совместное использование
и развитие....49
1.4.6. Рост машинного обучения и искусственного интеллекта: Python
на переднем крае....49
1.4.7. Интеграция с Си/С++: повышение производительности....50
1.4.8. Расширение Python с помощью алгоритмов: создание модулей
и пакетов....51
1.4.9. Сообщество и открытый исходный код: стоя па плечах гигантов....51
Практические упражнения....52
Резюме....54
Глава 2. Погружение в Python....56
2.1. Основы синтаксиса Python....56
2.1.1. Отступы....56
2.1.2. Комментарии....57
2.1.3. Переменные....58
2.1.4. Операторы и выражения....58
2.1.5. Двоеточия....59
2.1.6. Функции....59
2.1.7. Списки и индексация....60
2.1.8. Обработка строк....61
2.1.9. Циклы....62
2.1.10. Словари....62
2.1.11. Обработка ошибок....63
2.2. Типы данных и операторы....64
2.2.1. Основные типы данных....64
2.2.2. Контейнеры....66
2.2.3. Операторы....68
2.3. Управляющие структуры и функции....74
2.3.1. Управляющие структуры....74
2.3.2. Вложенные управляющие структуры....77
2.3.3. Тернарный оператор....78
2.3.4. Лямбда-функции....78
2.3.5. Строки документаций для функций....79
2.3.6. Рекурсия....80
2.3.7. Генераторы....80
Практические упражнения....81
Резюме....83
Глава 3. Простые контейнеры данных....85
3.1. Списки, кортежи, множества и словари....85
3.1.1. Списки....86
3.1.2. Кортежи....86
3.1.3. Множества....87
3.1.4. Словари....88
3.1.5. Генераторы списков....89
3.1.6. Распаковка кортежей....89
3.1.7. Операции с множествами....90
3.1.8. Словарные методы....91
3.2. Объектно-ориентированное программирование: классы, объекты
и инкапсуляция....92
3.2.1. Классы и объекты....92
3.2.2. Инкапсуляция....93
3.2.3. Наследование....95
3.2.4. Полиморфизм....96
3.2.5. Композиция....97
3.2.6. Перегрузка методов....98
3.2.7. Цепочка методов....99
3.3. Стеки, очереди и их применение....100
3.3.1. Стеки....100
3.3.2. Очереди....102
3.3.3. Расширенное применение и вариации....104
3.4. Связанные списки: указатели, узлы и их применение....107
3.4.1. Что такое связанные списки....107
3.4.2. Основные компоненты....108
3.4.3. Типы связанных списков....109
3.4.4. Операции над связанными списками....110
3.4.5. Применение связанных списков....111
3.4.6. Преимущества связанных списков перед массивами....112
3.4.7. Недостатки связанных списков....113
3.4.8. Вариации на тему....114
3.4.9. Пример использования: управление памятью в операционных
системах....114
3.4.10. Советы по работе со связанными списками....115
Практические упражнения....116
Резюме....118
Проект 1. Базовый калькулятор....120
Настройка основного фреймворка....120
Реализация арифметических функций....122
Интеграция арифметических функций с основным фреймворком....122
Улучшение пользовательского опыта....123
Добавление расширенных арифметических функций....124
Добавление расширенных функций....124
Функции памяти....125
Улучшение интерфейса пользователя и опыта взаимодействия с данным
интерфейсом....126
Часть II. Сортировка, поиск и иерархические структуры
Глава 4. Сортировка....128
4.1. Основные алгоритмы сортировки....128
4.1.1. Пузырьковая сортировка....129
4.1.2. Сортировка выбором....130
4.1.3. Сортировка вставками....131
4.2. Расширенная сортировка....133
4.2.1. Быстрая сортировка: «разделяй и властвуй»....133
4.2.2. Сортировка слиянием: объединение упорядоченных списков....134
4.2.3. Пирамидальная сортировка: использование двоичной кучи....136
4.2.4. Сравнение расширенных алгоритмов сортировки....137
4.3. Анализ временной сложности и производительности....139
4.3.1. Концепция временной сложности....140
4.3.2. Нотация «О большое»....140
4.3.3. Не только временная сложность....141
4.3.4. Эмпирический анализ производительности....142
4.3.5. Практическое применение временной сложности....143
4.3.6. Инструменты визуализации....144
Практические упражнения....145
Резюме....147
Глава 5. Поисковые операции и эффективность....149
5.1. Линейный и бинарный поиск....149
5.1.1. Линейный поиск....150
5.1.2. Двоичный поиск....151
5.1.3. Сравнение алгоритмов....151
5.1.4. Анализ производительности....152
5.1.5. Применение в реальных сценариях....154
5.2. Хеширование....156
5.2.1. Что такое хеширование....156
5.2.2. Хеш-функция....157
5.2.3. Разработка хеш-функций....158
5.2.4. Эффективность хеширования....158
5.2.5. Применение хеширования....160
5.2.6. Криптографические хеш-функции....161
5.2.7. Встроенная в Python функция hash()....162
5.2.8. Потенциальные сложности....162
5.3. Хеш-таблицы: реализация и разрешение коллизий....163
5.3.1. Базовая реализация хеш-таблицы....164
5.3.2. Изменение размера хеш-таблицы....165
5.3.3. Методы разрешения коллизий....165
5.3.4. Обработка коллизий....165
5.3.5. Работа с удалениями....168
5.3.6. Применение и ограничения хеш-таблиц....169
5.3.7. Соображения безопасности....170
5.3.8. Сравнение хеш-таблицы, хеш-карты и словаря....170
5.4. Временная сложность и нотация «О большое»....171
5.4.1. Временная сложность....171
5.4.2. Нотация «О большое»....172
5.4.3. Важность анализа временной сложности....175
5.4.4. Визуализация нотаций «О большое»....176
5.4.5. Распространенные заблуждения и ошибки....177
5.4.6. Оценка поисковых алгоритмов с помощью нотации
«О большое»....179
Практические упражнения....180
Резюме....182
Глава 6. Деревья и графы: иерархические структуры данных....185
6.1. Деревья: типы и методы обхода....185
6.1.1. Виды деревьев....186
6.1.2. Методы обхода деревьев....187
6.1.3. Расширенные концепции обхода....191
6.1.4. Практическое применение деревьев....191
6.2. Графы: представление и основные алгоритмы....193
6.2.1. Основные понятия....194
6.2.2. Представление графов....195
6.2.3. Основные алгоритмы построения графов....197
6.2.4. Практическое применение графов....199
6.2.5. Практические советы....200
Практические упражнения....200
Резюме....202
Тесты к части II....204
Проект 2. Приложение для списка контактов....206
Реализация базовой структуры....206
Определение контактного узла....206
Создание двоичного дерева поиска....207
Проверка базовой вставки....207
Добавление функции поиска....208
Добавление функции удаления....208
Перечисление всех контактов....209
Будущие улучшения....210
Часть III. Расширенные алгоритмические методы
и сетевые структуры
Глава 7. Освоение алгоритмических методов....212
7.1. Стратегия «разделяй и властвуй»....212
7.1.1. Этапы....212
7.1.2. Преимущества....213
7.1.3. Применение....214
7.2. Динамическое программирование....216
7.2.1. Как работает метод....216
7.2.2. Подходы....217
7.2.3. Расширенные концепции....217
7.2.4. Применение....218
7.2.5. Сравнение динамического программирования и стратегии
«разделяй и властвуй»....222
7.3. Жадный подход и поиск с возвратом....223
7.3.1. Жадный подход....223
7.3.2. Поиск с возвратом....227
7.3.3. Анализ сложности жадных алгоритмов
и алгоритмов поиска с возвратом....229
Практические упражнения....230
Резюме....232
Глава 8. Сети и пути: расширенные графовые алгоритмы....234
8.1. Глубокое погружение в теорию графов....234
8.1.1. Темы повышенной сложности....235
8.1.2. Продвинутые алгоритмы....237
8.1.3. Применение в реальных задачах....243
8.2. Алгоритмы для поиска кратчайших путей, потоков и связности....245
8.2.1. Алгоритмы поиска кратчайшего пути....245
8.2.2. Алгоритмы сетевых потоков....248
8.2.3. Алгоритмы связности графов....251
8.3. Оптимизация сетей и передовые графовые методы....253
8.3.1. Оптимизация сетей....254
8.3.2. Продвинутые графовые методы....256
8.3.3. Кластеризация графов....257
8.3.4. Встраивание графов и анализ сетей....259
8.3.5. Анализ графов и большие данные....260
Практические упражнения....262
Резюме....264
Тесты к части III....266
Проект 3. Приложение для прокладки маршрутов на основе карты....268
Настройка графа для карты....268
Реализация алгоритма Дейкстры....269
Взаимодействие с пользователем и обработка ввода....270
Работа с картографическими данными реального мира....270
Графический интерфейс для визуализации (необязательно)....271
Чего мы достигли....271
Часть IV. Обработка строк, расширенные концепции
и практическое применение
Глава 9. Расшифровка строк и образцов....274
9.1. Строковые алгоритмы....274
9.1.1. Области применения....275
9.1.2. Ключевые понятия....276
9.1.3. Дополнительные сведения....278
9.1.4. Расширенные методы обработки строк....281
9.2. Поиск по образцу, префиксные и суффиксные деревья....285
9.2.1. Поиск по образцу....285
9.2.2. Префиксные деревья....287
9.2.3. Суффиксные деревья....289
9.2.4. Дополнительные варианты использования....291
9.3. Передовые методы сопоставления с образцом и анализа текста....294
9.3.1. Расширенные методы работы с регулярными выражениями....295
9.3.2. Приближенное сопоставление строк (нечеткое сопоставление)....297
9.3.3. Интеллектуальный анализ текста и аналитика....299
9.3.4. Обработка естественного языка и интеграция искусственного
интеллекта....301
Практические упражнения....305
Резюме....307
Глава 10. Сложные вычислительные задачи....309
10.1. NР-трудные и NР-полпые классы....309
10.1.1. NР-полпота....309
10.1.2. NР-трудпость....311
10.1.3. Более широкие последствия для информатики....312
10.2. Аппроксимирующие и рандомизированные алгоритмы....315
10.2.1. Аппроксимирующие алгоритмы....315
10.2.2. Рандомизированные алгоритмы....318
10.2.3. Алгоритмы Монте-Карло и Лас-Вегас....320
10.2.4. Использование аппроксимирующих
и рандомизированных алгоритмов....321
10.3. Сложные алгоритмы в теории графов и анализе сетей....322
10.3.1. Алгоритмы разбиения и кластеризации графов....323
10.3.2. Обработка графов....325
14 Оглавление
10.3.3. Расширенный сетевой поток и возможности подключения....326
10.3.4. Новые тенденции и современные приложения....328
Практические упражнения....332
Резюме....334
Глава 11. От теории к практике. Практические примеры и оптимизация....336
11.1. Практические примеры. Реальные алгоритмические решения....336
11.1.1. Оптимизация поисковой системы....336
11.1.2. Оптимизация цепочки поставок....338
11.1.3. Персонализированная медицина....340
11.1.4. Системы рекомендаций электронной коммерции....341
11.1.5. Оптимизация управления
дорожным движением и маршрутизацией....342
11.1.6. Повышение безопасности сети с помощью систем
обнаружения вторжений....344
11.1.7. Междоменные алгоритмические инновации....345
11.1.8. Важность алгоритмической этики и ответственного
отношения к ИИ....345
11.2. Улучшение производительности Python....346
11.2.1. Факторы, влияющие на производительность Python....346
11.2.2. Методы повышения производительности Python....348
11.2.3. Передовые методы оптимизации и рекомендации....350
Практические упражнения....353
Резюме....356
Тесты к части IV....358
Проект 4. Система обнаружения плагиата....360
Предварительная обработка текста и измерение сходства....360
Работа с большими документами и анализ на уровне абзацев....362
Использование передовых методов анализа текста....363
Будущие улучшения....364
Заключение....365
Узнайте больше о нас....367

Building a successful real-time strategy game is challenging, because of both the complex mechanics and the need to strike a balance between different elements, ensuring that players enjoy creating and executing strategies against the game's AI.

Creating an RTS Game in Unity 2023 will teach you how to install and set up the Unity game engine, create a new 3D project, and build a level editor to make it easier to modify and add maps to a game. The RTS game will start to take shape while you learn to implement different core systems such as melee and ranged battles, unit spawners, camera controls, dynamic mapping generation, basic enemy AI, and the pathfinder algorithm. You'll also get to grips with implementing command units to perform actions, crafting and producing resources, basic physics and collision detection, and building an RTS game from scratch using C# and the latest features of the Unity game engine.

By the end of this book, you'll be able to make professional and high-quality end-to-end RTS games using the best practices and techniques from the gaming industry.

What you will learn

  • Incorporate the most used design patterns, algorithms, and techniques into your game
  • Employ the best coding practices used in the games industry
  • Explore the basics of AI and physics to create high-quality games
  • Build dynamic and configurable maps to enhance the player experience
  • Solve complex problems using the industry standards for Unity and C#
  • Create the mechanics present in classic RTS games using a modern approach
  • Gain a deep understanding of how to create professional games using Unity

Who this book is for

If you are a beginner game developer who wants to learn the skills to develop a professional RTS game, a programmer looking at career options in the industry who needs to develop a portfolio, or even an indie game developer seeking inspiration for your own games, this book is for you. Professional game developers, programmers with experience in C#, as well as game designers and artists looking for a practical guide to bring their game ideas to life will also find plenty of useful information in this book.


Похожее:

Список отзывов:

Нет отзывов к книге.