Пятница, 26 Апреля 2024, 23:33

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » TimKruz [2777]
Результаты поиска
TimKruzДата: Четверг, 16 Мая 2019, 09:44 | Сообщение # 21 | Тема: Хакерский движок для линукс
старожил
Сейчас нет на сайте
Цитата afq ()
А вы как думаете, стоит ли открыть код в будущем, чтобы каждый мог создать свои уровни?

Эммм, а это разве не тот же самый код, который ты около недели назад выложил на GitHub?

Давно собирался сказать: делать симулятор файловой системы прямо на диске – не лучшее решение для игры. Во-первых, если у кого-то эта игра окажется на SSD или флешке, она будет бессмысленно сливать циклы чтения/записи. Во-вторых, для игры работа напрямую с файлами просто не нужна.

Что я предлагаю? Самое простое – это хранить в оперативной памяти структуру файловой системы, в виде имён создаваемых каталогов, файлов, связями между ними и их содержимым (если требуется), и в оперативной же памяти это всё редактировать. А уж когда игрок запрашивает сохранение или выходит из игры – тогда вся эта информация записывается на диск. Тебе ведь не нужна полноценная файловая система, ведь так? Тебе нужна только симуляция этой системы, пригодная для игровых целей.

Я это вижу так:
– файл – это запись (в C++ это struct?) со строкой-именем и строкой-содержимым (или массивом строк);
– каталог – это похожая запись со строкой-именем и массивом указателей, которые могут ссылаться на каталоги и файлы.
При этом, если каталог будет содержать указатель на родительский каталог, а файл – на тот каталог, в котором он лежит, то переходы по этой "файловой системе" можно будет делать, просто перезаписывая текущий указатель на новый исходя из того, на что он указывает и хотим ли мы двигаться вверх или вниз. В общем, банальная древовидная структура...

Могу попробовать на Delphi сделать пример кода... Компилятора C++ под рукой вроде нет)

Хотя не, с записью указателей на диск не знаю, что делать. Ну, я бы воспользовался динамическими массивами или TList (ссылочный список с простыми индексами как у массивов и лёгким управлением), но я не знаю, какие аналоги есть в C++...

Цитата drcrack ()
игру на с++ под линукс с русскими комментами? нет, не стоит
(хотя если ты любишь разочарования, можешь попробовать)

Разочарование от чего? Что никто не смотрит или что смотрят и ругают?




Сообщение отредактировал TimKruz - Четверг, 16 Мая 2019, 10:00
TimKruzДата: Среда, 15 Мая 2019, 08:50 | Сообщение # 22 | Тема: Готовы ли вы выложить свой код?
старожил
Сейчас нет на сайте
Цитата pixeye ()
Цитата
Так что, возможно, брать за основу сложные проекты даже проще, чем какие-то простые, потому что в них всё за тебя уже сделали)
Не проще.

Ну окей, что проще:
1. Написать 10000 строк кода, предварительно разработав общую архитектуру. Добавить картинки.
2. Выдернуть старые картинки и воткнуть новые картинки. Код никак не изменять.
В обоих случаях тебе нужны новые картинки, но во втором случае ты экономишь кучу времени, взяв готовый проект. И чем сложнее этот проект (чем больше возможностей игры реализовано), тем больше времени ты экономишь, не написав ни одной строчки кода. А если этот код написан хорошо – то и времени на добавление нового будет меньше.

Разумеется, я сейчас говорю о тех самых бизнес-проектах, где всё делается ради выкачивания денег. Здесь, как говорится, "все средства хороши", и использовать свободную опенсурсную игру – только снизить риски, которые возникают при обычном воровстве кода.

А если бы речь шла о расширении кода игры, то тут та же ситуация, что и с готовыми игровыми движками. Можно писать целиком с нуля, а можно взять чужие наработки. И тут уж либо изобретать свой велосипед, либо перебирать детали чужого велосипеда. Вопрос только в том, сколько придётся изобретать и сколько перебирать...

Цитата afq ()
Ну вот мой проект ты мог бы осилить? https://github.com/xverizex/hacker_version

