Console Runner - норм игра или Даже для 1-й игры, плохая

Console Runner - норм игра
2
Нейтральная
сторона
0
Даже для 1-й игры, плохая
5
1Д физика, процед. генерация, сохранение в файл
Прежде чем писать комментарии или выбрать сторону вы должны авторизироваться!
Ну вообще ЛОЛ, что за детский сад? Надо делать игры уровня Круизис!

11-07-2017 15:53 0

В общем, я изучил С++, порешал некоторое количество упражнений по программированию, и решил сделать себе "челлендж".

Смогу ли я реализовать очень простой (1Д) физ. движок, без каких либо туториалов, сторонних игровых библиотек, да и даже графики - чисто ASCII в консоле?

Получилось, к моему великому удивлению, очень даже просто... Нужны были лишь элементарные формулы со школы - F = ma, a = V/t!

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

Пока сам не могу поверить, но да, получилось... Заняло больше времени чем физика, конечно же...

Ну и последний челендж я себе придумал такой: Сделать возможность записывать очки в текстовый файл, и потом читать его. Не так уж важно для такой простой игры, да. Но мне было важно на практике научиться работать с файлами... Ведь без работы с файлами программа - бесполезная штука.

Исходный код

ВНИМАНИЕ! Используйте англ. раскладку клавиатуры во время игры, я использовал англ. буквы для управления =\

И еще некоторые тупые антивирусы могут ругаться, отключите их. Могу вас заверить, с моими познаниями в программировании мне еще ой как далеко до создания вирусов :D

27 комментариев
BerkutOi 11-07-2017 15:57 0

ScienceDiscoverer, ВНИМАНИЕ! Используйте англ. раскладку клавиатуры во время игры, я использовал англ. буквы для управления =\


а теперь разберись как сделать чтобы независимо от раскладки твои контролы работали

я не запускал(на линуксе екзешник не запустить), но судя по тому что ты расписал, если это так - поздравляю, ты научился программировать примерно на уровне студента закончившего первый(а может даже второй) курс

Jotun 12-07-2017 00:03 0

BerkutOi, первый семестр первогой курса, разве что.

BerkutOi 12-07-2017 00:08 +2

ScienceDiscoverer, а еще сука, хватит пользоваться ебаным раром, ну если ты в архив упаковываешь, чё нельзя в зип?

BerkutOi 12-07-2017 00:10 +1

Jotun, судя по моему универу и моим одногруппникам - второй курс, хотя там делали с графикой а не текстовую

Jotun 12-07-2017 00:12 +1

BerkutOi, ну у нас второй семестр уже начинался с WinForms, как минимум, и с нормальным ООП, а не этими огрызками.
Плюс банальные вещи типа необходимости соблюдать код гайдлайны (для начала хотя бы не писать всю программу в одном файле) тоже объясняют в самом начале.

BerkutOi 12-07-2017 00:13 0

Jotun, ну я код не смотрел, то что объясняют - не значит что все понимают и знают чё и почему так делают

BerkutOi 12-07-2017 00:17 0

BerkutOi, бля, окей, таки первый курс

ScienceDisco… 13-07-2017 11:36 0

BerkutOi, а теперь разберись как сделать чтобы независимо от раскладки твои контролы работали
Это не так существенно. Не для стима ж игра! Существенно то что она работает! И это дает какую-никакю, но уверенность!

BerkutOi 13-07-2017 11:36 +1

ScienceDiscoverer, Это не так существенно
все равно разберись, это будет полезно

ScienceDisco… 13-07-2017 11:42 0

BerkutOi, поздравляю, ты научился программировать примерно на уровне студента закончившего первый(а может даже второй) курс
Да, вот только я этому научился не за 2 года а за 2-3 месяца. И ни в какие "выши" не ходил. Ведь я знаю (с многих независимых источников) что в ВЫШАХ ничему полезному не учат, учат устаревшие языки и практики по программам 80-х... Конечно, было бы лучше если бы я вместо того что бы потратить 6 лет учёбы на экономиста закончил бы прог. специальность, но вот беда, я когда поступал был слишком не уверен в себе и особенно в математике, а казалось, что если ты не гений математики то нет смысла даже мечтать выучить программирование. Хотя на деле, получается что математика не очень то и нужна. А та что нужна (когда я реально вижу что она полезна) легко учиться на сайтах типо Mathisfun.com. Даже начал любить математику, хотя всю жизнь ее боялся и ненавидел как огня, лол. Такие дела...

