среда, 20 июля 2011 г.

Воплощение маленькой идеи

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

Название игры  "Ring of Asteroids"  придумалось вместе с картинкой геймплея.
Действие происходит в 2D космосе, при входе в игру игроку даётся корабль, расположенный на определённой локации, куда так же помещаются и противники. И конечно всё по сети, я как-то без этого в последнее время не могу) Нужно будет летать, стрелять/воевать с остальными.
Акцент делаю на то, что игрок сможет запустить игру, ввести ник и без всякого пароля присоединиться к баталии. А т.е. получается своего рода fastgame - шутер/леталка без заморочек.

И так, что я сделал за 2 дня.
Для начала побольше поработал над созданием космоса с далёким двигающимся фоном и со звёздами на разном расстоянии, вообщем старался сделать красиво) Этого добился раскиданными на разной Z-глубине спрайтами.
Потом создал корабль и подбирал ему параметры полёта, чтоб было всё плавно и по фень-шую. И ещё чутка покрутил с камерой, чтобы она опережала корабль по движению прямопропорционально скорости корабля. В основном все плавности сделал линейной интерполяцией позиций фигурирующих объектов, т.е. ничего сложного.
Вот как раз видео с небольшим fps(из-за фрапса) того что получилось:


 



И сейчас приступаю к написанию сетевой части, начну с сервера, а потом уже трансформирую имеющуюся локальную версию в сетевой клиент.
По поводу сети, то тут 100% надо использовать UDP, т.к. игра в RealTime'е. Кодить буду как всегда на WinSockApi, думаю тут можно будет обойтись первой(1.1) версией библиотеки.

Вообщем буду постить на эту тему по ходу создания и буду рад если это кому-то поможет.

8 комментариев:

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

    ОтветитьУдалить
  2. Насчёт камеры я вспомнил игру GTA1, там как раз было весьма удобно такое поведение камеры, да и логично, типа разгоняешся и видиш на опережение.
    На видио из-за малого фпс камера почему-то очень сильно забегАла вперёд, а так-то она совсем не сильно опережает.
    Сначало планирую просто стрелялку, ну а потом поглядим... так-то думаю было бы здорово залетать на планеты и всё такое)

    ОтветитьУдалить
  3. UDP ведь не гарантирует доставки? При пропадании пакета будешь интерполировать движение?

    (Я не спец в сети, скорее даже абсолютный ламер).

    Идея классная. Fastgame (вводишь ник и играешь) - это в общем-то контр-страйк :)

    ОтветитьУдалить
  4. Предлагаю повесить движение корабля на стрелки/wsad, а камеру - на мышь. Чтобы можно было двигать камеру так, как удобно игроку.

    ОтветитьУдалить
  5. Интересно, с какой скоростью должен двигаться корабль, чтобы звезды двигались относительно него?=)

    ОтветитьУдалить
  6. Мне понравилась сама идея и видео.
    Наверно в данном 2д космосе не работаю законы физики и там тела имеющие массу могут не то что достигать, а превышать скорость света в сотни раз XD

    ОтветитьУдалить
  7. perfect daemon, тут что грится нужно будет смотреть по обстоятельствам, но в любом случае на клиенте будет сглаживающая интерполяция движений.
    Движение корабля уже висит на клавишах, но вот прицеливание мышью мне кажется какбы слишком лёгким... т.е. куда большего искусства можно достигать в прицеливании клавишами)

    Марцелл, не совсем понял вопрос... Двигались относительно него как, очень быстро?)

    VandB, для больших скоростей нужны большие двигатели) но разные тела, такие как астероиды и планеты с гравитационным влиянием на корабли, планируются)

    ОтветитьУдалить
  8. perfect daemon, сначало не так понял насчёт мыши и ответил по поводу прицеливания и стрельбы мышью) а насчёт камеры мышью, то можно подумать/потестить.

    ОтветитьУдалить