Понедельник, 08 Сентября 2025, 17:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
DeswingДата: Воскресенье, 26 Декабря 2010, 00:32 | Сообщение # 581 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
немного переназвал тему happy
Блин! Я так и не понял что такое
setnagle(socket, false); ...
И скорее всего значение
break;
я как-то не так понял


Сообщение отредактировал Deswing - Воскресенье, 26 Декабря 2010, 00:34
DeswingДата: Воскресенье, 26 Декабря 2010, 00:23 | Сообщение # 582 | Тема: Сколько участников состоит в вашей команде?
заслуженный участник
Сейчас нет на сайте
Двое (работающих, когда-то было трое)
Я - программист, Бомбер - компазитор
DeswingДата: Воскресенье, 26 Декабря 2010, 00:20 | Сообщение # 583 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
Quote (Gefre)
У меня есть желание, но я уже попросился уже в другую команду(там надеюсь научусь), но возможно если твоя команда будет Орденом Независимых Игроделов, то приду к вам.

так и есть, мы независимы! Мне все равно на национальность, родной язык, используемое ПО и вход в другие команды! Мы независимы! Независимы от других команд, несем всю тяжесть только на себе! smile
Quote (Gefre)
Извиняю, оказывается кто-то меня уже опередил

Ничего страшного) И кстать насчет двух месяцев - ты загнул! За неделю ты уже научишься ммо делать wink


Сообщение отредактировал Deswing - Воскресенье, 26 Декабря 2010, 00:22
DeswingДата: Воскресенье, 26 Декабря 2010, 00:11 | Сообщение # 584 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
Quote (zik13)
а когда

я когда статью писал болела голова... Ну не знаю... В диапазоне 11:00-18:00
DeswingДата: Воскресенье, 26 Декабря 2010, 00:10 | Сообщение # 585 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
Quote (Gefre)
Кстати благодаря статье Deswing, инет сообщество через несколько месяцев увидет онлайн игру написанную школьником, но это только в будущем, пока этому школьнику надо в совершенстве овладеть гамаком.

Извини конечно... Но я, о великий школьни4ег, уже ммо написал biggrin
Как только допишу статью и доделаю пример ММОРПГ команда Game-Mix превратится в О.Н.И. (Орден Независимых Игроделов) и начнем делать ммо. Если желаете - милости просим
DeswingДата: Воскресенье, 26 Декабря 2010, 00:05 | Сообщение # 586 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
Quote (Gefre)
В том и дело, что не забьют. Будут тырить код из чужих исходников или сидеть на конструкторах без скриптовых языков.

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

ну тут все дело в логике... Советую завести тетрадку со своими "идеями" и реализацией (возможной)
Quote (Gefre)
P.S. Deswing, у тебя хорошо получается писать статьи для новичков, можешь даже учебник написать по GM, я бы точно его читал.

спасибо большое, не ожидал happy
Quote (simtiko)
Deswing, Отличная статья, молодец. +

Спасибо

Добавлено (26.12.2010, 00:05)
---------------------------------------------

Quote (zik13)
я хоть и нуп но тупо код копировать не буду буду сидеть прилипший к монитору и разбираться )) статья супер +++++

пока детально изучи код. Завтра напишу как сервер написать) Тут всё "считывание" идет через циклы и таймер
DeswingДата: Суббота, 25 Декабря 2010, 23:38 | Сообщение # 587 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
Gefre, тогда пусть они забьют на геймдев вообще! Спасибо за +) Завтра про сервер напишу и покажу как сделать авторизацию
DeswingДата: Суббота, 25 Декабря 2010, 23:21 | Сообщение # 588 | Тема: Вопрос - ответ по 39DLL
заслуженный участник
Сейчас нет на сайте
MIKEL922, значит мясо-леталки х)))) Ну это все без проблем... А вот создание сервера - хз
DeswingДата: Суббота, 25 Декабря 2010, 23:05 | Сообщение # 589 | Тема: Вопрос - ответ по 39DLL
заслуженный участник
Сейчас нет на сайте
MIKEL922, без квестов? Одно мясо?
DeswingДата: Суббота, 25 Декабря 2010, 22:57 | Сообщение # 590 | Тема: Вопрос - ответ по 39DLL
заслуженный участник
Сейчас нет на сайте
Quote (MIKEL922)
И у меня вопрос, есть ли человек которое сам бы сделал к моей уже готовой игре, сетевую, чтобы там был списки серверов, можно было создавать сервера. заплачу 25% от издание игры! И еще знаете хостинг куда можно класть свою игру чтобы она была все время запущена, тоесть для сервера, желательно бесплатный, но и от платного не откажусь.

никаких хостингов! Хостинги - только для сайтов! Надо заказавать в Дата-центре ячейку, а потом туда впихивать свой комп с сервером.. smile
Конечно можно переписать... Но это скорее всего переписывать ВСЮ игру... Денег хватит?))


Сообщение отредактировал Deswing - Суббота, 25 Декабря 2010, 22:57
DeswingДата: Суббота, 25 Декабря 2010, 22:51 | Сообщение # 591 | Тема: Делаем свою первую MMO на GameMaker 8.0 №1! (+39dll)
заслуженный участник
Сейчас нет на сайте
В последнее время создавать онлайн игры на GameMaker стало очень популярно... Но, к сожалению, не все могут разобраться в 39dll (так называется доп. библиотека для сетевых соединений). В этой статье я покажу как создать online TDS!
Для начала давайте подумаем... Что это за связь - клиент-сервер?

На данной таблице мы видем один сервер и трое игроков (клиентов), которые зашли в игру... Давайте копнём чуть глубже? Здесь сервер - центр. Тоесть обмен данных идет только через сервер! Например чтобы передать переменную image_angle клиенту надо отправить информацию серверу, потом сервер должен прочесть этот "пакет" и отправить другим (а они тоже должны прочесть). Если так подумать - одну и туже переменную надо будет вписывать в 4-ех местах! Ну ничего... Мы ведь на энтузиазме убийцу WoW делаем, да? biggrin

Начнем же писать код! Для начала скачайте архив(зеркало №2) с 39dll и проектом со скриптами...
Итак, вы скачали архив. Теперь разархивируйте и запустите проект gmk! Проект полностью пустой, одни только Script'ы загружены...
Для начала напишем клиент игры! Создайте обьект objControl и в событии create (создание) вставьте код:

Code
dllinit(0, true, true); //Подключаем 39dll (библиотека должна быть в папке с игрой (проектом)!!!)
ip = get_string("Enter address to connect to", "127.0.0.1");  //Присваиваем переменной ip адрес сервера, на котором будем играть (через get_string)
port = get_integer("Enter port to connect to", 14804);  //По какому порту играем (если на сервере будет 14804 - оставляем)
nick = get_string("Введите свой ник", "newPlayer"); //Присваиваем себе ник
socket = tcpconnect(ip, port, 1);   //По переменным (смотрите выше) ip, port пытаемся подключиться к серверу
if(!socket)   //Если не удалось
{
        error_message("Unable to connect to server"); //Показываем ошибку
        exit; //И выходим
}
setnagle(socket, false);  //Без коментариев, для меня это - темный лес
//Отправляем свой ник
clearbuffer(); //Чистим буффер (чтобы не глючило, поменьше мусора)
writebyte(playernick);       
writestring(nick, true);
sendmessage(socket);

//Добавляем в Playerlist
for(i = 0; i < 256; i += 1)
        players[i] = -1;
              
i = instance_create(32, 32, objPlayer);

Пишем в step (шаг)

Code
while(1)                           //Начинается бесконечный цикл http://ru.wikipedia.org/wiki/Бесконечный_цикл
{
        size = receivemessage(socket);    //Получить следующее сообщение в очереди
        if(size < 0)break;               //Если не получили сообщение, то выходим из цикла
        if(size == 0)                    //Если отключились от сокета - выходим
        {
          instance_destroy(); //уничтажаем обьект (а при уничтожении рассмотрим код ниже)
          break;
        }
        mid = readbyte();     //Прочитать сообщение (readbyte() читает данные)
              
        switch(mid)
        {
          case newplayer:
            pid = readbyte();       //Читаем данные, которые отправил нам сервер (у нас это - playerid)
            player = instance_create(0, 0, objRemote); //Создаем objRemote (remote player)
            player.x = readshort(); //Читаем координаты х
            player.y = readshort(); //Читаем координаты у
            player.nick = readstring(); //Читаем ник (переменную)
            players[pid] = player;  //Добавляем в playerlist
          break; //Если не ошибаюсь, то разрыв соединения
                
          case playerlocation:
            player = players[readbyte()];   //Смотрим айди персонажа в playerlist
            player.x = readshort();         //set x
            player.y = readshort();         //set y
          break;
                
          case exitgame:
            player = players[readbyte()];   //получить идентификатор игрока из playerlist
            with(player)instance_destroy(); //Уничтожаем
          break;
                
          case playernick:
            player = players[readbyte()];   //Получить идентификатор игрока из playerlist
            player.nick = readstring();     //Смотрим никнейм
          break;
        }
}

Ура! Мы научились читать переменные, которые отправил сервер! Для профилактики objRemote - Это другой игрок, а objPlayer - это игрок с нашей стороны (мы им управляем)
Событие User Defined 0
Code
clearbuffer();
writebyte(exitgame);
sendmessage(socket);
sleep(100);
closesocket(socket);
dllfree();

Событие Destory (Уничтожение)
Code
event_user(0);

Game End
Code
event_user(0);

  • Урааа! Мы вписали все в обьект objControl!
    Теперь возьмемся за нашего игрока, которым будем управлять! ObjPlayer!
    Создайте обьект objPlayer и в create (создание) пишем:
    Code
    alarm[0]=1; //Запускаем будильник №0

    В alarm 0 (Будильник №0):
    Quote
    //Отправляем переменные objPlayer серверу
    clearbuffer(); //Перед отправкой чистим буффер
    writebyte(playerlocation); //отправляем playerlocation
    writeshort(x); //Отправляем координату х
    writeshort(y); //Отправляем координату у
    sendmessage(objControl.socket); //Всё это отправляем серверу

    alarm[0] = 2; //опять запускаем будильник (получается таймер... Даже цикл)))


    Дальше можете в коде GML (как вам удобнее) придумать перемещение (мы уже приписали отправку координат, теперь надо управление придумать)
    Я сделаю самое простое
    Right:
    Quote
    x+=6

    Left:
    Code
    x-=6

    Up:
    Quote
    y+=6

    Down:
    Code
    y-=6

  • Тадамс №2!))) Мы создали обьект игрока! Теперь возьмемся за других игроков (objRemote)
    создаем, как всегда, обьект objRemote! Вы надеюсь не забыли? Как получаем переменные к нему? Ммм? Смотрим выше если что ^__^
    Создание (create)
    Code
    nick = ""; //Переменная никнейма

    Draw (Рисуем)
    Code
    draw_sprite(sprite_index, image_index, x, y);
    draw_text(x, y, nick); //по х у, относительно спрайта, пишем свой ник!

  • Гааа! *-* Вааа! *_* Мы написали клиент! Как написать сервер - http://gcup.ru/forum/36-11940-1#182295

    Сообщение отредактировал Deswing - Воскресенье, 26 Декабря 2010, 13:53
  • DeswingДата: Суббота, 25 Декабря 2010, 22:11 | Сообщение # 592 | Тема: Вопросик по 39dll
    заслуженный участник
    Сейчас нет на сайте
    AGENTX001, не совсем...
    DeswingДата: Суббота, 25 Декабря 2010, 22:03 | Сообщение # 593 | Тема: 39 dll
    заслуженный участник
    Сейчас нет на сайте
    zik13, жди статью, уже пишу...
    DeswingДата: Суббота, 25 Декабря 2010, 22:02 | Сообщение # 594 | Тема: Вопросик по 39dll
    заслуженный участник
    Сейчас нет на сайте
    Quote (AGENTX001)
    и ещё по каим урокам вы учились?

    справка 39dll + basicmmorpg.
    Разницы между dll и gex нет. Разница может быть только в версии 39dll.
    Quote (AGENTX001)
    нашол ток одно отличие - наличие функции dllinit()

    их масса. Открой свои Script's и сравни
    DeswingДата: Пятница, 17 Декабря 2010, 23:49 | Сообщение # 595 | Тема: А вы откуда?
    заслуженный участник
    Сейчас нет на сайте
    Quote (bars)
    Луганск(Украина)

    живу в Луганске =))
    DeswingДата: Четверг, 16 Декабря 2010, 21:41 | Сообщение # 596 | Тема: Орден Независимых Игроделов.
    заслуженный участник
    Сейчас нет на сайте
    Quote (Onerino_hano)
    Нет. Э отрывки которые помню. Какие 200+ строк? Ты прям Данцова. Напишешь много, а смысла(Качества и т.д.) нуль.

    Факты? Я грамотно пишу, в отличии от других...)
    Нуль О.о
    DeswingДата: Четверг, 16 Декабря 2010, 20:16 | Сообщение # 597 | Тема: Орден Независимых Игроделов.
    заслуженный участник
    Сейчас нет на сайте
    Onerino_hano, это сценарий? Боже упаси... За час времени я могу написать вам 200+ строк, а вы написали что-то там О.о Я молчу о наличии диалогов и эмоций

    Добавлено (16.12.2010, 20:16)
    ---------------------------------------------
    Vorobushek, даешь пример Photoshop'a и 3ds Max'a

    DeswingДата: Среда, 15 Декабря 2010, 17:55 | Сообщение # 598 | Тема: Поразительный проект.
    заслуженный участник
    Сейчас нет на сайте
    DeswingДата: Вторник, 14 Декабря 2010, 16:21 | Сообщение # 599 | Тема: Орден Независимых Игроделов.
    заслуженный участник
    Сейчас нет на сайте
    Vip_Scenarist, жду. >_> (Сюжет не читал, а уже сценарии рубишь)
    DeswingДата: Понедельник, 13 Декабря 2010, 22:54 | Сообщение # 600 | Тема: Орден Независимых Игроделов.
    заслуженный участник
    Сейчас нет на сайте
    Нуждаюсь в помошнике!

    Нужен человек, который может хорошенько упаковать мои идеи и мысли... Поможет собирать инфу, писать запросы в MySQL. Вроде бы пустяк, но этот "пустяк" нужен в команде

    Поиск:

    Все права сохранены. GcUp.ru © 2008-2025 Рейтинг