ScienceDisco… 13-07-2017 11:44 0

BerkutOi, Я думаю что пока я еще поделаю упражнения, разберусь в дата-структурах, алгоритмах и т.д. Это пока важнее. А потом уж перейду к изучению кнопок управления и т.п. Делать игры в консоле больше, думаю, не буду. Смысла особого нет, не для того консоль нужна! Чисто как експеремент норм, но мне надо бы уже понемногу разбираться с OpenGL/DirectX...

ScienceDisco… 13-07-2017 11:45 0

BerkutOi, Да вот привычка такая... А что это так плохо?? >_<

ScienceDisco… 13-07-2017 11:49 0

Jotun, Плюс банальные вещи типа необходимости соблюдать код гайдлайны (для начала хотя бы не писать всю программу в одном файле) тоже объясняют в самом начале.
Это пока не так важно, проект не такой уж большой (714 строк это все таки не 3000). К тому же, я это для себя делал и пытался использовать то что знаю. Разбить код на несколько файлов, уверен, очень просто. А я пока пишу очень маленькие программки, это единственная более-менее большая.

BerkutOi 13-07-2017 11:50 0

ScienceDiscoverer, Да, вот только я этому научился не за 2 года а за 2-3 месяца. И ни в какие "выши" не ходил.
ну дык там не только таким вещам учат

BerkutOi 13-07-2017 11:51 +1

ScienceDiscoverer, конечно плохо, я с трудом переборол любопытством свою лень чтобы архиватор поставить

BerkutOi 13-07-2017 11:53 +1

ScienceDiscoverer, бля, тебе точно 25 лет?

cherepets 13-07-2017 11:56 +1

ScienceDiscoverer, Геометрия полюбас нужна практически в 100% случаев.
Вот делаешь вроде какой-нить простой мобильный твин-стик шутер (ну или "геймпадный", на клаве управление обычно сильно отличается в таких играх), вроде звучит мега-просто, но:
Чтобы понять направление движения, тебе надо найти уравнение прямой между центром стика и местом касания, потом тригонометрию вспомнить. А для скорости вектора. А потом системы уравнений для коллизий.
А ведь это по сути один из самых простых жанров в реализации (только пожалуйста, не садись делать его в консоли).

ScienceDisco… 13-07-2017 11:57 0

BerkutOi, ну дык там не только это учат
Ну, даже по опыту учёбы в экономическом вузе, я уже понял что во все вузах учат очень много лишнего, тупо что бы растянуть процесс... Это видимо кому-то выгодно, но явно не ученикам.

ScienceDisco… 13-07-2017 11:58 0

BerkutOi, 24 с хвостом... Уже скоро 25... Но лучше поздно, чем никогда, правда??

BerkutOi 13-07-2017 11:59 +1

ScienceDiscoverer, я не про то что ты этому учишься в 24, я о том что ты пишешь и рассуждаешь как-то черезчур инфантильно про науки

ScienceDisco… 13-07-2017 11:59 0

BerkutOi, конечно плохо, я с трудом переборол любопытством свою лень чтобы архиватор поставить
Ну уш прости :D Я как поставил винрар после установки винды 2 года назад, так и забыл про существование ЗИП... Хотя в данном случает он был бы уместнее.

BerkutOi 13-07-2017 12:03 +2

ScienceDiscoverer, он в 2017 впринципе уместнее, нет никаких адекватных причин использовать rar

ScienceDisco… 13-07-2017 12:03 0

cherepets, Геометрия полюбас нужна практически в 100% случаев.
Ну это ясно... Просто я думал что надо быть гением что бы ее понять, а оказывается нет...

Ну и еще векторная алгебра, что бы всякие силы и импульсы считать в 2Д\3Д... Вон люди вообще 4Д игры делают...

