Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Delphi

С этим тегом используют

Программирование Игры Помощь Разработка Инди игра Android Gamedev Все
144 поста сначала свежее
NuVotTak
6 лет назад

Тут не сайт резюме, это просто история того, кто хочет кодить⁠⁠

Админы, пропустите, если можно. Я много раз видел, как на пикабу переворачивают мир, со всякими судьями, со всякими несправедливостями, и всегда люди пишут "Верю в силу пикабу!". Я читаю его уже много лет, но никогда ничего не писал, ну нет годноты, нет что-то, что бы стоило рассказать. Я напишу один раз. И добавлю - "Верю в силу Пикабу!". Питер. Комменты для минусов сделаю, вроде как-то так говорят. Просто рискну.


Я работал на многих работах, кальянщиком несколько лет, барменом две недели, разнорабочим на стройке, фаршесоставителем, мусорщиком в общаге института. По общению - предпочел бы общаться с машинами, чем с людьми, потому что логику машин можно понять. Но проблем с общением с людьми не возникнет - обо мне всегда говорили, что я очень общительный, и я "типа" был центром любой движухи. А еще я бывший КВНщик и наша команда заняла второе место на региональных играх, команда называлась не "Желтый поселок", но "Цвет + тип местности". Выиграли кучу канцелярии и ящик пива (а за первое место давали бочку пива, вот).


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


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


Я помню, как я написал свою первую программу на бейсике. Это была мелодия и я еле успел ее дописать, потому что меня посадили на 15 минут и уже выгоняли.


Программирование я изучал по книгам, и даже когда у многих уже были компьютеры - у меня его не было. Я читал книги, которые мог достать, в библиотеках и у учителей по информатике, читал Компьютерру, все по картинкам. Когда меня в первый раз посадили за компьютер, я по памяти управлял Norton Commander и командной строкой DOS, увидев это все в первый раз.


Всякое было. А теперь, что я умею.


Перед прочтением, хотел бы отметить, что все я изучил самостоятельно, по книгам и информации в Интернете.


Delphi 7, написал больше 20 программ, которые успешно продавал и зарабатывал на них достаточно, чтобы купить себе новый ноутбук и только появившийся iPad Air 2, разрабатываю и обновляю их до сих пор, хочу перейти на последнюю версию Delphi, но очень сложно переделать весь мой софт на новую версию, потому что она зависима от библиотек, которых нет под новую версию. Софт могу продемонстрировать, тот, который не потерял после того, как умерло два жестких диска, один основной, а второй с бекапами. AutoIt - могу автоматизировать практически все, что угодно при работе приложений в Windows, работу с распознаванием графики изучал, но скрипты под нее не разрабатывал. Написал скрипт для прокачки аккаунтов в LoL (без распознавания изображений). Переводил игры на Sega Mega Drive, хотел перевести только одну - игру по D&D, но для практики разобрал несколько других ROM'ов. Не перевел, потому что в игре было очень много сугубо D&D сленга, который невозможно перевести, не зная суть D&D. Умею ремонтировать компы, если что-то с виндой - способен устранить неполадки. Многие годы ремонтировал компьютеры бесплатно в своей деревне. Работал со всеми ПК, начиная от IBM/PS2 и заканчивая последними моделями наших лет. Знаю историю развития компьютерной техники, начиная с 80 годов, лучшими системами считаю Amstrad CPC и Commondore 64, уважаю Spectrum не только из-за архитектуры, но и из-за того, что он дал возможность познакомиться с ПК многим людям. Могу подбирать лучшие комплектующие по цене/качеству, менять их и собирать хорошие машинки. Умею работать с пакерами для защиты ПО, имею лицензию на Obsidium, активно использую его для защиты своих программ, изучил API, справочная система очень подробная с кучей страниц, я все изучил практически без использования переводчика, умею читать техническую документацию на английском языке. Самостоятельно написал библиотеки и классы для нескольких очень популярных сайтов (SoundCloud из крупнейших, из мелких - сайты для работы с каптчей, работал с многими сайтами), даже для тех, у которых нет API. Декомпилировал и деобфусфировал программы на C# и скрипты AutoIt, ломал защиту у ПО. Базовый уровень. Имею в распоряжении пакет лицензионных программ для разработки, одна из них - BotChief. Версия для разработчиков, стоимостью 25 тысяч рублей. Фактически, единственный в России разработчик скриптов для этого софта, активный участник форума, помогаю другим в разработке скриптов, запустил небольшой блог по этому софту. Активно использовал веб-технологии, использовал многие движки CMS и форумов, OpenCart, PrestaShop (работал немного, нашел опенкарт и посчитал его более лучшим, ушел на него), WordPress, форумные движки, писал небольшие расширения для OpenCart, разбираюсь в модулях, могу выбрать лучшие. Могу найти что угодно в Интернете, главное знать, где искать (а я знаю). Фанат OpenSource и уважаю GNU больше чем Линуса Торвальдса. Разбираюсь в прикладном софте, разберусь в любом ПО, подскажу другим. Использовал практически все антивирусы, популярные в СНГ. Был тестером в игре World of Tanks. Разбираюсь в играх, знаю их историю, культовые игры и просто их люблю (Doom Forever). Способен изучить что угодно за короткое время. Все языки программирования очень простые, суть в сложных алгоритмах. Считаю, что в программировании главное - хорошо написанный код (под этим я понимаю код, понятный программисту) и логика. А еще костыли, костыли и костыли :) Написал несколько ТЗ и алгоритмы для работ серверных частей моего ПО (не пишу на PHP, заказывал, код их - идея моя). Читаю блог GunSmoker'а и уважаю его, как программиста высокого класса, но он, бывает, общается очень неприятно. Очень много (МНОГО!) работал с социальными сетями и накруткой в них (весь мой софт работает на это). Нужны лайки, подписчики - их есть у меня. Активно читаю важные ресурсы - хабру, delphisources, все форумы по программированию. Умею решать задачи программирования с помощью смекалки, если не знаю, как сделать это правильно. Нашел ошибку в математическом модуле Delphi 7 (модуль Math - получение рандомного значения из диапазона - написал сначала свою версию, потом посмотрел, косяк там).


