Сделал на Tic80 полноценный задник и лого с помощью своего архиватора.
Хотел успеть на конкурс 1-button на itch.io, но опять опоздал, хотя это уже классика.)
Зато сделал прикольную концепцию RPG на одну кнопку, бой происходит автоматически при столкновении, а поворачиваться в другую сторону, нажав второй раз прыжок в воздухе.
И очень жаль, что тут мало места под спрайты.
WIP Пре-Альфа Демка
- 01 декабря 2019, 20:12
- 08
Хочется найти точно такой же удобный движок, как Tic80, только с неограниченным количеством строк кода и неограниченным числом спрайтов.
Чем Tic80 удобнее Unity (которым я обычно пользуюсь):
1) Я могу сразу создавать глобальные переменные. Не создавая объекты на уровне, на котором буду вешать скрипт, чтобы потом заботиться о том, чтобы случайно не удалился этот объект, делая его
DontDestroyOnLoad и другие нудные мелочи.
Ещё как-то можно сделать чтобы скрипт загружался автоматически без объекта, но я не особо программист, чтобы заботиться о таких сложных вещах.
2) В Tic80 c Тайлсетом вообще нет никаких проблем. Не нужно париться о многих мелочах, чтобы случайно где-то полпикселя не торчало, в юнити с тайлами постоянно такая вещь твориться.
3) Я могу сразу рисовать спрайты и писать текст, без создания каких-либо объектов.
Вот бы такую опцию в Unity, я весь интернет облазил, чтобы найти какой-нибудь плагин,
для мгновенного рисования спрайтов и текста без создания объектов.
Возможно Game Maker может это всё, но я пока не освоил код, туториалы ищу разные.
Love2D, тоже с Lua, но я не люблю подключать библиотеки, и не очень легко настроить мой любимый
вид - оконный режим с возможностью как угодно увеличивать окно, и чтобы пиксели оставались чёткими.
А ещё в Love2D, нет встроенных редакторов карты, неудобно, каждый раз туда сюда карту перегонять,
да и придётся подключать всякие плагины, и это лишний головняк.
судя по написанному выше гамак и юнити очень похожи (но нет)
Судя по тому что ты написал выше - Love2D как раз тебе надо.
Подключать библиотеки не обязательно, можно все самому написать.
Уровень можно прямо в коде записать. Или рисовать уровень в виде картинки с пикселями разного цвета, а потом читать эти пиксели и воспринимать их как клетки уровня.
придётся всё самому написать
FIXED
не сдавай меня!
лол)
А с новыми обновлениями, Love2D стал проще за последний год?
Просто я как-то давно качал, потыкал, ничего не понял и выключил,
в отличии от Tic80, где втянулся за секунды, потому-что в первом примере было всё необходимое,
для того чтобы делать простые игры.
Насколько легко в Love2D сделать:
1) чтобы экран игры был размером 240 на 160 пикселей (например, или другого низкого разрешения)
2) Оконный режим игры, с включенной кнопкой Resize Windows и возможностью как угодно растягивать окно,
при этом чтобы пиксели оставались перфектными, и лишнее на экране обрезалось
3) много ли кода писать, чтоб такое сделать?
Это мой самый любимый режим игры, для Low Pixel игр, но по умолчанию, что у Game Maker,
что у Love2D игра запускается в неприятном для меня режиме - оконный режим, где нельзя управлять размером и растягивать окно на всё пространство. Не знаю почему разработчики думают, что этот режим нужно ставить по умолчанию, но игрок автоматически захочет окно растянуть на всё разрешение своей винды, чтобы не торчал по краям интерфейс виндовса, но окно растягивать нельзя, и это малость раздражает.
Почему такой режим люблю?
1) легко свернуть, легко запустить снова игру (жмякнув по кнопке свернуть), идеально для небольших инди игр
2) при полном экране нельзя контролировать ситуацию виндовса, вдруг там параллельно что-то делаю,
или например я контролирую температуру в реальном времени, не перегреется ли мой ноут от этой игры,
а в оконном режиме всё видно сразу
3) хоть это оконный режим, но не виден интерфейс виндовса, кроме нижней панели, потому-что окно растянуто на весь экран
4) все эмуляторы (в которые я часто играю) тоже так работают, даже как-то привычно уже
5) нет неприятного переключения на полный экран, особенно у старых игр такое было,
после Fallout 2 при выходе, разрешение виндовса всё ещё остаётся низким некоторое время
одни плюсы, Tic-80 тоже так работает в standalone режиме, что тоже радует)
жаль у Tic-80 проблемы с ограничением памяти
(для кого-то это челлендж, но я бы хотел больше графония засунуть туда)
В Love2D ты сам управляешь тем что рисуется и как.
Если тебе надо растягивать картинку во все окно или обрезать ее - делай это сам.
Я бы рисовал всю картинку в канвас, а в окне уже отрисовывал растянутый или обрезанный канвас, в зависимости от размера окна.
Вот, к примеру.
Написал код, вроде всё нормально, и картинка рядом с файлом "main.lua" в той же папке
а сам код файла:
Но пишет ошибку на 5-й строке.
Но без вызова спрайта, всё работает:
хотел просто посмотреть, будет ли спрайт вместе с размером окна увеличиваться,
с правильным соотношением, но даже спрайт не смог загрузить)
Вообще вот эту библиотеку юзать можно
Я уже её как-то давно скачивал, но не понял как она работает.
Там уже готово 5 примеров, а как сделать из этого свой пример с ходу не получилось понять,
так что я отложил это сложное дело на потом и забил)
Вот например если я захочу свой чистый код, то что мне нужно сделать с той библиотекой, чтобы
был только самый минимум? То есть окно с возможностью развернуть на весь экран.
Без всего остального что там было: 5 разных примеров, я не понял как отделить это всё от самого костяка.
Обычно делаю так
love.graphics.setDefaultFilter("nearest", "nearest")
Вот эта строка не канает:
потому что image - локальная переменная в функции love.load
О, точно! Спасибо большое! Я забыл про то что local не работает за пределами функции.
Спасибо! Разобрался)
Но моя идея всё равно провалилась.
setMode так не работает, не хочет увеличивать пиксели, если окно увеличивать,
придётся другой способ искать
Возможно, там есть обработчики событий ОС? Тогда можно было отловить изменение размера окна и пересчитать при этом так, как хочется
Просто так ничего не заведется, очевидно, надо делать scale. у тебя просто будет окно растягивать. Хотя в love был и fullscreen из коробки, но там всё равно кое-что нужно допиливать. Через push (библиотеку, в смысле) всё делается нормально. Как буду дома, если не забуду, скину вариант кода. Там в примерах всё есть, тем более - вон самый первый про fullscreen (не лазая в папку с примерами, а на самой странице на гитхабе в ридми). Там и "pixel-perfect" можно делать, и всё такое.
из коробки обычный FullScreen, он даже пиксели не увеличивает
а мне нужен наоборот Window режим, но только с разблокированной кнопкой Resize и возможностью менять
окно как хочешь, но как ни крути, чтобы соотношение сторон и количество пикселей было всегда одинаковое,
странно что это не включено по умолчанию, ведь это самый удобный режим для небольших инди игр
(да и это видимо не так просто сделать на Love2D, если я правильно понял по гуглу)
Мне просто в Push хочется понять, как в этом примере очистить всё от лишнего, чтобы остался голый готовый код для создание своей игры с нуля.
Так вон тебе в ридми голый пример фулскрина, прям самый самый. Вон там раздел Setup и сразу fullscreen пример.
По умолчанию этого нет, потому что возможно много вариантов как растягивать картинку в зависимости от размера окна. Но даже так, разобраться и написать самому нужный тебе вариант займет от нескольких часов (минут?) до нескольких дней, смотря что и как
наоборот) мне нужен не fullscreen, а window режим)
вот такой, как в standalone Tic-80, с разблокированной кнопкой увеличивать размер окна, но не входя в fullscreen
Попробовал взять из ридми и примера, вроде работает, но не так как хотелось бы.
Хочется чтобы при любом размере на экране было одинаковое расположение спрайта,
а то что выходит за экран отпиливалось чёрными рамками, но тут что-то странное...
Спрайт отпиливается не так как хочется и в разных размерах окна совершенно разный вид процентного местоположения спрайта на экране.
Справа больше спрайт отпиливается, чем слева
Я подумал, что надо только взять файл push.lua и засунуть в папку с моим main.lua.
Засунул. Скопировал код с того примера про марио в Low-Res, но он не пашет.
Пишет ошибку. Может я что-то не так делаю, или не все файлы взял.
Или не так инициализирую.
Вот код моего main.lua, там рядом в той же папке push.lua лежит и спрайт
а вот это я бездумно скопировал с примера про марио в примерах push, потому-что не понимаю что это значить, но результата не дало) видимо надо лучше разбираться в этом вопросе, но я пока вообще не шарю в love, но в lua немного научился разбираться за полгода юзая Tic-80
А где "require" для push? Сейчас твоя программа попросту не знает что за push. Надо внешний файл подключить (в примере есть же)
И само рисование через push не сделано у тебя
С телефона не могу код нормально писать
блин столько сложностей)
потому я и забил на Love (мне и в юнити хватает головняка, хотел найти себе попроще программу), и продолжил зависать на Tic-80, единственное жаль что там мало памяти)
ну ещё раз попробовал, вроде рисуется, жаль что весь экран смещен как-то странно, влево
в Tic-80 всего где-то надо знать 7-8 функций (и логику Lua), чтобы нормально там делать игры:
print("text") -- пишет текст на экране
spr(image,x,y) -- рисует спрайт
mget(x,y) -- берёт указанный слот на tilemap для коллизии или чтобы проверить что там
btn(button) -- кнопки управления
btnp(button) --разовая проверка нажатия кнопки
cls() -- стирать экран
music(0) -- проигрывать музыку
function TIC() -- главная функция куда надо всё писать внутрь, ядро игры
в Love классический стиль, где надо всё руками делать, долго разбираться)
на юнити тоже самое, но я там уже давно привык
Ну аналоги того же самого есть в Love, не вижу проблемы) В любом фреймворке.
Ну я имею ввиду, что это всё что надо знать, чтобы сделать полноценную игру на Tic-80,
а в Love нужно много всего ещё изучать, и много париться) как я сейчас делаю
Можно попробовать sugarcoat, там синтаксис максимально приближен к Pico-8/Tic-80. Это просто надстройка над love2d, castle, как я понимаю, скачивать не нужно (но это тоже штука забавная).
Ух ты! Сколько же всего есть на свете интересного
Большое Спасибо, Гит! Может быть это то что нужно)
Пойду тестировать.
GBStudio обновилось ещё...
слежу) но они там ещё не сделали встроенный редактор TileMap( это очень важно для меня)
То что нужно) мой любимый режим экрана легко настроить в одну строку, и намного проще писать код!
Надо только узнать, какая тут лицензия, нужно ли упоминать автора, какие ограничения и прочее, а то обычно, я в своих играх даже ридми не оставляю, если только они не на конкурс. Хотя можно указать в заглавной картинке, если конечно нет других особых ограничений.
Ну загнул. У некоторых бесплатных технологий должно "красоваться" при каждом запуске игры лого (unity, fmod и т.п.), а ты пожалел тупо спасибо разработчикам в конце титров.
да я хочу найти какая лицензия, а там походу нету вообще или плохо смотрю)
так то не забываю сказать спасибо, но просто я видел что некоторые требуют лицензионное соглашение со своими скриптами в папку с игрой вкладывать...
и другие ограничения бывают, потому обычно я не пользуюсь подобными скриптами,
ибо могу что-то не так понять или не то сделать, лучше всё своё
(насколько можно) а тут понравился скрипт, но инфы тут особо нету или я не там смотрю
Есть static. Создаешь статичный публичный класс и указываешь там свои публичные переменные.
где тебе надо обратиться к глобальной переменной
Может что-то неправильно написал, но кажется так (давно классы на C# не писал).
[InitializeOnLoad]?
это для юнити? Не слышал про такую опцию, надо загуглить, Спасибо!)
Игру я пока не доделал, просто пока добавляю спрайты, и понял, что скоро графическая память для Tic80 закончится, придётся урезать много всего.
Так это хорошо, больше шансов доделать xD
лол)
you were captured
Блин)
Спасибо, у меня такие косяки постоянно выскакивают.
Тьфу! Я думал Raseri наконец игру сделал.
У меня не эротика)
Всё цензурно) лишь с лёгким намёком.
Хотя интересно, что там Разери пилит, смог ли реализовать хоть что-то и какой прогресс у него)
Опубликовал Технодемку, можно посмотреть, хотя играть тут пока не в чего.
Только врагов побить и физику с механикой посмотреть.
Игра в секунду грузит. Ибо всего 90 килобайт занимает, чем мне нравятся библиотеки игр
Pico-8 и Tic-80, но жаль что нельзя эти игры по графике до мегабайта расширить,
а то мало графической памяти для меня.
Также там можно глянуть весь исходник на Lua, если есть Tic80.
Control:
Z - for walk
Z - for jump
Z in air - change direction
Z in Crawl Mode - change direction
Горячо одобряю идею игры.
Теперь можно с чистой совестью дальше пилить)
написать свой фреймворк/движок
ну это не для художника работа)
Сделай платформер с такой графикой, раз уж на конкурс все равно не успел. Хотя, может, однокнопочная игра тоже интересной выйдет, кто его знает.
Да вот думаю, если что сделаю платформер, если никому не зайдёт идея)
Я немного расширил функционал, апдейт небольшой сделал с интерактивом,
если люди будут путаться с одной кнопкой, то может и правда стоит изменить управление.
Кстати, как я нарисовал полноэкранный задник, который не тормозит на слабых компах в Tic-80:
1) сделал архиватор и попиксельно вывел один раз на
function TIC()
слой2) не использую
Cls()
, чтобы стирать графику на экране, иначе сотрётся задник3) всё остальное рисую на слое
function OVR()
этот слой рисуется выше TIC() и не меняет пиксели другого слоя, если не использовать Cls