Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!
7 900 ₴

Написать на C++ плугин для GODOT для OK.RU $300

closed without completion


Написать на C++ плугин для GODOT

Пример готового плугина для Facebook: https://github.com/DrMoriarty/godot-facebook
Нужно тоже самое, только для Одноклассников.
На выходе:
1. Исходники плугина

2. Собранный GODOT Android экспорт(release и debug версия) под архитектуры armeabi-v7a, arm64-v8a, X86, X86_64
3. Собранный GODOTредактор для Windows x64


  1. 123 days12 345 ₴
    Alex Maslakov
     294 

    Ты и тут тоже? Ох напишу плугин и буду продавать сам.

    ------------------------------------------------------------------------------------

    авыфавыфавыфав

    Georgia Тбилиси | 24 May at 23:48 |
  • Anton Kravtsov
    Complain | 26 May at 15:21 |

    Собранный GODOTредактор для Windows x64 

    Возможно, я не в теме, но какое отношение GODOT-редактор (под Windows) имеет к plugin'у, который собирается только для Android?

    На оф.странице можно скачать сам Godot Engine (уже собранный), в который, насколько я понимаю, включен и сам 2редактор".

  • Анатолій Бутирський — project author
    Complain | 26 May at 15:39 |

    Добрый день.
    Дело в том, что редактор GODOT написан на самом движке GODOT.
    Движок GODOT это как ядро ОС, а редактор как графическая оболочка или Эксплоер, в зависимости что легче для понимания.
    Можно сказать редактор GODOT это игра на движке GODOT, которая помогает вам делать макет игры(саму игру), который будет выполнять движок GODOT.

    Пересобрав редактор GODOT под Windows с плугином, плугин внедрится в движок и в редактор и не будет ругаться на обращение в коде на методы плугина как я понял.

    Вот видео как пишутся плугины для GODOT: https://www.youtube.com/watch?v=LFtNGsjM8Js

    В следующей версии 3.2 плугин можно будет скомпилировать как отдельный модуль и цеплять его на лету в редакторе. Но я думаю 3.2 закончат месяцев через 9-12.
    Мне нужно сейчас. Я сам собирал редактор под Windows и экспорт под HTML5
    Ничего сложного.

  • Anton Kravtsov
    Complain | 26 May at 16:15 |

    Спасибо за пояснения.

    Вот видео как пишутся плугины для GODOT: https://www.youtube.com/watch?v=LFtNGsjM8Js  

    В этом видео показана статическая компоновка движка с игрой, но, судя по документации , есть возможность динамической компоновки (документация под версию 3.0, так что, наверное, это уже работает).

    В видео, кстати, не раскрыты особенности поддержки Android - это есть в документации.

    У OK есть Android SDK, который просто так под Windows не получится использовать (наверное, придётся через REST API морочиться).

    В общем, порядочно работы 🙂

  • Анатолій Бутирський — project author
    Complain | 26 May at 16:28 |

    Вот пример PHP скрипта, которым я пользуюсь лет 5 который, делает весь REST для VK:

    Функционально в плугине мне нужно тоже самое: метод rest(api_method, params) и чтобы колбеки привязать можно было. Все. Даже требуется чтобы ответ от REST не парсился, а в виде JSON строки передавался аргументом колбеку.
    Парсить буду в GODOT сам.


    class vkapi {

            var $api_secret;

            var $app_id;

            var $api_url;

            var $tries;


            function vkapi($app_id, $api_secret, $api_url = 'api.vk.com/api.php') {

                    $this->app_id = $app_id;

                    $this->api_secret = $api_secret;

                    if (!strstr($api_url, 'http://')) $api_url = 'http://'.$api_url;

                    $this->api_url = $api_url;

                    $tries = 0;

            }


            function api($method,$params=false) {

                    if (!$params) $params = array();

                    $params['api_id'] = $this->app_id;

                    $params['v'] = '3.0';

                    $params['method'] = $method;

                    $params['timestamp'] = time();

                    $params['format'] = 'json';

                    $params['random'] = rand(0,10000);

                    ksort($params);

                    $sig = '';

                    foreach($params as $k=>$v) {

                            $sig .= $k.'='.$v;

                    }

                    $sig .= $this->api_secret;

                    $params['sig'] = md5($sig);

                    $query = $this->api_url.'?'.$this->params($params);

                    $res = file_get_contents($query);

                    if ((strpos($res, 'Too many requests per second') !== false) && ($this->tries < 5)) {

                            $this->tries++;

                            usleep(400000+($this->tries * 120000));

                            $res = api($method, $params);

                    } else {

                            $this->tries = 0;

                    }

                    //return json_decode($res, true);

                    return $res;

            }


            function params($params) {

                    $pice = array();

                    foreach($params as $k=>$v) {

                            $pice[] = $k.'='.urlencode($v);

                    }

                    return implode('&',$pice);

            }

    }