Я не специалист в определенной области. Я умею много, но настолько, сколько мне нужно для решения своих задач. С помощью гугла и какой-то матери, в принципе, могу решить любую задачу. Универсальный работник, который знает много всего, но не профи в какой-то области.


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


Не знаю, что еще сказать. Есть что-то, что я забыл написать.


Мои минусы:

- Веб-разработка: PHP не знаю, начал изучать питон, времени было в обрез. Считаю пито лучше PHP, да и хостингов нормальных с питоном не нашел.

- Базы данных: изучал в лицее реляционные базы данных, суть знаю, но работал с ними очень мало (считаю это очень большим недостатком).

- Сетевые технологии: с серверами не работал, и сеть настраивать негде было, мутил что-то через кабеля и через блютуску.

- Криптовалюты: о сути технологии считаю вот что - потенциал большой, но используется херово.


P.S. Кроме чтения книг, программирование изучал по чтению исходных кодов. Вроде как лучший способ научиться делать что-то - посмотреть, как делают профи. В программировании силен в разработке интерфейсов, большая часть моего ПО работает с многопоточностью, но реализовано все через синхронизацию (тупо экономия времени - добавить к этому нечего), активная работа с вебом - библиотеки Synapse и ICS.

P.P.S. Владею слепым набором на русском языке, на английском - наполовину.

Показать полностью
[моё] Delphi Работа Длиннопост Текст
21
8
DELETED
7 лет назад

Реализация старой, доброй игры "Змейка"⁠⁠

Реализация старой, доброй игры "Змейка" Pixel Art, Разработка игр, Gamedev, Delphi

Классическая игра змейка без особых премудростей. Содержит 5 игровых уровней, которые открываются по завершению предыдущих. Реализовалась в Delphi7. Все ресурсы(изображения) выполнялись в Paint.

Реализация старой, доброй игры "Змейка" Pixel Art, Разработка игр, Gamedev, Delphi
Показать полностью 2
[моё] Pixel Art Разработка игр Gamedev Delphi
8
86
Darthman
7 лет назад
Лига Разработчиков Видеоигр

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?"⁠⁠

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

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?" Gamedev, Indiedev, Delphi, Steam, Длиннопост

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