(только пожалуйста, не садись делать его в консоли).
Да я понял, это уже будет полный мазохизм :D
Наверно еще будет полезно сделать клоны всяких Понгов, Пак мэнов, тэтриса и т.п., но уже не в консоле а с норм графикой...

ScienceDisco… 13-07-2017 12:05 0

BerkutOi, Ну вот такое у меня мировоззрение сложилось... Такие дела =\

cherepets 13-07-2017 12:17 0

ScienceDiscoverer, Скорее всего абстракции для чудо-матриц ты же будешь писать не сам, а использовать готовые из какого-нибудь движка или фреймворка и там уже всё сразу будет.

Jotun 13-07-2017 20:21 +2

ScienceDiscoverer, Вбил себе в голову какую-то хуйню опять и доволен.
Практики из 80-ых и бесполезные языки даже на математических специальностях уже не учат.
И то, что ты запедалил в этой игре, это не уровень первого курса, а уровень первого семестра первого курса, причем только в изучении C++ и прикладной математики, тогда как в ВУЗах параллельно с этим у тебя бы могла быть куча других полезных предметов

BerkutOi 13-07-2017 20:41 0

Jotun, я забыл добавить, саенс писал это дело 4 месяца, в универе 4-8 месяцев учатся так чтобы написать такое за неделю в свободное время от учебы

12-07-2017 00:18 0

Как я понимаю выбор пал на С++ исключительно потому что на нём пишут игры?

17 комментариев
cherepets 12-07-2017 00:32 0

BerkutOi, Так кто сейчас на нем игры пишет? Всё инди увязло в Unity.

Jotun 12-07-2017 07:54 +1

cherepets, Крутые пацаны в энтерпрайзных геймдев-компаниях, которые могут себе позволить писать с нуля движки себе

BerkutOi 12-07-2017 08:42 0

cherepets, в геймлофте пишут

cherepets 12-07-2017 09:31 0

Jotun, Думаю, расчитывать устроиться сразу в такую не стоит.

Jotun 12-07-2017 21:40 0

cherepets, ну да, там как бы нужны по меньшей мере proficient C++, оптимизации на уровне ОС и низкоуровневое программирование, а также знание продвинутых алгоритмов.

ScienceDisco… 13-07-2017 11:51 0

BerkutOi, Не только. Еще и потому, что это один из самых сложных языков. А я легких путей не ищу. Если я разберусь в С++, то Java, Pyton, C# и другие буду вообще изич!

Да и в любом случае, главное не язык на котором программируешь (ну хотя что бы он поддерживал ООП важно), а именно умение программировать (на любом языке)...

ScienceDisco… 13-07-2017 11:55 0

Jotun, оптимизации на уровне ОС и низкоуровневое программирование
Кстати, С++ тем и крут что такое позволяет... То есть тут ты пишешь на высоком уровне, а потом раз, и что-то на очень низком написал (хотя я таким еще не занимался...). Но хотелось бы. Ведь разобраться в работе ПеКа еще с детства было моей мечтой... И наконец то я хоть понемногу подбираюсь к ее реализации..

BerkutOi 13-07-2017 11:56 0

ScienceDiscoverer, Не только. Еще и потому, что это один из самых сложных языков. А я легких путей не ищу. Если я разберусь в С++, то Java, Pyton, C# и другие буду вообще изич!

чего сразу не лисп/хасвелль?

про поддержку ооп смешно немного, особенно учитывая что я не увидел ооп в твоей игре(хотя я и не пытался понять чё ты там накодил)

ScienceDisco… 13-07-2017 12:07 0

BerkutOi, Ну как же... У меня там 2 класса (игрок и препятствие) и в них заложена практически вся логика и физика (все инкапсулированно, как положено!). Все что вне этих класов, это только генератор рандомных чисел, и функции рисования карты\управление.

ScienceDisco… 13-07-2017 12:08 0

BerkutOi, лисп/хасвелль
Ну я о таких не слышал >_<
А вообще я слышал что нужно придерживаться 1го языка какое-то время, если все таки еще выучил.