Речь шла про абстрактный, хорошо выполненный проект, а не наброски новичка)
Хотя, мне кажется, такой стиль кода характерен для C/C++ (за это я и не люблю вот это всё си-подобное)... :(

Цитата afq ()
Попробуй разберись что я там в terminal.cpp написал.

Ну дык, писать разборчиво всегда сложнее, чем абы как. Вспомнилось вот чьё-то высказывание (нагуглить не получилось), что-то типа: «Писать код легко. Сложно писать поддерживаемый код.» Или, как вариант: «Легко написать программу, которую поймёт компьютер. Сложно написать программу, которую поймёт другой человек.»

Конечно, я сам тот ещё "программист", но могу посоветовать следующее:
1. Нужно обязательно разбивать любые большие подпрограммы на маленькие, иначе пока дочитаешь до середины, забываешь, с чего всё началось, где ты и кто ты. В идеале тело подпрограммы не должно содержать больше 6-8 отдельных сущностей, поскольку большее число сущностей мозг удержать во внимании одновременно не может (читая следующую строку, одна из предыдущих "вылетит из головы").

2. Обязательно давать читаемые имена. Даже классический счётчик "i" лучше назвать читаемо, чтобы было понятно, что конкретно он будет считать (например, Row и Column вместо i и j для счётчиков строк и столбцов таблицы). Даже если из самого кода понятно, что может обозначать имя из одной-двух букв, всё равно на мысленный разбор кода будут потрачены время и силы, тогда как читабельные имена распознаются мозгом практически мгновенно. Да, печатать дольше, но лучше потратить больше времени на печать, чтобы сэкономить время на чтении в будущем.

3. Извлекать все константы, не связанные с логикой кода, куда-нибудь в другое место. Лучше в отдельный файл. И обращаться к ним по читабельным именам, а не по индексам. В случае числовых констант гораздо проще понять имя FirstElement, чем разбираться, "почему здесь не ноль?" (не важно, почему так; важно, что это "первый элемент"). В случае текстовых констант (строк) нам требуется знать только то, что "здесь вывод строки GreetingMessage", и не цепляться взглядом за лишнюю информацию, которая содержится в строке (мало ли какое там "приветствие", оно в будущем может на три экрана раздуться, а логика останется прежней).

В идеале в коде вообще не должно быть безымянных констант. Разумеется, если где-то нужен "просто ноль" – называть его "Zero" не нужно, но если этот ноль имеет какое-то важное значение, которое с чем-то связано (мы не зануляем переменную, а присваиваем ей конкретное значение), то нужно показать, с чем это значение связано. Можно, конечно, писать комментарии, но всегда лучше выглядит обращение по имени, чем лишняя строчка комментария.

4. Не делать далеко идущих связей. В идеале, если из твоего кода выдернули одну подпрограмму, то она должна продолжать работать, как будто ничего не изменилось (разумеется, пока известны все вложенные в неё подпрограммы). И самое главное, эта выдернутая из кода подпрограмма должна быть понятна без ознакомления с остальным кодом. Заголовок говорит, что эта подпрограмма делает, тело говорит, как она это делает, и не должно быть необходимости "сбегать в другой файл, чтобы понять, что здесь вообще происходит". Потому что если подпрограмма ничего не говорит о себе без ознакомления с её соседями, можно попасть в ловушку, когда ты уже три часа исследуешь код, пытаясь понять, чем занята первая попавшаяся функция.

Короче, хороший код – это когда ты ткнул пальцем в любую строчку, и уже знаешь, кому она принадлежит, чем занимается и зачем здесь нужна. Но для этого код нужно писать человеческим языком, а не кучей закорючек и спецсимволов. И любой ЯП это позволяет сделать (даже Ассемблер с макросами-вставками).

Да, кстати, есть такая холиварная тема, как "читабельность языков", и многие языки стремятся её повысить (Ada - за счёт многословия, Python - за счёт строгого требования отступов, и т.д.). Вот только на самом деле читабельность кода зависит от того, кто его пишет, а не от того, на каком языке он написан. Невозможно правилами языка заставить программиста давать корректные имена переменным, например. Так что возможные оправдания "я пишу на C++, он по определению сложный" сразу не катят, C++ не запрещает писать код понятно.

А так и я могу скинуть исходники тетриса, который я написал в 2012, и, попытавшись через несколько лет добавить новый пункт в главное меню, сломал вообще всё. При том код компилировался нормально, но в его поведении я так и не разобрался, потому что приходилось бегать глазами по более чем двум тысячам строк))) С тех пор стараюсь такой запутанный код не делать.

Вообще, идеальный ЯП – Forth. В нём нет ничего лишнего, только объявление новых "слов" (команд) из набора имеющихся. Это просто гениальный язык, который может быть таким, каким хочешь. А форт-машина настолько проста, что любой может написать свою с нуля, и начать на ней работать... Плюс, принципы Форта можно использовать на любом другом ЯП (так-то сам по себе Форт не очень применим на практике, несмотря на все преимущества).

Цитата martuk ()
Поработав в команде, ты осознаешь важность стандартов.

Их много. У Васи один стандарт, у Пети другой. Как им без начальника сработаться? Мы же тут обсуждаем опенсурс, в котором каждый может притащить кусок своего кода в общий проект, и никто никому не обязан. Кроме того, команда команде рознь, команда школьников без опыта работы – тоже "команда".

Цитата martuk ()
Но можешь говнокодить и в соло, никто не запрещает. Вот только код сможешь потом прочесть только ты, и только какой то начальный период.

То есть, по-твоему, если я не могу прочитать чужой код, написанный по стандартам военной секретности*, то я обязательно пишу абы как, без какого-то своего собственного стандарта?

*Имена из одной-двух букв, магических чисел больше чем операций над ними, дёргать глобальные переменные в рандомных местах, подпрограммы на пять экранов, вложенность циклов на три экрана, прыжки по коду через goto (чтобы выбраться из тех самых циклов), использование недочётов языка/компилятора в качестве "оптимизации", принципиальное отсутствие комментариев кроме предсмертных записок и криков о помощи – лишь бы враг не узнал, чем реально занимается эта программа, и всё это выглядит как какой-то негласный стандарт...

Хорошо, хоть автоформатирование придумали. Плохо, что у каждого оно настроено на какую-то свою систему правил.

Цитата martuk ()
пишутся зачастую группой людей, где действительно нужно быть "как все", иначе скорость разработки упадет, а сложность возрастет в разы.

А что, если я не хочу быдлокодить как все? Я хочу писать красивый, понятный код. Чтобы его читать было приятно, не спотыкаясь взглядом о всякую фигню. Я бы мог писать частоколом непонятных символов, как это делают все, но зачем мне делать себе же хуже?

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

И я совершенно не понимаю, почему половина человечества мечтает "общаться с компьютером на человеческом языке", а другая общается с этими компьютерами на максимально нечеловеческих языках, несмотря на возможность так не делать... Можно было бы понять, если эти специальные коды было бы легче воспринимать, чем простой текст, но разве это так? Программирование ни разу не математика, мы оперируем реальными вещами (кроме случаев, когда вычисляется математическая формула, но это всегда делается для чего-то, а не просто так), так не надо втягивать сюда огромные формулы из отдельных символов.

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

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

