Zer0Galaxy
-
Публикации
1 220 -
Зарегистрирован
-
Посещение
-
Победитель дней
189
Сообщения, опубликованные пользователем Zer0Galaxy
-
-
Хм. Так я про это и спрашиваю. Форму сталкиваемого тела нужно за-да-вать ломаной линией или окружностью. Одной картинки не достаточно.
К тому же ломаная, окаймляющая тело, должна быть непременно выпуклой и иметь не более 8-ми вершин. Этого явно мало.
Что-то мне эта физика нравится всё меньше.
-
1
-
-
На счет спрайтов. Как я понял из физики love2d, для нормального взаимодействия объектов (я имею в виду столкновения) одних только картинок не достаточно. Нужно задать и контуры объекта - замкнутую ломаную линию, которая будет использоваться для пересчета столкновений. Как собираешься задавать этот контур?Насчёт моего проекта. Пока понемногу рисую спрайты (может и поделюсь ими для ваших проектов) Параллельно разрабатываю мир игры в моём понимании и записываю идеи. -
А как же управление кораблем при помощи луа-скрипта? Скрипты обязательно нужно сделать. Я уже подразобрался малость и с физикой взаимодействия объектов в love2d и с обменом по сети. Ща со скриптами разбираюсь. Есть проблемы.... -
Думаю, нам надо разделить задачи. Кверти, попытайся реализовать столкновения объектов. Необходимо разобраться с программированием из игры (это я мог бы взять на себя) и обменом по сети. В дальнейшем разбить задачи на клиент и сервер, что бы все вычисления были на сервере, а клиент только отображал.
-
1
-
-
Мне кажется, что твой OpenSpace это как раз то, что нам нужно. Если конечно же ты собираешься сделать управление ракетой при помощи луа-скрипта и предусматриваешь мультиплеер.Но вся суть в том, что у меня есть свой проект OpenSpace, который я скорее всего переработаю в то что задумал, если опыта хватит. А вы пока делайте что хотите, в команде сложнее программировать.
-
Несколько соображений. Не догма. (много букв)
Игровое пространство
Игровое пространство представляет собой двумерный мир, замкнутый в виде тора. То есть, вылетев за правый край карты, объект появляется слева. Вылетев вверх или вниз, объект появляется внизу или вверху карты, соответственно.
В игровом мире размещается большое количество планет (не менее 1000). Планеты не подвижны друг относительно друга и распределены по миру хаотически (возможно, в узлах сетки). Планеты отличаются друг от друга радиусом, массой (гравитационным радиусом), внешним видом (цветом) и залежами полезных ресурсов.
Объекты
Все остальные космические тела кроме планет (в дальнейшем «объекты») являются искусственными, т.е. созданными игроками.
Объекты строятся на специальных постройках (фабриках) из компонентов. По мере получения игроком опыта и накопления ресурсов, ему открываются всё новые и новые компоненты.
Основные типы компонентов объекта:
- корпус. Определяет внешний вид, размеры объекта и возможность размещения в нем других компонентов.
- двигатели. Позволяют объекту перемещаться в пространстве. Двигатели делятся на маршевые и маневровые. Маршевые отличаются большей силой тяги, но и большей инерционностью.
- баки с горючим. Обеспечивают работу двигателей.
- система управления. То, ради чего всё делается. Представляет собой контроллер, программируемый на Луа, способный управлять работой других компонентов.
- система жизнеобеспечения. Наличие этой системы на космическом корабле предполагает наличие экипажа и позволяет игроку управлять кораблем вручную.
- транспортный отсек. Позволяет перевозить грузы.
- приемопередатчик. Позволяет передавать и принимать радиосигналы.
- стыковочный шлюз. Позволяет производить стыковку космических кораблей в космосе для обмена грузами и горючим.
- радар. Позволяет находить близлежащие объекты и планеты.
- вооружение. Позволяет уничтожать другие объекты.
- модуль захвата. Позволяет, при наличии свободного места в транспортном отсеке, захватывать летающие в космосе объекты (можно грабить корованы).
Движение объектов
Для упрощения расчетов считается, что любой объект может находиться в одном из трех состояний:
- на поверхности планеты. В этом случае объект неподвижен;
- в пределах гравитационного радиуса планеты.
- за пределами гравитационного радиуса.
В пределах гравитационного радиуса движение объекта осуществляется в полярных координатах. Причем, если силы, действующие на объект, отсутствуют и скорость тела больше первой космической (V1) и меньше второй космической (V2), движение осуществляется по круговой орбите с постоянной скоростью. Сила, приложенная вдоль радиуса, изменяет высоту орбиты. Сила, приложенная перпендикулярно радиусу – изменяет скорость. Если скорость объекта становится меньше V1, объект опускается на поверхность по спиральной траектории. Если больше V2 – объект покидает орбиту.
За пределами гравитационных радиусов при отсутствии внешних сил объекты движутся равномерно прямолинейно с постоянной угловой скоростью (или без нее). При включении двигателя, объект получает линейное ускорение и, в зависимости от места установки двигателя, может получать вращающий момент.
При столкновении двух объектов или объекта с планетой, вычисляется их суммарный импульс. Если этот импульс не превышает критического (зависит от корпуса объекта), объект изменяет свою траекторию и/или угловую скорость. Если импульс превышает критический, объект разрушается.
Управление объектами
Если объект, находящийся в космосе или на орбите, имеет в своем составе систему жизнеобеспечения, игрок-владелец может получать доступ к управлению объектом, т.е. осмотреть близлежащее пространство, по своему усмотрению включать-выключать двигатели и другие компоненты, корректировать программу системы управления.
Если объект имеет в своем составе систему управления, но не имеет системы жизнеобеспечения, игрок может осмотреть близлежащее пространство, но не может повлиять на работу объекта кроме как по радиосигналу.
Объекты, не имеющие ни системы жизнеобеспечения, ни системы управления, не доступны контролю со стороны игрока. Нужно подумать, как уничтожать потерянные объекты. Может ограничить время жизни.
-
4
-
-
Есть низкоуровневая сеть:
https://love2d.org/wiki/Tutorial:Networking_with_UDP
Есть с либой:
Вроде как и сокеты есть даже
-
1
-
-
Какой движок?Ни того ни другого не знаю толком, но мой голос за любовь ибо Луа
-
вероятно тут https://love2d.org/
нет?
Скачал, установил, запустил. Вижу какую то буханку и сообщение "no game". Что дальше?
-
Вопрос. Где скачать и как установить LÖVE? Гуглить я сам умею, но надо же что бы все в одной версии работали.
Можно ли будет на нем создавать клиент-серверные приложения?
-
идея №2.
компьютерная сеть. Цель игры писать программы для взаимодействия вежду игроками, взламывать сервера корпораций и компы других игроков, зарабатывать или воровать дентги для улучшения своего компа.
Я сам давно предлагал реализовать Uplink под Майнкрафтом, но не смог придумать захватывающего геймплея.
-
1
-
-
love2d
Я не умею
. Я тогда только гениальные идеи генерировать буду. -
Луа просто? Как рисовать графику на Луа?
-
Java - нельзя. нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет нет.
Почему нельзя? А что льзя?
-
И так, идея есть. Осталось собрать команду программистов, способных реализовать 2D графику на Java или MoonJam. Засветились Тоторо, КвертиМАН, electronic_steve. Что они думают? Может еще кто хочет и может?
-
-
NightFury, никого не слушай, пиши свою ось. Выложишь когда что-то получится. Будут трудности, обращайся.
-
10
-
-
Появляется проблема, скажем если в фоне запущен mc, после чего мы переключаемся к нему, мы увидим сломанную графическую составляющую, ибо нарисует он все только один раз. Создавать буффер для каждой программы - дорого. Нужно что бы операционной системой можно было пользоваться на Т1 компе.
Отчего же дорого? Именно это я и имел в виду под "допилить gpu". И чем меньше монитор, тем меньше нужен буфер. А! У вас памяти не хватает на пятьдесят задачек и буферов к ним? Ну тогда многозадачность не для вас. Кто сказал, что Windows 10 должна идти на калькуляторе?
Увы, но нет. Если я там поставлю gpu.set(), который без задержки. Компьютер не выключится.Не знал. Но коль уж мы взялись переписывать gpu, то можем переключаться и по gpu.set. Не всякий раз, а через тысячу знаков, скажем.
-
1
-
-
Если цикл бесконечный, то он в любом случае, даже если программа работает в однозадачном режиме, должен содержать os.sleep, event.pull или другую функцию, ожидающую событие. В противном случае компьютер отключится. Именно ожидание события и есть переключение между задачами. У меня, по крайней мере так.Все равно, если я в одной из написанных программ сделаю цикл (как отписал в сообщении выше), то этот процесс "затмит" все фоновые. -
[Вопрос] Будет ли иметь смысл данная операционная система?Лично я скептически отношусь к написанию осей под OpenComputers. Существующая ось более чем достаточна для решения любой задачи, которая может возникнуть перед майнкрафтером. Но это не значит, что нельзя пробовать. Если знаешь как сделать лучше - делай. Другое дело, взялся ты за задачу слишком глобальную. Может начать с доработки OpenOS? Например, реализовать многозадачность. Не многопоточность, а именно многозадачность на уровне ОС. Так что бы можно было запускать параллельно несколько приложений, которые не предусматривались специально для работы в параллельном режиме. Но тут возникает проблема разделения ресурсов. Если несколько приложений начнет писать на экран, начнется чехорда. Экран должно захватывать только одно приложение и оно же должно реагировать на события клавиатуры/мыши. Остальные приложения работают в фоновом режиме. Переключения между приложениями, например, по Alt+Tab. В этом случае очень многие либы OpenOS можно оставить без изменения. Допилить только event, компонент gpu и оболочку shell (может еще чего забыл). Вот если такая ось будет максимально похожа на OpenOS, тогда она возможно будет пользоваться спросом.
[Вопрос] Какие еще возможности вы хотите предложить?Сделай, хотя бы половину того, что задумал.
Думаю не стоит этого делать из-за потери совместимости с уже существующими программами.[Вопрос] Из-за многопоточности, прямая работа с компонентами должна быть недоступна. Как вы думаете, стоит ли программно запрещать это.-
4
-
-
Когда то на нашем форуме обсуждался сжиматель lua-кода, который работал прямо из OpenOS. Я его даже себе скопировал и использовал пока диск не полетел. Кто понял о чем я, напомните пожалуйста.
Ага, нашел. Это блог Крутого
-
1
-
-
Наложил заплатку@Zer0Galaxy, с обновлением МС возникла новая страшная потенциальная угроза при использовании МС чайником. Можно ли как-то ее устранить? Суть ее в том, что МС не проверяет целевую папку при копировании на предмет того, что путь копирования не является дочерним. Должно быть, по идее, так, если мы копирует папку Тест внутрь папки Тест.-
2
-
-
Безусловно эту багульку надо исправить. В следующем релизе будет пофикшено. Нужно потестировать на предмет copy/move, может еще что вылезет.МС не проверяет целевую папку при копировании на предмет того, что путь копирования не является дочерним. Должно быть, по идее, так, если мы копирует папку Тест внутрь папки Тест.
Уже сейчас при копировании/перемещении файла, целевой путь можно редактировать, стоит только при выскакивании окошка Copy file несколько раз нажать backspace и ввести новый путь. Другое дело, это не совсем удобно если нужно переименовать файл, оставив его в прежней директории.Может действительно по shift+F6 сделаю опцию Rename.И будет ли когда-то в МС на F6 [RenMov], как в классике, по умолчанию перемещает, но можно путь поредачить и просто переименовать файл/папку, или ренеймить по shift+F6?А вот какие планы у Сангара по включению того или иного ПО в комплект мода, ничего сказать не могу.
-
1
-
-
Заметил когда-то давно интересную особенность этой всей кухни. Если один поток работает без слипов, хоть даже каких-то микроскопических, например, черепашка едет в бесконечном цикле прямо, а второй тред, например, ожидает в ивент.пулле что-то, например команды по wi-fi "Стоп" для разрыва этого безудержного путешествия черепашонка, то тут наступает грустишка и никак не удается сдвинуть и оживить второй поток. Он просто наглухо висит мертво и ему не отводится никакого времени на обработку.
Всё дело в том, что переключения между потоками осуществляются по слипам (по computer.pullSignal, если точнее). Слипов нет, и другие потоки управления не получают.

Идеи для игр (кодинг, разработка)
в Флудилка
Опубликовано: · Изменено пользователем Zer0Galaxy
A EdgeShape is a line segment. They can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.
A ChainShape consists of multiple line segments. It can be used to create the boundaries of your terrain. The shape does not have volume and can only collide with PolygonShape and CircleShape.