BerkutOi 13-07-2017 12:38 0

ScienceDiscoverer, тогда тем более странно как это у тебя всё одним файлом

Simple_Not 13-07-2017 14:49 0

ScienceDiscoverer, Странно ты хадркорный язык выбирал. Про этих двух мастодонтов даже я наслышан.

BerkutOi 13-07-2017 14:52 0

Simple_Not, ну по-правде говоря они таки не обьектно-ориетированные

хотя в 2017м году ооп ведь баян, сейчас функциональное програмирование модно

Simple_Not 13-07-2017 14:58 0

BerkutOi, Я вообще до сих пор не понимаю как вы там погромируете без привызки к конкретному приложению.
Мне всегда казалось что, например, на тех же крестах ты должен работать там где уже весь код на крестах писан.
В Office вон VBA есть, но в сущности это просто синтаксис для сложных пользовательских команд и автоматизации.
А так что делать с голым знанием Си, если потом жизнь не столкнёт тебя с приложалками на нём же? Самому кодить интерфейс и всю хуйню?

Jotun 13-07-2017 20:16 0

ScienceDiscoverer, То, что у тебя, называется не "инкапсуляция", а "good object"

BerkutOi 13-07-2017 20:35 +1

Simple_Not, Самому кодить интерфейс и всю хуйню?


ну впринципе да, а ты как думаешь сайты делают?

дело в том что сам по себе язык программирования(почти любой кроме экзотических) - достаточно простая штука, освоится в нём если ты уже умеешь программировать можно за неделю-две, проблема в семантике(не путать с синтаксисом) и в тулинге, плюс в знании предметной области

Simple_Not 14-07-2017 05:30 0

BerkutOi, ты как думаешь сайты делают?
Код, потом сверху CSS и прочие свистопляски.
Но ведь сайты не на всех языках пишут? Да и явно ж есть момент совместимости приложений написанных на разных языках.
проблема в семантике
Я думал наоборот. Программисткую семантику ж пользуют больше для мета-вопросов и категоризации существующих языков. По-моему, это в целом более простая и понятная задача (у того же Чёрча вроде вполне вменяемая теория, в неё нужно всего лишь вгрызться хорошо, разве нет?), чем кододрочильня по преобразованию идей и реальных процессов в полноценное взаимодействие пользователя и машины.

13-07-2017 11:57 0

Кстати Дмитро, я в воскресенье весь день буду с роллерами в Херсоне, если вдруг желаешь, можем пересечься как-то

4 комментария
ScienceDisco… 13-07-2017 12:09 0

BerkutOi, Что такое Роллеры? 0_0

cherepets 13-07-2017 12:17 +1

ScienceDiscoverer, Суши-повара.

ScienceDisco… 13-07-2017 12:22 0

BerkutOi, если вдруг желаешь, можем пересечься как-то
Я не знаю даже... Моя социофобия в последнее время только усилилась...

BerkutOi 13-07-2017 12:36 0

ScienceDiscoverer, странные люди, передвигающиеся по земле с использованием колёс прикрепленных к ногам
как-то так

11-07-2017 16:00 +1

Почти норм. Нужно перейти на какую-нить более производительную псевдо-консоль. Виндовая для того не годится и всё лагает как пиздец.

6 комментариев
BerkutOi 11-07-2017 16:01 0

cherepets, полезней графику сделать уже как мне кажется

cherepets 11-07-2017 16:14 0

BerkutOi, На случай если Дмытро захочется запариться с графикой, вот удачная статья:
habrahabr.ru/post/199064/

ScienceDisco… 13-07-2017 12:10 0

BerkutOi, Ну это чисто для эксперимента, типа "авось выйдет"? Следующим шагом будет переход на работу с пикселями и все такое.

ScienceDisco… 13-07-2017 12:26 0

cherepets, Создаем платформер за 30 минут
Лол, быстро, чо!

ScienceDisco… 13-07-2017 12:29 0

cherepets, Box2D
А что свой физ. движок для такой простой игры слишком долго писать? К тому же, на видео физика как-то не очень выглядит...

cherepets 13-07-2017 12:47 +1