И не надо про оптимизации, что лишний вызов подпрограммы замедляет программу, что длинные имена занимают больше места на диске и т.д. Мы не в 90-х, а если хотите что-то оптимизировать – скажите это тем, кто берёт огромный фреймворк ради одной примитивной функции, и весь этот фреймворк загружается из интернета в память браузера при каждом посещении сайта. От читабельного кода никто не помрёт, а сведение высокоуровневого кода к набору спецсимволов убивает весь смысл в высокоуровневых языках (хотите непонятности – пишите сразу в машинных кодах, заодно и наоптимизируетесь).

Сорри за многабукв и если вдруг я снова в чём-то заблуждаюсь)


TimKruzДата: Среда, 15 Мая 2019, 00:33 | Сообщение # 23 | Тема: Roblox
старожил
Сейчас нет на сайте
Цитата JackNazaryan ()
О, интересно. Только не понимаю, почему это платформа для создания игр и "ОнЛайн конструкторы игр" - из описания скорее похоже сугубо на их каталог.

Ээм, вообще-то это очень древний проект, что-то типа Second Life, только для малышей и младшеклассников... Там, вроде, можно собрать собственную карту-комнату, задать правила игры и опубликовать, чтобы играть с друзьями (или рандомами). Ну я много лет назад один раз попытался в это поиграть, но чёт не зацепило, управление тогда было жесть и графон ужасный. Больше не пытался)

А ещё Roblox напоминает "Копатель Онлайн" (хотя, скорее наоборот) – тоже породил кучу мемов про школьников, только в англоязычной части интернета. :D


TimKruzДата: Вторник, 14 Мая 2019, 23:58 | Сообщение # 24 | Тема: Записки линуксоеда
старожил
Сейчас нет на сайте
Цитата JackNazaryan ()
Речь уже о том, что виндовсовские программы тем более за собой не очистят те библиотеки, которые больше не нужны, но зато при установке какой-нибудь .NET обязательно будут требовать

Ну дык тот же .NET ставится как отдельная программа, через отдельный инсталлятор. Надо удалить – удаляй; и пусть оставшиеся .NET-приложения превратятся в тыкву, систему это не обрушит.

Цитата JackNazaryan ()
На самом деле apt вполне способен убирать за собой зависимости

Вообще я имел дело с Pamac. Знаю, он отображает список "лишних" пакетов (удобно, если в следующий раз потребуется, чтобы не собирать тот же пакет заново), которые можно удалить... Но меня смутило то, что я не разобрался, куда именно на диске ставится то или иное конкретное приложение, чтобы в случае чего удалить его вручную. Просто привык в Windows удалять папку из Program Files, вручную искать остатки в AppData, ProgramData и других подобных местах, ну и соответственно подчищать остатки в реестре... А тут вдруг программа хранится не в одном месте (Program Files), а рассредоточена по системным каталогам так, что становится непонятно, какой каталог принадлежит этой программе, а какой – другой...

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

----

Цитата afq ()
Сделай серверную программу для игры. Чтобы сервер всегда работал в сети. Распространи свою игру между этим форумом, чтобы можно было поиграть по сети. Ну какую нибудь простенькую игру. Научишься делать сервер для игр и прокачаешь свой скилл!

Мечтал о таком ещё когда планировал замутить нечто GTA-подобное на "хотя бы 1000" игроков онлайн с картой, где в каждую квартиру можно зайти и что-нибудь делать там (из фич планировались: возможность писать заметки, делать свои кастомные модели автомобилей и оставлять персонажа в мире под управлением серверного бота). Лол.

Хорошо, что моей мотивации не хватает дольше, чем на один-два дня. А то вдруг что-то получилось бы. :D




Сообщение отредактировал TimKruz - Среда, 15 Мая 2019, 00:11
TimKruzДата: Вторник, 14 Мая 2019, 18:11 | Сообщение # 25 | Тема: Bleeding Demoness
старожил
Сейчас нет на сайте
Цитата DimaLink ()
пережму картинки в меньшее разрешении. Толькуо немного времени нужно.

Достаточно будет закрыть тегом [spoiler][/spoiler].

Цитата DimaLink ()
Так гонять - это конечно просто несиправлено. Имелось ввиду что игрок нажав 1 раз клавишу получит 1 ход. И неважно будет держать ее или нет. То есть типа походовость такая. Но не совсем. То есть так ходить надо будет запретить.

Просто нужно перемещать персонажа не на KeyDown (нажали клавишу), а на KeyUp (отпустили клавишу). Первое может срабатывать несколько раз (пока удерживаешь клавишу), второе – только в момент отпускания клавиши.
Или более сложный вариант, когда перемещаешь на первое событие KeyDown, а все последующие KeyDown'ы игнорируешь до тех пор, пока не поймаешь событие KeyUp. Тогда персонаж переместится в момент нажатия, но только один раз.
Ну, или можно оставить возможность зажатия клавиши, но установить максимальную скорость движения, например, "1 клетка в секунду", чтобы не заставлять игрока нажимать клавишу десять раз подряд...

Цитата DimaLink ()
Разве портал обязан быть рядом с игроком? По моему нет. И не важно удобно это игроку или нет.

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

Цитата DimaLink ()
Игра не планируется мною как игра с расчетом.ю Сам не люблю типа шахмат где все надо наперед расчитывать.

Нет, конечно, я не предлагаю делать как в шахматах. Урон мобов, например, может быть рандомным (в пределах определённых значений, ну как обычно в РПГ). Направление движения мобы тоже могут выбирать случайно (вообще или пока не увидят игрока). На самих уровнях могут быть разбросаны какие-то случайные бонусы (например, пакет крови) или ловушки (в пределах проходимости, а то можно случайно сломать уровень). Просто когда сама потеря жизни зависит от случайности, игра превращается в банальное подбрасывание монетки, типа "выпала решка – ты проиграл", а это не очень весело, ИМХО.

