1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Функционал движка/лк x2

Тема в разделе "Оффтопик", создана пользователем Toster_tpl, 5 янв 2014.

  1. Автор темы
    Toster_tpl

    Toster_tpl Старожил Пользователь

    Баллы:
    153
    Давным-давно, примерно 4 месяца назад, я задумался о написании нового, "революционного" лк.
    По моим задумкам - это должен был быть уникальный движок с огромным кол-вом функций, уникальных фишек и в то же время простой в использовании.

    Главная задача, которая встала передо мной - это плагины.
    Как затолкать в него огромный функционал: выдачу вещей, привилегий, префиксов, недвижимости, разбаны, вайтлист, но самое главное, впихнуть туда функционал всех установленных на сервере плагинов? В то же время сделать его небольшим по размеру, не требовательным к серверу, не требовательным к бекэнду и он должен работать мультисерверно.
    Вы скажите "Да ну, брось. Это невозможно! Для работы всех этих функций нужно написать огромное количество кода. Он будет требователен как к серверу, так и к бекэнду(mysql/sqlite и т.п.) + размер, он будет много весить :eek:".
    Но знаете что? - Мне удалось :). Решение стало радикальным.

    Постольку-поскольку из ЯП я знал только PHP и не представлял как работать с явой, у меня возникла проблема с написанием данного плагина. Я знал лишь то, что если уверенно знаешь один ЯП, то понимать другие - это просто формальность, т.к. большинство конструкций практически одинаковые.

    Мне пришлось накачать кучу сорцов и ковыряться в чужих исходниках, чтобы понять принцип работы. Примерно за неделю, я его освоил, пусть и поверхностно, но что-то написать смог.
    Для меня было удивлением, когда ко мне в руки попали исходники плагина, который мне был нужен, но как оказалось, я рано начал радоваться...
    Принцип его работы был такой, какой нужен мне, но он выполнял его совершенно иначе, чем хотелось. Пришлось переписывать... Да-да, переписывать в корне, а не так, как любят делать школьники(Берём чужое, меняем одну строчку кода, удаляем копирайты и получаем новое творение).

    Спустя несколько недель работы над плагином, я наконец-таки его доделал. На выходе получилось 32 кб (32 786 байт), плагин делал всего-лишь 1-2 запроса к базе MySQL и работал ровно так, как я хотел.

    После того, как я закончил с плагином (тогда он весил меньше 32 кб, т.к. не было защиты от распространения, чтобы его не могли перепродавать), я приступил к самой трудоёмкой работе - движок сайта.
    За 3 месяца, я написал примерно 200 кб чистого кода и ещё 200 на структуру шаблона(html,css,js)
    Всё писалось на ООП, что давало мне быстро конструировать новые блоки(модули).
    Для работы всех модулей, мне нужен был всего-лишь один передаваемый параметр - init
    init - Ядро, которое содержит в себе несколько главных классов:
    - Конфигурационный класс
    - Класс работы с базой
    - Шаблонизатор
    - Пользовательскую систему
    - И множество обрабатывающих конструкций

    Основной принцип работы модуля - это первым делом инсталлизация класса и его конструктора, затем подгрузка модуля и на конце его инсталлизация.
    Пример работы на php:
    PHP:
    // Инсталлизация класса и его конструктора
    class myclass {
        private 
    $init false;
        private 
    $tpl false;
        private 
    $db false;
        private 
    $user false;

        public function 
    __construct($init){
            
    $this->init $init;
            
    $this->tpl $this->init->tpl;
            
    $this->db $this->init->db;
            
    $this->cfg $this->init->cfg->id;
            
    $this->user $this->init->user;
        }
       
       
    /* Остальные методы */
    }
    require_once(
    "myclass.php"); // подгрузка класса
    $myclass = new myclass($init); // Инсталлизация модуля
    Как видите, всё довольно просто и понятно.
    С шаблоном я особо не заморачивался, сделал только поверхностный каркас.

    Функционал движка получился на столько огромным, что я сам этого не ожидал.
    Начиналось всё с ~30 функций, но в ходе работы, ко мне приходили идеи и их кол-во возрастало.
    Сейчас их более 70 крупных функций.
    - Шаблонизатор вида {NAME}
    - Пользовательская система
    - Регистрация
    - Сброс пароля
    - Подтверждение регистрации
    - Авторизация
    - Вывод меню
    - Вывод списка предметов
    - Вывод полного описания предмета
    - BB-Коды
    - Панелька ББ кодов
    - Покупка предметов
    - Корзина
    - История покупок
    - Постраничная навигация
    - Пользовательские настройки
    - Технические работы
    - Игровой баланс
    - Реальный баланс
    - Скидки
    - Панель управления
    - Мультисерверность
    - Вхождение предмета в несколько серверов
    - Скидка каждого пользователя (в процентах)
    - Управление меню через ПУ
    - Мультиудаление
    - Управление предметами через ПУ
    - Управление скинами/плащами через ПУ
    - Управление категориями предметов через ПУ
    - Управление новостями через ПУ
    - Управление категориями новостей через ПУ
    - Управление серверами через ПУ
    - Управление пользователями через ПУ
    - Покупка скинов/плащей
    - Управление историей через ПУ
    - Управление корзиной через ПУ
    - Управление настройками сайта через ПУ
    - Аватар пользователя (скин/плащ)
    - Библиотека скинов/плащей
    - Проверка скина на уникальность
    - Подарок игроку
    - Новости
    - Продажа всех доступных возможностей
    - Список пользователей
    - Вывод полной информации о пользователе
    - Обмен валюты
    - Топ богачей
    - Реферальная система
    - Пополнение счета через ИК
    - Топ голосующих
    - Поощрения за голосования
    - История транзакций
    - Бан-лист
    - Вывод комментариев в новостях
    - Добавление комментариев
    - Удаление комментариев
    - Лайки
    - Продажа своих вещей
    - Управление торговой площадкой через ПУ
    - Управление мониторингом через ПУ
    - Мониторинг
    Некоторые из этих пунктов поверхностные, такие как постраничная навигация, мультиудаление, управление через ПУ и т.д., т.к. данные функции есть во многих модулях и для каждого приходилось подстраиваться по своему (Нет, не способом дублирования кода))) ;)).

    К сожалению всех функций, я показать не могу, т.к. некоторые еще не доделаны или слишком уникальны, а с некоторыми возникли проблемы, например с робокассой и другими платёжными шлюзами/системами оплат(пока нет персонального аттестата :confused:).

    У меня была идея продавать данный движок широкой публике, но сейчас, я чуть-чуть копнул глубже и усовершенствовал идею. Движок будет продаваться, но не в таком формате, а в более кастомизированном.

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

    За всё время создания данного проекта, я неплохо познакомился с Java, JQuery, JavaScript и получил с этого огромный опыт.

    Так же в ходе всех этих занятий ко мне пришла в голову мысль создать сервер Minecraft(ностальгия), но не обычный, а с очень гениальной задумкой в которой сайт будет иметь огромную роль и особенно его дизайн. Данная идея нигде не реализована, абсолютно! Следовательно, это будет мего-офигенный проект, уверяю вас :good:
    Более того, для него уже приобретён домен и хостинг(свой использовать не хочу). По большей части остался дизайн. Повторюсь, дизайн сайта - это важнейший элемент проекта.

    Но на первом месте в ближайшем будущем - это написать сервис продаж, т.к. то что мы имеем сейчас(Qexy) это вообще нельзя назвать порядком (в плане продаж/оказания услуг/тех.поддержки). Скорее всего, данный сервис будет реализован на движке QEXYCore, а может и нет. Поживём - увидим.
    И к сожалению с дизайном у меня всё туго, по этому придётся в ближайшее время заняться его обучением :confused:, т.к. брать в команду незнакомого дизайнера, как оказалось, не есть хорошо.

    Вот такая статья получилась. Спасибо за внимание :).

    P.S. И, пожалуйста, не засирайте раздел веб-обвязок. Устал жалобы катать, а модераторы, скорее всего, устали их обрабатывать.
     
    ghostly_, Klever, ExStar и 7 другим нравится это.
  2. Empris

    Empris Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Rhyseeoo
    когда будет возможность приобрести его?
     
  3. wOnt

    wOnt Старожил Пользователь

    Баллы:
    173
    Skype:
    jeffries_
    Имя в Minecraft:
    wOnt_
    Как будто про ЯП говоришь.
     
    Последнее редактирование: 31 янв 2014
  4. Автор темы
    Toster_tpl

    Toster_tpl Старожил Пользователь

    Баллы:
    153
    Я так и не дошел до стадии его обучения:DDD
    Но за то дописал данный движок. Продавать я его не буду, а точнее это будет моим шаблоном, из которого я буду брать нужный функционал для заказчиков.
    Если кого интересует, то данный движок имеет 73 крупных функциональных модуля и ещё кучу мелких модулей и подмодулей.
    Собственно в теме уже написано множество функций, но самые интересные(их штук 10), я приберег для себя, т.к. в скором времени я собираюсь открывать сервачек и данный движок будет там использоваться в полном объеме, со всеми придуманными мной функциями.
     
    ExStar нравится это.
  5. Alex_Bond

    Alex_Bond Старожил Девелопер Пользователь

    Баллы:
    153
    Skype:
    Alex.Bond.d
    Имя в Minecraft:
    Alex_Bond_UA
    Структуру папок можно увидеть?
    Используется ли ОРМ и Фреймфорки?
    На какой версии PHP написано?
     
  6. wOnt

    wOnt Старожил Пользователь

    Баллы:
    173
    Skype:
    jeffries_
    Имя в Minecraft:
    wOnt_
    Интересная штуковина. Жаль что от дизайнеров на стороне ты отказался.
     
  7. Empris

    Empris Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Rhyseeoo
    тоесть можна будет купить только то что тебе нужно? и когда ожидаетса выход?
     
  8. Автор темы
    Toster_tpl

    Toster_tpl Старожил Пользователь

    Баллы:
    153
    - Не используются. Всё писалось с нуля и вручную.
    - 5.3
    Я отказался лишь временно, т.к. на данный момент средств еле хватает, чтобы содержать себя самого и регулярно отваливать тех.поддержке. Как увеличим объем работы/средств, так и можно будет подумать о принятии дизайнера
    В принципе да, но никакого "выхода" по сути не будет. В данный момент я целыми днями занят реорганизацией основного сайта Qexy. Когда его открытие состоится, тогда вам будет всё понятно.
    Его открытие планировалось ещё 25 января, но т.к. работы слишком много, то ничего не успели, перенесли на 1 февраля, но я думаю, что и к первому февраля, я не успею всё доделать, но постараюсь.
     
    ExStar нравится это.
  9. Миднайтко

    Миднайтко Старожил Пользователь

    Баллы:
    153
    Очередное решетцо будет?
     
  10. mcdima

    mcdima Старожил Пользователь

    Баллы:
    153
    Недооцениваешь ты великого О Тостера. :coffee:
     
  11. jwplaster

    jwplaster Старожил Пользователь

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
    Всё равно в интернете через месяц окажется...
     
  12. Alex_Bond

    Alex_Bond Старожил Девелопер Пользователь

    Баллы:
    153
    Skype:
    Alex.Bond.d
    Имя в Minecraft:
    Alex_Bond_UA
    Расширять будет геморно сильно.. Надоели эти решения "с 0"...
     
  13. mcdima

    mcdima Старожил Пользователь

    Баллы:
    153
    Окажется в интернете = окажется в суде.
     
  14. jwplaster

    jwplaster Старожил Пользователь

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
    Пфф
    Залить через интернет-кафе и всё.
    Ну или на ноутбуке к вай фаю бесплатному подъехать.
     
    Последнее редактирование: 1 фев 2014
  15. mcdima

    mcdima Старожил Пользователь

    Баллы:
    153
    Думаешь не сможем узнать кто это сделал?
    Человека можно узнать будет даже по самому ЛК.
     
  16. jwplaster

    jwplaster Старожил Пользователь

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
    Разве не помнишь , что недавно один хакер выложил в интернет исходный код основы IOS, на разработку которой Apple потратили 10 лет. Он вроде не в тюрьме.
     
  17. Миднайтко

    Миднайтко Старожил Пользователь

    Баллы:
    153
    Ха-ха... :D Перед тем как пугать судом, закон почитай. И авторское право зарегистрируй. И вотермарки сосут, достаточно иметь две одинаковые версии разных людей, KDiff, и кружку чая.
     
  18. Empris

    Empris Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Rhyseeoo
    Опять открытие сайта перенесли((( и опять перенесут наверно((( а я так ждал, хотел глянуть
     
  19. Автор темы
    Toster_tpl

    Toster_tpl Старожил Пользователь

    Баллы:
    153
    Empris, перенесли на понедельник, это последний перенос открытия. А что вы хотели там увидеть?
    Не старайся им объяснить, это отдельный контингент людей. Не поймут, пока не совершат подобную глупость и как легко это всё решается в суде. Особенно на сколько трудно придется их родителям или им самим выплачивать огромную сумму, выставленную судом. А то, что они думают, будто их "не найдут", вообще детский сад.
     
    mcdima нравится это.
  20. mcdima

    mcdima Старожил Пользователь

    Баллы:
    153
    Недавно выпустили новый Jailbreak. Хахер уже года 4 не как не попадет в тюрьму.
     

Поделиться этой страницей