Пишу олдскульный платформер с графикой из Hexen.

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 20.11.2016 (Вс) 18:14

Пишу на очередной конкурс игру, каких не делал со времён Atari130XE.
В текущей стадии врагов ещё нет, пока оттачиваю физику, жду впечатлений и советов по удобству.
Карта пока тестовая, будет перерисована полностью, для этого сделан редактор.

Скачать последнее демо (обновляется): https://yadi.sk/d/Ip_HCy5-yGPpq

Кликабельно:
Изображение
Последний раз редактировалось Mikle 26.11.2016 (Сб) 23:07, всего редактировалось 1 раз.

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 313
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Admiralisimys » 21.11.2016 (Пн) 4:48

Mikle по физике планируется коллизия с потолком (ограничит прыжок) и нижней частью лифта? Насчёт лифта правда есть игры в которых это так и задумано - тот же ёж Sonic запрыгивал на платформы с которым не было коллизии с низу.
Из не физики: открыв красным ключом нижний замок верхний уже не поддался.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 21.11.2016 (Пн) 9:32

Admiralisimys писал(а):по физике планируется коллизия с потолком (ограничит прыжок) и нижней частью лифта?

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

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

The trick
Постоялец
Постоялец
 
Сообщения: 492
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение The trick » 21.11.2016 (Пн) 13:57

Вот сейчас более удобно стало управлять, до этого в яму с огнем постоянно падал.
UA6527P

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1654
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Debugger » 21.11.2016 (Пн) 19:09

Прошел. Интересно. Планируется редактор/конструктор?

По физике.
В платформерах (по крайней мере, в которые я играл), как правило, есть хоть какое-то управление в воздухе. Тут же, запустив персонажа в прыжок, скорректировать его траекторию тяжело.
Герой почему-то начинает движение постепенно набирая скорость, но останавливается моментально. Это, вкупе с предыдущим пунктом, даёт некое ощущение "топорности" управления. Потребовалось пару минут, чтобы привыкнуть.
То, что надо про делать прыжок с лифта в UT-стиле я догадался только потому, что играл в UT. Это прикольный паззл, но нетипичное поведение для лифта.
Программист - это локальный бог (С) Я

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 21.11.2016 (Пн) 22:53

Debugger писал(а):В платформерах (по крайней мере, в которые я играл), как правило, есть хоть какое-то управление в воздухе.

В классике жанра (Preliminary Monty 16k, Mr/ Robot, Prince) аэроконтроля, на сколько помню, вообще нет, в более поздних платформерах он появился, и его стало, на мой вкус, слишком много, инерция персонажа исчезла, я постарался держаться где-то посередине.
Debugger писал(а):Герой почему-то начинает движение постепенно набирая скорость, но останавливается моментально.

А это - да, раньше он и начинал движение так же быстро, но было сложно соскакивать с края платформы вниз, получалось сильно вперёд потому, что скорость очень быстро возрастала. Я уменьшил трение при разгоне, а о торможении забыл, поправлю.
Debugger писал(а):То, что надо про делать прыжок с лифта в UT-стиле я догадался только потому, что играл в UT

Там, когда едешь вверх на лифте, при остановке ГГ немного подскакивает. Это, как бы, намекает.

Редактор есть уже, но он пока развивается вместе с игрой.

Teranas
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Teranas » 23.11.2016 (Ср) 15:51

А где вы в конкурсах участвуете, я тоже хочу попробовать, скиньте ссылки, пожалуйста... :idea:
С уважением, Андрей.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 23.11.2016 (Ср) 16:40


Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 26.11.2016 (Сб) 23:05

Появился первый монстр (кентавр), уже дерётся, но урон пока не считается, но убить таки его можно, есть кое-что другое :)
Так же ставит защиту, с щитом он будет неуязвим для удара.
Скачать 442 Кб: https://yadi.sk/d/Ip_HCy5-yGPpq

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 313
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Admiralisimys » 27.11.2016 (Вс) 17:59

Mikle спустить двух кентавров в шахту платформы что бы не преграждали проходы ;)
В локации с двумя платформами платформа с меньшим диапазон ездит синхронно с большим
Two_platforms.jpg
У вас нет доступа для просмотра вложений в этом сообщении.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 27.11.2016 (Вс) 18:44

Admiralisimys писал(а):В локации с двумя платформами платформа с меньшим диапазон ездит синхронно с большим

Там все лифты автоматом держат уровень игрока.
Admiralisimys писал(а):спустить двух кентавров в шахту платформы что бы не преграждали проходы

Одного можно в огонь скинуть.

Есть второй монстр, стреляет, сложный: https://yadi.sk/d/Ip_HCy5-yGPpq

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 02.01.2017 (Пн) 22:55

Чуть не забыл. Пока форум лежал в ауте, конкурс завершился, по ссылке в первом сообщении можно скачать релизную версию игры.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1654
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Debugger » 03.01.2017 (Вт) 0:51

Прошел игру. Было непросто: надо было освоиться с управлением, выучить повадки врагов, сколько каждый занимает выстрелов или ударов - в общем, очень прикольно.

Очень интересные решения вроде врага, скорострельность которого по сути зависит от дистанции до игрока, платформы, опускающейся в огонь.

Из минусов - понадобилось время, чтобы освоиться с управлением. Отсутствие контроля в воздухе и нижней части хитбокса стен - это фишки, но к которым надо было привыкнуть.

Как сам конкурс, как итоги?
Программист - это локальный бог (С) Я

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 03.01.2017 (Вт) 9:13

Debugger писал(а):Как сам конкурс, как итоги?

Итоги подводятся до 9 января, сейчас идёт голосование.
Debugger писал(а):выучить повадки врагов, сколько каждый занимает выстрелов или ударов - в общем, очень прикольно.

Обратил внимание, что Кентавр после удара некоторое время защищается щитом? Эту фишку я сделал, но, кажется, должным образом не обыграл.
Debugger писал(а):Из минусов - понадобилось время, чтобы освоиться с управлением.

Я дал множество вариантов управления, но, всё-таки, лучше было дать полноценную кастомизацию. Руки не дошли.
Debugger писал(а):Отсутствие контроля в воздухе и нижней части хитбокса стен - это фишки, но к которым надо было привыкнуть.

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

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1654
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Debugger » 03.01.2017 (Вт) 10:50

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

*Забыл отметить: сначала не разобрался, за что отвечают чекпоинты. Думал, это порталы, и надо что-то нажать, чтобы в них зайти. Не хочешь как-то подсказывать игроку, что они делают? Например, менять их цвет, выводить подсказку, или добавить какой-нибудь спецэффект, когда он их касается?

**Первые разы умирал из-за того, что стрелял шифтом, и постоянно всплывала подсказка о залипании клавиш :D
Программист - это локальный бог (С) Я

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3733
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Mikle » 03.01.2017 (Вт) 11:32

Debugger писал(а):Кентавр - да, но это больше похоже на просто анимацию при получении урона. Кентавры сейчас не очень интересные соперники, которые уничтожаются затыкиванием кнопки Ctrl (хотя зажатая кнопка имеет тот же эффект - но интереснее же нажать её много раз, да? : ). Пока они не поставлены на узкую платформу, или в пару со стреляющим монстром, угрозы не представляют. Как идея - сделать так, чтобы они иногда щитом закрывались на несколько секунд просто при виде игрока. И, например, если игрок попытается ударить их в таком положении, нанести урон игроку - это быстро заставит думать.

Их ещё прикольно сталкивать в огонь.
Заставить их более умно защищаться - мысль правильная.
Debugger писал(а):Забыл отметить: сначала не разобрался, за что отвечают чекпоинты. Думал, это порталы, и надо что-то нажать, чтобы в них зайти. Не хочешь как-то подсказывать игроку, что они делают? Например, менять их цвет, выводить подсказку, или добавить какой-нибудь спецэффект, когда он их касается?

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

Я в своей Винде это давно вырубил, интересно, можно ли это вырубить из программы локально, для неё самой?

Teranas
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Пишу олдскульный платформер с графикой из Hexen.

Сообщение Teranas » 04.02.2017 (Сб) 14:37

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