ScienceDiscoverer, Мне тоже кажется, что в его случае это перебор. И вообще прыжки даже у тебя натуралистичнее выглядят :D
Но для более сложных игр всё равно пригодится, наверное, хороший сторонний двиг. Вот он и решил сразу освоиться с апи самого популярного.

12-07-2017 06:26 +1

Я не понимаю почему оно так лагает. Оно физически не должно лагать при таких объёмах и задачах.
Как на таких тормозах пробежать хотя бы 100м я без понятия - банально не удаётся даже физику прыжкаж почувствтовать нормально.

В общем, очень сыро вышло. Но вроде на что-то похоже.
Странно что ты всё-таки не затестил параметров при которых всё будет более плавным. Их же, по-хорошему, можно прям в игру вынести отдельными командами.


----
Дрочить кресты это похвально, да. Но ведь в погромировании надо либо в теорию вгрызаться, либо искать через них реализацию каких-то глубоко практических задач.

8 комментариев
ScienceDisco… 13-07-2017 12:21 0

Simple_Not, Оно так лагает, потому как виндовая консоль не предназначена для игр, лол...
Да та же Dwarf Fortress, я думаю, сделана не в консоли, а в каком-то кастомном окне.
edit: Да, точно. Я загуглил, вроде ДФ сделан на С++ и OpenGL.

Но ведь в погромировании надо либо в теорию вгрызаться, либо искать через них реализацию каких-то глубоко практических задач.
Ну я читаю понемногу книгу Introduction To Algorithms, Cormen-a... Конечно голова немного кружиться от математики что там используется, но в целом все пока более-менее понятно... В любом случае, я слышал что в прог. более важна практика чем теория, так что я пытаюсь больше времени отдать именно программированию...

Simple_Not 13-07-2017 14:46 0

ScienceDiscoverer, Я совершенно уверен, что cmd умеет выдавать больший фпс.
Introduction To Algorithms
Полистал - вроде годно, даже закажу себе.

BerkutOi 13-07-2017 14:47 0

Simple_Not, Я совершенно уверен, что cmd умеет выдавать больший фпс.
а вот я бы не был так уверен, надо бы под линуксом попробовать

cherepets 13-07-2017 15:50 0

Simple_Not, Может и можно слегка фпс поднять, но в целом да - это проблема самой консоли.
Для питона точно есть специальный эмулятор консоли со спрайтовым шрифтом и он быстрый. Никогда не искал аналогов под плюсы, но думаю, что есть.

ScienceDisco… 14-07-2017 10:32 0

Simple_Not, А, ты имеешь ввиду именно фпс? Так у меня скорость игры на нем построена (специальная задержка между кадрами начитается с 100 милисек, и уменьшается до 0 постепенно). Сначала ты медленно бежишь, но потом ускоряешься. Максимальная скорость бега (и макс возможный ФПС) достигается на 1 км.

ScienceDisco… 14-07-2017 10:36 0

Simple_Not, Полистал - вроде годно, даже закажу себе.
А ты ж вроде тоже экономист по специальности, программирование изучаешь?

Simple_Not 14-07-2017 14:33 0

ScienceDiscoverer, Какая разница кто я по специальности? В 21м веке мой диплом - это в лучшем случае хорошее среднее образование.
Алгоритмизация не только в программировании может пригодиться вообще-то (да и просто интересно). Насчёт прям программирования подумаю ещё, может и вкачусь если смысл увижу.
А так я ж лингвист, правда сейчас занят битвой за сохранение семейного капитала. А может и ещё кто, но это ещё посмотрим.
Не у всех такая странно-детерминированная жизнь как ты себе в голове рисуешь.

Jotun 14-07-2017 19:00 +1

Simple_Not, если уже учить алгоритмы, то Кормен не так крут, как Сейджвик.

13-07-2017 15:40 +1

Консольный шутан лепи. За ними будущее.

2 комментария
ScienceDisco… 14-07-2017 10:33 0

None, Ага, в 4D!

cherepets 14-07-2017 11:22 0

ScienceDiscoverer, Ужас 4D же уже не консольный был.