1

(1 відповідей, залишених у Хостинг та домени)

Хочу написати React-застосунок для мультиплеєрної текстової гри.

Клієнти повинні мати можливість отримувати сповіщення від  сервера (з ініціативи сервера).
Знайшов сервіс Ably, який надає подібні функіції разом зі зручним API.
Також знайшов сервіс Netlify для розміщення самого React-застосунку і сервера Apollo.

Все ніби виглядає просто і зручно, але хочу порадитися з більш досвідченими перш ніж робити вибір.
Чи є Ably і Netlify хорошим вибором для такого застосунку чи краще розмістити все на Hekoru, Digitalocean або Google Cloud?

2

(2 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Як краще писати React-застосунок: зверху вниз чи знизу вверх?

Краще спочатку продумати найзагальнішу структуру застосунку і написати відповідні компоненти, які містяться безпосередньо в компоненті App, а потім все більше деталізовувати структуру?

Чи краще почати з дрібних компонентів, які виконують найбільш конкретні і атомарні функції, а потім з цих малих компонентів як із блоків lego складати загальну структуру?

Я ще тільки вчуся і мені цікаво дізнатися думку тих, хто випробував обидва підходи на практиці.

3

(2 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

mikeos написав:

Використовував тільки Apollo Client, але це було десь 2 роки тому.
Коли вибирав інструмент для GraphQL то вибір був між двома - Apollo Client і React Relay а за Urql тоді щось навіть і не чув.
Вибрав Apollo client і мені все підійшло.
При виборі брав до уваги популярність, документацію, кількість відкритих багів і активність комітів на гітхабі.
По популярності (зірочки на гітхаб) зараз досі на першому місці Apollo:

  • Apollo Client - 19.4k

  • Relay - 18.4k

  • Urlql - 8.7k

Якщо це великий, серйозний проект, немає часу на експерименти то я б знову обрав Apollo - багато можливостей, розвивається, популярність, більша вірогідність що інші мають з ним досвід.
А якщо є можливість експериментувати то я б спробував цих 3 напопулярніші щоб порівняти. Особливо хотіб би спробувати Relay (розробники від фейсбуку)

Список js клієнтів: https://graphql.org/community/tools-and … ipt_client

Дякую за відповідь. Теж оберу Apollo Client, якщо кажете що не було ніяких нарікань.

4

(2 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Хто працював з обома, що порадите вибрати для React-застосунку?

Який має більше можливостей?
Який зручніше використовувати?
Який має кращу і зручнішу ітеграцію з React?

5

(2 відповідей, залишених у Хостинг та домени)

ostap34PHP написав:

Має сенс розробляти будь-що локально, бо ви одразу бачитимете результат своїх змін до коду. Розгортання на будь-яку хмару займає хоча б хвилину, що є на мою думку неприпустимим для ефективної розробки. Крім того, з таким підходом призначення Git комітів втратило б сенс.

Дякую за пораду.

6

(2 відповідей, залишених у Хостинг та домени)

Хочу робити веб-застосунок (текстова мультиплеєрна гра).

Буду використовувати текі технології та інструменти:
React - клієнт
Supabase(backend as a service) - база даних, автентифікація і авторизація на (серверна частина).
GrapgQL і сервер Apollo для звʼязку клієнтів з базою даних.
Google Cloud - щоб розмістити там Rect-застосунок і Apollo-сервер.

Питання в мене ось яке:
Як правильно зробити: розгорнути спочатку React і Apollo Server локально на своєму компі і опублікувати на Google Cloud коли все буде готово чи починати одразу на Google Cloud і публікувати оновлення коду через git?

Не судіть строго. Я нуб :)

7

(2 відповідей, залишених у Python)

frz написав:
GPT-4 написав:

програма отримує дані від вебсокета та надсилає дані на сокет, продовжуючи отримувати дані поки вводите текст:

import asyncio
import websockets

async def send_text(websocket):
    while True:
        user_input = input("Введіть текст: ")
        if user_input.lower() == "вийти":
            break
        await websocket.send(user_input)

async def receive_text(websocket):
    while True:
        res = await websocket.recv()
        print(bytes(res, 'utf8').decode('unicode-escape'))

async def connection():
    async with websockets.connect("ws://localhost:4002") as websocket:
        await websocket.send("[\"text\",[\"connect vlad asdfasdf\"],{}]")
        send_task = asyncio.create_task(send_text(websocket))
        receive_task = asyncio.create_task(receive_text(websocket))
        await asyncio.gather(send_task, receive_task)

asyncio.run(connection())

Дякую

8

(2 відповідей, залишених у Python)

Допоможіть будь ласка розібратися.
Є ось такий код для отримання даних від вебсокета. Що потрібно сюди додати щоб можна було також надсилати дані на сокет але продовжувати отримувати дані поки вводиш текст?
Наперед дякую.

import asyncio
import websockets

async def connenction():
    async with websockets.connect("ws://localhost:4002") as websocket:
        await websocket.send("[\"text\",[\"connect vlad asdfasdf\"],{}]")
        while True:        
            res = await websocket.recv()
            print(bytes(res, 'utf8').decode('unicode-escape'))

asyncio.run(connection())

9

(4 відповідей, залишених у *nix)

Ясно. Не судилося мені Лутца читати через vim :(

10

(4 відповідей, залишених у *nix)

Працювати із текстами в редакторах типу vim, kakoune приємно і швидко.
Я так вивчаю англійську мову читаючи тексти.
Для зручності обвішав редактор різними сполученнями клавіш: для перекладу виділеного тексту, для занесення виділеного слова у файл-словник, для text-to-speech.

Але текстові редактори такого типу не працюють із форматом pdf.

Тож чи є під Linux програми (або молулі до програм) за допомогою яких можна у pdf-файлі виділяти текст(без мишки) так само зручно як у vim?
Як це робити у zathura, mupdf, apvlv я так і не зрозумів.

Знаю що можна прогнати pdf через утиліти типу pdf2text, але тоді втрачаються всі ілюстрації і схеми.
Пробував ставити розширення cVim у браузері, але він також не хоче працювати ні для pdf, ні для html-файлів конвертованих із pdf.

Тому буду вдячний за поради.

11

(16 відповідей, залишених у Розробка ігор)

P.Y. написав:
koala написав:

Така гра вже давно реалізована. Графіка, до речі, на межі доступного, а от сюжет... сюжет, як вже сказано, генерується самими гравцями. "Життя" зветься. Не пробували просто жити?

Під цією маркою випущено декілька ігор, достатньо різних по своїй суті...
https://www.conwaylife.com/w/images/a/ab/Beluchenkosp51.gif

Ця анімація багато в чому ілюструє мій задум. Я хочу так само задати набір із кількох простих правил, які спроможні генерувати складну поведінку. Тільки щоб замість танцюючих геометричних узорів у грі розвивалося щось подібне на людську цивілізацію.

12

(16 відповідей, залишених у Розробка ігор)

P.Y. написав:

Це буде щось назразок sims, тільки mmo?

Швидше як Rimworld, тільки mmo
В сімсах нема механік війни і політики, наскільки мені відомо.
Ну і плюс можливість створювати унікальні ігрові об'єкти безпосередньо в самій грі, на рівні її механік, а не з допомогою модів або чогось подібного.

13

(16 відповідей, залишених у Розробка ігор)

tchort написав:

всіх чоитирьох психотипів Бартла

1. Чотири це не всі. Це не повна.
2. Модель "психотипів Бартла" дефектна.
3. Є проблеми з подібного роду мисленням.

В чому полягає дефектність моделі Бартла?

14

(16 відповідей, залишених у Розробка ігор)

koala написав:

Така гра вже давно реалізована. Графіка, до речі, на межі доступного, а от сюжет... сюжет, як вже сказано, генерується самими гравцями. "Життя" зветься. Не пробували просто жити?

Пробував. Механіки надто хардкорні. Хочу щось дуже подібне, але на кілька порядків простіше ????

15

(16 відповідей, залишених у Розробка ігор)

Хочу створити mmo-гру, котра б однаково добре задовольняла потреби представників всіх чоитирьох психотипів Бартла (карʼєристи, кілери, дослідники, соціальники). На жаль потреби останніх двох категорій, а особливо дослідників, ігноруються майже у всіх mmo.


Основні ідеї щодо гри:

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

- Всі ігрові події, квести, і сюжет загалом має генеруватися у процесі гри, як наслідок взаємодії гравців з ігровим світом і між собою.

- Гравцям потрібно надати можливість займатися всіма видами діяльності, які присутні в реальному світі (наука, військова справа, виробництво, сільське господарство, мистецтво, торгівля, різні види соціальної активності, політика, наука, медицина).

- Ігрові механіки мають стосуватися всіх основних сфер життя і рівнів реальності. Про них я напишу детальніше:

- Фізичний рівень
На цьому рівні мають бути реалізовані механіки для обʼєктів неживої природи: різні матеріали (кожен зі своїми фізичними властивостями і реакціями на впливи), а також сили та енергії, що на них впливають. Саме не основі властивостей матеріалів будуть реалізовані механіки винахідництва і виробництва.

- Біологічний рівень
Живі організми у всьому різноманітті їхніх форм і функцій.
Харчування і дихання (тобто здобування енегрії), рух, перцепція (різні органи чуття), розмноження (передача генів, мутації), імунітет і регенерація, нервова і гуморальна регуляція. На основі біологічного рівня будуть реалізовані механіки сільського господарства (рослинництва, тваринництва), а також це надасть можливість створювати різних істот, які по різному поводяться і по-різному реагують на впливи і умови середовища.

- Ментальний рівень
Сприйняття, мислення, памʼять, інтелект, знання і вміння, звички.

- Емоційний рівень
Емоційна оцінка персонажами різних події і реакції на них, почуття та стосунки, характери і темпераменти.

- Вольовий рівень
Сила волі, харизма, інтереси та амбіції, здатність контролювати себе та впливати на бажання інших.

- Соціальний рівень
Цінності, традиції, переконання, інституції, репутація персонажів.
Цей рівень дозволить гравцям впливати на те, що інші персонажі і спільноти вважають правильним/неправильним, прийнятним/неприйнятним.

- Духовний рівень
У грі божества і смертні персонажі зможуть взаємодіяти через механіки духовного рівня. Божества зможуть встановлювати заповіді за виконання яких смертні будуть отримувати очки духовності. Чим більше у смертного персонажа очок духовності тим легше буде божествам налагоджувати з ним звʼязок, щоб дарувати різні здібності і таланти або важливі знання.


Загальні концепції ігрового процесу:

У грі будуть два режими: автономний і детальний.

В автономному режимі персонажі будуть займатися звичними для них справами (на основі їхній особливостей характеру, переконань, інтересів, зобовʼязань, соціального і фізичного середовища, стану здоровʼя) навіть коли гравець, який управляє персонажем не онлайн. В цьому режимі за 24 години реального часу буде минати два роки ігрового. Цілі і пріоритети для персонажа гравець зможе виставляти, але повністю контролювати результат не вдастся (буде присутній фактор випадковості).

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

Протягом життя персонаж буде здобувати очки карми, які після смерті можна буде використати для вибору параметрів нового (реінкарнованого) персонажа (стан здоровʼя, інтелект, риси характеру, таланти, стартове становище в соціумі, матеріальне становище та репутація сімʼї в якій персонаж народжується). Набравши достатньо багато очок карми можна стати божеством, для якого доступні  інші ігрові механіки (при них було написано вище)

Таким чином гравці мають спільними зусиллями розвивати унікальну цивілізацію в усіх її проявах: технології, культура, цінності і традиції, політика, економіка, релігія, стан природного середовища. При цьому кожен гравець зможе знайти собі заняття до душі: хочеш вбиваєш ворогів, хочеш вирощуєш урожай або добуваєш ресурси, виготовляєш речі або винаходиш нові технології, займаєшся мистецтвом, організовуєш людей для великих досяггнень або інвестуєш в проекти з метою отримати прибуток.

Чи здається вам це цікавим? Буду радий будь-яким думкам, зауваженням і пропозиціям.

16

(6 відповідей, залишених у *nix)

По суті мені треба замінити всі "<b>something</b>" на "<someanothertag>something</someanothertag>", але тільки при умові, що всередині тега, серед усього іншого, є хоча б один символ "~". Може я не в тому напрямку копаю і є якийсь простіший спосіб.

17

(6 відповідей, залишених у *nix)

koala написав:
\<b\>.\{-}~.\{-}\</b\>

якщо вірити http://vimregex.com/ і припустити, що something - це не конкретний текст запиту.
П.С. Це зветься не "лінивий", а "нежадібний".

Дякую. Так я пробував. Захоплює вкладені теги.

18

(6 відповідей, залишених у *nix)

Як у Vim написати регулярний вираз, який знаходить всі рядки типу "<b>something</b>",  але при умові, що всередині тега присутній хоча б один символ '~'.
А ще вираз має бути лінивим, тобто не має захоплювати таке "<b>something<\b>something<\b>something<\b>".

19

(15 відповідей, залишених у Розробка ігор)

bebyk написав:
Володимир Бойко написав:

Я б із задоволенням зіграв у щось схоже на Rimworld, але MMO-орієнтоване, щоб кожен гравець керував тільки одним своїм персонажем, а для досягнення результатів потрібно було кооперувати зусилля. Гра Eco досить близька до цього опису, але все таки в ній бракує глибини і деталізації. Ну і моя спроба зібрати україномовних гравців, щоб разом пограти в Eco провалилася :(


Сказав би, що гра Haven & Hearth підходить під ваші критерії, щоправда сетинг там не скай-фай, а фентезі.

Дивлюся огляд на неї. Дійсно виглядає цікаво. Дякую :)

20

(15 відповідей, залишених у Розробка ігор)

Я б із задоволенням зіграв у щось схоже на Rimworld, але MMO-орієнтоване, щоб кожен гравець керував тільки одним своїм персонажем, а для досягнення результатів потрібно було кооперувати зусилля. Гра Eco досить близька до цього опису, але все таки в ній бракує глибини і деталізації. Ну і моя спроба зібрати україномовних гравців, щоб разом пограти в Eco провалилася :(