24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Со сложностью выше чем гонять на танчике по 2D полю без препятствий. В настоящем 3Д и полноценным языком программирования а не скриптотой. С необходимостью управлять оборотами мотора а не "двигайся в точку". С необъходимостью понимать 3D векторы и операции с ними. Полные новички не смогут осилить, а кто сможет - после своей работы программистом скорее пойдёт пердолить драконов в Скурим? Целевая аудитория в 1 человек в лице меня?
Разрабатывал на Unity3D, роботы могли жечь друг друга лазерами, могли осознавать 3Д окружение посредством лазера, определять расстояние и тип объекта. Но на мысли из первого поста я застопорился, что это никому не нужно будет.
Мультиплеер реализован. У меня была реализована удобная схема организации боёв, при которой с нулевыми затратами на сервера можно было получать перед битвой самый последний код соперников, без мороки. В колоботе этого никогда не будет, эта игра умерла, и только черви терзают её труп.
Хорошо ли это для обучения или для удовольствия, разрабатывать программы для виртуальных роботов, почти на самом низком уровне, а не "НайтиПротивника().Убить();"
Слушай, оп. Короче. Игра, в которой игрок отыгрывает роль Скайнет. В первой миссии он анализирует уязвимости роботехнических мануфактур, что бы захватить над ними контроль и наклепать терминаторов. Во втором уровне игрок должен на ассемблере смастерить ИИ для этих самых терминаторов, что бы стереть человечков с лица земли.
>>309527 Сам-то пробовал программиировать на ассемблере? Это АД. В моей первой из трёх реализаций игры был самодельный ассемблер стековый, мозг просто вскипал на определённом алгоритме (я через асм анимировал лапы робо-паука). Асм это определённо АД. Но можно не анализировать уязвимости а просто сделать возможность гриндинга роботами-рабочими ресурсов планеты и усиление характеристик команды за счёт "разработок", но в 10 минутном матче такое выглядит неестественно. Короче MOBA для программистов, краткие стычки готовых армий. Никаких вам воспроизводств новых экземляров в течение боя, ведь выглядит неестественно. Была реализована схемы - 2/3 команды в каждой одного типа роботы. Во второй реализации были даже реактивные, летали исбрасывали бомбы, но я психанул и удалил все-те видео на ютубе.
>>309530 Эти робо-лапы и реактивщина немного тормозили и дёргались, ведь Unity3D это вам не полный симулятор, а упрощенный. Так что для упрощения в 3й реализации у меня были свиборгшарики, которые могут летать и стрелять.
>>309522 мисклик. Чисто если логически рассуждать, если нужен функционал "настоящего", а не скриптового яп, то зачем над ним нужна будет обертка в виде игры?
Если кому-то все это будет интересно, мотором крутить или 3д окружение анализировать, он скорее уж реального робота начнет делать. Вот для таких проводятся конкурсы всякие, беспилотники там, машины, роботы всякие задания выполняют.
>>309532 >настоящего Имел в виду без общего-назначения библиотек, но производительный и занимающий минимум оперативки, для возможности экстремальных вычислений если кто сможет такие алгоритмы придумать. Во второй реализаци у меня был язык-обёртка над C++ с вырезанием опасных для системы возможностей (недавно понял что там есть неочевидная уязвимость). В последней реализации я делаю ещё более урезанный, урезанный C, без указателей и динамич.выделения памяти, но с динамическими массивами и ссылками на существующие данные. Единственной ошибкой в таком языке может быть только преполнение стека, выход за границы массива, FPE, и ссылка на уничтоженный объект на стеке. жуткий Мутант. С ламбдами из C++11, а значит и вложенными функциями.
Была во второй реализации попытка писать роботов на Java, работало, но она ест много памяти. На C#, работало, но на линуксах Mono-сомнительного качества вещь. В последней реализации я уже кроссплатформенно всё оформи - windows/linux. Macos не смог найти и установить в VMWare player.
Видео в котором виден внешний вид всего этого, также виде с++ в который транслировался код с моего языка, а также пример почти-минимального робота. https://youtu.be/hc7X8vCvP7g
В этот раз редактирование исходного кода выполняется в режиме ncurses консолек, из плюсов - крайняя простота реализации и нетребовательность к ресурсам, подсветка синтаксическая всего, также работает под линуксом без иксов. Екзешник будет один - универсальный редактор-компилятор, то в каком режиме он выполняется будет управляться через параметр командной строки - редактор/полныйКомпилятор/ограниченныйКомпилятор. Полный компилятор не ограничен в выборе хедеров С/С++ в отличие от ограниченного. Пишу редактор_компилятор на С++ в выбранном мною стиле - без указателей, используя компоненты-части будущего языка. Сук, понимаю но не могу обхяснить внятно.
Еле смог понять как через рекурсию обойти дерево кода для выбора следующей/предыдущей строки в редакторе, мой мозг просто закипал, ведь пришлось пердолить дерево через рекурсию. Обожаю gdb - величайшее изобретение после С++.
>>309511 Нашел где спросить, на самом деле. >>309509 (OP) >С необходимостью управлять оборотами мотора а не "двигайся в точку" Поясни эту мысль поподробнее. Чего ты хочешь добиться этим от игрока? Менее опытный будет копипастить вызовы один за другим, более опытный напишет обертку и будет то же move(point), только написанное вручную.
Вообще, такие игры нужны, но надо понимать, зачем там программирование с точки зрения геймдизайна. Ведь нельзя просто дать среду, чтобы программист там развлекался — у него для этого есть gcc и ghc, ему не нужна отдельная игра, чтобы попрограмировать.
>>309560 "move(point)", способов реализации этой процедуры бесчисленное кол-во. Ты можешь выполнить эту процедуру синхронным/асинхронным вызовом, задав максимально-допустимое ускорение, игнорируя/не игнорируя любые другие обстоятельства. Но смысл соревнования если кто-то смог реализовать эффективную процедуру, а кто-то пользуется стандартной, которой легко пользоваться и он не понимает как она работает. Вначале новичёк конечно может скопипастить код как обучающий так и любого другого соперника по сети. Обучающие уроки будут полными, там и 3Д математика затрагиваться будет и остальное. во второй реализации мне пришлось для робота придумывать варианты процедуры по вчислению траектории полёта гранаты чтобы она прилетела точно по цели, даже движующейся, она была тормозная но мега-точная. Обучение математике это разве плохо? Смысл в высоких абстракциях в API типа: Если(МнеПлохо()) ЕхатьНаБазу(); Тапкое может поиграть любой школьник, умеющий печатать, но чему он научится в итоге-то?
Никакой обфускации кода нет, код любого участника можно смотреть и использовать, это вам не параноидальный Robocode. Ты сможешь посмотреть код любого самого крутого чемпиона, понять его если сможешь и улучшить. А если просто скопируешь то это просто на твоей совести будет. Ладно не буду прогресс описывать, ведь тема не об этом.
>>309562 На самом деле это вопрос геймдизайна. Для мультиплеера подойдет API любой сложности — человек сражается с такими же долбоебами, и так же, как и они, либо борется с низкоуровневым API, чтобы заставить своих персов делать хоть что-то, либо пробует пилить стратегии с помощью высокоуровневого API. В первом случае стоит дать игроку миллион параметров, которыми он может управлять или учитывать. Во втором случае — миллион возможных стратегий.
>>309534 К чему все это? Просто пиши интерпретатор Scheme. Ну или брэйнфака. Там уж совсем все просто. Кроме как бесконечного цикла и не сломать ничего. Но тут уж прости, еще Тьюринг доказал, что с этим ничего не поделать.
>>309530 >asm ты путаешь сложные красивые вещи и выблевыш анального мазахиста. под что ты юзал асм? какой незаменимый функционал он собою представлял? ты шизик ебаный. придумал на пустом месте сверхъценную идею и пострадал изза нее.
>>309608 >под что ты юзал асм под x86 многие годы назад, и 2жды создавал свою VM с ассемблером для неё. Программирование роботов на асме это и есть абсолютный мазохизм, выходит ты мазохист если ты за асм
>>309608 >аешь слож И чего добился ты, не-шизик, кроме как выучить созданное до тебя, какие новые идеи ты принёс в этот мир, ничтожество, что останется после тебя когда помрёшь, кроме твоих дебильных детей ?
>>309564 >Во втором случае — миллион возможных стратегий Язык описания стратегий существует? Если да то на что он похож, если нет то на что он должен быть похож? Чисто теоретически.
>>309653 Некая хрень с реактивным программированием, быть может. Как вариант. Высокие абстракции плохо совместимы с императивным програамированием. Выходит что-то типа Prolog, задаёшь роботу базу знаний, по которой он решает что делать и выводит новые знания в неё.
Блять, да просто поднажмите в голосовании на "не-нужно" и я заткнусь как только будет в 2 раза больше чем "нужно". Или модер пусть удалит эту тему, пересоздавать не буду.
>>309652 но ведь согласись. ты пихнул в проект асм не потому что он там представлял незаменимое очень полезное решение а просто потому что >асм - это круто, асм - это быстро. асм - для настоящих технарей. я выучил стек и мне хочется использовать свои знания во имя добра. ах какой прекрасный асм у меня получился. а остальные бесполезные файлы в проекте я удалил.
>>309664 Только потому что не хотел использовать уёбищные люи и подобную ересь с их универсальными ко-ко-ко-"таблицами". Только языки с нормальными структурами, словарями, множествами, массивами. Универсальные тормознульки не нуужны!
>>309665 таблица в люе просто фасад для списков указателей. там тоже есть стек и даже есть мнемоники как в асме. и самое главное - её можно воткнуть в любой проект. хотя конечно все целиком как в циве5 делать на люе не стоит.
>>309667 > lua Неужели и выделение памяти можно контролировать для отдельного экземляра "исполнитель люа скрипта" ? Не гуд если кто-то использует 1 МБ, а кто-то 100.
>>309666 дагосподи! берешь что то типа нейросети и указываешь условия. делаешь классы выборщиков которые мониторят условия. голосуешь ими каждый тик и выбранное действие выполняешь. делаешь веса что бы более приоритетные вещи имели больший шанс. корректируешь веса исходя из третьих условий в реальном времени. условиями могут быть -двухкратный перевес менее приоритетной задачи. -придумай сам.
>>309674 действие - жрать =0.2 х счетчик1 действие - спать=0.12 х счетчик2 третье условие - не спал больше 30 часов=+0.05 к весу спать третье условие - много работал =+0.2 к весу спать
>>309676 Да ну, вычисление веса для действия лучше в виде чистого выражения, никаких усилений/ослаблений к другому действию, что выглядит как низкоуровневая хрень.
Вообще идеально всё выглядело-бы, когда Программа состоит из декларативных блоков, состоящих из стандартных императивных действий над внутреннястями только этого блока. Императивные блоки способны лишь смотреть на состояние других блоков и изменять собственное состояние в ответ. Почти как в Excel. Например никто не пишет в переменную мотор, а сам мотор смотрит на состояния других частей программы и вычисляет своё значение. Сколько раз такая идея приходила.
вычислительныйБлок ехатьВперёд { внешний float скорость вычислить { скорость = 123 вес = нетПрепятствияВпереди ? 1 : 0 } }
вычислительныйБлок уёбывать { внешний float скорость вычислить { скорость = -100000 вес = виденУбийцаМиров ? 1000 : 0 } }
>>310784 >javascript Это не язык вовсе. Хз, доработаю свой ЯП-обёртку-над-С++ и перепишу игру на нём, а внутри игры что за язык будет - я ещё потом помозгую. И что за уровень абстракции в API будет - потом помозгую. Сейчас самое смешное, в /pr веду недотред про новый ЯП общего назначения.
>>310850 ОП, какой бы низкий уровень ты не запилил, ни один нормальный человек не будет контролировать обороты двигателя в языке с функциями. Кончится всё тем, что в твой проект нагрянет туча школьников с упрощённой апишкой в заголовке, которую только написал не ты, а долбоёб со стороны.
>>311200 >ОП, какой бы низкий уровень ты не запилил Я же писал что я в режиме сомнения насчёт уровня API. Скорее всего будет низкий+высокий. Но это ещё не скоро.
>>309509 (OP) >>309562 >но чему он научится в итоге-то Ну алгоритмы то есть на всех уровнях, можно например писать стратегии для обхода шелупони со всех сторон и прочие многоходовочки. В очередной раз переизобретать двусторонне связанные списки это конечно дохуя интересно, но приятней ебашить многослойные перцептроны, используя готовые алгоритмы перемножения матриц. Или даже так: интересней подбирать входные рецепторы для рекурсивной сети, нежели перебивать ее алгоритм из статьи в журнале Computer Science.
Есть грань, когда игра превращается работу. Вон Spacechem, например, была интересной, с приятным дизайном и достаточной сложностью, Infinifactory можно с натяжкой причислить к хорошим играм. А вот в Shengen и TIS автор совсем схалтурил и тупо вывалил асму, заставляя игроков по восемь часов погромировать мигающие лампочки для вывесок. Или Screeps из солнечного батькостана, реклама: "постройте свою империю при помощи неограниченной мощи ЯВАСКРИПТА", на деле: "мы вам вывалили говноупорядоченные массивы обьектов, ебитесь с ними как хотите, и да, если сериализация ваших структур будет происходить долго, пишите свой блок вывода или вашего бота не будут обсчитывать".
Игра она тем и лучше работы, что там все неинтересное пропущено, а когда тебя заставляют учить подкотрольного робота ходить, а потом еще ходить к указанному месту, то нахуй такую игру. Я лучше уж посижу напишу бота для какой-нибудь линейки и продам его.
>>311712 >заставляют учить подкотрольного робота ходить В текущей версии были убраны "моторы и колёса". Только сферические кони с вектором тяги. В наивном алгоритме передвижения - просто устанавливаешь 3D вектор куда лететь, а для обода препятсятвий уж придётся бросать лучи и измерять расстояния. Отчасти упростил физику для слабых компьютеров. Чтобы как robocode - игралось даже на древних компьютерах. Момент что > игра превратилась в работу у меня был лишь когда запрограммил генетическое обучение ходьбе робота с лапами. я тогда убил неделю, без грандиозных результатов.
>>312823 ОП, у тебя не игра, у тебя эмулятор роботошаров. Для игры нужен геймплей. То что ты делаешь называется inner platform effect - ты хочешь запилить свою среду разработки, так пили. Только не путай это с игрой.
>>312842 >игрой точно. Ведь в игру должен смочь играть и детсадовец и маразматичный дедушка. Но ведь сказано что для программистов а не для школоты и пенсионеров. А элемент состязания ты не заметил в этом "симуляторе робо шаров" - то? Если определение игры как состязание одних людей с другими тебе ни о чём не говорит, то ты просто даун, не смылсящий в элементарных определениях.
>>313003 Ну и что здесь для ЦА? А, ПРОГРАММИРОВАНИЕ, они же ПРОГРАММИСТЫ. А ты не думаешь что те кто хотел шевелючие робошары накупили себе всяких дронов-хуенов и с ними пердолятся? Кто хотел хитровыебанный кодинг пилит опенсорс или пет-проекты? Кто хотел членнинджа, участвуют во всяких конкурсах типа AI-капов всяких или TWG? И то все они не хотят ебаться с низкоуровневым ИЗМЕНЕНИЕМ ШАГА ДВИГАТЕЛЯ епта, а требуют более-менее высокоуровневый API. >то ты просто даун Нет ты, по твоему определению и олимпиада по программированию в Усть-Пердюйске игра.
>>313400 >Другие они не возьмут Так я и не собирался делать коммерцию, особенно такую непопулярную. Вот закончу cxxtree и начну пилить эту хуету, на cxxtree, на чистом с++ не хочу. Взрывы, лазеры, термоядерные взрыва на пол-карты, кровь, кишки, распидорасило, вот что будет в игре. Никакого читерства и пинга, за игрока играют его создания.
>>313608 У меня есть некоторое подозрение, что те, кто хочет вот так подробно, как ОП расписывает, вникать в технические детали, просто покупают микроконтроллеры, сервоприводы и прочее и собирают роботов физически. С другой стороны, Kerbal Space Project имеет же своих поклонников (подозреваю, потому, что собрать ракету-носитель и спутник в гараже все еще сложновато).
>>313638 А вообще двачую, ОП ненужной хуйнёй страдает. Робототехника в малом масштабе сейчас очень доступна стала, так что действительно гораздо интереснее собрать и запрограммировать настоящего робота.
>>313647 >очень доступна стала Сука, а ракеты и бомбы ваши роботы собранные несут? Вы долбоёбы, собирающие троллейбусы из буханки хлеба и микроконтроллеров, а надо-ли это?
>>314556 >глаза не вытекали Так уж и быть. Но сделаю я другие цвета не ради твоих вытекающих глаз, а только ради дальтоников, которые не могут в красный и зелёный.
>>314564 Бедные дизайнеры десятилетиями вытачивали юзабилити, чтобы какой то хуй сделал все красивенько, как в коммандоре. 640 кб хватит всем. Утекаю отсюда нахуй беречь глаза.
>>314573 Мне тоже зашёл твой синтаксис без брейсов и скобочек и двоеточий питона, интерактивность не нужна, но цвета, уж прости, жуткие. Если запилишь в своей игори внутреннюю IDEшечку, хотя бы позволь менять тему на кастомную.
Я вас серъёзно обманул - на видео у земли фейковый коллайдер - plane. Пойду реализовывать convex-hull, или polygon-collider, или что найду в Bullet - то.
Terrain теперь настоящий - с выбоинами и выебаинами. https://youtu.be/PxZrIkiB4kc Для всех остальных объектов сойдёт и шарообразный коллайдер, на первое время-то.
>>314769 Сам с собой разговариваешь. Всё, конечно, круто, но, мне кажется, твои несмотрибельные тесты коллайдеров ещё рано показывать. Тем более, игра заявлена как игра для программистов и интереснее посмотреть на то, как этот cxxtree будет влиять на геймплей.
>как этот cxxtree не уверен что в игре языком программирования будет cxxtree. Ведь код робота от Васи должен будет скомпилирован на компьютере Пети, а насколько с++ безопасен для таких целей - очень сомнительно. Ведь там можно хоть вирус запихнуть, хоть что-угодно, если эксперт. А пока реализую движок.
> рано показывать Сам-то переходил с чертового Unity на божественные OSG+Bullet ? Это эйфория, этой радостью хочется делиться с миром.
А пока разобью свой ноут пополам, как сделал это с главным компом, добавлю Lin - в нём будет комфортнее гораздо разрабатывать - там gdbне глючит как в Msys2mingw32. А в Вин буду иногда заходить проверять компиляцию под Вин.
>>314802 >Сам с собой разговариваешь А есть с кем? Сам с собой не поговоришь - будешь молчать как рыба. Кириллы молчат.
Я приложил некоторые усилия тогда, чтобы выпилить из С++ опасные функции для вирусописателей и хацкеров - например опасные хедеры, указатели на фунции и т.д.
Как и cxxtree я написал в первую очередь для себя. Так и эту игру пилю для себя в первую очередь, а выкладывание прогресса здесь меня стимулирует. Особенно меня стимулируют чьи-нибудь вскукареки и атаки.
>>314888 Он шизофреник, разве не видно. Чувак сам себе пишет, сам себя хвалит, сам с собой рассуждает. Куда то перекатывается, выкатывается. В треде только охуевающие мимокроки с нулевой, как я. И то надолго не задерживаются. Скрывал уже несколько раз тред, чтоб глаза не мозолил, но у меня слетают куки и это говно периодически всплывает.
>>314888 >врачей нужно вызвать у тебя какието проблемы? скрой тред и не мешай. И прими таблеточки, а то ты нервный какой-то. Буду теперь чаще сагать, чтобы дауны как ты не страдали. Но тред не утонет
Далее, следует, по-видимому, считать невозможным, чтобы отдельно друг от друга существовали сущность и то, сущность чего она есть; как могут поэтому идеи, если они сущности вещей, существовать отдельно от них? Между тем в «Федоне» говорится таким образом, что Эйдосы суть причины и бытия и возникновения [вещей]; и однако если Эйдосы и существуют, то вещи, им причастные, все же не возникли бы, если бы не было того, что приводило бы их в движение. С другой стороны, возникает многое другое, например дом и кольцо, для которых, как мы утверждаем, Эйдосов не существует. Поэтому ясно, что и все остальное может и быть и возникать по таким же причинам, как и только что указанные вещи.
Полные новички не смогут осилить, а кто сможет - после своей работы программистом скорее пойдёт пердолить драконов в Скурим? Целевая аудитория в 1 человек в лице меня?