Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Сетевая игра

Автор: Анна 3.09.2009 0:58

Подскажите какую сетевую игру можно написать на паскале?
Наиболее распространненые игры и попроще в написании

Автор: Unconnected 3.09.2009 15:52

Ну, по-моему, паскалевский аналог "Танчиков" был бы интересен (сетевой). Только вот насчёт сложности его реализации не знаю, на паскале с сетью не работал.

Автор: TarasBer 7.09.2009 23:26

Ну если на простом Паскале...
У меня многие знакомы делали дёшево и сердито.
Соединяли компы в сеть, создавали сетевой диск, который виден с обоих компов. Естественно, паскалевская программа тоже имеет к нему доступ через банальные Assign(F, FileName). Вот и писалась игра таким образом - с обменом данных через сетевой диск.
Правда скорость не очень. Но для пошаговых игр должно хватить. Вот тут правильно заметили про танчики (типа Worms).

Автор: amega 8.09.2009 0:11

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

Автор: andriano 14.09.2009 15:31

Если имется в виду BP for DOS, то использовал протокол IPX, при этом, правда, на обеих машинах был не "голый DOS", а DOS-сессия Win9x.
Если же имеется в виду какой-либо 32-разрядный компилятор под Win или Linux, то для динамических игрушек можно посоветовать UDP, а для логических (или походовых) - TCP.

По поводу игр:
Динамическая: какая-либо игра, где тем или иным образом соревнуются/сражаются 2 или несколько игроков. Игровое поле общее для всех и целиком помещается на экран (2D).
Логическая: реализация какой-нибудь классической карточной игры, либо шахмат, шашек, etc.

Автор: Анна 17.09.2009 19:23

А "крестики-нолики" на паскале или делфе есть примеры у кого? smile.gif

Автор: amega 17.09.2009 21:37

крестики нолике по сети или так на одном кампекампе?

Автор: Анна 6.12.2009 17:46

Компьютер - Компьютер.
С использованием сокетов.

Автор: Unconnected 7.12.2009 17:06

Крестики-нолики с полем 3 на 3?

Автор: Shuruper 7.12.2009 18:35

Алгоритм для пошаговой очень прост. Во первых соединяемся с помощью assign с сетевым ресурсом.
Запоминаем некий файл game.txt Затем после каждого хода игроков вносим в этот файл необходимые изменения.
На практике это выглядит так:
Есть сетевой ресурс напр. ftp://mygame.net/ .
На ресурсе лежит файл game.gm с неким число.
Пользователь соединяется с файлом game.gm и проводит необходимые операции после чего файл game изменяется в зависемости от введенной информации.
Когда цель игры осуществлена всем игрокам выводится файл с их именами и местами.


Конечно я описал простейший случай но для начала такой способ самый оптимальный.

Автор: Анна 7.12.2009 20:52

Цитата(Unconnected @ 7.12.2009 14:06) *

Крестики-нолики с полем 3 на 3?

да, самые обычные крестики-нолики для игры по сети между двумя компьютерами.
Shuruper, мне не нужен доп. сервер. Нужен простой пример данной игры.
Где есть поле 3 на 3. На обоих ПК запускается приложение, пользователи выбирают друг друга и играют.

Автор: Unconnected 7.12.2009 21:17

Позднее уточнение:) Набросал тут крестики-нолики через сокеты на делфи, с задаваемым количеством клеток и длиной выигрышной линии. Игра сама реализована, только вот программа не показывает, когда складывается выигрышная линия. Если хочешь, доделай сама, я в любом случае приду попозже и сделаю.

Исходники в аттаче(не забудь проверить, установлены ли у тебя TClientSocket и TServerSocket).


Автор: Анна 17.12.2009 1:19

Господа, такой вопрос: как сделать, чтобы при потере соединения вылазила ошибка, что соединение потеряно?

Автор: andriano 17.12.2009 1:27

Ну, наверное, предусмотреть постоянный периодический обмен пакетами. Если в течение таймаута пакет не пришел, соединение потеряно.

Автор: Unconnected 17.12.2009 1:34

В моём варианте достаточно повесить на событие OnDisconnect сокетов вылет окошка с ошибкой.

{доделывать не стал, общался с Анной в ICQ, ей немного другое надо, а точнее целая курсовая}

Автор: Анна 17.12.2009 1:48

Курсовая пишется уже мной smile.gif Вот на этом пока встала.