Разработка игры #1 (подбор инструментария)

Blog Image
Feb. 27, 2019, 11:49 a.m.
Tags:
  • игра, браузер

Всем привет!

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

Посидев какое то время, я начал выбирать технологии на которых буду делать весь проект. По бэку выбор пал еще давно на aiohttp. Держит вебсокет соединение, асинхронен, питон 3 и главное стабилен - красота. Фронт часть, никуда не дется, это JavaScript. Но вот на чистом JS-canvas писать как то не очень хочется. Хотел сначала использовать QICI Engine, но узнав что проект загнулся, очень расстроился, так как штука была очень годная. Наткнулся на топ HTML5 движков выбор пал на GDevelop. Посидел, посмотрел, потыкал пальцем в это чудо. И понял, что моих нервов не хватит в изучение такого огромного GUI. Разраб постарался свести к минимуму написание кода, тем самым программа стала очень сложной в изучении. Но бомбанул я не тут. А когда открыл оффициальные туториалы для новичков, а они на столько устарели, что не капли не помогают разобраться в проге. Вот офф туториал, на момент публикации гуиха сие чуда(из туториала) выглядела вот так:

Ага, винда. Но я то работаю с линуксы, и у меня нечто другое... Сейчас пойду скрин сделаю...

Да, красиво, да, можно сделать Dark цветовую схему. НО, это нифига непохоже на то, что в туториале для креветочек ;D Я пытался, но втыкался в момент что не находил нужный пункт меню или настройку. В итоге забил. Пусть сначала сделают нормальную докуму, а потом уже этим можно будет пользоваться(да, пригорело).

Я вернулся к списку HTML5 движков и продолжил свой поиск... Увидев старый добрый Pixi.JS я подумал, ладно, без GUI буду писать клиентскую часть, фиг с ним.

Качаю 5-ю версию (не, ну а чО), беру код из экзампла 1 в 1. Вставляю себе... не работает. Простите, что? Ладно. Ковыряем докуму... половина старых методов - деприкейтед. Здрасти, дорогие, а теперь мануал как с новой версией работать, не хотите завезти? Короче, поборовшись с этим долгое время, я выбрал старую добрую 4-ку(v4.8.5). Взял экзамлы - всё завелось с пол пинка. Думаю хрен с ним(мой горящий пукан уже был одной из самых горячих точек во вселенной), пусть будет так.

В качестве работы с базой данных я долго не бился, взял готовый ORM PeeWee и был счастлив как слон.

И так, инструментарий для разработки был выбран, идея заимствована, стартовые сниппеты сп*зжены(самому на старте рисовать дорого и не разумно), приступил к отрисовке карты на Pixi.

Хобана, все получается, хоть и со скрипом, так как знаний Pixi.JS не хватает, но докума написана приятно и с кучей примеров. Заставляет только грустить сам JS, а так в целом дела идут нормально. Карта отрисовывается, кораблик можно поставить ровно в квадратики для парковки (возможно кто то и узнал игру ;D)(Сам факт установки караблика еще не сделал, но при наведении мышью он встает ровно в клеточку и я доволен :3). Так же карту можно зумить и таскать мышкой(это самая маленькая карта на скрине).

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

Как то так. Еще я осознал, что рисовать удобное UI куда сложнее чем писать код =\ но сдаваться уже поздно и идём дальше :D Потом попрошу кого то это всё облагородить, для меня сейчас более важно чтобы было что тыкать мышкой.

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

До новых встречь! Надеюсь в ближайшее время я уже смогу показать что то новенькое из продвижений по проекту ;)