Код: Выделить всё
  Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

    Private Const SPI_GETFILTERKEYS = &H32&
    Private Const SPI_SETFILTERKEYS = &H33&
    Private Const SPI_GETTOGGLEKEYS = &H34&
    Private Const SPI_SETTOGGLEKEYS = &H35&
    Private Const SPI_GETSTICKYKEYS = &H3A&
    Private Const SPI_SETSTICKYKEYS = &H3B&

    Private Const SKF_STICKYKEYSON = &H1&
    Private Const TKF_TOGGLEKEYSON = &H1&
    Private Const SKF_CONFIRMHOTKEY = &H8&
    Private Const SKF_HOTKEYACTIVE = &H4&
    Private Const TKF_CONFIRMHOTKEY = &H8&
    Private Const TKF_HOTKEYACTIVE = &H4&
    Private Const FKF_CONFIRMHOTKEY = &H8&
    Private Const FKF_HOTKEYACTIVE = &H4&

    Public Type SKEY
        cbSize As Long
        dwFlags As Long
    End Type

    Public Type FILTERKEY
        cbSize As Long
        dwFlags As Long
        iWaitMSec As Long
        iDelayMSec As Long
        iRepeatMSec As Long
        iBounceMSec As Long
    End Type

    Private StartupAccessibilitySet As Boolean
    Private StartupStickyKeys As SKEY
    Private StartupToggleKeys As SKEY
    Private StartupFilterKeys As FILTERKEY

Public Sub Main()
  ToggleAccessibilityShortcutKeys True
End Sub

Public Function ToggleAccessibilityShortcutKeys(ReturnToStarting As Boolean) As Long
  Dim ret As Long, skOff As SKEY, tkOff As SKEY, fkOff As FILTERKEY
  Dim SKEYSize As Long, FKEYSize As Long
  SKEYSize = Len(StartupStickyKeys) * 2
  FKEYSize = Len(StartupStickyKeys) * 6

        If (Not StartupAccessibilitySet) Then
            StartupStickyKeys.cbSize = SKEYSize
            StartupToggleKeys.cbSize = SKEYSize
            StartupFilterKeys.cbSize = FKEYSize
            ret = SystemParametersInfo(SPI_GETSTICKYKEYS, SKEYSize, StartupStickyKeys, 0)
            ret = SystemParametersInfo(SPI_GETTOGGLEKEYS, SKEYSize, StartupToggleKeys, 0)
            ret = SystemParametersInfo(SPI_GETFILTERKEYS, FKEYSize, StartupFilterKeys, 0)
            StartupAccessibilitySet = True
        End If

        If (ReturnToStarting) Then
            ' Restore StickyKeys/etc to original state and enable Windows key
            ret = SystemParametersInfo(SPI_SETSTICKYKEYS, SKEYSize, StartupStickyKeys, 0)
            ret = SystemParametersInfo(SPI_SETTOGGLEKEYS, SKEYSize, StartupToggleKeys, 0)
            ret = SystemParametersInfo(SPI_SETFILTERKEYS, FKEYSize, StartupFilterKeys, 0)
        Else
            ' Disable StickyKeys/etc shortcuts but if the accessibility feature is on,
            ' then leave the settings alone as its probably being usefully used
            skOff = StartupStickyKeys
            If ((skOff.dwFlags And SKF_STICKYKEYSON) = 0) Then
                ' Disable the hotkey and the confirmation
                skOff.dwFlags = SKF_HOTKEYACTIVE Or SKF_CONFIRMHOTKEY
                ret = SystemParametersInfo(SPI_SETSTICKYKEYS, SKEYSize, skOff, 0)
            End If

            tkOff = StartupToggleKeys
            If ((tkOff.dwFlags And TKF_TOGGLEKEYSON) = 0) Then
                ' Disable the hotkey and the confirmation
                tkOff.dwFlags = TKF_HOTKEYACTIVE Or TKF_CONFIRMHOTKEY
                ret = SystemParametersInfo(SPI_SETTOGGLEKEYS, SKEYSize, tkOff, 0)
            End If

            fkOff = StartupFilterKeys
            If ((fkOff.dwFlags And FKF_FILTERKEYSON) = 0) Then
                ' Disable the hotkey and the confirmation
                fkOff.dwFlags = FKF_HOTKEYACTIVE Or FKF_CONFIRMHOTKEY
                ret = SystemParametersInfo(SPI_SETFILTERKEYS, FKEYSize, fkOff, 0)
            End If
        End If
End Function

С уважением, Андрей.


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList