Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1

Покритикуйте и помогите улучшить код моей игры

06.10.2015, 18:30. Показов 2529. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, недавно начал писать игру и собственно пишу потихоньку, но не в этом суть, просто я только сегодня понял, что мой код может быть не понятен другим, и вот, хочу задать вам вопрос, в прилагающемся архиве все файлы, которые я создал в процессе, исходники в общем, ну и файлы для игры требующиеся, все в архиве, основная моя идея в том, чтобы управлять игрой только с помощью файлов, оригинально, не правда ли? Но в этой оригинальности и кроются самые главные проблемы, так вот, я прошу у вас помощи, посмотрите мои исходники( хоть некоторые и кому не лень ) и скажите мне, какие функции можно укоротить и как повысить читаемость кода, а-то я просто понимаю, как все устроено, если что спрашивайте по функциям, отвечу что они делают. Я прошу тех, кому действительно просто делать нечего, потому что там, мне кажется, вообще не читается.
Вложения
Тип файла: rar Game.rar (288.7 Кб, 35 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2015, 18:30
Ответы с готовыми решениями:

Помогите улучшить простой код
Задача: Из-за высокой цены бензина водители озабочены затратами топлива своих аытомобилей. Один водитель взял в рейс несколько емкостей...

Помогите извлечь исходный код моей же проги, исходники я удалил нечаянно.
Файл ниже.

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

37
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.10.2015, 20:42
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от makfak Посмотреть сообщение
Вот в том-то и проблема, из-за этого читаемость понижается, но придумать пока что ничего не могу, если есть идеи, то предлагайте.
Разрисуйте на листике схему взаимосвязей хотя бы базовых (имеется в виду ключевых в плане полиморфизма) классов.
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
07.10.2015, 21:26
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
При завершении процесса она освободится вся и сразу, так как ос просто грохнет область выделенную процессу под кучу.
Плохой тон. Выделил память - освободи. От вашего подхода и начинаются утечки и уязвимости в безопасности.

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

Цитата Сообщение от makfak Посмотреть сообщение
И еще забыл сказать, что прятать файлы мне не нужно, потому что основная задумка в их изменении как раз, чтобы любой пользователь, даже не умеющий программировать, мог создать свою игру, со своими персонажами и сценариями, а если я спрячу файлы, то никто не сможет ими воспользоваться.
Ну, в таком случае верно было сказано - лучшее решение это отдельная программа-редактор.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.10.2015, 21:48
Цитата Сообщение от PavelPol Посмотреть сообщение
Плохой тон. Выделил память - освободи
плохой тон - задавать компу лишнюю работу. Естественно что в деструкторах НАДО прописывать удаление всего динамически распределенного относящегося к объекту. И в середине работы проги их тоже удалять надо. Апо выхожу из проги пусть ось всю кучу грохнет - юыстрее будет. А то в деструкторах такие рекурсии бывают (ну если объекты шибко грамотные) что может и очень конкретная протормозка быть. То вы с COMMON - областями никогда не работали. Там думать надо что удалять а что нет даже по завершении жизненного цикла объекта/процесса.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.10.2015, 22:04  [ТС]
PavelPol,
Плохой тон. Выделил память - освободи. От вашего подхода и начинаются утечки и уязвимости в безопасности.
Вам ниже ответили, я солидарен.
А "экстренный" не надо. Реализуй систему исключений, в конечной точке которой все нормально выгружается.
Совсем забыл о них, спасибо, что напомнили.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
08.10.2015, 06:31
Цитата Сообщение от makfak Посмотреть сообщение
Вот в том-то и проблема, из-за этого читаемость понижается, но придумать пока что ничего не могу, если есть идеи, то предлагайте.
Что делать — следует из обозначенной проблемы. Беспорядочные связи между классами — берем и выносим из классов все, что к ним не относится. Из игровых объектов убираем пользовательский интерфейс, ввод-вывод, продумываем доменную модель. Почему характеристики персонажа — тупо строки? Почему герой что-то пишет в консоль? Вынести это все во внешние функции/классы/подсистемы, а там видно будет.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
08.10.2015, 10:17  [ТС]
0x10, Хорошо, займусь сегодня же.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
08.10.2015, 10:58
Цитата Сообщение от 0x10 Посмотреть сообщение
Почему герой что-то пишет в консоль? Вынести это все во внешние функции/классы/подсистемы, а там видно будет.
Тут немного функционал карты засунут класс херо. Предлагаю немнонго более другую структуру: Класс Scenario хранит список персонажей (абстрактно персонажей). персонаж () умеет базовые действия - типа переместится, так или иначе что то отправить на вывод (желательно через объект-драйвер, либо функцию-драйвер), а так же имеет указатель на класс AIController который полиморфно реализует поведение как NPC так и ввод пользователя. В результате появится возможность менять поведение персонажей не трогая базовую структуру загрузчика и основной цикл управления, в том числе на лету, подменой прикрепленного объекта AIController

Добавлено через 11 минут
Цитата Сообщение от 0x10 Посмотреть сообщение
Почему герой что-то пишет в консоль?
Потому что когда дойдет до визуализации вызывать отрисовку прикрепленной модели или прикреплять ее к сцене придется точно так же из цикла отрисовки/сборки сцены, причем полиморфно. И это дожно быть методом базового (абстрактного) отображаемого объекта. Сам герой должен быть глубже по иерархии, поражден от персонажа. т.е абстрактная иерархия примерно такая "отображаемый объект"-"динамический объект"-"персонаж". Каждая из приведенных сущностей - абстрактная база для полиморфной иерархии.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.11.2015, 12:37  [ТС]
В общем, много воды утекло с последнего сообщения в этой теме, но я всё-таки взялся за проект, которому уже, как я думал, конец. Я решил не заморачиваться со взаимодействием классов и подобными вещами и создал класс Core, от которого наследовать буду нужное( прикреплён ). Я решил спросить совета, как мне реализовать загрузку героя? Загружать нужное когда требуется или всё-таки загружать всё в начале игры? Может ещё варианты есть, буду рад, если вы предложите.
Вложения
Тип файла: zip Core.zip (2.4 Кб, 6 просмотров)
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
21.11.2015, 21:35
Цитата Сообщение от makfak Посмотреть сообщение
создал класс Core, от которого наследовать буду нужное
Получилась огромная сущность, в которой намешано все: и интерфейс, и загрузка конфигов, и создание игровых объектов. И уж точно такая махина не подходит в качестве базового класса «всему нужному».
2
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
21.11.2015, 21:41
C++
1
2
3
        Core();                                             // Default constructor
        ~Core();                                            // Destructor
//и т.д.
Улыбнуло.
Вы считаете, что эти комментарии имеют смысл?
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.11.2015, 21:46  [ТС]
0x10, Нууу, разбираться со взаимодействием мне ещё больше не хочется.
Croessmah, А что?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
21.11.2015, 21:48
Цитата Сообщение от makfak Посмотреть сообщение
А что?
отсутствующий комментарий намного лучше ненужного комментария.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.11.2015, 21:51  [ТС]
Croessmah, Хмм, ну хорошо, удалю.

Добавлено через 33 секунды
Так как насчёт моего вопроса?
Загружать нужное когда требуется или всё-таки загружать всё в начале игры?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
21.11.2015, 21:55
Цитата Сообщение от makfak Посмотреть сообщение
Загружать нужное когда требуется или всё-таки загружать всё в начале игры?
Если У Вас там данных десять гигов, то, наверное, лучше подгружать по необходимости, а если там 2 Кб, то какой смысл загружать частями? Разве что если очень старая машина (примерно из компьютерного мезозоя), на такой случай можете реализовать оба варианта загрузки.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.11.2015, 22:09  [ТС]
Croessmah, Ну движок для консольных игр, да и статов и всяких прочих плюшек у героя много не предвидится( ну разве что у мага заклинания ).

Добавлено через 10 минут
Просто меня смущает то, что во время сражения мне придётся примерно каждую секунду загружать и сохранять статы.
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
22.11.2015, 06:26
Цитата Сообщение от makfak Посмотреть сообщение
Просто меня смущает то, что во время сражения мне придётся примерно каждую секунду загружать и сохранять статы.
Загружай заранее то, что может пригодиться, к примеру появился на локации какой-то персонаж, загрузи его данные. Ушел - выгрузи. Не сохраняй статы пока они могут изменяться. К примеру - персонаж выходит из локации или погиб - можно сохранить.

В общем, должен быть кэш определенного размера. В нем все нужные данные и те данные, которые в скором времени могут стать нужными.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
22.11.2015, 11:11  [ТС]
PavelPol, Да я бы и не против, только как этот кэш реализовать?
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
23.11.2015, 18:56
Разработать класс - менеджер ресурсов. Автоматическое удаление сделать в удобном виде, подходящем для данной задачи: по времени (сохранять время последнего использования), по списку нужных ресурсов, по текущему объему кэша.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2015, 18:56

Помогите, очень срочно нужен код игры
Rebyata,zdrastvuyte. U menya takaya problema. Ochen srochno nujen kod java igri Flow Free na Android.Budu ochen priznatelen

Помогите найти исходный код игры змейка
помогите плиз!!! нужно игру змейки

Покритикуйте сборку (игры+виртуализация)
Всем читающим доброго времени суток. На днях собираюсь покупать комплектующие и поскольку я не особо опытен в подборе и сборке хотел бы...

Оцените графику моей игры ?
Оцените пожалуйста графику моей игры ? Подходит ли графика для 2012 года ?

Открытое тестирование моей игры на Unity2D
Всем здравствуйте!! Я хочу скинуть сюда свою игру, чтобы вы рассказали о недочетах и идеях! И это не вирус. Я серьезно. А то вдруг кто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 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
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru