2025-10 List of project files

This commit is contained in:
2025-10-02 22:26:21 +03:00
parent 795a646d60
commit 63b3d7eb54
25 changed files with 546 additions and 307 deletions

View File

@@ -0,0 +1,27 @@
Title: List of project files
Date: 2025-10-02
Category: News
Slug: display-files
Lang: en
<video controls width="700">
<source src="../../images/2025-10_display-files.mp4" type="video/mp4"/>
</video>
# Displaying project files
In September I created the new draft version of PSKOV 2, which now consists of two parts: web client + web server:
* the web server provides access to files on disk using [Local Host Access][lha] format to the web client
* the web client provides UI for a human to manage site's contents
Logic is in Kotlin. Then Kotlin code is translated to JavaScript for
both Node.js and web browser. Using Kotlin as an [anchor language][year24]
finally started to bare fruits.
# October
In October I plan to add Markdown file viewer functionality.
[lha]: lha-jvm-macos.html
[year24]: year24.html

View File

@@ -0,0 +1,70 @@
<!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/display-files.html">EN</a>
<a href="../../ru/news/display-files.html">RU</a>
</div>
<div class="clear"></div>
</div>
</div>
<h3 class="left_item_title">In the news...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="display-files.html">List of project files</a>
</h2>
<p class="news_item_date">
2025-10-02
</p>
<div class="news_item_contents">
<video controls width="700">
<source src="../../images/2025-10_display-files.mp4" type="video/mp4"/>
</video>
<h1 id="displayingprojectfiles">Displaying project files</h1>
<p>In September I created the new draft version of PSKOV 2, which now consists of two parts: web client + web server:</p>
<ul>
<li>the web server provides access to files on disk using <a href="lha-jvm-macos.html">Local Host Access</a> format to the web client</li>
<li>the web client provides UI for a human to manage site's contents</li>
</ul>
<p>Logic is in Kotlin. Then Kotlin code is translated to JavaScript for
both Node.js and web browser. Using Kotlin as an <a href="year24.html">anchor language</a>
finally started to bare fruits.</p>
<h1 id="october">October</h1>
<p>In October I plan to add Markdown file viewer functionality.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/en/news/display-files.html";
this.page.identifier = "display-files.html";
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://opengamestudio.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<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>

View File

@@ -4,7 +4,6 @@
<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">
@@ -26,6 +25,28 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="display-files.html">List of project files</a>
</h2>
<p class="news_item_date">
2025-10-02
</p>
<div class="news_item_contents">
<video controls width="700">
<source src="../../images/2025-10_display-files.mp4" type="video/mp4"/>
</video>
<h1 id="displayingprojectfiles">Displaying project files</h1>
<p>In September I created the new draft version of PSKOV 2, which now consists of two parts: web client + web server:</p>
<ul>
<li>the web server provides access to files on disk using <a href="lha-jvm-macos.html">Local Host Access</a> format to the web client</li>
<li>the web client provides UI for a human to manage site's contents</li>
</ul>
<p>Logic is in Kotlin. Then Kotlin code is translated to JavaScript for. . .</p>
</div>
<div class="news_item_more">
<a href="display-files.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="kotlin-cross.html">The turn to cross-platform solutions</a>
</h2>
@@ -237,29 +258,6 @@ However, the contents of the generated HTML files differ because PSKOV 1 uses
<div class="news_item_more">
<a href="psk-jvm-item.html">Continue reading</a>
</div>
</div><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 -&gt; C++ translator. . .</li></ul></li>
</ul>
</div>
<div class="news_item_more">
<a href="year24.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 1 of 9</p>
<p>
@@ -272,4 +270,4 @@ However, the contents of the generated HTML files differ because PSKOV 1 uses
</div>
</center>
</body>
</html>
</html>

View File

@@ -25,6 +25,29 @@
<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 -&gt; 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>
@@ -218,29 +241,6 @@ class memory_Context:
<div class="news_item_more">
<a href="memory-logic.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="llm-first-py-cxx.html">The first example of a portable code</a>
</h2>
<p class="news_item_date">
2024-04-11 00:00
</p>
<div class="news_item_contents">
<h1 id="supportedplatforms">Supported platforms</h1>
<p>To verify code portability, I selected the following platforms and languages:</p>
<ul>
<li>C++: Linux, macOS, OpenWrt, Windows</li>
<li>JavaScript: Chrome, Firefox, Safari</li>
<li>Kotlin: Android</li>
<li>Python: Linux, macOS, Windows</li>
<li>Swift: iOS, macOS</li>
</ul>
<p>I created a simple "Hello World" example for each language to understand the basic requirements of each platform.</p>
<p>By the way, OpenWrt turned out the most complex platform to create "Hello World" for, because my TP-Link TL-MR3020 r1 router is considered obsolete since 2018. I had to use the old 17.01.7 firmware, which took about three weeks.. . .</p>
</div>
<div class="news_item_more">
<a href="llm-first-py-cxx.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 2 of 9</p>
<p>

View File

