256 lines
10 KiB
HTML
256 lines
10 KiB
HTML
<!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="../../en/news/index.html">News</a>
|
|
<a href="../../en/game/index.html">Games</a>
|
|
<a href="../../en/tool/index.html">Tools</a>
|
|
<a href="../../en/page/about.html">About</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>News</h1>
|
|
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="year24.html">Results of the year 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-en.jpg" alt="year24" /></p>
|
|
<h1 id="results">Results</h1>
|
|
<p>Let's see the results of the year 2024 quarter by quarter:</p>
|
|
<ul>
|
|
<li><strong>The first quarter</strong> (January - March):<ul>
|
|
<li>(Swift) Implemented data bus for iOS to create common space of communication for fragmented code</li>
|
|
<li>Introduced "Limited language model" term to describe portable code rules</li>
|
|
<li>Python was selected as the anchor programming language from which to generate functional copies in other languages</li></ul></li>
|
|
<li><strong>The second quarter</strong> (April - June):<ul>
|
|
<li>(Python) Created the first version of Python -> C++ translator. . .</li></ul></li>
|
|
</ul>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="year24.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="lha-jvm-macos.html">The first Local Host Access working version</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>Tiny web server called Local Host Access (<strong>LHA</strong>) is ready to replace
|
|
Local File System Access (<strong>LFSA</strong>) on JVM and macOS: I've generated this
|
|
very article with LHA on macOS. Thus, Kotlin prooved to be a good choice for
|
|
cross-platform development with a minor limitation.</p>
|
|
<p>The minor limitation is the fact that 99% of Kotlin is used on JVM. The
|
|
remaining 1% is so-called Kotlin Native for iOS, Linux, macOS, and Windows.
|
|
Thus, when one needs something as simple as to find out if a symlink. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="lha-jvm-macos.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="pskov-again.html">Back to the development of "PSKOV"</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="pskovtoday">"PSKOV" today</h1>
|
|
<p>Now, we have an old "PSKOV" version and we need an improved one.</p>
|
|
<p>First, we should recall what "PSKOV" consists of:</p>
|
|
<ol>
|
|
<li>The <a href="https://opengamestudio.org/pskov/en/pskov_1.0.0.html">generator</a> itself in the form of HTML page with JavaScript</li>
|
|
<li>Helper <a href="https://opengamestudio.org/lfsa/en/index.html">Python script</a> to save generated files to disk</li>
|
|
</ol>
|
|
<p>Helper script is used to bypass web page restriction to access
|
|
local file system.</p>
|
|
<p>The script itself is a tiny web server with the following commands:</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>№</th>
|
|
<th>Command</th>
|
|
<th>Details</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1</td>
|
|
<td><code>GET /path</code></td>
|
|
<td>Get current working directory path</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="pskov-again.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="ht-sound.html">Sound support and the search for a new direction</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2024-10-11 00:00
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<h1 id="soundsupport">Sound support</h1>
|
|
<video controls width="700">
|
|
<source src="../../images/2024_sound.mp4" type="video/mp4"/>
|
|
</video>
|
|
<p>In September I implemented sound support. However, this was the last
|
|
work for "Tail and Shadow" project, because the project's story writer -
|
|
Eugene - left.</p>
|
|
<h1 id="thesearchforanewdirection">The search for a new direction</h1>
|
|
<p>In September I also noticed the loss of interest in the project by the
|
|
audience. I linked this to the fact that the project's functional and
|
|
graphical results did not match that of the audience.. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="ht-sound.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="ht-scenes.html">Switching scenes</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2024-09-06 00:00
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<h1 id="august">August</h1>
|
|
<video controls width="700">
|
|
<source src="../../images/2024_scenes.mp4" type="video/mp4"/>
|
|
</video>
|
|
<p>In August I implemented scene switching, which allowed me to do the following:</p>
|
|
<ul>
|
|
<li>pressing "Start the game" button in the splash screen takes the player to a level with three floors</li>
|
|
<li>selecting a door takes the player to another floor</li>
|
|
<li>selecting a TV set focuses the player on the TV set with a remote control</li>
|
|
<li>switching TV channels results in different images being shown</li>
|
|
</ul>
|
|
<p>Thus, scenes are good both for focusing on items and moving the player around.. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="ht-scenes.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="rethinking.html">Rethinking</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="Game" /></p>
|
|
<p>When July started my initial plan was to make the instrument support Python to
|
|
JavaScript code translation. However, this did not happen because tasks with
|
|
higher priority emerged.</p>
|
|
<p>Which task is more important than develpment of the instrument?
|
|
Development of a game, of course! Now, let's go back to the beginning of
|
|
July 2024…</p>
|
|
<h1 id="gamejam">Gamejam</h1>
|
|
<p><a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">"Start the game"</a> 3-day gamejam finished in the beginning of July 2024.
|
|
I participated in the jam to validate the instrument under development and. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="rethinking.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="memory-gui.html">"Memory" GUI</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2024-07-04 00:00
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<h1 id="memorygui">"Memory" GUI</h1>
|
|
<p>In June I implemented GUI for "Memory" game in Python with the help of
|
|
<a href="https://arcade.academy">Python Arcade</a>.</p>
|
|
<p>While searching for the most convenient tool to create resources (assets), I found
|
|
notebooks lined with graph paper to work the best:</p>
|
|
<p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Texture of a notebook" /></p>
|
|
<p>To see the portable code architecture in real life, I participated in the 3-day long
|
|
gamejam of <a href="https://dtf.ru/games/2783053-nachni-igru-ocenka-videorolikov">"Start the game"</a>. "Memory" game was used with a customized look to satisfy jam requirements.</p>
|
|
<p>Here's how the customized version looks like (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">Windows64 build</a>):. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="memory-gui.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="memory-text-ui.html">"Memory" text UI</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2024-06-14 00:00
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<h1 id="memorytextui">"Memory" text UI</h1>
|
|
<p>In May I implemented text UI for "Memory" game in Python. And converted it to C++
|
|
by the instrument under development.</p>
|
|
<p>Game logic cycle implementation lead to the creation of a controller that manages
|
|
context. Creating the controller in Python was straightforward. C++ version took
|
|
some time, because the controller needs <a href="https://en.cppreference.com/w/cpp/utility/any">std::any</a>, which is part of C++17.
|
|
The instrument under development is limited to C++11 in order to support OpenWrt.</p>
|
|
<p>Here's how much code I wrote (in lines):. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="memory-text-ui.html">Continue reading</a>
|
|
</div>
|
|
</div><div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="memory-logic.html">"Memory" game logic</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2024-05-03 00:00
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<h1 id="memorygamelogic">"Memory" game logic</h1>
|
|
<p>In April I implemented "Memory" game logic in Python as limited language model and successfully converted the code to C++ by the instrument under development.</p>
|
|
<p>Limited language model assumes the following architecture of two parts:</p>
|
|
<ol>
|
|
<li>state context</li>
|
|
<li>pure functions without side effects working only with the context</li>
|
|
</ol>
|
|
<p>Game logic state context in Python currently looks like this (<a href="https://git.opengamestudio.org/kornerr/research-portable-memory/src/commit/6fcd542daa6242c8c23dddb88d04cda74a730328/v3/memory_Context.h">C++</a>):</p>
|
|
<p>```python
|
|
class memory_Context:
|
|
def <strong>init</strong>(self):
|
|
self.hiddenItems = []. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="memory-logic.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<p class="pagination_title">Page 1 of 8</p>
|
|
<p>
|
|
<a href="index2.html">Older »</a>
|
|
</p>
|
|
|
|
<div id="footer">
|
|
The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
|
|
from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
|
|
</div>
|
|
</center>
|
|
</body>
|
|
</html> |