|
22 / 10 / 2
Регистрация: 25.06.2018
Сообщений: 155
|
|
Нужны советы по разработке игр30.11.2018, 17:04. Показов 12479. Ответов 209
Метки нет (Все метки)
Здравствуйте,Я давно мечтаю создавать свои онлайн игры, Сейчас освоил базу си, покопавшись в нем понял что игр хороших на нем не слепишь, ни один день скитаюсь по форумам, читаю статьи и Решил. Начну изучать C++. Я знаю что разработка игр это нелегко и мне много чего нужно узнать, Я не знаю с чего начать. Сейчас любой совет на вес золота.
А больше мне нравится кодить и придумывать сценарий. Для моих будущих игр я уже придумал частичто свою историю. Может это и покажется странным, но когда я смотрю прохождение игр, у меня включается во мне разработчик, и я начинаю думать с точки зрения разработчика. Как какая то механика могла быть реализована в коде. Вобщем Буду очень благодарен вашим Любым полезным советам!
0
|
|
| 30.11.2018, 17:04 | |
|
Ответы с готовыми решениями:
209
Нужны советы по разработке игр Нужны советы по разработке приложения под Android |
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 14.01.2019, 00:45 | ||
|
Опять же если вообще так тестировать то нужен тест для каждой возможной ветки исполнения внутри. Если накосячили с ветками то с тестом накосячится тем более. При этом возможность проконтролировать полноту теста отсутсвует чуть более чем полностью. Рулит в таких случаях именно декомпозиция а не тестирование.
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||
| 14.01.2019, 00:47 | |||
|
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 14.01.2019, 00:57 | ||||
|
Добавлено через 2 минуты Добавлено через 6 минут
0
|
||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 14.01.2019, 00:57 | |
|
Fulcrum_013, ну, не конкретно функции конечно, а например нового функционала, у меня на проекте примерно так и происходит. А что тестирование и декомпозицию нельзя совместить?
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 14.01.2019, 01:22 | ||||
|
Добавлено через 6 минут А там где что том можно точно указать очень часто совсем по другому делается. К примеру в одном из проектов суть была в системе подготовки данных к счету в масштабах ВЦ крупного завода. Суть была в том что результат нужен будет в определенном формате который принимает комп отдела расчетов на котором уже фурычит готовый софт. Тестировалось просто - принял он сгенерированные файлы данных на вход или обложил по их поводу матами. Добавлено через 9 минут Т.е. его цель не проверить прошло/не прошло а показать что в результате не так получилось а очень часто и почему не так. Но это обычно уровень отладки стандартной библиотеки и других низкоуровневых библиотечных средств, для большинства из которых к таким методам прибегают уже только если что то пошло не так при использовании этих средств. Единственное место с которым столкнулся где такой дебаг был необходи в исходе - контейнеры. Вернее алгоритмы манипуляции частями содержимого контейнера в духе копи-паста через карман.
0
|
||||
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||
| 14.01.2019, 11:39 | ||||
|
Это примеры двух программ на Python, которые я использую. Что характерно, они совсем не тормозят. Приходилось такое писать для десктопного приложения на C#. Unit-тесты именно для того и существуют, чтобы автоматически проверить, что при изменении программы у нас не сломалось старое поведение. И если юнит-тест выдал ошибку, в первую очередь проверяется именно то, что тест корректный, а лишь потом дебажится основной код.
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 14.01.2019, 11:56 | ||||||
|
Добавлено через 52 секунды Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 6 минут
0
|
||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
| 14.01.2019, 12:56 | ||||||
bounds_intersect которая будет возвращать true если две границы пересекаются, хотя еще никакой bounds_intersect не существует, тест упадет и только потом я напишу эту функцию и пойму что она слишком сложная и можно усложнить структуру, но на самом деле упростив ее, начнем с простого, сделаем функцию intervals_intersect, которая вернет true если [a0, a1] пересекается с [b0, b1] и напишу для нее юнит-тест с разными интервалами, протестирую когда они пересекаются, когда касаются и т.д.Потом вернусь к bounds_intersect, которая пусть возращает true если обе проверки пересечений интервалов по х и y возвращают true. Соответственно опишу тесты в таком же духе как и для intervals_intersect. Вот по сути и все, что я имею? Готовый функционал, мог ли я его написать без юнит-тестов? Да, мог. Так чем же они помогли? Ну мне они позволили посмотреть на код возможно под другим углом, тк я его писал в отрыве от всего продакшн кода и сразу же имел возможность протестировать его, посмотреть делает ли он действительно то что Я как программист ожидаю. Вот и все. Да он не протестирован на случай "ядерной войны", и нет гарантий что при каких-то там невероятных условия он будет работать корректно, но мне это и не надо, я пишу поведение чего-то нового зная как оно будет работать, и что если я принимаю целые числа их я и буду принимать в моей реализации никто ничего другого не передаст, соответсвенно я не хочу это тестировать, это глупо покрывать тестами то что с вероятностю 99,9 не произойдет никогда, иначе все верно можно писать тесты и тесты на тесты и никогда не дойти до написания кода. Ну и стоит помнить что мы пишем бизнес приложения где нас постоянно подтарапливают.зы - в остальном я понимаю ваш посыл и даже соглашусь почти со всем вами сказанным, но тем не менее тестирование есть и процветает, его многие используют (это не значит же что они тупые), возможно просто к юнит-тестам сейчас стоит присмотрется с другой стороны? Как стиль написания кода? зыы - «Тестирование не позволяет обнаружить такие ошибки, как создание не того приложения» — Стив Макконелл
0
|
||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 14.01.2019, 13:25 | |||||
|
Добавлено через 4 минуты Добавлено через 9 минут К тому же такой подход избавляет от ненужного рефакторинга. Касательно к примеру отладки контейнеров там вывод делался вообще из каждой операции вкключая добавление каждого элемента реаллок и т.п. И его задача визуализировать данные которые трудно воспринять при трассировке.
0
|
|||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||
| 14.01.2019, 13:29 | ||||
|
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 14.01.2019, 13:35 | |||
|
Добавлено через 3 минуты
0
|
|||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||
| 14.01.2019, 13:39 | |||||
|
Добавлено через 3 минуты
0
|
|||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 14.01.2019, 13:41 | ||||
|
0
|
||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 14.01.2019, 13:41 | |
|
И только потом, когда я посчитаю что мой код, моя реализация готова, а структура выглядит так что не требует других, каких-то ненужных, зависимостей, но позволяет легко ее расширить и паралельного все это покрыто тестами я могу выносить в продакшн код и так и оставлять, больше делать рефакторинг я не собираюсь.
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 14.01.2019, 13:44 | |||
|
0
|
|||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||
| 14.01.2019, 13:45 | ||||
![]()
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 14.01.2019, 13:50 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||
| 14.01.2019, 13:58 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 14.01.2019, 14:12 | |||||
|
При наличии в языке полноценного механизма шаблонов и возможности размещения объектов в теле другого объекта с автогенерацией и автовызовом деструкторов вообще возможно создание универсальных механизмов взаимосвязей отделенных от этих абстрактных классов, которым только смещения полей в которых данные взаимосвязей хранить указываются статически. Так что тестировать юнит-тестами в результате получается вообще нечего. А тем более что они абсолютно никак не помогают при отладке при которой все это тестируется вручную вдоль и поперек. Добавлено через 3 минуты Добавлено через 1 минуту Добавлено через 3 минуты Так кстати о птичках что то на подобие юнит-тестов юзалось на компах шкафового базирования. Только оно не правильность кода тестировало а правильность счета процом. Причем на старте софтины. И кое что даже показывало к какому болту 3x4 нужно применить отладочный кувалдоид чтобы проц зафурычил как надо.
0
|
|||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
| 14.01.2019, 14:33 | ||||||
![]() Добавлено через 13 минут Интересно было бы еще услышать мнение более опытных людей чем я, коих на форуме не мало, что они думают о юнит-тестах? Хотел бы пингануть пару людей, но боюсь тапками закидают за такое.
0
|
||||||
| 14.01.2019, 14:33 | |
|
Собираю PC для игр. Нужны советы! Компьютер для игр ( нужны советы ) Советы по разработке классов Советы по разработке алгоритма Советы в разработке БД: составления расписания в ВУЗе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|