@@ -25,6 +25,29 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="llm-first-py-cxx.html">The first example of a portable code</a>
</h2>
<p class="news_item_date">
2024-04-11 00:00
</p>
<div class="news_item_contents">
<h1 id="supportedplatforms">Supported platforms</h1>
<p>To verify code portability, I selected the following platforms and languages:</p>
<ul>
<li>C++: Linux, macOS, OpenWrt, Windows</li>
<li>JavaScript: Chrome, Firefox, Safari</li>
<li>Kotlin: Android</li>
<li>Python: Linux, macOS, Windows</li>
<li>Swift: iOS, macOS</li>
</ul>
<p>I created a simple "Hello World" example for each language to understand the basic requirements of each platform.</p>
<p>By the way, OpenWrt turned out the most complex platform to create "Hello World" for, because my TP-Link TL-MR3020 r1 router is considered obsolete since 2018. I had to use the old 17.01.7 firmware, which took about three weeks.. . .</p>
</div>
<div class="news_item_more">
<a href="llm-first-py-cxx.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="bus-iOS.html">Шина-iOS</a>
</h2>
@@ -183,21 +206,6 @@ It seems that right now we have less completed features than before the release
<div class="news_item_more">
<a href="on-the-way-to-durable-applications.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="defending-availability.html">Defending availability</a>
</h2>
<p class="news_item_date">
2019-04-16 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Altai's Katun river" /></p>
<p>In this article, we describe the beginning of our efforts to protect ourselves from third-party solutions.</p>
<p>Since day one of Opensource Game Studio project, we rely heavily on third-party solutions to help us achieve the goal of creating the best game development tools. To this date, we used forums, task trackers, mailing lists, social networks, code version control systems, hosting providers, compiler suites, libraries, and so on. Each third-party solution we used had its own lifespan.. . .</p>
</div>
<div class="news_item_more">
<a href="defending-availability.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 3 of 9</p>
<p>

View File

@@ -25,6 +25,21 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="defending-availability.html">Defending availability</a>
</h2>
<p class="news_item_date">
2019-04-16 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Altai's Katun river" /></p>
<p>In this article, we describe the beginning of our efforts to protect ourselves from third-party solutions.</p>
<p>Since day one of Opensource Game Studio project, we rely heavily on third-party solutions to help us achieve the goal of creating the best game development tools. To this date, we used forums, task trackers, mailing lists, social networks, code version control systems, hosting providers, compiler suites, libraries, and so on. Each third-party solution we used had its own lifespan.. . .</p>
</div>
<div class="news_item_more">
<a href="defending-availability.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="teaching-kids-to-program.html">Teaching kids to program</a>
</h2>
@@ -182,30 +197,6 @@
<div class="news_item_more">
<a href="mahjong-techdemo1-gameplay.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-recreation-start.html">Mahjong recreation start</a>
</h2>
<p class="news_item_date">
2018-01-26 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Spherical tiles in a Mahjong layout" /></p>
<p>This article describes the start of Mahjong game recreation.</p>
<p><strong>Plan</strong></p>
<p>We started Mahjong recreation endeavour by composing a brief plan to get gameplay with minimal graphics:</p>
<ul>
<li>Load single layout</li>
<li>Place tiles in layout positions</li>
<li>Distinguish tiles</li>
<li>Implement selection</li>
<li>Implement matching</li>
</ul>
<p>Just like any other plan, this one looked fine at first sight. However, once you get down to work, new details start to come out. This plan was no exception. Below are a few problems that came out during development.. . .</p>
</div>
<div class="news_item_more">
<a href="mahjong-recreation-start.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 4 of 9</p>
<p>

View File

@@ -25,6 +25,30 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-recreation-start.html">Mahjong recreation start</a>
</h2>
<p class="news_item_date">
2018-01-26 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Spherical tiles in a Mahjong layout" /></p>
<p>This article describes the start of Mahjong game recreation.</p>
<p><strong>Plan</strong></p>
<p>We started Mahjong recreation endeavour by composing a brief plan to get gameplay with minimal graphics:</p>
<ul>
<li>Load single layout</li>
<li>Place tiles in layout positions</li>
<li>Distinguish tiles</li>
<li>Implement selection</li>
<li>Implement matching</li>
</ul>
<p>Just like any other plan, this one looked fine at first sight. However, once you get down to work, new details start to come out. This plan was no exception. Below are a few problems that came out during development.. . .</p>
</div>
<div class="news_item_more">
<a href="mahjong-recreation-start.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="the-year-of-lessons.html">The year of lessons</a>
</h2>
@@ -154,25 +178,6 @@
<div class="news_item_more">
<a href="osg-sample.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="its-all-fine.html">It's all fine</a>
</h2>
<p class="news_item_date">
2017-04-07 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-04_its-all-fine.png" alt="Flight of a rocket" /></p>
<p>This article describes creation of the first four OpenSceneGraph tutorials in March 2017.</p>
<p>The <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">first four OpenSceneGraph tutorials</a> explain how to create a cube model with Blender and display the model under Linux, macOS, or Windows using OpenSceneGraph tool called osgviewer.</p>
<p>The whole process of creating a single tutorial turned out to be pretty daunting because it includes several tasks:</p>
<ol>
<li>Record original video depicting one or more steps. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="its-all-fine.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 5 of 9</p>
<p>

View File

@@ -25,6 +25,25 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="its-all-fine.html">It's all fine</a>
</h2>
<p class="news_item_date">
2017-04-07 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-04_its-all-fine.png" alt="Flight of a rocket" /></p>
<p>This article describes creation of the first four OpenSceneGraph tutorials in March 2017.</p>
<p>The <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">first four OpenSceneGraph tutorials</a> explain how to create a cube model with Blender and display the model under Linux, macOS, or Windows using OpenSceneGraph tool called osgviewer.</p>
<p>The whole process of creating a single tutorial turned out to be pretty daunting because it includes several tasks:</p>
<ol>
<li>Record original video depicting one or more steps. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="its-all-fine.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="lets-go.html">Let's go</a>
</h2>
@@ -169,23 +188,6 @@
<div class="news_item_more">
<a href="ogs-editor-0.10.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="yesterdays-live-session-short-overview.html">A few words about live session yesterday</a>
</h2>
<p class="news_item_date">
2016-09-26 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
<p>Mahjong Solitaire was successfully created, and it took less than 4 hours.</p>
<p>We will publish live session materials later this week.</p>
<p>Thank you for joining us.
. . .</p>
</div>
<div class="news_item_more">
<a href="yesterdays-live-session-short-overview.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 6 of 9</p>
<p>

View File

@@ -25,6 +25,23 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="yesterdays-live-session-short-overview.html">A few words about live session yesterday</a>
</h2>
<p class="news_item_date">
2016-09-26 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
<p>Mahjong Solitaire was successfully created, and it took less than 4 hours.</p>
<p>We will publish live session materials later this week.</p>
<p>Thank you for joining us.
. . .</p>
</div>
<div class="news_item_more">
<a href="yesterdays-live-session-short-overview.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="september-live-session-announcement-tomorrow.html">Live session is in 24 hours</a>
</h2>
@@ -154,22 +171,6 @@ It's time to create simple Mahjong solitaire game.
<div class="news_item_more">
<a href="may-live-session-decision.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball.html">"Rolling ball" live session videos and downloads</a>
</h2>
<p class="news_item_date">
2016-02-10 00:00
</p>
<div class="news_item_contents">
<p>Since we held 2 live sessions to create "Rolling ball" game, here are 2 YouTube videos of the process:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
<p>"Rolling ball" game for Linux (Debian based), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">is available at SourceForge</a>.. . .</p>
</div>
<div class="news_item_more">
<a href="rolling-ball.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 7 of 9</p>
<p>

View File

@@ -25,6 +25,22 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball.html">"Rolling ball" live session videos and downloads</a>
</h2>
<p class="news_item_date">
2016-02-10 00:00
</p>
<div class="news_item_contents">
<p>Since we held 2 live sessions to create "Rolling ball" game, here are 2 YouTube videos of the process:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
<p>"Rolling ball" game for Linux (Debian based), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">is available at SourceForge</a>.. . .</p>
</div>
<div class="news_item_more">
<a href="rolling-ball.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball-live-session-pt2.html">Game creation live session (part 2): 7 February 2016</a>
</h2>
@@ -152,21 +168,6 @@
<div class="news_item_more">
<a href="bye-desura-hello-humblebundle.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="test-chamber-for-everyone.html">Test chamber for everyone (Editor 0.7.0)</a>
</h2>
<p class="news_item_date">
2015-07-22 00:00
</p>
<div class="news_item_contents">
<p>As you know, the main goal of Editor 0.7.0 is the ability to create the <a title="Test chamber" href="https://youtu.be/9_6seUWcPbU" target="_blank">test chamber</a> with it. It needs Actions' system and a few stability fixes for that. We are going to publish a detailed article describing how to create the test chamber, too, so that anyone could create their own test chamber!</p>
<p>We estimate to complete it in October.
. . .</p>
</div>
<div class="news_item_more">
<a href="test-chamber-for-everyone.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 8 of 9</p>
<p>

View File

@@ -25,6 +25,21 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="test-chamber-for-everyone.html">Test chamber for everyone (Editor 0.7.0)</a>
</h2>
<p class="news_item_date">
2015-07-22 00:00
</p>
<div class="news_item_contents">
<p>As you know, the main goal of Editor 0.7.0 is the ability to create the <a title="Test chamber" href="https://youtu.be/9_6seUWcPbU" target="_blank">test chamber</a> with it. It needs Actions' system and a few stability fixes for that. We are going to publish a detailed article describing how to create the test chamber, too, so that anyone could create their own test chamber!</p>
<p>We estimate to complete it in October.
. . .</p>
</div>
<div class="news_item_more">
<a href="test-chamber-for-everyone.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="2015-roadmap.html">Roadmap for 2015-2016</a>
</h2>