Учусь на 4-ом курсе, как и у всех встал вопрос, что же выбрать в качестве темы дипломной работы. Т.к. безработный, не тему связанную с работой взять не получается). Захотелось немного поэкспериментировать и написать игру в качестве диплома, довольно приемлемо знаю С/C++, сейчас пытаюсь постичь UE4. Собственно вопрос: из-за того, что времени на утверждение темы осталось немного, а unreal я так до конца еще не освоил, то что посоветуете взять? Из-за того что опыта с UE4 нет не хотелось бы замахиваться на что-то непосильное и потом за месяц до сдачи диплома понять, что я не вывожу.
P.S. Как мне сказал мой научрук, лучше всего использовать в работе либо "передовые технологи", на подобии AR, ну или что-то с математической подоплекой, чтобы это не был просто шутер и все.
P.P.S Пока что склоняюсь к рогалику и сделать упор на алгоритмы построения лабиринтов и поиск кратчайших путей.
Буду рад вашим предложениям. Спасибо.
AlexChek
> P.P.S Пока что склоняюсь к рогалику и сделать упор на алгоритмы построения
> лабиринтов и поиск кратчайших путей.
++
с минималистичной графикой на статичных спрайтах (OpenGameArt в помощь). без движков - на голом API (GLES какой-нить и/или SDL). если возьмете вместо крестов Java/C#/Python - удастся поспать побольше и заниматься непосредственно математической задачей вместо выноса себе мозга крестопроблемами (это весело, но трудоемко и сейчас скорее всего неоправдано).
kkolyan
> если возьмете вместо крестов Java/C#/Python - удастся поспать побольше и
> заниматься непосредственно
++
> крестопроблемами (это весело, но трудоемко и сейчас скорее всего неоправданно)
Как правило, это весело только поначалу) Потом ты уже хочешь о них забыть, как о страшном сне, но, блин, не получается...
Бери SDL или что-то подобное ему + пак спрайтов из интернета. Это сэкономит кучу времени. SDL простой, если не пользовал раньше - быстро освоишься. Какой-нибудь glm для математики. Это если для плюсов.
Для Java есть LibGDX, но я в это теме не шарю и не могу ничего сказать о его сложности.
Брать Python я бы не рискнул. Есть шанс получить проблемы со скоростью в сложных алгоритмах. А чтобы их решить придётся разбираться с кучей библиотек всяких - время.
> Для Java есть LibGDX, но я в это теме не шарю и не могу ничего сказать о его сложности.
LibGDX простой. jMonkeyEngine тоже. мне больше нравится jMonkeyEngine (но он хуже заточен под мобилки, если что). Если готов писать на Java (зная кресты - это легко) - можно смело брать любой из них.
> Брать Python я бы не рискнул. Есть шанс получить проблемы со скоростью в сложных алгоритмах. А чтобы их решить придётся разбираться с кучей библиотек всяких - время.
пожалуй да, учитывая что автор смел в отношении C++ (значит как минимум не пугается синтаксиса и типов), то Java/C# зайдут лучше чем Python.
Спасибо за советы, очень благодарен, но это скорее вызов себе, поэтому бессонные ночи меня не пугают, как и количество затраченного времени). Думал, что это хорошея идея (не с точки зрения написал диплом за неделю, стал на отлично и забил) заняться тем, чем давно хотел + попрактиковаться, возможно юношеский максимализм из меня прет, но хотел бы как-то ретироваться в геймдев, ну я посчитал, что это отличная возможность, чтобы дать себе пинка.
Плюс, я видимо неверно выразился, но тема с рогаликами это первое что на ум пришло. Если тезисно описать чего бы хотелось, то получается следующее:
1)Чтобы была киллер фитча для дедов в дипломной комиссии (передовые технологии или что-то имеющее в себе математическое основание (достаточно одной механики))
2)Т.к. для меня это что-то новое зариться на что-то масштабное думо глупо, но если скажем, я неверно все понимаю и в целом, что-то годное можно написать за 2-3 месяца в соло, уделяя скажем этому 4-6 (если нужно все 10) часов в день, то буду рад оказаться неправым.
Плюс ко всему у меня практически ноль опыта работы с другими языками, почти все 4 года в вузе я задрачивал С/C++ и самую малось Python.
AlexChek
никто не отнимет бессонные ночи - сделать нормальную игру с интересной математической базой - это челленж, независимо от языка и платформы.
насчет математической базы игры - а что вам интересно из математики? я бы, например, копал в сторону песочницы с фокусом на чем-нибудь из теории игр и экономики.
> передовые технологии
очень сильно зависит о представлении комиссии о передовых технологиях. Vulkan - довольно свежая штука. Это передовая технология?
обычно для дипломной работы ты должен придумать что-то, представляющее какой-то научный интерес, и далее применить это к чему-нибудь. например, "разработка алгоритмов расчёта теней от объёмных источников освещения применительно к изометрическим рогаликам". изометрические рогалики я, конечно, от себя добавил, но суть ясна: в основе должно быть что-то научное, но применить это нужно к чему-то на практике. для бакалавра/магистра может быть очень сложно придумать что-то фундаментально новое с научной точки зрения, но обычно это и не требуется, достаточно просто реализовать какой-то достаточно сложный алгоритм и примотать к нему что-нибудь от себя. чем сложнее алгоритм, тем меньше нужно будет приматывать, чтобы убедить комиссию.
например, если ты напишешь расчёт instant radiosity на GPU в реалтайме, то и приматывать ничего не придётся, потому что несмотря на то, что алгоритм старый, все понимают, что уже реализовать его на GPU и потыкать веткой — само по себе неплохое достижение (для бакалавра). если ты напишешь A*, то, ясное дело, будут вопросы. если ты просто запилишь рогалик на UE4, это, скорее всего, не прокатит, даже если с игровой точки зрения он будет годным. короче, ориентироваться нужно на интересное демо для какой-то технологии, а не на рейтинг в плеймаркете.
Suslik
> ты должен придумать что-то, представляющее какой-то научный интерес
Диплом это вообще-то не диссертация, а он не аспирант. Наука тут ни при чем. Он должен продемонстрировать способность решать технические задачи связанные с темой его обучения. Не научные, а чисто технические. Тем он докажет что его не зря учили и он может работать по специальности. Пока неясно на кого он вообще учится и есть ли хоть какая-то связь между его специализацией и игрой которую он хочет показать в качестве доказательства своей квалификации.
По поводу научной составляющей, даже у нас в ВУЗЕ разные мнения. Кто-то говорит, что она нужна, а кто-то решил делать онлайн-магазин и их тему приняли.
По поводу специальности: факультет компьютерных технологий и информатики, кафедра информационных систем. Если кратко о специальности: достаточное количество математики (Линал, матан, теорвер, статистика дискретка, теория алгоритмов и т.д.), чуть меньше количество программирования, и ещё меньшее экономики. Были и выбивающиеся из этих категорий предметы:бд, анализ данных и т.д.. Короче скудный cumputer science.
Вот я предерживался виденья как у Suslik, но ничего годного выдумать не смог, потому и обратился на форум.
А поводу рогалика, я за него не держусь ни коем образом, просто это первое что пришло на ум, где можно прицепить научную составляющую в виде алгоритмов поисков:двусторонний Дейкстра, аргклфлаги или что-то; ну и алгоритмов генерации лабиринтов/комнат
AlexChek
> факультет компьютерных технологий и информатики, кафедра информационных систем
Ну так и делал бы информационную систему, что-то для поиска информации или ее обработки например. Онлайн-магазин как раз хорошо подходит. Игра то тут каким боком? Боюсь комиссия будет не в восторге если вас специально не учили игры писать. Впрочем диплом все равно дадут если до защиты допустят. В деталях никто разбираться не будет, лишь бы тема была связана с профилем факультета. Я в свое время три года на кафедре проработал, насмотрелся на студенческие проекты. 90% это компиляция или полный треш. Какая там нафиг наука?
Лично я, начал бы с тетриса.
Это достаточно просторный начальный опыт. Вывод объекта, управление объектом. Взаимодействие объектов.
Затронутся многие нужные и полезные навыки (особенно в геймдеве). В тетрисе очень много подводных камней. Он и прост и сложен одновременно.
Mirrel
> Лично я, начал бы с тетриса.
> Это достаточно просторный начальный опыт. Вывод объекта, управление объектом.
> Взаимодействие
Змейка проще. Даже скроллшутеры проще. В плане программирования я имею ввиду.
mr.Strange, потому и советую тетрис. Что он не так прост, как кажется.
Это понятно, что первый опыт должен быть более приземлённым, но тут же вопрос о теме диплома, а не о том, с чего нажать свой путь. Задумайся я об этом раньше, наверное так бы и поступил. Сначала бы все прощупал, а потом бы лез в эту область. Но я специально решил нырнуть в омут с головой без подготовки. Поэтому и спрашиваю у более опытных людей форума, возможно ли что-то годное сделать без опыта в этой области + возможно у кого-то то есть прикольные идеи.
у нас обычно игровая тематика не особо хорошо заходила, потому что не всем в комисии была очевидна её прикладная ценность. однако, всегда хорошо заходят темы по рендерингу, если их протолкнуть под соусом научной визуализации или представления данных. например, если ты напишешь какой-нибудь volume renderer, его легко можно применить как к медицинским данным CT-сканнера, так и ко всякой геологии и ещё куче других тем. аналогично если ты пишешь рендер, то достаточно его применить в одной из демок к каким-нибудь околонаучным данным и у комиссии не будет вопросов. а вот тетрис я сомневаюсь, что кого-то заинтересует.
san
> Наука тут ни при чем. Он должен продемонстрировать способность решать технические задачи связанные с темой его обучения.
может быть, в разных вузах разные требования, но у нас поощрялось придумывать что-то новое и околонаучное. иначе бы все тетрисы писали.