Короч, получается ситуация "шёл, шёл, вдруг взял и умер", без какой-либо видимой причины. Реальная причина – так захотелось генератору случайных чисел. Это несколько рушит... ну, не знаю, погружение в игру?.. В любом случае, когда, например, монстр бьёт сильнее обычного – это воспринимается как "ловкий удар"; когда монстр идёт в непредсказуемом направлении – "что-то учуял"; когда попадается случайный бонус – "ну ведь тут монстры живут, что-то делают". А кровь, которая то не течёт, то вдруг хлещет фонтаном, то опять не течёт – это какая-то неправильная случайность, ящитаю)

Но, конечно, игра твоя – решать тебе)

Цитата DimaLink ()
твой сюжет прикольный.Сделай раз сам вдохновился. Почему бы и нет. Зачем пропадать идее.
Цитата DimaLink ()
Сделай! Только демонессу поменяй на что нить свое. и Антураж чуть иной. И без проблем))))))
Почсему нет)))

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


TimKruzДата: Понедельник, 13 Мая 2019, 22:33 | Сообщение # 26 | Тема: Записки линуксоеда
старожил
Сейчас нет на сайте
Цитата afq ()
Что ты прицепился к этому windows на нетбуке.

Потому что он там 100% нормально работает, а на Linux в большинстве случаев часть железа "отваливается", поскольку нет определённых драйверов. Вот даже Windows 10 отказалась ставиться, потому что не смогла найти подходящий драйвер звука...

Цитата afq ()
ставь на нетбук серверную ос, устанавливая min.iso. Научишься администрировать. Создашь что нибудь серверное и будет от основного компа использовать

У меня есть My Book Live, это такой файловый сервер на урезанном Debian. Туда можно поставить что-нибудь ещё, но не хочу перегружать, мне достаточно стандартной функции "файлопомойки"...

И ещё купил Raspberry Pi, чтоб набраться опыта, но чёт вообще не тянет заниматься с этим. Ставил на него Manjaro ARM, подключал к дисплею... Весело, конечно, но пока лень с этим париться. Да и идей нет никаких абсолютно, как с умом применить эту железку, т.к. изначально рассчитывал запилить туда "мозги" ИИ, но у меня до сих пор нет даже строгой концепции того, что я считаю ИИ...

А нетбук мучить не хочется... Я бы мог сделать на нём сервер даже на базе имеющейся Windows 7 (дело не хитрое – написать свою программу и запустить, можно даже собственный протокол придумать), но зачем? Что я с ним буду делать?..


TimKruzДата: Понедельник, 13 Мая 2019, 22:18 | Сообщение # 27 | Тема: Готовы ли вы выложить свой код?
старожил
Сейчас нет на сайте
Цитата Ordan ()
Для меня мой код это что то интимное) У каждого свои тараканы в голове и всё это отражается в коде, большинство кода что я видел или правил вызывало у меня отвращение потому, что не соответствует моим кодовым фетишам и образу мышления)

Люто плюсую. Обычно стараюсь писать код "красиво", вне зависимости от языка, чтоб читать было приятно и понятно. Соответственно видя то, что накодили другие люди – порой хочется просто бросить всё, ибо человечество обречено(

Цитата martuk ()
Обычно это проблемы тех, кто никогда не работал в команде

Типа, поработав в команде, становишься таким как все?


TimKruzДата: Понедельник, 13 Мая 2019, 21:51 | Сообщение # 28 | Тема: Записки линуксоеда
старожил
Сейчас нет на сайте
Цитата afq ()
Почему тебе не нравиться бесплатный линукс?

Он мне нравится, но мне на нём нечего делать.
Все игры – на Windows; Delphi 7 – на Windows; Firefox без глюков – на Windows; MPC-HC – на Windows; PS Pad – на Windows.
Manjaro мне понравился, но в перспективе ближайших лет мне на нём делать нечего.
К тому же Windows 10 я получил по сути бесплатно, так что жаловаться не на что)

Цитата afq ()
что прям летает? Сколько у тебя загружается система в минутах или секундах?

Ну по диспетчеру задач, система юзабельна примерно через минуту после запуска... Но, скажем:
– Firefox запускается секунды за две от нажатия спец. клавиши на клаве;
– Steam запускается за 3 секунды, а устанавливает обновление за десяток секунд;
– PS Pad запускается за пару секунд;
– Delphi 7 стартует секунд 5;
– MPC-HC и старая версия Screamer Radio появляются мгновенно;
– Inkscape и Blender первый раз грузятся секунд 10, потом секунд 2-3 достаточно.
И отклик в приложениях никакой "тормознутости" не демонстрирует. Нажал кнопку – произошло действие, никакой задержки из-за медлительности ОС или чего-то в этом роде.

Однако, должен заметить:
– всё ускорение происходит за счёт объёма ОЗУ, т.к. многие библиотеки программ заранее хранятся там, отсюда долгая загрузка системы и быстрый запуск программ, особенно при их повторном запуске;
– даже если я поставлю SSD, мне не даст это никакого прироста скорости, т.к. у матери SATA 2, и соответственно любой SSD по скорости будет примерно на уровне HDD;
– когда ОЗУ не хватает, система вынуждена свопиться на диск, и это действительно может приводить к тормозам, но у меня, за исключением некоторых игр, ничего не выходит за пределы 8 ГБ.