Итак, всё лучшее:

Лучший 2Д движок - ЕСТЬ (потрачено много времени)

Лучший саундтрек - ЕСТЬ (потрачено прилично денег и времени)

Мы обязаны сделать подддержку геймпадов - ЕСТЬ

Ачивки должны быть видны прямо в игре, как и лидерборды - ЕСТЬ

Поддержка любых разрешений, но без растягивания всего - ЕСТЬ

Десяток языков и свой собственный шрифт - ЕСТЬ

Уникальный геймплей, никаких копий других проектов - ЕСТЬ

Фигова гора эффектов и шейдеров - ЕСТЬ

Своя реализация классического интерфейса с окошками и кнопками - ЕСТЬ

Система обновлений игры - ЕСТЬ


Собственно сюда и утекало время.  Давайте вычеркивать лишнее.

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?" Gamedev, Indiedev, Delphi, Steam, Длиннопост

Лучший 2Д движок:

На движок было убито времени прилично еще до того, как начали делать эту игру, но в процессе разработки игры приходилось доделывать новые фичи, чинить баги, что тормозило разработку игры. Отсюда первое, чего не надо делать - не беритесь делать свой движок, если вам это не даст чего-то сверхкрутого, из-за чего игра будет продаваться лучше. В 99% случаев вы потеряеете времени намного больше, чем съекономите денег на покупке готового.

Сюда же пойдет и свои реализации звуковых движков, интерфейсов и прочего.

Куча крутых фич и разных свистоперделок:

Вполне можно было бы сократить время разработки до года, а может и того меньше, если бы мы отказались от части того, что сейчас кажется сомнительным.

Можно было бы делать игру большей командой, чем 2 программиста. (Да большая часть графики в игре рисована программистами).

Немало времени можно было бы съэкономить просто снизив планку качества, и не пытаясь делать "как у Blizzard".

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?" Gamedev, Indiedev, Delphi, Steam, Длиннопост

У нас свой хардкорный геймплей:

Да это ошибка, но менять курс даже на середине разработки мы не стали, отлично понимая что сложные игры продаются хуже. Это нишевая игра, она сложна. Да, тут можно натренироваться быстрее и точнее целиться и рвать всех в контре потом, но это не самоцель. Игры должны быть проще или иметь возможность варьировать сложность.

Одной из целей, которую мы преследовали был полный цикл создания игры. От идеи до релиза. То есть вообще всё, включая маркетинг. И вот последнее явно не удел программистов, потому что маркетинг нам удался хуже всего.

С коммерческой точки зрения игра не оправдывает вложенных в неё сил и времени. Отчасти из-за того, что о ней совершенно никто не знает, а рынок перенасыщен инди-поделками.

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?" Gamedev, Indiedev, Delphi, Steam, Длиннопост

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

Десяток языков и свой собственный шрифт

Да лучше бы я купил шрифт за 100 баксов, чем при каждой новой локализации сидел и дорисовывал новые символы. Увы и ах, но хоть свой шрифт и подходит по моему видению к игре идеально, сам он не идеален, а довольно кривоват и не оправдывает вложенного в него времени.

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?" Gamedev, Indiedev, Delphi, Steam, Длиннопост

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

Но качественно делать стоит, однако нужно быть хорошо уверенным в маркетинге, не делать столь нишевые игры.

Перезаклад на будущее:

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

"Мини-игра за 4 с лишним года" или "есть ли жизнь без Unity?" Gamedev, Indiedev, Delphi, Steam, Длиннопост

Творите, делитесь, продавайте. Не демпенгуйте, ведь ваш труд стоит денег. Спасибо за внимание.

Страница игры в Steam: http://store.steampowered.com/app/391140/Blastoff/

Пара видосиков:

https://www.youtube.com/watch?v=Ks1T_zpQpZw

https://www.youtube.com/watch?v=Uh4m7CKBaAE

Показать полностью 5
[моё] Gamedev Indiedev Delphi Steam Длиннопост
31
d1kssS
7 лет назад

Мудрим sql запросы⁠⁠

Здравствуйте, Уважаемые Пикабутяне. Начал осваивать программирование и начал это делать со среды Delphi 7 (По принципу от простого к сложному). Сейчас работаю над созданием приложения "Электронный кошелек". С помощью таблиц Paradox создал БД и хочу реализовать это через SQL-запросы. В таблице transaction 2-столбец это uid(очепятка на скрине)

Мудрим sql запросы SQL, Delphi, Длиннопост

Реализовав запрос на проверку существующего логина в БД, приступил к реализации главного окна.

Мудрим sql запросы SQL, Delphi, Длиннопост

Теперь, встал на этапе формирования самого запроса. Логика должна быть такова: При авторизации из поля(edit) "Login" запрос должен проверить есть ли в таблице такой логин, далее(в таблице users у каждого логина есть свой uid) по uid вывести поля из таблицы кошельки(wallet_name), а из "кошельков" по тому же полю историю платежей(trans). И далее выводить ее в DBGrid.

Создав песочницу решил похимичить и столкнулся с такой проблемой, результаты начинают повторяться.

Мудрим sql запросы SQL, Delphi, Длиннопост

Вот собственно, сам запрос.

Мудрим sql запросы SQL, Delphi, Длиннопост

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

Показать полностью 4
[моё] SQL Delphi Длиннопост
51
0
HemulGM
HemulGM
7 лет назад

Проводник Unturned⁠⁠

Прошлый пост на пикабу особо не одобрили (https://pikabu.ru/story/provodnik_unturned_4469783).

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

Так же, этот пост будет интересен очень малой аудитории. Прошу не минусить просто так.


Решил показать обновлённую версию с более-менее современным дизайном и новыми функциями.

Программа - не прорыв и не много чего нового даёт игрокам. Но у неё есть некоторые преимущества перед существующими сервисами, которые только онлайн.

Для начала объясню, в чем её основная функция.

В игре Unturned более 1.3к разных предметов и объектов (оружие, еда, строения, сооружения и т.д.) и более 2 сотен единиц транспорта. Каждый предмет обладает собственным описанием и свойствами, которые в игре не описаны и их необходимо узнавать либо методом "тыка", либо где-то вычитывать. А также, большинство серверов данной игры позволяют игрокам покупать (за внутриигровую валюту) эти предметы и транспорт, но для этого необходимо знать его идентификатор (ID, ид, айди) или имя (но без ошибок).


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


Так вот о преимуществах:

1. Программа не требует постоянного доступа в сеть.

2. Если после обновления игры будет добавлен новый предмет или транспорт, или изменятся параметры или свойства предмета, то вам не нужно будет каждый раз обновлять программу.

3. В программе вы видите все значения свойств предметов (для разных видов, разные свойства).

4. Вы наглядно можете рассмотреть необходимый вам предмет.


Об обновлениях:

1. Переработан интерфейс (старый вы можете наблюдать в предыдущем посте: https://pikabu.ru/story/provodnik_unturned_4469783)

2. Исправлены некоторые ошибки

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

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

Ранее, каждый раз при запуске, программа сканировала файлы игры (а это около 2-3 минут) и только потом вы могли её использовать. Сейчас же программа работает на базе SQLite. И запуск сократился до 3-4 секунд. Необходимо лишь единожды нажать "Обновить", если у вас появилась более новая версия игры. Обновление вашей базы происходит в течение 1-2 минут

5. Теперь вы можете выбрать цвет оформления

6. Фильтр списка по группе/классу

7. Поиск по любым полям

8. Изображения для транспорта (необходим доступ в инет)


Скачать вы её можете с сайта совершенно бесплатно: http://unturned.hemulgm.ru/app_unturned_explorer/

Проводник Unturned Unturned, Delphi, Программирование, Обновление, Достаточнодлиннопост, Длиннопост
Проводник Unturned Unturned, Delphi, Программирование, Обновление, Достаточнодлиннопост, Длиннопост
Проводник Unturned Unturned, Delphi, Программирование, Обновление, Достаточнодлиннопост, Длиннопост
Проводник Unturned Unturned, Delphi, Программирование, Обновление, Достаточнодлиннопост, Длиннопост
Проводник Unturned Unturned, Delphi, Программирование, Обновление, Достаточнодлиннопост, Длиннопост
Показать полностью 5
[моё] Unturned Delphi Программирование Обновление Достаточнодлиннопост Длиннопост
8
9
DELETED
7 лет назад
Лига Разработчиков Видеоигр

От финансовых аналитиков до разработчиков мобильных игр за месяц.⁠⁠

Вместо эпиграфа

Часть 1. От финансовых аналитиков… Или глава пролог

С чего начинается день финансового аналитика, спросите вы? С рутины, отвечу я. Утро, офис, на автомате готовим чашечку кофе, сигарета и в довесок дюжина мыслей, которые устремляются куда то вдаль… И так они себе летят, летят и бац… Дерево…


На протяжение многих лет одно и то же. Надоело. Понятно было, что нужен новый вызов, а то завязли в своём маленьком и уютном болотце. Проходили дни и недели: утро, кофе, сигарета, дневная рутина и под вечер ты просто никакой. И так каждый день. “Стена плача” всё росла и росла (о ней чуть позже, фото покажем).


И вот оно - долгожданное явление, послужившее толчком в развитии дальнейших событий. Как-то с утра, то ли 19, то ли 20 сентября 2017, один из коллег кидает статью, где рассказывается от первого лица о двух ребятишках, которые, едва окончив школу, без малейшего опыта в разработке, написали игру. И тут меня осенило: вот он! Вот тот вызов, которого я ждал для своей команды (которая никогда не писала игры и опыта на этом поле не имела, от слова совсем). Да так осенило что я оказался залит утренним кофе.


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


Теперь утро финансового аналитика начиналось так:


1. Переступаю порог офиса

2. Спрашиваю как продвигается разработка игры

3. Прошу скинуть рабочую версию чтобы поиграть


Вот только после всего этого - кофе и перекур.


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

Часть 2. Нарисуй пингвина и да, он должен летать. Или глава о текстурах

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


Отрисовка велась в основном в open source программах (GIMP и Inkscape), но ими одними нам не удалось обойтись, поэтому пришлось задействовать Aseprite и After Effects для анимации. Например, вот разобранный морж, подготовленный к анимации

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

В первые дни разработки, все тайлы экспортировались в один спрайт, а по указанным во вручную созданной таблице координатам программист вырезал нужный кадр. Настал момент когда размеры спрайта перевалили за 12000px по вертикали… Что-то начало нам подсказывать что мы движемся в неправильном направлении. Совсем неправильном. И если вначале мы думали что уж игру-то мы кое-как накодим, то тут мы поняли что в словаре под статьей как не надо делать игры, должны быть наши наработки. Спасло нас то, что мы (внезапно!) не первые кто пишет игру под Андроид и почти все проблемы, которые могут возникнуть у чайников уже давно описаны в какой-нибудь статье. Окей, гугл и спустя сутки мы уже получаем удовольствие от работы с Atlas в libgdx.


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


По итогу мы пришли к тому, что исходники всех текстур храним в одном большом svg файле (даже изначально растровые изображения) и, при необходимости экспортируем тайлы в png (либо поодиночке, либо пакетно). Выглядит это, конечно монструозно, но на деле - не так страшен черт, как его малюют.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Далее несколько примеров работы с анимированными персонажами.

Часть 3. Delphi жив и как он вписался в разработку. Или рассказ от лица прикладного программиста

30 сентября на совещании было озвучено, что кто-то из нас должен написать программу для генерации уровней, на базе созданной карты объектов в tiled.exe.


Итого ТЗ:

В генераторе tiled.exe создаем карту объектов, нажимаем экспорт в PNG, загружаем в какую-то программу эту картинку, после на эту картинку вешаем активные элементы (монетки, черепки, замедлители, моржи, медведи и т.д.), в специальных полях задаем настройки уровня (общее время уровня, очки, и т.д.), жмем на кнопку «Готово» и на выходе получаем JSON файл.

Все уставились на меня, мол, ты же вроде прикладной программист, примусы починяешь, давай быстренько накидай чего-нибудь. Я такой «Да не вопрос, я же High Level Developer: в универе калькулятор написал».


Ставим Delphi 2010. Начинаем с нуля. Окей Google, как двигать картинки по форме?Накидал форму, на форме панель с инструментами (активные элементы игры), при двойном клике на канве основной игровой области должен создаваться объект, который должен двигается простым перетаскиванием. Добавил кнопки загрузки карты и фона уровня. Все на английском, надо же показать свой мега скилл.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Далее, надо это все дело сохранять, поэтому вешаем дополнительно кнопочку.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Добавляю поля для основных настроек уровня, и для красоты вешаю кнопку сохранения скриншота уровня и кнопки очистки всех расставленных элементов, а также кнопку загрузки JSON.


Все, интерфейс накидал, на том и порешили что 90% работы сделано за 6 часов и остались сущие мелочи.


5 дней и ночей спустя…


Все начало создаваться, очищаться, память уже не течет, объекты двигаются, JSON сохраняется и загружается, даже скриншоты делаются. Даже сделал учет масштаба 1:2 игровой области в игре и у меня на форме (1920 * 1080 в игре, а у меня область 960 * 540).


Прихожу в офис, отчитываюсь что долг родине отдал, дело за вами, господа. Но ни тут-то было, Вова (JAVA developer) в курилке говорит «Бро, а какая система координат у тебя на выходе в JSON?». На мой вопросительный взгляд последовало объяснение что в libgdx начало координат это нижний левый угол экрана, и соответственно у каждого объекта также… Я начинаю нервно курить и вспоминаю про себя, что в Delphi самая лучшая система координат и XY=0,0 это верхний левый угол. Ну ок, докурил и начал: отнять, прибавить, поделить, бац профит!


Жму на кнопку «На! Смотри! Все нижний левый, так нижний левый»


7 дней спустя релиз. И, нет, у медведей не фиговые листочки в промежности, а так мы отметили на карте уровня точки и направление, откуда появляются новые монеты.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Часть 4. While (!release) { Кофе, перекур, код; } . Или глава о собственно разработке

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

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Так как опыта в разработке игр было аж 0.0, то сразу же появилось много вопросов. Первый из них - “для какой платформы писать?” разрешился довольно просто, так как есть опыт разработки приложений под Андроид, то и писать решили под Андроид. Просмотрев доступные движки и фреймворки остановился на связке libGdx и Java так как предполагалось что, игра будет в 2d формате.


По началу решил не использовать движок box2d, а задавать скорость объектов игры и самому отслеживать коллизии. Быстренько накидал тестовый уровень - всё ОК, пингвин бегает, монетки собирает. Начальство сразу вопрос - “Когда релиз?” Отвечаю - “Две недели за глаза.” Но не тут-то было. После того как назрел вопрос о том, что монетки должны откуда то вылетать и красиво отскакивать от поверхностей, а пингвин должен прыгать по этим самым поверхностям, подключил физический движок box2d, пришлось в нем ковыряться. Задал поведение объектов внутри уровня так, чтобы оно соответствовало любой конфигурации уровня. Витя сваял прогу в которой можно было редактировать уровни и сохранять их конфиги в файлы. При загрузке уровня мой класс лоадер читает файл и строит по настройкам уровень и заполняет его объектами добавляет игрока (пингвина) и вуаля можно играть и время от времени добавлять различные уровни не переписывая кода игры.


По наступлению определенных событий в мире прикрутил проигрывание звуков и музыки, с одним “но”: при запуске десктопной версии музыка и звуки часто приводит к вылетам из игры, побороть которые так и не получилось, в андроиде такого не случается.


Где хранить результаты? Конечно в БД. И тут нужны небольшие танцы с бубном, так как ядро игры не умеет работать с sqlite так как это делает андроид. Поэтому используется драйвер sqlit - jdbc для подключения к уже созданной базе и работе с ней в десктопной версии. А при работе в андроид версии проверяется есть ли в песочнице приложения файл базы и если его нет то он копируется из ассетов, если есть то подключаемся через sqldroid.


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


Монетизация - довольно таки просто с использованием интерфейса обратных вызовов можно в любой момент показать или скрыть баннер, полноэкранное объявление либо видео за вознаграждение.


Ну вот, впринципе, и всё. В планах поработать над повышением быстродействия, подключить к игровым сервисам Google Play и добавить функционала.

Часть 5. Немое кино в прошлом. Или глава о звуковом наполнении игры

Процесс разработки затронул не всех и в свободные от кода руки мы отдали звуковое сопровождение игры. Требования звучали достаточно лаконично: “Музыка должна быть просто зашибись, чтобы игроки прям слюни пускали”.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Сижу никого не трогаю, тут мне заявляют коллеги по цеху “Ну все, Валера настало твое время, на тебя делегирована звуковая часть работы, надо её сделать со скоростью звука”.


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


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


Всё, необходимый набор звуков собран, а мерзкие программисты заявляют: “Слишком много мегабайтов, надо резать и сжимать, циклить все что можно, а что нельзя то уменьшать...”

Пришлось знакомиться с аудиоредакторами, привет Adobe Audition!


Готово! Есть архив, музыка нарезана и зациклена, звуки почищены и собраны! Красота одним словом!


Итого: четыре дня и четыре ночи скакал Илья Муромец, пока скакалку не отобрали!

Часть 6. … до разработчиков мобильных игр. Или глава эпилог

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


Уже много лет перед глазами графики цифры, валютные пары и индексы, от них голова кругом идёт. Смена занятия (хоть и на месяц) реально привела в чувства и позволила отдохнуть от финансовой рутины.


Кстати, вот тут и настало время для нашей “Стены Плача” (Курение вредит вашему здоровью!)

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

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


С уважением Команда GCN, разработчики мобильной игры "Tapstazy".

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi
От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Так как я являюсь частью команды разработчиков, то ставлю тэг "моё", указывающий на оригинальное авторство статьи.

Показать полностью 10 3
[моё] Android Java Игры на Android Libgdx Android разработка Длиннопост Видео Delphi
22
23
dannyeudaleny
dannyeudaleny
7 лет назад

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi.⁠⁠

По мотивам постов от @naykob первая часть и вторая часть

Задача: Запустить бота Telegram на локальном компьютере под управлением Windows (в данном случае под Windows 7) и выполнять различные процессы с использованием PHP и Delphi.

Чтобы не плодить баяны не повторяться , настоятельно рекомендую ознакомится с второй частью от @naykob, так как именно в ней расписано как завести бота через "помощника @BotFather" для дальнейшей работы с ним.

Краткая инструкция для Лиги лени.
Самое главное запомнить token для получения доступа к Telegram API:

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Далее выбираем локальный сервер, мой выбор пал на Open Server Panel, так как Denwer давно не обновляется, хотя для данной задачи и он бы подошёл. Далее я буду описывать все действия на примере Open Server.

Переходим в папку с установленным Open Server и исходя из какой разрядности ваша операционная система запускаем необходимый exe.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост


Переходим в папку "domains" и создаем новую папку, в моём случае это "pikabu-bot.ru", именно в ней будут располагаться файлы бота.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

webhook.php

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Маленькое отступление: Для того что бы сервер Telegram видел наш локальный сервер мы сделаем туннелирование при помощи консольного приложения Ngrok. Приложение создает безопасный общедоступный URL вида: (https://yourapp.ngrok.io) который будет ссылаться на ваш\наш локальный веб-сервер. Ngrok бесплатен хотя и имеет платные плюшки , например в виде постоянного домена, но мы справимся и без этого.

Как говорит интернет его нужно запускать с параметрами:

ngrok http --host-header=pikabu-bot.ru 80


Но сдается мне что это не совсем правильно так как устанавливается перенаправленние на "localhost" и приходится настраивать Алиасы (об этом в конце поста), если кто подскажет как правильно, будет круто. При его запуске становиться доступна страница статистики расположенная по адресу:
http://localhost:4040/status

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост
Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

На ней нас интересует только полученный адрес по которому наш локальный сервер доступен из вне, одно из ограничений бесплатной версии Ngrok заключается в том что при каждом новом запуске нам выдаётся новый адрес. В файле "webhook.php" мы парсим данное значение и устанавливаем webhook c новым адресом который ведет к файлу "bot.php" на нашем локальном сервере. И все наше содержимое будет общаться с Telegram по https как он и любит.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Содержимое всех файлов и их краткое описание:

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

bot.php

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

index.php
По сути заглушка которая показывает информацию о боте.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

lib.php
Функция перевода символов в нижний регистр, учитывающая кириллицу для удобного анализа. Ни чего интересного.

options.php
Файл с настройками, а именно: $token - полученный нами от @BotFather и имя пользователя которому разрешено выполнять процессы на нашем локальном сервере.
Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Имя должно быть без знака @, посмотреть его можете в своем профиле, если там его нет укажите его в настройках приложения мессенджера.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

run.exe

Консольное приложение которое принимает в качестве параметра путь для приложения которое нужно запустить, так как если напрямую запустить приложение командой из bot.php exec('calc.exe');
то все остальные команды не будут выполняться пока запущенное приложение, в данном случае калькулятор не будет завершён, есть родной способ это обойти но решил исполнить именно в таком виде так как функционал по мере необходимости можно наращивать.
В файле bot.php видно как обращаться к данному приложению:
exec('run.exe C:\Windows\System32\calc.exe');

Так как в Windows параметры\текст с пробелами считается разными параметрами, в цикле соединяю все параметры в одну строку и далее выполняем её, а после приложение закрывается, тем самым у нас остаётся свободный скрипт от выполнения приложения.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Еще немного о webhook.php
Для автоматического запуска приложения Ngrok и установки webhook'а, было написанно еще одно консольное приложение start.exe которое так же принимает параметры запуска.

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Настроить start.exe можно через ярлык и засунуть в автозагрузку:

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Про Алиасы:
Осталось дело за малым, настроить Open Server. После запуска в области уведомлений возле часов будет иконка с флажком, кликаем по нему и переходим в настройки во вкладку "Алиасы"  и перенаправляем наш созданный домен на "localhost".

Создаем бота Telegram на локальном компьютере Windows - PHP и Delphi. Telegram бот, Рукожоп, Инструкция, Моё, PHP, Delphi, Быдлокодинг, Длиннопост

Собственно видео работы: https://youtu.be/J1ScV5JXUmc

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

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

За ошибки прошу не пинать. Все для минусов приложил.
Писал\собирал\записывал и скриншотил  - я, значит и тегу "моё" быть. Спасибо.

P.S. Если у кого-то вызовут сомнения или просто нужны исходники исполняемых файлов, прикреплю в комментариях по первому запросу.
Все файлы для запуска описанного в посте расположил в ЯДИСКЕ.

Показать полностью 16
[моё] Telegram бот Рукожоп Инструкция Моё PHP Delphi Быдлокодинг Длиннопост
20
HemulGM
HemulGM
7 лет назад

Менеджер для сервера Unturned⁠⁠

Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост

Уже некоторое время занимаюсь разработкой менеджера для серверов Unturned. Сейчас пишу только на своё усмотрение и лишь для своих нужд.

На данный момент реализовано:

1. Отправка команд вручную.

2. Мониторинг онлайн-игроков.

3. Списки (все игроки, баны, админы)

4. Живая карта сервера (необходим отдельный плагин)

5. Полноценный чат с игроками (к сожалению пока только транслитом, т.к. в игре ASCII)

6. Проецирование чата на сайт (двусторонняя связь)

Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост

Просмотр профилей игроков Steam

Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост

Списки

Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост
Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост

Логирование

Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост
Менеджер для сервера Unturned Сервер, Севрер-менеджер, Unturned, Delphi, Длиннопост

Если кто-то заинтересован или есть ещё идеи - пишите на почту info@hemulgm.ru

В дальнейшем будет загружен на github в открытом доступе.

Язык разработки: Delphi

Сторонние компоненты: AlphaControls (SpeedButtons)

Спасибо!

Показать полностью 7
[моё] Сервер Севрер-менеджер Unturned Delphi Длиннопост
0
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии