Files
ogs-site/ru/news/index.html

238 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<link rel="stylesheet" href="../../style.css">
</head>
<body>
<script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
<div id="header">
<div class="header2">
<div class="menu">
<a href="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</a>
</div>
<div id="lang">
<a href="../../en/news/index.html">EN</a>
<a href="../../ru/news/index.html">RU</a>
</div>
<div class="clear"></div>
</div>
</div>
<center>
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="psk-jvm-item.html">ПСКОВ 2 на JVM</a>
</h2>
<p class="news_item_date">
2025-02-11 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2025_psk-jvm-item.png" alt="splash" /></p>
<h1 id="">Генерация отдельных страниц</h1>
<p>В январе сделал половину функциональности оригинального ПСКОВа на Kotlin для JVM,
а именно: генерацию отдельных страниц HTML из Markdown.</p>
<p>И ПСКОВ 1, и ПСКОВ 2 генерируют файлы HTML, которые отображаются идентично
в веб-браузерах. Тем не менее, содержимое этих сгенерированных файлов отличается,
т.к. ПСКОВ 1 использует <a href="https://github.com/showdownjs/showdown">Showdown</a> для конвертации Markdown в HTML,
а ПСКОВ 2 - <a href="https://github.com/JetBrains/markdown">intellij-markdown</a>.</p>
<p>Взглянем на описываемую разницу. Допустим, у нас есть следующая страница Markdown:. . .</p>
</div>
<div class="news_item_more">
<a href="psk-jvm-item.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="year24.html">Итоги 2024-го года</a>
</h2>
<p class="news_item_date">
2025-01-15 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2025_year24-ru.jpg" alt="year24" /></p>
<h1 id="">Итоги</h1>
<p>Рассмотрим результаты года квартал за кварталом:</p>
<ul>
<li><strong>Первый квартал</strong> (январь - март):<ul>
<li>(Swift) Реализована шина обмена данными для iOS с целью создания общего пространства для взаимодействия разрозненного кода</li>
<li>Введено понятие «Модель ограниченного языка» (Limited language model) для описания правил портируемости кода</li>
<li>Python выбран якорным языком программирования, из которого генерируются функциональные копии на других языках</li></ul></li>
<li><strong>Второй квартал</strong> (апрель - июнь):. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="year24.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="lha-jvm-macos.html">Первая рабочая версия Local Host Access</a>
</h2>
<p class="news_item_date">
2024-12-09 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2024_web-test.jpg" alt="web-test" /></p>
<h1 id="localhostaccess">Local Host Access</h1>
<p>Крошечный веб-сервер Local Host Access (<strong>LHA</strong>) готов заменить
Local File System Access (<strong>LFSA</strong>) на JVM и macOS: я сгенерировал
эту статью с помощью LHA на macOS. Таким образом, Kotlin оказался
хорошим языком для кросс-платформенной разработки, правда, с небольшим
ограничением.</p>
<p>Это небольшое ограничение состоит в том, что 99% разработки Kotlin приходится
на JVM. Остальные 99% - на так называемый Kotlin Native для работы с iOS,
Linux, macOS и Windows. Таким образом, если кому-либо понадобится что-либо. . .</p>
</div>
<div class="news_item_more">
<a href="lha-jvm-macos.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="pskov-again.html">Возвращение к разработке «ПСКОВа»</a>
</h2>
<p class="news_item_date">
2024-11-14 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2024_lha-path.gif" alt="lha" /></p>
<h1 id="">«ПСКОВ» сегодня</h1>
<p>Итак, у нас есть старая версия «ПСКОВа», а нам нужна новая с улучшенными
характеристиками.</p>
<p>Первым делом стоит вспомнить, из чего состоит «ПСКОВ»:</p>
<ol>
<li>Непосредственно <a href="https://opengamestudio.org/pskov/ru/pskov_1.0.0+ru.html">генератор</a> в виде веб-страницы на HTML + JavaScript</li>
<li>Вспомогательный <a href="https://opengamestudio.org/lfsa/ru/index.html">скрипт Python</a> для сохранения генерируемых файлов на диске</li>
</ol>
<p>Вспомогательный скрипт нужен по одной причине: веб-страницам запрещено общаться
с локальной файловой системой по соображениям безопасности.</p>
<p>Скрипт представляет из себя крошечный веб-сервер со следующими командами:. . .</p>
</div>
<div class="news_item_more">
<a href="pskov-again.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="ht-sound.html">Звук и поиск нового курса</a>
</h2>
<p class="news_item_date">
2024-10-11 00:00
</p>
<div class="news_item_contents">
<h1 id="">Звук</h1>
<video controls width="700">
<source src="../../images/2024_sound.mp4" type="video/mp4"/>
</video>
<p>К середине сентября добавил поддержку звука, однако, на этом
проект двумерной приключенческой игры «Хвост и тень» остановился, т.к.
из проекта ушёл идейный вдохновитель Женя.</p>
<h1 id="-1">Поиск нового курса</h1>
<p>В сентябре я заметил падение интереса к проекту и со стороны подписчиков.
Объяснил я это себе тем, что результат функционально и графически не соответствует
ожиданиям аудитории.</p>
<p>Поэтому решил проверить пару вариантов оживления проекта:. . .</p>
</div>
<div class="news_item_more">
<a href="ht-sound.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="ht-scenes.html">Переключение сцен</a>
</h2>
<p class="news_item_date">
2024-09-06 00:00
</p>
<div class="news_item_contents">
<h1 id="">Август</h1>
<video controls width="700">
<source src="../../images/2024_scenes.mp4" type="video/mp4"/>
</video>
<p>В августе сделал переключение сцен, после чего стало возможно следующее:</p>
<ul>
<li>при нажатии в заставке кнопки «Начать игру» переходить к уровню с тремя этажами</li>
<li>при выборе двери переходить на другой этаж</li>
<li>при выборе телевизора переходить к переключению каналов</li>
<li>при переключении каналов менять изображение в телевизоре</li>
</ul>
<p>Таким образом, сцены хорошо решают вопросы как фокусирования на предметах,. . .</p>
</div>
<div class="news_item_more">
<a href="ht-scenes.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="rethinking.html">Переосмысление</a>
</h2>
<p class="news_item_date">
2024-08-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2024_rethinking.jpg" alt="Игра" /></p>
<p>По планам за июль я должен был доработать инструмент для трансляцию кода из
Python в JavaScript. Этого не произошло, потому что появились более
приоритетные задачи.</p>
<p>Какая задача может быть приоритетнее разработки инструмента? Разработка
игры, конечно же! Итак, возвращаемся в начало июля 2024-го года…</p>
<h1 id="">Геймджем</h1>
<p>В начале июля 2024-го года закончился трёхдневный геймджем от
<a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">«Начни игру»</a>, в котором я участвовал. Целью моего участия в
геймджеме было как проверить свои игровые наработки в условиях,. . .</p>
</div>
<div class="news_item_more">
<a href="rethinking.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="memory-gui.html">Графический интерфейс «Памяти»</a>
</h2>
<p class="news_item_date">
2024-07-04 00:00
</p>
<div class="news_item_contents">
<h1 id="">Графический интерфейс «Памяти»</h1>
<p>В июне реализовал графический интерфейс игры «Память» на Python с помощью <a href="https://arcade.academy">Python Arcade</a>.</p>
<p>В ходе поиска наиболее удобного инструмента создания ресурсов (ассетов) остановился на
обычной тетрадке в клетку:</p>
<p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Текстура в тетрадке" /></p>
<p>Для дополнительной проверки качества архитектуры портируемого кода участвовал в
трёхдневном геймджеме от <a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">«Начни игру»</a> с игрой «Память», оформленной под
требования конкурса.</p>
<p>Выглядит итоговая игра следующим образом (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">сборка Windows64</a>):. . .</p>
</div>
<div class="news_item_more">
<a href="memory-gui.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="memory-text-ui.html">Текстовый интерфейс «Памяти»</a>
</h2>
<p class="news_item_date">
2024-06-14 00:00
</p>
<div class="news_item_contents">
<h1 id="">Текстовый интерфейс «Памяти»</h1>
<p>В мае реализовал текстовый интерфейс игры «Память» на Python. В C++ перевёл инструментом.</p>
<p>Реализация логического игрового цикла привела к появлению контроллера, управляющего
контекстом. Создание контроллера на Python прошло без происшествий, а вот с версией
для C++ пришлось помучиться. Мучения были вызваны тем, что контроллер использует
<a href="https://en.cppreference.com/w/cpp/utility/any">std::any</a> из C++17, а инструмент ограничен C++11 с целью поддержки OpenWrt.</p>
<p>Что касается объёма кода, то картина получилась следующей (в строках):. . .</p>
</div>
<div class="news_item_more">
<a href="memory-text-ui.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 1 из 8</p>
<p>
<a href="index2.html">Старее »</a>
</p>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
</div>
</center>
</body>
</html>