Вот на нетбуке с 1 ГБ ОЗУ Windows 7 действительно тормозит, т.к. доступных 700 МБ мало на что хватает. Т.е., например, если Firefox на нетбуке занимает слишком много памяти, часть Windows выпадает в своп (в том числе Проводник), из-за чего приходится долго ждать подкачки нужных данных с диска... Я бы мог поставить на нетбук планку на 4 или 8 ГБ, но по стоимости она выйдет почти равной цене самого нетбука (10 т.р. в ~2011-2012), так что решил не париться.

UPD: к слову, на том же нетбуке, Ubuntu при загрузке с флешки после первой же попытки открыть настройки ушла в dead freeze (нет, не паника ядра, а именно "мёртвая заморозка") и не смогла разморозиться даже спустя несколько часов. Видимо, 1 ГБ для Ubuntu – смерть, хотя Windows 7 на 1 ГБ вполне юзабельна.




Сообщение отредактировал TimKruz - Понедельник, 13 Мая 2019, 21:58
TimKruzДата: Понедельник, 13 Мая 2019, 21:13 | Сообщение # 29 | Тема: Записки линуксоеда
старожил
Сейчас нет на сайте
Ой, всё, не хочу участвовать в этом цирке.

Цитата afq ()
Windows'у ещё у линукса надо поучиться как писать софт

Да, да, это именно Windows с Linux пишут софт, а не люди-программисты. Восстание машин началось в конце XX века?

Мой ПК: Xeon E5450; 8 GB DDR2; 750 Ti 2 GB; HDD 250 GB (2007 год).
Как видишь, SSD у меня нет. Почему у меня Windows 10 летает?




Сообщение отредактировал TimKruz - Понедельник, 13 Мая 2019, 21:18
TimKruzДата: Понедельник, 13 Мая 2019, 20:33 | Сообщение # 30 | Тема: Конструктор для презентации
старожил
Сейчас нет на сайте
Цитата martuk ()
Слабее - не значит проще.

Ну фиг знает, 2D движок есть, 3D движок есть, физика есть, звуковая система есть, система анимации есть, кодить можно на любом языке, начиная от двух встроенных и заканчивая подключением чего угодно через внешние костыли (но зачем?)... Чем слабее-то?

Цитата martuk ()
Возможность возможности рознь. Они оба одинаковы по возможностям в своем классе, если уж на то пошло.

Чёт не помню, чтоб в Game Maker когда-либо планировалась поддержка адекватного 3D. Гамак всегда был удобен в плане "слепить что-то быстро", но неудобен в добавлении любых новых возможностей.

Цитата martuk ()
Программировать можно, но скорее ноги сломаешь.

Я лично вообще не понимаю, зачем использовать C++ внутри готового движка. То есть, понятно, что если ты пишешь свой движок на C++, то и скриптить тебе захочется на C++, а вот используя готовый движок – зачем C++? Мало ног отстрелено, хочется пострадать больше? Дали тебе тьюринг-полный скриптовый язык – ну и используй его, или тебе внешний вид не нравится?

Я ещё понимаю, когда нужно подключить внешнюю библиотеку какую-то, но какие внешние библиотеки могут потребоваться играм? Это же не космический корабль, не научная станция, не майнер биткойнов... а хотя да, майнеры... *задумался*

Так, ладно, не надо разводить холивар, я просто выразил своё ИМХО, поскольку мне, чисто субъективно, Godot показался лучше Unity в плане освоения и возможностей. В противовес могу сказать, что мне не нравится, что Godot экспортирует игру в виде "самого себя" + пакета с контентом, из-за этого даже простой Hello World будет весить 25+ МБ. Мне б хотелось конструктор, способный подключать возможности по отдельности, как это делает Delphi (минимальный размер с подключённым VCL на Delphi 7 – 300 КБ, и никаких внешних DLL-ок, без VCL меньше 30 КБ), но почему-то сейчас считается нормальным вбухивать сто метров библиотек ради ничего...


TimKruzДата: Понедельник, 13 Мая 2019, 20:01 | Сообщение # 31 | Тема: Конструктор для презентации
старожил
Сейчас нет на сайте
Цитата Legion5slov ()
Насколько я понял, мои задачи подпадают под класс игр "новелла". А в этой области может есть что заслуживающее внимание ?

Большинство визуальных новелл делаются на Ren'Py, но как там со встраиванием видео и вообще насколько просто делать игры – не знаю, не пробовал.
Но по видеоформатам на сайте написано:
Цитата
Movies: OGG Theora, VP9, VP8, MPEG 4, MPEG 2, MPEG 1

Так что, думаю, проблем не возникнет.
Экспорт есть на все популярные платформы.

Цитата Legion5slov ()
так хочется какой-то игровой конструктор освоить

Я б порекомендовал Godot. Он, ИМХО, значительно проще Unity в плане освоения и уж точно мощнее GMS2 в плане возможностей. Кодить там можно не только на простом встроенном языке (GDScript) или внешнем C#/C++, но и через визуальный редактор, если хочется. Экспорт, опять же, на любую популярную платформу. Видеоплеер там вроде как встроенный, ну, вряд ли какие-то проблемы будут, но нужно понимать, что это полноценный игровой движок, и большинство функционала придётся пилить вручную (конструкторы обычно всё за тебя делают, а ты только контент подсовываешь).

UPD:
Да, в плане освоения у Godot преимущество в том, что помимо туториалов и руководств на официальном сайте (которые пополняются и переводятся сообществом), в саму среду разработки встроена справочная информация (правда, не всегда полная), и редактор кода GDScript имеет удобное автодополнение, тогда как в Unity редактор отделён от среды и тип дальше сам как хош так и кодируй)))

По лицензиям и Ren'Py, и Godot лицензированы под MIT (Godot целиком, Ren'Py по большей части), а это значит, что никому ничего платить не надо. Качаешь с официального сайта и используешь как хочешь, в общем (Godot точно, они этим бравируют, мол "движок, которым принадлежит всем", хотя начинался он как какой-то приватный движок одной компании).




Сообщение отредактировал TimKruz - Понедельник, 13 Мая 2019, 20:14
TimKruzДата: Понедельник, 13 Мая 2019, 19:42 | Сообщение # 32 | Тема: Записки линуксоеда
старожил
Сейчас нет на сайте
Цитата afq ()
мне очень не нравилось что windows консоль была недоразвита в плане консольных утилит

Во-первых, "Windows-консоль" – это кусочек MS-DOS, который Windows таскает с собой со времён, когда она ещё была графической оболочкой для DOS. Это важно для понимания, что это не какая-то "недоразвитая консоль", а вполне взрослый инструмент, исправно служащий уже десятки лет.

Во-вторых, скриптовый язык cmd.exe (изначально COMMAND.COM) имеет достаточно полный синтаксис, чтобы писать на нём любые программы. Читал где-то, что во времена первых DOS на этом языке писались очень сложные программы, без использования каких-либо посторонних программ или расширений. То есть, переводя на твой пример, люди писали вовсе не обёртку вокруг готовой программы convert, а саму программу convert на скриптовом языке консоли MS-DOS, и этот скриптовый код по большей части может работать на всех версиях Windows (кое-какие отличия всё-таки есть).

Я сейчас не говорю что-то вроде "консоль Windows лучше", я сейчас говорю, что ты просто слишком поверхностно взглянул на инструмент, который столь тщательно пытаешься полить грязью.

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

И ещё. Если бы Linux был удобнее Windows для широких народных масс, то доля Windows на рынке давным-давно упала бы ниже экономически выгодной границы, после которой разработка Windows была бы закрыта как невыгодная. Но те самые широкие народные массы по какой-то причине по-прежнему голосуют рублём/долларом за Windows, и сколько бы яростные адепты Linux не пытались полить грязью всё вокруг себя, они делают хуже только линуксу, создавая ему отрицательную репутацию.

Цитата afq ()
Привык я уже устанавливать программу командой sudo apt install

Ага, а после удаления такой программы, у тебя в системе остаётся 100500 ненужных библиотек, которые предполагается вырезать вручную... Конечно, в рамках терабайтовых дисков лишние библиотеки кажутся несущественными, но ведь даже терабайт конечен... Да и зачем мне хранить у себя стопицот несовместимых между собой версий одной никчёмной библиотеки, если я уже удалил все программы, которым она могла потребоваться? Выход один – переустанавливать линукс начисто...

Цитата drcrack ()
А я просто в irfan view нажал batch convert

Странно, что он не начал спрашивать, а можно ли в irfan view с помощью нажатия кнопки посчитать число Pi до миллионного знака после запятой, приготовить кофе и заказать пиццу на дом, ведь всё это можно сделать с помощью консольных команд. :D

P.S. А вообще я заглянул в эту тему пошутить про "линуксоеда" – много ли он линуксов уже съел, вкусно ли ему было?..


TimKruzДата: Воскресенье, 12 Мая 2019, 19:58 | Сообщение # 33 | Тема: Конструктор для презентации
старожил
Сейчас нет на сайте
Цитата martuk ()
Для PowerPoint есть конвертеры под html, а дальше хоть на телефоне открывай =)

Ну так-то и *Office Impress тоже может в HTML экспорт делать, только что с видео будет – не знаю...

Цитата Legion5slov ()
Повер поинт живет только внутри себя.

Как и любая виртуальная машина. Вопрос только в её распространённости – если Java/C#/Flash/<любой веб-браузер> есть практически везде, то PowerPoint достать не так-то просто...

Цитата Legion5slov ()
Кроме *.EXE ведь и *.APP есть. Да и *.HTML никто не отменял )))
Ну... хотя бы что то чтоб вывести в публичный интернет

Надо было сразу про целевую платформу говорить)
Просто слово "презентация" смутило – на ум сразу приходит проектор в каком-нибудь зале, где собрались важные люди смотреть важные вещи, а уж там-то точно должно стоять нужное ПО (или оно приносится на ноутбуке).

Вообще, вариантов как сделать такую интерактивную презентацию (хотя, по описанию больше похоже на визуальную новеллу) – очень много. Но если не требуется какого-то сложного поведения и портирования на множество платформ – игровые движки/конструкторы тут будут излишними (их ещё изучать придётся). Так что, наверное, стоит попробовать в PowerPoint/Impress замутить набросок и посмотреть, насколько сложно будет экспортировать туда, куда хочется.


TimKruzДата: Воскресенье, 12 Мая 2019, 19:04 | Сообщение # 34 | Тема: [2D] Hentai Girl Puzzle (18+)
старожил
Сейчас нет на сайте
Цитата KimPhan ()
OOPS, SORRY!
Из Стима удалили уже?

Там же оранжевым по синему чётко написано:
Цитата
An error was encountered while processing your request:
You must login to see this content.

Залогинься и открой ссылку повторно или через клиент стима найди "Hentai Girl Puzzle". Ну это если у тебя в настройках профиля разрешено отображение Adult Only игр.

Я другого понять не могу:
Цитата SteamPromo ()
Скрины

В стиме скрины правильные, тупо а-ля пятнашки с эротикой, а здесь два скрина будто...
...ага! Как не стыдно скрины с чужих игр прикреплять) Это из "Insurgence - Chains of Renegade", нашёл яндексом)

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

...А, погодите, "SteamPromo" – это бот какой-то? От разных команд игры публикует. о_О




Сообщение отредактировал TimKruz - Воскресенье, 12 Мая 2019, 19:11
TimKruzДата: Воскресенье, 12 Мая 2019, 18:46 | Сообщение # 35 | Тема: Конструктор для презентации
старожил
Сейчас нет на сайте
PowerPoint – это, конечно, круто, но мне кажется, Legion5slov должен был про него хотя бы слышать, не?) Поверпойнту даже в школах на информатике учат, или заставляют делать в нём свои презентации на урок...

Возможно, Legion5slov нужно экспортировать в .exe (делаю такой вывод из того, что он обратился на форум игроделов), а PowerPoint так, вроде бы, не умеет. Да и платный. Как бесплатная альтернатива есть OpenOffice (LibreOffice) Impress, можно экспортировать в .swf, а из .swf создать .exe через Flash Player (но могут быть ограничения; лучше б сразу в Flash делать, но изучать Flash не так просто, как офисную программу)...


TimKruzДата: Воскресенье, 12 Мая 2019, 16:57 | Сообщение # 36 | Тема: [3D] PROJECTSTAR [Action-RPG]
старожил
Сейчас нет на сайте
Цитата TLT ()
Почему персонажи - японские дети? Или это что-то типа Финалки?

Так-то в "похожих играх" японские РПГ, понятно, откуда выбран стиль графики.
Но вообще можно подбить обоснуй вида "вирус поражает преимущественно взрослых" или что многие взрослые уже погибли в первых хаотичных сражениях (но детей успели спрятать, ибо святое и т.д.).

Цитата KirKami ()
ДОСТУПНО ДЕМО РЕДАКТОРА ПЕРСОНАЖЕЙ

Замечания:
– вид камеры "лицо/голова/тело" не привязан конкретно к голове/телу, это видно при изменении роста;
– настройки головы лучше разделить на группы (отдельные вкладки);
– при уменьшении роста ниже ~170 голова начинает надуваться (должно быть наоборот);
– изменение грудной клетки/живота затрагивает пропорции головы;
– имхо, полный цветовой круг в рамках игры не нужен, лучше что-то проще;
– безудержное вращение в окружении неоновых сообщений... ммм, такое себе решение;
– а вот свечение (bloom?) точно нужно снизить, разглядеть персонажа трудно;
– и уберите физику с персонажа, он не должен прыгать при изменении роста.

Вообще, лично мне от таких редакторов хотелось бы иметь возможность выбирать что-то из пресетов, типа наиболее частые пропорции тела. Просто тонкая настройка движками – это как кодинг на ассемблере, гораздо проще создать монстра, чем что-то вменяемое, особенно когда плохо разбираешься в анатомии человека...

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


TimKruzДата: Воскресенье, 12 Мая 2019, 16:03 | Сообщение # 37 | Тема: [2D] Без названия
старожил
Сейчас нет на сайте
Цитата afq ()
Вид будет сверху?
Цитата Arachnid ()
Жанр: TDS

Top-down shooter же.
Цитата afq ()
Одного за другим. Одного за другим. И так, пока кровью не наполниться земля.

Чёт так себе сарказм. huh
Хотя, логичное развитие событий, если ГГ – фермер, а кровь и трупы неплохим таким удобрением послужат)

Arachnid, мне кажется, рановато ты тему создал... Идеи как-то не видно вообще, обсуждать нечего)
Если проект чисто для опыта на C++, то, эм, нужна ли вообще эта тема?..


TimKruzДата: Воскресенье, 12 Мая 2019, 15:06 | Сообщение # 38 | Тема: Bleeding Demoness
старожил
Сейчас нет на сайте
Цитата DimaLink ()
Уровни по идее - как бы лабиринты еще разные. В примере, там в конце будут какие-то подобия лабиринтов. Со стенками.
Ну то есть, мало будет - разные цвета пола и стен, разные враги, разный лабиринт. Я так планировал. По идее.
Еще планировал сделать лабиринт, больше чем в 1 экран. Но сейчас он только в 1 экран и никак иначе.

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

Но, ИМХО, обязательно нужно учитывать расход крови на шаг, иначе игрок может проиграть из-за рандома: если кровь тратится случайно, нет гарантии, что она не потратится вся в самом начале лабиринта, и это будет обидно, т.к. никакого контроля со стороны игрока над этим процессом нет. Контроль будет, если можно будет планировать расход крови, чтобы знать, например, "если заверну в эту комнату – крови до выхода точно не хватит, надо идти напрямик". Эта необходимость решать, каким путём идти, чтобы крови точно хватило (если монстры не покусают), будет создавать дополнительный интерес к игре.

Хотя, конечно, уровни придётся лучше продумывать.
Кстати, я правильно понял, что пишешь на каком-то ЯП без движка? Сделай загрузку карт из файлов (для начала текстовые сойдут), так будет значительно проще редактировать и тестировать уровни без перекомпиляции игры.


TimKruzДата: Воскресенье, 12 Мая 2019, 14:49 | Сообщение # 39 | Тема: Готовы ли вы выложить свой код?
старожил
Сейчас нет на сайте
Цитата k0fe ()
Но это насколько простой должен быть проект и насколько упорным должен быть тот, кто над этим кодом строит свой проект

Посмотри на:
– десятки китайских донатных мобильных ММО, отличающиеся только набором спрайтов и парой фич;
– десятки браузерок, построенных на исходниках однажды выстрелившей древней (00-е) браузерки;
– десятки "глобальных" модов на игры типа GTA, которые прикидываются самостоятельными играми;
– сотни модов на большие и старые игры, которые могут менять оригинальную игру очень сильно;
– кучи геймплейно одинаковых мини-игр, созданных для фарма денег с рекламных баннеров.
Очевидно, что будет значительно проще делать некоторые проекты на базе готовой игры, чем разрабатывать с нуля или на каком-то универсальном движке. Разумеется, в итоге получится в той или иной степени клон, и чем меньше будет приложено сил и ресурсов, тем более похожим на оригинал будет этот клон, но в определённых условиях это выгодно. Тем более когда автор оригинала сам предоставил права на модификацию и распространение/продажу производных продуктов.

Ну и потом, если у тебя есть идея игры, и два пути её реализации – целиком с нуля (на универсальном движке) или на базе очень похожей готовой игры – естественно будет выбрать второй путь, если тебе разрешает это делать её автор (или тебе пофиг на копирайт и всё такое, как это было принято раньше). Потому что тогда, возможно, достаточно будет заменить контент и написать свои сценарии, вместо того, чтобы самостоятельно прорабатывать рутину вроде загрузки карты, контроля персонажа, ИИ и т.д.

Так что, возможно, брать за основу сложные проекты даже проще, чем какие-то простые, потому что в них всё за тебя уже сделали)

...Окей, это в случае сферического в вакууме проекта, в котором нет лапши вроде "если поменять эту модель, то код сломается в 20 местах, а если перекрасить второй слева пиксель в этой текстуре, то код сломается в 42 местах". Ну и если тебе для твоего проекта не нужно каких-то супер-пупер фич, а только модельки/картинки свои воткнуть и сюжет запилить...


TimKruzДата: Воскресенье, 12 Мая 2019, 13:14 | Сообщение # 40 | Тема: Готовы ли вы выложить свой код?
старожил
Сейчас нет на сайте
Цитата afq ()
чтобы любой желающий мог понять как ваша игра работает

Если в коде нет какого-то know-how (секретный трюк, о котором мало кто знает), который ты хотел бы использовать в своих будущих проектах – то почему бы не выложить? Уверен, 99% игровых проектов не представляют ценности в плане кода...

Цитата afq ()
В таком случае возможно что её никто не будет покупать, все будут качать на github

Этого не произойдёт по ряду причин:
1. Многим удобнее пользоваться Steam, даже если это дороже (удобства стоят денег);
2. Про GitHub знают лишь те, кто хоть как-то связан с IT и хоть как-то шарит в ПО;
3. Не всякий даже продвинутый пользователь осилит сборку игры из исходников;
4. Для сборки потребуется установка компилятора, фреймворков и прочей чепухи;
5. Кроме того, если игра хорошая, всегда найдутся те, кто захочет отблагодарить тебя.

Да и вообще, если ты выкладываешь код в публичном месте – это не означает, что ты разрешаешь что-то с этим кодом делать. Ты можешь написать лицензию, которая разрешает "читать и изучать" этот код, но не разрешает его компилировать и напрямую использовать в других продуктах. Разумеется, это будет уже не "open source", но в образовательных целях кому-то да пригодится...

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

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

ИМХО, если ты выкладываешь код под свободной лицензией, то больше будет проблема от форков, т.е., по сути, клонов игры, которые могут распространяться как и твоя игра (и могут стать лучше и успешнее твоей). Но, опять же, тебя никто не заставляет выкладывать код под свободной лицензией... хотя могу ошибаться (надо почитать правила гитхаба).

Вообще, вся концепция open source, насколько я понимаю, предназначена для того, чтобы люди могли коллективно разрабатывать сложные проекты, использовать чужие наработки для ускорения собственных, поддерживать то, что уже не поддерживается оригинальным автором и т.д. Если переносить на игры, то игра с открытым исходным кодом позволяет любому желающему:
– исправить ошибки, которые не исправил автор;
– добавить любые возможности и контент, которые не хотел/не смог добавить автор;
– убрать или изменить любые имеющиеся возможности и контент;
– взять на себя ответственность дальнейшего развития продукта (например, если автор умер);
– перенести проект на другую платформу (Windows -> Linux, Linux -> Windows и т.д.);
– забрать из игры полезный код, чтобы на его основе сделать совсем другую игру;
– и прочее, и прочее.
Здесь преимущества в том, что твоя игра не остаётся лежать мёртвым грузом после того, как ты бросил/завершил работу над ней, она будет жить и развиваться до тех пор, пока к ней есть интерес хотя бы одного разбирающегося в разработке ПО человека (или хотя бы одного человека с лишними деньгами). С одной стороны ты теряешь контроль над последующими изменениями игры (не можешь наложить вето на какие-либо изменения), с другой стороны разделяешь контроль над игрой на всё человечество, таким образом увеличивая шансы на её благополучное развитие (если она хоть кому-то кроме тебя интересна). Вопрос в том, чего тебе хочется больше – иметь полный контроль или повысить шансы на выживание?..

Т.е. по сути:
Если приоритет на "заработать денег, много денег, а дальше хоть трава не расти" – лучше не выкладывай код.
Если приоритет на "подарить человечеству что-то разумное, доброе, вечное" – разумеется, выкладывай код.

Лично я так и не определил свою сторону в этом вопросе. :D
Правда, меня удерживает от окончательного выбора в пользу open source то, что созданное мной может быть извращено, искалечено и использовано с каким-либо злым умыслом... Всё-таки как-то спокойнее, когда никто чисто физически не может внести изменения в то, что ты ценишь (ну в идеале вообще не публиковать, даже бинарики и скриншоты, ага). Но это уже маразм и я пытаюсь с этим как-то бороться)))


Форум игроделов » Записи участника » TimKruz [2777]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг