Сейчас у меня часто бывает перегрузка, когда код выполняется больше 40000 мс. И дело в том, что прорисовка не оптимизирована. У меня рисуются 6 граней каждого блока. Послезавтра я планирую оптимизировать прорисовку. Сам цикл прорисовки одного чанка занимает где-то 30000 мс и это при том, что где-то 29650 мс тратится на вызов функций опенгла.
>>887 Очередной майнкрафт не буду делать. Да и вообще большие игры. Просто дело в том, что я не собираюсь портировать его на виндовс, но на линукс да. Но если я ничего не заработаю с этого, то я просто потрачу время на получение немного опыта. Лучше я буду программировать то, чем сам пользоваться буду. Например, графический редактор. Очередной графический редактор.
Сегодня я слегка подправил текстуру земли и сделал шумизатор, с помощью которого немного срандомизировал стороны текстуры. Я просто взял кучку синусов, косинусов, умножений и добавлений и получилось такое.
>>888 Делай рогалик. Во-первых, рогаликов в 3д очень мало. Во-вторых, рогалик с такой-то разрушаемостью и постройкой всякой хуйни взлетит. В-третьих, рогалики очень сложные, и опыта ты там получишь совсем не чуть-чуть.
Не делай рогалик. Во-первых рогалики очень скучные и примитивные, что в 2д, что в 3д, Во-вторых никакая разрушаемость не компенсирует изначально убогую суть рогалика.
>>892 Не, в моей игре будет экшончик, а чтобы сделать качественный рогалик с балансом, мне нужно побольше опыта, чем 1 2D игра Wisontix jko.itch.io/wisontix
Даже если рисовать только первые 5 уровней блоков снизу. Всё-равно перегрузка. То есть сам цикл прорисовки каждого блока много процессорной мощности не берёт. Не понимаю. Вроде бы как нагрузка на процессор должна была уменьшиться в несколько раз, ведь функции вызываются в несколько раз меньше.
Так я и думал. glBegin делает всю эту нагрузку. У меня glBegin вызывался для каждого куба, ведь я собирался делать более одного блока, не только землю. Теперь ясно как надо оптимизировать тут.
>>901 Бляяяя. >у меня glBegin вызывался для каждого куб В этом месте заново устанавливается полное состояние графического конвеера, даже еслм оно не изменилось. Это одна из самых дорогих операций на гпу.
>>908 Как раз хотел написать про то как я буду им писать ИИ. Угадал ты. А теперь вот само, что я хотел написать: ———- 1. Иду я такой туда, в гитахб, пытаюсь изучить их си++ говнокод. 2. Говорю, а давайте я вам напишу ИИ для мобов. 3. Безвозмездно пишу и проект развивается, а я почти ничего не получаю. То есть так? ———-
А если серьёзно, то на самом деле я не против попробовать написать ИИ для мобов, но не за бесплатно. Они мне денюжек, хоть биткоинов, скинут? Хотя бы в случае удачного кода. Думаю си синтаксисом можно писать там, мне остаётся лишь изучить что там и как работает.
>>911 Да, проприетарное. Я релизну его на itch.io и, с некоторым шансом, могу заработать денег. >А можно с тобой поработать? >не хочется учиться программировать Можешь порисовать текстурки 16 на 16 для блоков (сейчас требуется блок травы, блок камня, может кирпичи какие-нибудь) и придумать мобов. Эта игра будет про то что игрок появляется на почти безжизненном куске дерьма, ему даётся блок, вырабатывающий "энергию" и блок, позволяющий из этой "энергии" создавать новые блоки. Похоже на карту skyblock в майнкрафте, но всё же немного другая. Только там будут мобы, которые будут пытаться убить игрока. И боссы. Вот будут мобы летающие в основном, но будут и ходящие, а добираться они будут с помощью других летающих мобов. Только учти, я не буду писать имена или количество создателей. Создатель — jasuto kompateitarikal oikorase. Это ну как компания по производству игр или как там они называются. Я создал её.
ПАМАГИТИ Я использую опенгл. После того как я создал текстурку с альфа каналом, всё пошло как попало. Ну ладно, не всё, часть. Во-первых, у меня не получается рисовать линии (GL_LINE_LOOP), во-вторых посмотрите на пикрилейтеды. Один и тот же массив блоков с альфа канальной текстуркой. Почему делается так, будто рисуется прозрачная текстура, за которой не видны эти текстуры? Я, вроде бы, ничего такого в самой программе не делал.
Всё, эту проблему я решил. В данном случае, где есть участки с альфаканалом 255 (или 1.0f), можно включать GL_ALPHA_TEST. Однаком, я не проверял, но это скорее всего не решит проблему с полупрозрачными текстурками, но это уже я буду решать в другой игре. Наверное придётся как-то использовать этот >>969 метод или программно менять точку, откуда начинается прорисовка объектов. Но одна проблемя всё-равно не решена. Линии ГЛ_ЛАЙН_ЛУП и другие ГЛ_ЛАЙН не отрисовывается. Хотя, это не так важно, ведь я их использую только в режиме разработчика, а не игровом пока что
Продолжу программировать я, думаю, в следующие выходные, когда в садик не надо будет идти. А пока накидайте мне гайдов, как сделать мобов. Запилить модели в блендере, сразу и с текстурками это лучше всего, иначе придётся самому делать всё это.
Поставил вместо интовых координат флоатские и всё стало нормально. И тут я понял. Теперь мне надо понять, как сделать так, чтобы использовать инт вместо флоата.
Мне осталось ещё выполнить: 1. Блокс. 2. 8. 3. 4. 4. 2. 5. 1. 6. Пустота. 7. Скорость. 8. Мейн пейджес. 9. Парочка штрихов. 10. Чанкс. 11. Выбор. 12. Оптимизация. 13 ????? 14. ПРОФИТ!!! Сейчас работаю над "8" (&"8" = 2.), что-то сложновато, но прогресс есть, но главное что, реша это, выполнятся "4", частично "2" и "1".
Иногда вылетает по причине ошибок с расчётами наверное где-то на ноль делится и есть небольшие проблемки с текстурами с большими блоками. И маленькие блоки не оптимизированы.
>>1046 Сам майнкрафт - надоел и дрисня. Сделай обезжиренный клон с воронками, трубами, электричеством,нормальными мобами (не зомби, а животные обычные), нормальным транспортом.
Мне осталось: 1. Блокс 2. Пустота. 3. Скорость. 4. Мейн Пейджс. 5. Парочка штрихов. 6. Чанкс. 7. Выбор. 8. Оптимизация. И пре альфа будет готова. 9. ????? 10. ПРОФИТ!!!
>>1051 >про то что ты делаешь в игре ничего. >излишество Может быть. В майнкрафте, где всё кроме мобов и пары блоков квадратное это было бы излишеством. У меня же можно крафтить разнообразные блоки типа стульев, столов с разными модельками. Такое не соберёшь из маленьких блоков. Но, я подумаю.
А на сегодня всё, оставлю остаток дня на развлечения. Буду свой калькулятор с блекджеком и шлюхами программировать.
>>878 > игровой опыт 50 Мало. У меня вот больше тысячи. Во все почти играл, которые существуют. Но в новые не играю - они повторяют старые, причем хуево+пека 12 года не тянет неопт кал. Задавай свои ответы.
Некоторые мысли по поводы самого мацнкрафта: 1 Координаты лучше показывать держа в руке компас. 2 рюкзак была бы очень полезной фичей, игра то про бомжесобирательство. 3 эгдерсундуку нужно добавить фильтрацию по типу предметов и расширить его вмешаемость. Проебывать все ресы о случайно нашедшего твой дом нуба - обидно, хочется игрк дропать. 4 мобы говно. Зачем нужны эти ериперы, пауки и зомби на поверхности? Они даже блоки не ломают. Можно переделатьмеханнику мобов - сделать ночью набег зомбей, ломающих хрупкие блоки игрока.
>>1069 Я думал об этом. И даже думал, что будет происходить на углах, а будет очень странно, сразу будут видны изменения пространства. Хотя, если незеркально будет идти персонаж… эта мысль находится на версии beta 0.8.4.5, вы можете помочь доделать её, просто попросив
>>1073 Я хотел сделать редкого моба — террориста. Это потемневший от зла житель какой-нибудь расы, который носит пояс шахида, пытается определить постройки игрока и взорваться около них, так что даже если игрок будет где-то в шахте, то наверху может быть уже ничего. Но редкость большая будет.
>>1079 >А сколько заработаю? Мне можно немного. Если игра взлетит и тебя начнут стримить всяких майнкрафтеры\юзи\етц, то нормально. Но придется донат голд на публикацию в стиме\андроиде собирать.
>>1080 Опасно же! Хотя тут поможет ров с лавой вокруг дома.
>>1080 >потемневший от зла житель какой-нибудь расы > от зла Сделай лучше замотанного в обоссаные коричневые тряпки бомжа с динамитом. И не бабаха, а культиста. Тип верит в ктухлху и прчоее говно, взрывает за него.
>>1080 Говно идея. Выходишь ты из шахты, а у тебя вместо дома руины. Что произошло? Когда? Почему? Что надо было делать, чтобы такого не случилось? Хуй его знает. В итоге игрок считает, что игра его наказывает за то, что он в неё играет. Лучше дать возможность мобам ломать строения, за которыми игрок прячется, если они его увидели. Какой-нибудь обсидиан непробиваем, а у всего остального есть прочность/здоровье. Это гораздо понятнее и интереснее.
>>1085 Но ведь там никакого пердолинга нету. Я когда первый раз установил линукс на ПК, это был арчлинукс. Тот, где всё начинается с обычной командной строки и дальше надо просто установить пакеты, какие хочешь и настроить их. И всё! Планирую потом и на генту перейти.
Я закончил "Пустота" и "Чанкс". Мне осталось: 1. Блокс 2. Скорость. 3. Мейн Пейджс. 4. Парочка штрихов. 5. Выбор. 6. Оптимизация. 7. ????? 8. ПРОФИТ!!!
Если я за этот и треть следующего месяца получу с этой игры хотя бы 5 долларов, то смогу тратить на гейм девинг 6 часов в день, вместо 18 часов в неделю. И ещё перестану тратить почти впустую 10 часов в день. Итого я выиграю 70 + 42 + 18 = 130 часов в неделю. И ещё я тогда попробую портировать и под винду эту игру.
>>1103 Если я дойду до вреси где-то альфа 0.4, альфа 0.5, попробую может быть запилить моддинг. Правда я ещё незнаю как это сделать. >>1104 Пустота — чтоб меньшие блоки не находились в больших и наоборот, "Чанкс" — возможность иметь мир более одного чанка.
Сделал "Скорость". Впрочем, там ничего сложного, 15 строк кода. Сейчас начну делать пункт "Оптимизация", а завтра "Мейн пейджс" и "Выбор". Затем мне надо будет только несколько штрихов, поискать и пофиксить баги и закончить "Блокс". И всё. Пре альфа готова и я начну делать новую версию, где будет режим выживания, строительство, вот это всё. Хотелось бы ещё и жидкости добавить, но это сложно, ведь я хочу сделать вполне реальную их физику, а чтобы не лагало надо подумать как это сделать. Думаю надо сделать что-то типа отдельных объектов. "Водоём".
Сегодня ходил в mc сосача, искалв анильный серв, что бы погриферить и лампово с братишками послушать пластинки. Но там одно говно из вконтакта, мат запрещен (оп, на будущее - автозамену мата сделай, а то петухи запрещать будут). В общем, ничего лампового в майнкрафте не осталось. А тест ебанулся и запилил террахуйню, в которую играет только он сам и пара больных на голову (единственный плюс террафирмы - корабли, которые строятся из блоков и физическая реалистичная вода. Но корабли не построить - надо быть аутистом, что бы хоть доски добыть на параше тоста-дегенерата).
Идя дял опа, до которой он наверняка уже додумывался сам: Физика блоков и система крепежей. Все блоки падают как песок под своей тяжестью, но не падают, если имеют хотя бы на одной стороне крепклениек другому блоку, который в свою очередь так же прикреплен к другому блоку, который прикреплен к земле.
Короче, посмотри физику блогов из эйс оф спайдерс.
>>1108 Такая физику у меня будет разве что в самых ранних версиях, а потом я попробую улучшить. Всё-таки прикрпеить блок железа к блоку песка не так уж и просто, всё просто упадёт. Да и длиннющая железная палка со временем гнётся. Но это не отменяет существование летающих островов при введении блоков с отрицательной силой тяжести
>>1110 >Но это не отменяет существование летающих островов при введении блоков с отрицательной силой тяжести > нашел странный блок > сломал его > упал вместе с островом
>>1114 Дааа, в том-то и дело. Но одного блока будет недостаточно, их будет штук 20 на одном острове и остров будет падать медленно при ломании одного блока.
>>1115 >>1116 Так думаю получше. Нормальные буквы сделаю в альфа версии. Задний фон планирую сделать случайным, то фон такого "неба", то текстурки случайных блоков, которые будут слегка покачиваться по кругу как в Хотлайн Маями.
Сегодня я немного сделал пункт "Оптимизация". Теперь некоторые блоки, которые находятся за игроком не отрисовываются. Завтра или сегодня я сделаю так, чтобы и другие блоки не отрисовывались, а потом чтобы и целые чанки не отрисовывались.
Мне осталось сделать: 1. Блокс. 2. Настройки. 3. Парочка штрихов. 4. Выбор. 5. Блоки на поверхность. 6. Исправить тот странный баг около центрального чанка. 7. ????? 8. ПРОФИТ!!!
Блокс это самое объёмное, но не такое уж и сложное.
>>1126 Да, это я тоже собираюсь сделать. Я пока что и не представляю как сделать многопользовательскую игру, надо будет поискать литературы и гайдов на эту тему.
Но чтобы я смог после конца этого месяца продолжать развивать эту игру, мне надо за октябрь получить хотя бы 1 доллар с неё. Лучше 5.
Мне осталось сделать: 1. Блокс. 2. Остатки главного меню. 3. Парочка штрихов. 4. Выбор. 5. Блоки на поверхность. 6. Исправить тот странный баг около центрального чанка. 7. Исправить ещё один баг. 8. ????? 9. ПРОФИТ!!!
>>1132 Я её делаю не ради прибыли, а ради свободы. Впрочем, потом, через несколько месяцев небольшая прибыль всё-равно понадобится, хотя бы 10 долларов в месяц. Я уже считал, что заработав хотя бы ван доляриус я смогу получить +6 часов свободы во время разработки, + 10 часов свободы во время отдыха в будний день, + 6 часов свободы в выходной день, итого (10 + 6)*5 + 6*2 = + 92 часа жизни в неделю. 92/168 (168 = часов в неделю) прибл. = 0.546719047, добавляем единичку, я стану жить в 1.546719047 раз дольше!
Инвентарное меню готово. Теперь блоки выбираются цифрами 1…0. А ставятся туда они из инвентаря. Мне осталось сделать: 1. Один текстовый файл, 2. Ещё один текстовый файл. 3. Исправить баг. 4. Убрать баг. 5. Доделать меню. 6. Блоки на поверхность. 7. Ещё файлик. 8. Тени. 9. Небольшая метка. 10. Блокс (самое объёмное) 11. ????? 12. ПРОФИТ!!!
Если я продолжу делать этот проект, то планирую добавить довольно реалистичную физику жидкостей, мебель сделанную из деталей на специальном рабочем месте разные ножки, подушки, инкрустация драгоценными камнями логические элементы, возможно печатные платы из логических элементов, разнообразные устройства, а также электричество, создание разных перерабатывающих машин, хорошую такую металлургию, возможность создавать свои летательные и ездящие средства из блоков (по крайней мере корабли и дирижабли), простую генетику, а потом и НПС разных рас с разными языками и кучу очень редких маленьких событий. И чтобы это всё начать делать, мне нужен хотя бы доллар за этот месяц, а лучше если хоть и пол доллара, но в первые 3 дня после выпуска игры. Во втором случае я постараюсь приступить к новой версии, уже с режимом выживания и генерацией мира. На первых версиях игра будет бесплатная с возможностью пожертвовать денюжек. Потом я подумаю.
>>1141 >где человече? А нет человече. Только одна единая душонка посреди бесконечного шучу, нет конечно же тёмного аномального мира, которой остаётся только делать скульптурки из пары десятков блоков.
>>1142 Лучше сначала реализовать все нужное игрокам, а потом думать о составной мебели, имхо (ну т.е. сделать перерабатывающие верстаки, крафт, ресурсы, генерацию мира)
>>1143 Ну естественно я так и собираюсь сделать. В версии alpha 0.0.1 будет генерация одного биома без воды, генерация камня, руд, пещер, простой крафтинг будет и печи. И так сделаю несколько версий alpha, добавляю разные крафтиги, а потом сделаю глобальное обновление alpha 0.1.0 с жидкостями и, возможно, мобами. >>1144 Можно, но если такое делать, то только для андроида, пусть линуксоиды, виндовсоны и макосиксеры будут свободно использовать скины, какие захотят. Хай это будет санкциями андроиду.
>>1146 Андроидры покупают скин и входят на сервер. Виндовсоны просто ставят скин и входят на сервер. >>1147 Как в майнкрафте, только побольше деталей.
Ах да, забыл сказать, что в первых версиях добавлю поддержку "ресурсного моддинга", то есть можно будет создать файл ресурсов, закинуть его в папку с модами и появится блок/моб/событие/биом/крафттейбл уже в игре.
>>1148 >Ах да, забыл сказать, что в первых версиях добавлю поддержку "ресурсного моддинга", то есть можно будет создать файл ресурсов, закинуть его в папку с модами и появится блок/моб/событие/биом/крафттейбл уже в игре. Т.е. я копирую файл блока грязи, переименовываю, открываю в нотепад++, переписываю некоторые показатели его свойств, вставляю в игру и получаю светящийся блок грязи? Напоминает редактор объектов варкрафт 3
>>1148 >Ах да, забыл сказать, что в первых версиях добавлю поддержку "ресурсного моддинга", то есть можно будет создать файл ресурсов, закинуть его в папку с модами и появится блок/моб/событие/биом/крафттейбл уже в игре. Т.е. я копирую файл блока грязи, переименовываю, открываю в нотепад++, переписываю некоторые показатели его свойств, вставляю в игру и получаю светящийся блок грязи? Напоминает редактор объектов варкрафт 3
>>1150 >>1149 Да. Можно, кстати, будет записывать свойства блока/моба/etc в просто текстовом файле и бросить в папку с модами, а можно его и скомпилировать специальным комплятором для модов моей игры.
Всё. Я запостил. Тут https://jko.itch.io/cocng Кто может и хочет, пожалуйста, скиньтесь по 10-20 рублей и задонатьте мне. Если я получу 0.5 доллара до конца выходных то скорее всего продолжу делать этот проект прямо на следующей неделе. В понедельник. В новой версии будет и SDL, а значит кроссплатформенный код, и VBO, оптимизация будет, и генерация мира, и режим выживания.
>>1171 Ого спассибо, анон! Так значит деньги действительно возможно зарабатывать. Большое спасибо тебе. Теперь мне осталось вывести деньги на банковский счёт, чтобы подтвердить их реальность.
Диииииидько! Страна моего проживания не позволяет получать платежи на пейпал. Но это не отменяет, того, что я попробую получить ту самую свободу. Но мне надо найти способ как же получить деньги.
Пока что у меня есть несколько вариантов: 1. Найти другую площадку для выставления кудахтерных игр. 2. Найти посредника. 3. Получать деньги в виде криптовалют.
Ладно, я сделал SDL и fopen, то есть кроссплатформенность. Дайте мне ссылок на книжки и прочие материалы по проектированию и созданию процессоров и я закончу пункт "VBO"
Ладно, с VBO разобрался, но не сделал. Осталось только всё оптимизировать и прикрутить его. Пусть отрисовываются целые чанки, процессор меньше занят будет.
>>1189 в си нема объектов и вот этого всего. А стрелочка это доступ к части структуры если оно по указателю или как-то так. Я не знаю как объяснить, у меня это просто уже рефлекторно получается.
Я уже сделал так, чтоб блоки отрисовывались не по одному, а сразу чанками, передавая массивы данных в видеокарту из обычной ОЗУ. Теперь осталось прикрутить VBO и я смогу переходить на следующий шаг. Генерация. Особо внимательные следящие-за-интернетом могли видеть мою активность в других местах. Кстати, теперь не лагает.
Баг исправлен. Он заключался в том, что переменная (karta + chanknum)->kpp инкрементировалась, а она должна была быть равной еденице. Я не ожидал, что изначально она не будет равна нулю в некоторых случаях.
Ну пока что такое. Надо будет по-нормальному разобраться с шумами. А генерация мира будет не по сиду, а по псевдослучайным числам. >>1199 >>1198 спасибо.
Ну в общем я много пород добавлять не буду, добавлю вот эти >>1198 ну и ещё парочку. Микроклин там, ортоклаз, оливин. Кимберлит, конечно же и ещё немного. Руды будут как большими месторождениями, но редкими, так и маленькими, не частыми.
Сегодня ещё попрограммирую. Генерация будет так — генерируются сначала метаданные некоторой части мира, чанков 500 в радиусе. Случайно генерируется. Если игрок приближается к зоне без метадаты, то они тоже генерируются, но уже в небольшой зависимости от метаданных соседних зон. А чанки генерируются случайно, но в зависимости от метаданных и в зависимости чанков, которые соседствуют с несгенерированными чанками, чтобы не было обрывов ландшафта. Или всё же шумы освоить? Когда-нибудь я освою для более натуральных текстурок.
Мне осталось сделать: 1. Генерация. 2. Столкновения. 3. Ломание. 4. Трещины. 5. Ёмкость. 6. resources и alpha 0.0.1 будет готова, но она не будет нормально играбельной.
Я делаю так, чтобы можно было спокпокпокойно перемещаться по миру, не мозоля глаза странными рывками всего и вся. Потом я исправлю баги в генерации, затем я займусь файлом ресурсов и продолэу делать генерацию.
Пиздос! Что этот gcc думает себе? Но баг исправил. Ну вот смотрите. У меня есть выражение (((karta + chanknomer)->draw + arrnom)->vertexes + nomer*4 + 0)->x = chx*DLINACHANKA - igrok.ox*16*256 + x*razmer. То, что слева от равно имеет тип float. chx передаётся в функцию в виде 64-битного числа со знаком. DLINACHANKA это просто константа. igrok.ox имеет тип 64-битное число без знака. x*razmer не так уж и важен. И вот дело в том, что при вычислении chx*DLINACHANKA - igrok.ox*16*256 у меня получается дофига большое число! Как если бы chx был без знака. И какого фига?! Ну дідько, ну що це таке? Почему так? По идее же, вроде бы, igrok.ox*16*256 минусуется от числа со знаком, значит должно получиться число тоже со знаком. В общем пришлось igrok.ox*16*256 преобразовывать в число со знаком.
Мне осталось исправить баг с дальностью рендера и баг с генерацией и я перейду делать resources, потом продолжу генерацию. Просто генерация немного зависит от ресоурцес.
>>1215 и нахуй мне html код в си проекте? Да не, ещё разбираться в чужом коде. Скодировать я и сам могу, мне бы главное разработать саму механику. Незнаю как там в майнтесте, но вроде бы там все или почти все блоки имеют один размер, а физика воды такая же как и в майне. Думаю, ещё там тоже обычные чанки с одинаковым размером как и в майне, а я уже скоро откажусь от чанков в таком виде, теперь чанки будут разного размера и будут распологаться по разным координатам. У меня и так внутри одного чанка есть много других специальных чанков, а такое нафиг ненужно. Да и к тому же после этого я смогу делать передвижные чанки и мне будет проще потом спрограммировать дирижабли всякие, летающие острова и корабли.
Мне осталось исправить баг с дальностью рендера и баг с генерацией и я перейду делать resources, потом продолжу генерацию. Просто генерация немного зависит от ресоурцес.
>>1215 и нахуй мне html код в си проекте? Да не, ещё разбираться в чужом коде. Скодировать я и сам могу, мне бы главное разработать саму механику. Незнаю как там в майнтесте, но вроде бы там все или почти все блоки имеют один размер, а физика воды такая же как и в майне. Думаю, ещё там тоже обычные чанки с одинаковым размером как и в майне, а я уже скоро откажусь от чанков в таком виде, теперь чанки будут разного размера и будут распологаться по разным координатам. У меня и так внутри одного чанка есть много других специальных чанков, а такое нафиг ненужно. Да и к тому же после этого я смогу делать передвижные чанки и мне будет проще потом спрограммировать дирижабли всякие, летающие острова и корабли.
Эту простую генерацию я закончил. Теперь мне осталось сделать: 1. Дальняя генерация. 2. Столкновения. 3. Ломание. 4. Трещины. 5. Ёмкость. 6. resources. и alpha 0.0.1 будет готова. Мой fuel заканчивается. Вы можете задонатить мне. Например биткоинами. Адрес находится в pastebin.com/FvZScJsv Если не верите, что это JKO, то откройте jko.itch.io/cocng, там будет ссылка на мой патреон patreon.com/jko, а там есть ссылка на эту же пасту.
Сколько же данных о себе я оставил по всему интернету! Даже дошкольник, если использует немного своих сил, может сдеанонить меня, а потом шантажировать.
Если в видеоигре одно квадратненькое животное становится на другое квадратненькое в позе собаки, как при спаривании, без демонстрации половых органов это для какой возрастной группы?
>>1229 Нет, я просто имею свой собственный личный-преличный, ну почти, язык, а в нём пока что только где-то 1000 слов ну или основ, от которых можно сварганить раз в 10 больше слов. Мой словарный запас немного уменьшается, мне надо как-то исправлять это.
>>1237 Очень зашкварно. Ты потом охуеешь такой код отлаживать.
То что внутри ифа выдели в функцию и вызови ее два раза там где надо. Если ей нужно передавать заковыристое состояние, то оформи его как структуру(дай ей нормальное имя!). Не экономь на буквах и строчках, ценой лишней нагрузки на память.
Баг исправлен. Он спрятался в норке. Я хотел полностью раскопать её, но это будет долго, так что я взял палочку и пытался дотянуться до него и убить. Но я побоялся, что уроню палку и она там остантся и будет потом мешать кому-то. Но затем я нашёл вторую дырку в норку, она была гораздо короче и шире, я просто рукой раздавил баг.
Впрочем пара строк кода и столкновения для всего готовы. Правда эти столкновения больше похожи на как если бы всё было покрыто наждачной поверхностью. Но я это исправлю. Мне осталость: 1. Дальнаяя генерация. 2. Гладкие столкновения. 3. Ломание. 4. Трещины. 5. resources. 6. Сохранения и загрузка мира.
Гладкие столкновения я сделал, но они работают не корректно. Да и вообще моя система столкновений ущербна, надо будет переписывать её. Мне осталось сделать: 1. Дальняя генерация. 2. Сверхдальняя генерация. 3. Движения игрока. 4. Ломание. 5. Трещины. 6. resources. 7. Сохранение и загрузка мира.
А хотя зачем сверхдальняя генерация? Всё равно, в этой alpha 0.0.1 нельзя будет тольком поиграть, плюс учитывая неоптимизацию. Сделаю я её в следующей версии. Мне осталось: 1. Движения игрока. 2. Ломание. 3. Трещины. 4. resources. 5. Сохранение и загрузка мира. Пятое я лучше не буду делать без ломания. А ломание я лучше не буду делать без ресурсы. Трещины вообще зависит от ломание.
Сегодня я тоже ничего не делалл тут и не буду делать. Мне всё-таки надо аниме посмтореть. В игры поиграть. Язык поучить. Поделать другой программированиеский проект.
>>1278 Зашёл на офф сайт киви, без жс не работает, вышел с сайта. Включил жс, зашёл, ничего не работает, крутилка какая-то крутится и всё. Да и думаю я всё-равно не смогу ничего там без номера телефона.
Пытался под винду скомпилить с помощью x86_64-w64-mingw32-gcc-7.2.0, но выдаёт ошибку: [code]cocng.c:14:10: критическая ошибка: stdio.h: Нет такого файла или каталога #include <stdio.h> ^~~~~ компиляция прервана. [/code]
Вы можете мне задонатить выполнением заданий. Дайте мне литературы по сборке компьютеров из компьютерных и электронных компонентов. Для разных процессоров разных архитектур, про осоебнности подключения всяких там памятей, видеокарт, сетевых карт.
А если я не портирую даже на виндовс, то дохода почти не будет. Тогда может быть мне потом сделать этой проект с открытым исходным кодом? Всё-равно заработок с такой игры это какой-то бред, лучше её делать чисто для фана. Ну пожертвования оставлю, конечно же. А вот чтобы заработать деньги, нужно создавать сотни говен, которым кормить пипла. Пипл не ест яблоко хоть оно и маленькое недозревшее, особенно если оно на гранитной тарелке.
>>1308 Нет, я и так уже слишком много инфы о себе в интернетах оставил. Если кто-нибудь постарается, то узнает город моего места жительства. А стоит мне номером телефона мелькнуть и всё! Я уже буду не анонимом, все мои посты будут прозрачны, а каждый будет следить за мной как за своим любимым постером в инстаграмматоне/лицокниге/твиттерере.
Путём неосознанного исследования я понял, что говно делать оче сложно. Поэтому я гораздо больше сил вложу в этот проект и очень постораюсь портировать 0.0.1 альфа на виндовс. А если вы мне подскажете, как портировать на андроид, использовав си код, то и туда портирую. Ну и на линукс ARM когда-нибудь портирую, наверное вскоре после альфы 0.0.1 Вы мне можете помочь путём складывания денег в patreon.com/jko для этого вам придётся регистрироваться. Я незнаю как установить предложение патронам давать по уе в месяц, но вы можете в своих настройках ограничить месячную сумму отдавания денег.
Эй, а вот юниксы же совместимы во многих частях, и в эльфушнике игры прописано, что моя игра для SYSTEM V 5 или как-то так, а не для линукса, значит на других юниксах он тоже будет работать? Ничего необычного для юниксов там вроде бы нет. И библиотеки кроссплатформенные. Основные gcc + SDL + OpenGL.
Я пытался скомпилить под винду, и мингв нормально установил, и слинковал с опенгловскими и сдлскими библиотеками, но всё-равно что-то не ему не нравится. Пишет что-то про WinMain. Наверное надо main заменить на WinMain, но мне кажется, что тогда сдлский хеадер будет ругаться на неправильный меин().
Чтобы выпустить alpha 0.1.0, мне надо сделать: 1. Генерация мира. 2. Столкновения. 3. Крафтинг. 4. Инструменты. 5. Движения. 6. Руды. 7. Твёрдость. 8. Здоровье. 9. Стройка. 10. Масса. 11. Вещи. 12. Блоки на поверхность.
Вы можете задонатить мне на киви, там привязка к почте, вы же можете задонатить, зная почту? Почта [email protected], в подтверждение, можете зайти на патреон, там есть эта почта. Мне надо сейчас рублей 15, потом лучше донатьте не на киви.
Я хотел бросить это дело и программировать игры под андроид, а в последствии создать бота, который из шаблонов и модулей будет собирать такие игры и зарабатывать деньги, но джава слишком сложная для меня. Или эмулятор не работает. Задонатьте мне, пожалуйста.
>>1330 Если ты об эмуляторе телефона, который встроен в андроид студию - если у тебя не топовый проц за 100к рублей и прочие ништяки, то лучше даже не пытаться использовать встроенный эмулятор, ибо запуститься он только к моменту твоего лишения девственностит.е. чуть позже появления больцмановского мозга. Берешь любой андроид телефон ~за 5-6к, подключаешь его в режиме разработчика и проверяешь приложения на нем.
Эх, ты, ОП, хотя бы умеешь программировать. Вон, один анон тебе пол доллара кинул кинул же?. А мне что? Как жить без денях? Воровать? Воровать у слабых это как-то не для меня, жалко людей. Воровать у компаний? Охранники поймают.
Так, ладно. Хватит играться с игрушками. Пора серьёзно думать. Я ухожу из разработки этой игры. и прошлый не вернётся, он удалён Если не передумаю, то, может быть, скину код, так проосто так. Не донатьте мне. Нет, если хотите, то донатьте, но тогда на монеро или биткоин, на патреон мне всё-равно надо 30$ сначала.
Сук, джва часа тахался с простым поворотом, даже с готовыми формулами из википедии. Вот что бывает, если не учить математику. Сделать готовую функцию и использовать её во всех проектах? Та потом, потом.
Стало ясно, что в таком проекте надо выделить разные уровни абстракции. Пусть один уровень занимается чанками, блоками в них, сохранением мира, загрузкой, а второй уровень даст возможность взаимодействовать с блоками, имея только их глобальные координаты.
Вообще я могу использовать ODE, но боюсь, что потом пожалею. Вдруг нагрузка на процессор станет слишком большой? Или мне чего-то не будет хватать. Или не получится под какую-то платформу использовать. Хотя я для начала собирался сделать под винду x86-64, линукс хотя может он подойдёт под многие юниксы, один же и тот же ельфушник, а насколько я помню в каком-то байте gcc там ставит значение для System V, а не для Linux x86-64, линукс AArch64 и, возможно, linux AArch32. Использовать тут я собираюсь в основном кубы. Что вы думаете об этом? Лучше начну делать освещение, а со столкновениями потом определюсь.
>>1489 Погугли физ. движки и выбери, куча их. Можно вообще какую-то библиотеку коллизий найти, без физона. Если прям совсем пиздец, то можно сделать абстрактный интерфейс физона, и делать разные имплементации для физ. движков. Но обычно сначала как выбирают движок, так на нем и пилят. Не ебу, включаются ли оптимизации в сам физ. движок, но помимо боксов есть смысл использовать сферы для приблизительного определения пересечения, это довольно дохуя может сохранить процессорного времени. Хотя у тебя можно сразу применить пространственную оптимизацию - по координатам вычисляешь индексы кубов, находящиеся вокруг проверяемого объекта, и собственно чекаешь коллизии только для них.
>>1490 >использовать сферы для приблизительного определения пересечения Не совсем понял, что ты имеешь ввиду. То есть искать радиус сферы описанной вокруг куба, радиус сферы вокруг другого куба, расстояние между ними и чекать, чтобы расстояние было больше суммы радиусов и тогда не надо чекать коллизии? Я так хотел сделать сначала, но потом понял что не надо тратить зря процессорное время на умножение и корень, а просто сравнивать координаты блоков и игрока. >по координатам вычисляешь индексы кубов Да, я так и делал для своих экспериментов с коллизиями, брал блоки только вокруг игрока.
Я реализовал механику света приблизительно как в майнкрафте, но это не моя цель. Я хочу, чтобы равноудалённый от источника свет был равноинтенсивным, по кругу. А ещё, чтобы свет не проходил через стены, хотя некоторая рассеиваемость нужна. Незнаю, может на первых порах и так оставлю. Попробую сделать свет сглаженным.
Зачем я реализовывал алгоритм распространения света как в майнкрафте, если радиально получилось в нескольколько раз легче а ещё работает гораздо быстрее? Кстати, вот есть функция pow() из библиотеки, хедер которого math.h, я вроде бы посмотрел слегка его исходный код, но ничего не понял. А вопрос такой, если в качестве степени пересылать целое число, то она будет работать быстрее?
Итак, мне нужно сделать: 1. Сглаженный свет для товарного вида. 2. Столкновения. 3. Мобов. Включает инвентарь, потому что игрок — моб с камерой, к конечностям которого подключены клавиши, а все мобы могут иметь некоторый инвентарь. 4. Предметы. Не только же блоки. 5. Инструменты. 6. Свойства блоков, такие как твёрдость, рыхлость, плотность и всё такое. 7. Блоки-некубы. 8. Генерация пары биомов. 9. Генерация структур.
Ну и оптимизировать всё так, чтобы даже мой комп тянул.
Игрок будет начинать в городе, так как породы тверды как породы, а норм инструменты из камня и палок не сделать.
Я отпараллелил функцию процессирования мира от функции прорисовки мира. Теперь при повороте головы выдаёт 60 fps, а при движении игрока меньше 20. И теперь довольно часто случаются сегфаулты, а иногда утечка памяти. А рефреш света для всех чанков занимает где-то минуту.
Я сделал отрисовку предметов в виде дропа. Кстати, потоки это очень классная вещь. Хочу побольше их напихать в код, только сначала с нынешними сегфаултами и утечками памяти, возникающих при неосторожных действиях разберусь.
Похоже, я только что нашёл баг, из-за которого случались то сегфаулты. Это был долбанный getkeyboardstate! Мой макрос для получения состояния всех клавиш, используя функции SDL2. Дело в том что там функция получения данных нажатия возвращает указатель на массив с этими данными, вместо того, чтобы записать данные в какой-нибудь мой массив. Один поток пытался обратиться к массиву с данными, а этот массив не был замаллокирован и он обращался в где-то рядом с NULL. А второй поток не успел сделать первый getkeyboardstate. Только я не понял, почему у меня случались утечки памяти. Но теперь они случаются, потому что я переделал механизм отрисовки сцены.
Пытаюсь сделать новую генерацию мира, должны быть биомы, более разные высоты, камень, железная руда и простые пещеры. А так же начальный город. Не получается пока что. Пытаюсь совладать с высотами, а тут как раз появился ещё один баг. Что-то с потоками.
Я передвинул точку спавна игрока и вообще генерации мира немного повыше. Километров на 11258999e12. Координаты не смеют быть отрицательными. Вместо этого центр мира просто размещается ооочень далеко от их начала.
А хотя нет, надо было просто решить задачу на бумажке. >>1511 Нет. Ты мне заплатишь мне за это? А другие? А какая механика в майнтесте? А могу ли я написать мод на си, вместо c++? А можно ли там вообще написать мод? И вообще, небось придётся работать с чужим говнокодом.
Кажется у меня начинается это. Вы можете задонатить мне Monero на адрес 4AZB4Ny5AJ4NR74v2n4M2qZLHppdHDcqDG7gDEmzqcTWehcRHuEN6DB7UoWsQhesSZ3fkVQVhjvbSDV6hJTupHVPQBJAWRX или пожертвовать вычислительные мощности вашего процессора и помайнить на xmrig. Вот он на гитхабе: https://github.com/xmrig/xmrig А тут релизы под винду: https://github.com/xmrig/xmrig/releases
Чтобы пожертвовать мне ваши вычислительные мощности: У вас Винда: Открываете cmd в папке, куда скачали xmrig.exe, вписываете команду: xmrig.exe –url=gulf.moneroocean.stream:10001 –user=4AZB4Ny5AJ4NR74v2n4M2qZLHppdHDcqDG7gDEmzqcTWehcRHuEN6DB7UoWsQhesSZ3fkVQVhjvbSDV6hJTupHVPQBJAWRX –pass=game -t n, где вместо n выставляете кол-во потоков, которое хотите отдать. У вас Линукс: Открываете эмулятор терминала в директории, где xmrig и вписываете команду: ./xmrig –url=gulf.moneroocean.stream:10001 –user=4AZB4Ny5AJ4NR74v2n4M2qZLHppdHDcqDG7gDEmzqcTWehcRHuEN6DB7UoWsQhesSZ3fkVQVhjvbSDV6hJTupHVPQBJAWRX –pass=game -t n, где вместо n выставляете кол-во потоков, которое хотите отдать.
Не бойтесь, ваш проц не сгорит если и так работает будучи 100% занятым
Это может мне показать, что я действительно могу получить отсюда прибыль. Вот скриншот из игры в качестве удостоверения моей личности.
>>900 Сейчас я все свои проекты компилю с опцией -O3 и пока что никаких казусов не было.
Вот, в общем список того, что мне нужно сделать, чтобы выпустить версию alpha 1.0.0: 1. Генерация деревьев. 2. Генерация пещер. 3. Генерация города. 4. День/ночь. 5. Механика Storage. 6. Крафтинг. 7. Главное меню. 8. Дроп. 9. Столкновения. 10. Обработка дропа. 11. Инвентарь. 12. VBO. 13. Сохранение и загрузка мира. 14. Взаимодействие с блоками. 15. Инструменты. 16. Обновление света. 17. Парочка штрихов. 18. Немного оптимизации. Может быть числа 22 выпущу, но скорее уже в конце Апреля.
Сегодня я понял, что делал лютую хуйню, но чтобы всё не переделывать, пришлось добавить парочку костылей. Хотя, может так и надо. Олсо, игра в виде ELFа + файла ресурсов весит под 110 КБ
Ух, щас надо бы таки выполнить пункт "Механика Storage". Ручки поднять, потянуться к Солнцу, ну же, у Солнцу, всё выше и выше! Цепи разорвать. Ух стальные цепи как же они крепки! Растяжение check, стадия самоупрочнения check, так так, щас будет разрыв иии… check. Ручки к клавиатуре, код открыть, игру запустить. Опа! Баг. Надо его исправить, а потом приступить к выполнению этого пункта, ибо нельзя это сделать из-за бага >>1538 Да, мне надо будет освоить нормальные оконные видеозаписыватели.
Хм, баг оказался очень лёгким. Я его заметил уже давно и понимал, что надо было просто мьютексы лочить, но раньше он проявлял себя в 10% случаев где-то, а теперь было почти в 100%. Ну ладно, главное что теперь всё работает.
Я освоил нормальный наверное видеорекордер. На самом деле очень многое можно сделать с помощью дефолтных и почти дефолтных линукс-программ. Беру xwininfo, получаю id окна. Беру recordmydesktop, ввожу айди и можно записывать видео с окна, а не со всего десктопа и потом кропить ффмпегом.
Где-то таким должен быть мир. Только игроку не придётся пешком преодолевать такие расстояния. Ему надо всего лишь найти портал, который ведёт в неведомые дали.
Я попробовал скомпилировать под другие платформы. Под Виндовс не получилось. Компилятор требует какую-то библиотеку, а когда я становился линуксоидом, я учился управлять пакетами, а не просто кидать нужные бинарники в нужные каталоги. Под Linux ARM32 получилось, на малинке. Но не запустилось, пишет что GLEW не работает.
Я опущу пару пунктов на будущее. Мне осталось: 1. Генерация деревьев. 2. Генерация города. 3. Главное меню. 4. Обработка дропа. 5. Столкновения. 6. Сохранение и загрузка мира. 7. Шлифовать до даты выхода. Кстати, я посмотрел на ODE, мутный он какой-то, неизвестный. А что если под ARM не смогу скомпилить? Думаю, лучше сам попробую запилить столкновения эти.
Выход первой версии будет первого мая. Я ещё разок попробовал скомпилить под другие платформы. Я понял, что GLEW на самом деле мне не нужен, я его когда-то давно вставил, потому что в гайде каком-то так было написано. С тех пор я его использовал в нескольких своих программах. Теперь я смог запустить на распберри пи, но игра грохнулась на загрузке из файла ресурсов. В файл ресурсов интегрированы PNG-файлы, когда они читаются, libpng пишет, что это не пнг файл и ничего не загружается. Не понимаю в чём проблема. Код одинаковый, компилирую прямиком на малинке. Хотя, там, вроде бы, компилятор для 32-битного ARMv7 кода, хоть малинка и ARMv8, 64-битная, но я не думаю, что это должно мешать. А винда… Я установил компилятор, но там то стандарт C99 не используется, а другой версии, то хедеры другие, в общем у меня этот компилятор версии 4.XXX, когда обычный 7.XXX. Сложно скомпилить.
В игре должны быть железные пути, вагонетки, мобы, НПС Нот плеейбл сярактер, с которыми можно говорить, электричество, пар, вода, магма, лава, нефть, ещё кучи жидкостей, физика жидкостей, метан, матан, смартфоны, приложения под смартфоны, МК и просто компьютеры, логические интегральные схемы, провода, двигатели, дирижабли, дети знати, играющие в тупые смартфонные игры, которые им подарили рыцари, найдя в своих приключениях, магия, навыки, раса кошкодевочек, огнестрельное оружие, боссы, огурчики, помидорки, экономика. Как это реализовать я знаю, но незнаю зачем.
Начал я делать ету игру, потому что увидел сколько Тоади со своим ДФом зарабатывает с пожертвований. 5000 долларов в месяц! Да за такие деньги можно почти богом стать, в наш-то 21-й век. Он там просто усложнял всё, реализировал, а люди платили ему за это. Вот я тоже хотел так же усложнять. Конечно сеттинг тут другой должен быть — моя игра, ДФ и майнкрафт сильно различаются. Ну а сколько я буду зарабатывать, если не смогу скомпилировать это всё под виндовс? Вот сколько, например, в ДФ играет линускоидов? А сколько в майнкрафт линуксоидов? Почему под винду никто не написал эмулятор/прослойку для SYSTEM V ELFишников? А ведь у меня даже используются только кроссплатформенные библиотеки. SDL2, OpenGL, стандартная библиотека си, стандартная math библиотека, libpng ну и lpthread, который есть под винду в виде win-lpthread,
>>1570 Усложнение обеспечивает лишь долгоигручесть проекта (как по разработке, так и по реиграбельности). Но без идеи никому не нужно. KSP, Factorio, Starbound - у всех что-то свое. При этом не стоит забывать про ошибку выжившего - безуспешные проекты никому не известны и не нужны. Из того, за чем когда-то следил, могу назвать Running With Rifles, которая уже года 3-4 в разработке, а судя по Стиму, она раз в 5 менее популярна вышеназванных проектов.
А компиляция под Винду по идеи не должна быть настолько уж сложной. Конечно зависимостей и настроек много надо поставить, но это решаемая задача, надо только денёк покурить тему.
Пролистал терд. Такая-то по-детски наивная глупость, опчек просто прелесть. Ну и научился кодить на ГЛе хоть как-то, тоже плюс. Это никому сейчас не нужно, правда, ну да ладно.
>>2134 Да, у него там ад из указателей. Возможно, если бы он использовал другой язык, например █████ (название временно скрыто). В нём есть статические массивы, динамические массивы любых размерностей и даже неизвестной размерности, ассоциативные массивы, длинные и бесконечные целые и рациональные числа. Те же чанки можно хранить в ассоциативном массиве с ключами в виде координат (надеюсь я правильно понял его код). Было бы гораздо удобнее. И не нужно велосипедть с FPS и обработке мира в секунду. У █████ будет библиотека time, а там структура pulse, позволяющая вызывать функцию раз в некоторое время независимо от времени исполнения функции, если не слишком большое. Так же в ближайшем времени я собираюсь быстренько добавить биндинги для опенгла и SDL2. Я хотел ещё попробовать переписать ODE на █████ ради параллельности, которая нативна для █████, с сохранением части API, так что пользователю не пришлось бы учить новое, если он уже знает API ODE. Ещё бы биндинг или даже враппер для assimp и можно будет собрать целый игровой движок на █████. А учитывая то, что █████ные программы почти не линкуются динамически с иными библиотеками, зависимостей могло бы быть меньше. Но, к сожалению, полноценного компилятора для такого прекрасного ЯП пока нет, что уж говорить про прошлое.