Статья за ноябрь | November article
This commit is contained in:
51
en/news/2024-11_pskov-again.md
Normal file
51
en/news/2024-11_pskov-again.md
Normal file
@@ -0,0 +1,51 @@
|
||||
Title: Back to the development of "PSKOV"
|
||||
Date: 2024-11-14 00:00
|
||||
Category: News
|
||||
Slug: pskov-again
|
||||
Lang: en
|
||||
|
||||
![lha][lha]
|
||||
|
||||
# "PSKOV" today
|
||||
|
||||
Now, we have an old "PSKOV" version and we need an improved one.
|
||||
|
||||
First, we should recall what "PSKOV" consists of:
|
||||
|
||||
1. The [generator][pskov-en] itself in the form of HTML page with JavaScript
|
||||
1. Helper [Python script][lfsa-en] to save generated files to disk
|
||||
|
||||
Helper script is used to bypass web page restriction to access
|
||||
local file system.
|
||||
|
||||
The script itself is a tiny web server with the following commands:
|
||||
|
||||
| № | Command | Details |
|
||||
|---|---|---|
|
||||
| 1 | `GET /path` | Get current working directory path |
|
||||
| 2 | `POST /list` | Get a list of files in the requested directory |
|
||||
| 3 | `POST /read` | Get file's contents |
|
||||
| 4 | `POST /write` | Write file's contents |
|
||||
|
||||
# "PSKOV" tomorrow
|
||||
|
||||
Thus, the simplest way to get back to "PSKOV" development is to rewrite the
|
||||
helper script. I decided to replace Python with Kotlin because:
|
||||
|
||||
1. Kotlin can be compiled for desktop, mobile, and web
|
||||
1. Kotlin is strictly typed
|
||||
|
||||
These two factors simplify future work with portable code.
|
||||
|
||||
As of now, I have `GET /path` implemented for JVM, macOS, and Windows (image
|
||||
in the beginning).
|
||||
|
||||
# November
|
||||
|
||||
I plan to implement the following commands in November:
|
||||
* `POST /list`
|
||||
* `POST /read`
|
||||
|
||||
[lha]: ../../images/2024_lha-path.gif
|
||||
[pskov-en]: https://opengamestudio.org/pskov/en/pskov_1.0.0.html
|
||||
[lfsa-en]: https://opengamestudio.org/lfsa/en/index.html
|
||||
@@ -24,6 +24,46 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<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>
|
||||
@@ -209,33 +249,6 @@ glue code where it can save up to 30% of code</p>
|
||||
<a href="bus-iOS.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="bus-01.html">Bus-01</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2024-01-04 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<h1 id="onthewaytoportablecode">On the way to portable code</h1>
|
||||
<p>To gain code portability, we have to divide whole code into two parts:</p>
|
||||
<ul>
|
||||
<li>repeatable: logic</li>
|
||||
<li>unique: environment</li>
|
||||
</ul>
|
||||
<p>To simplify portable code construction, we want to be able to place any code -
|
||||
both repeatable and unique - without hierarchy requirements of operating
|
||||
systems. Bus design pattern seems to be the best option. The Bus makes all
|
||||
code chunks equal because they interact through the Bus only.</p>
|
||||
<h1 id="bus01">Bus-01</h1>
|
||||
<p>Currently we have:</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/XAlIlG9tVL4?si=5HYRDkNuYE0zeoyo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="bus-01.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 1 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,33 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="bus-01.html">Bus-01</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2024-01-04 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<h1 id="onthewaytoportablecode">On the way to portable code</h1>
|
||||
<p>To gain code portability, we have to divide whole code into two parts:</p>
|
||||
<ul>
|
||||
<li>repeatable: logic</li>
|
||||
<li>unique: environment</li>
|
||||
</ul>
|
||||
<p>To simplify portable code construction, we want to be able to place any code -
|
||||
both repeatable and unique - without hierarchy requirements of operating
|
||||
systems. Bus design pattern seems to be the best option. The Bus makes all
|
||||
code chunks equal because they interact through the Bus only.</p>
|
||||
<h1 id="bus01">Bus-01</h1>
|
||||
<p>Currently we have:</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/XAlIlG9tVL4?si=5HYRDkNuYE0zeoyo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="bus-01.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rpg-ends.html">Revised project goals</a>
|
||||
@@ -185,23 +212,6 @@ It seems that right now we have less completed features than before the release
|
||||
<a href="teaching-kids-to-program.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2019-year-of-rethinking.html">Year of rethinking</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-01-01 0:01
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Sparkler" /></p>
|
||||
<p>It was a year of reimagining and rethinking. As some of you may remember, we started this project to make a game development tool. During the years, the idea evolved from one form to another, sometimes the changes were significant, other times we threw away all the code and started anew.</p>
|
||||
<p>As a result of all these changes, we came to the end of the year 2018 without a tool, but with a clear understanding of what tool are we making.</p>
|
||||
<p>There are plenty of fine game development tools out there. Some of them are even open source. We spent plenty of time trying them, and some are quite good.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2019-year-of-rethinking.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 2 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,23 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2019-year-of-rethinking.html">Year of rethinking</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-01-01 0:01
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-12-31-celebration.jpg" alt="Sparkler" /></p>
|
||||
<p>It was a year of reimagining and rethinking. As some of you may remember, we started this project to make a game development tool. During the years, the idea evolved from one form to another, sometimes the changes were significant, other times we threw away all the code and started anew.</p>
|
||||
<p>As a result of all these changes, we came to the end of the year 2018 without a tool, but with a clear understanding of what tool are we making.</p>
|
||||
<p>There are plenty of fine game development tools out there. Some of them are even open source. We spent plenty of time trying them, and some are quite good.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2019-year-of-rethinking.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="ideal-gamedev.html">Ideal games and game development tools</a>
|
||||
@@ -189,24 +206,6 @@
|
||||
<a href="the-year-of-lessons.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-summary.html">2017 summary</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-11-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-11-22-2017-summary.png" alt="Memory game in the background" /></p>
|
||||
<p>It's time to step back to see our accomplishments in 2017 and how they connect to the overall goal of Opensource Game Studio project.</p>
|
||||
<p><strong>Brief history</strong></p>
|
||||
<p>Opensource Game Studio project is 12 years old now.</p>
|
||||
<p><strong>2005.</strong> We started the project with a <a href="https://www.linuxquestions.org/questions/general-10/the-creation-of-the-best-rpg-355858/">fanatic call</a> to create the best game ever. Probably right after finishing Half-Life 2 or Morrowind. 99.99% of those who wanted to participate weathered during a couple of years leaving only the two of us: Michael (coding) and Ivan (the rest). The project was in a constant turmoil because we had no clear purpose and discipline. Thus, we only got a handful of demonstrations during that period.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2017-summary.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 3 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,24 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-summary.html">2017 summary</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-11-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-11-22-2017-summary.png" alt="Memory game in the background" /></p>
|
||||
<p>It's time to step back to see our accomplishments in 2017 and how they connect to the overall goal of Opensource Game Studio project.</p>
|
||||
<p><strong>Brief history</strong></p>
|
||||
<p>Opensource Game Studio project is 12 years old now.</p>
|
||||
<p><strong>2005.</strong> We started the project with a <a href="https://www.linuxquestions.org/questions/general-10/the-creation-of-the-best-rpg-355858/">fanatic call</a> to create the best game ever. Probably right after finishing Half-Life 2 or Morrowind. 99.99% of those who wanted to participate weathered during a couple of years leaving only the two of us: Michael (coding) and Ivan (the rest). The project was in a constant turmoil because we had no clear purpose and discipline. Thus, we only got a handful of demonstrations during that period.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="2017-summary.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="back-to-the-static.html">Back to the Static</a>
|
||||
@@ -164,25 +182,6 @@
|
||||
<a href="lets-go.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-challenges.html">The year of challenges</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-01-25 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-01_the-year-of-challenges.png" alt="Rocket launch at Baikonur" /></p>
|
||||
<p>This article describes our plans for 2017.</p>
|
||||
<p>Our past plans suggested we would have Android platform support by this time. However, we have a long way to go, before we can declare Android support. See for yourself:</p>
|
||||
<p><img src="../../images/2017-01_mjin-android-gles.png" alt="Rendering cubes on Android" /></p>
|
||||
<p>Some people would consider this a failure. We don't. We see a chance to start low and jump high!</p>
|
||||
<p>Having only worked with liberal and forgiving desktop environments, Android was a complete surprise for us. Android punished us for everything: memory, resources, graphics. The usual Android response was either a crash, or an empty screen.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="the-year-of-challenges.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 4 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,25 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-challenges.html">The year of challenges</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-01-25 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-01_the-year-of-challenges.png" alt="Rocket launch at Baikonur" /></p>
|
||||
<p>This article describes our plans for 2017.</p>
|
||||
<p>Our past plans suggested we would have Android platform support by this time. However, we have a long way to go, before we can declare Android support. See for yourself:</p>
|
||||
<p><img src="../../images/2017-01_mjin-android-gles.png" alt="Rendering cubes on Android" /></p>
|
||||
<p>Some people would consider this a failure. We don't. We see a chance to start low and jump high!</p>
|
||||
<p>Having only worked with liberal and forgiving desktop environments, Android was a complete surprise for us. Android punished us for everything: memory, resources, graphics. The usual Android response was either a crash, or an empty screen.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="the-year-of-challenges.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2017-happy-new-year.html">Happy 2017</a>
|
||||
@@ -175,23 +194,6 @@
|
||||
<a href="september-live-session-announcement-tomorrow.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement.html">Live session: 25 September 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-17 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen></iframe>
|
||||
<p>We will hold <a href="https://www.livecoding.tv/kornerr">live session</a> on <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+September+2016+live+session&iso=20160925T12&p1=37&ah=2">25 September 2016 at 12:00 CEST</a>
|
||||
It's time to create simple Mahjong solitaire game.</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="september-live-session-announcement.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 5 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,23 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement.html">Live session: 25 September 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-17 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Y5hOGKcQ8wA" frameborder="0" allowfullscreen></iframe>
|
||||
<p>We will hold <a href="https://www.livecoding.tv/kornerr">live session</a> on <a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio+September+2016+live+session&iso=20160925T12&p1=37&ah=2">25 September 2016 at 12:00 CEST</a>
|
||||
It's time to create simple Mahjong solitaire game.</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="september-live-session-announcement.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2016-august-recap.html">August 2016 recap</a>
|
||||
@@ -162,21 +179,6 @@
|
||||
<a href="rolling-ball-live-session-pt2.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-announcement.html">Game creation live session: 31 January 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-25 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+Game+creation+live+session&iso=20160131T12&p1=37&ah=3">31 January 2016 at 12:00 CET</a>. Join us!</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="january-live-session-announcement.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 6 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,21 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-announcement.html">Game creation live session: 31 January 2016</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-01-25 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>We're glad to annouce that the <a title="LiveCoding" href="https://www.livecoding.tv/kornerr">LiveCoding</a> session will take place on <a title="Local time" href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Open+Game+Studio%3A+Game+creation+live+session&iso=20160131T12&p1=37&ah=3">31 January 2016 at 12:00 CET</a>. Join us!</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="january-live-session-announcement.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="january-live-session-decision.html">SOON: Creating a simple game live (Editor 0.8)</a>
|
||||
@@ -165,31 +180,6 @@
|
||||
<a href="2015-roadmap.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06.html">Editor 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-06-28 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>We completed Editor 0.6.0. You can <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">see 0.6.0 in action here</a>. </p>
|
||||
<p>Editor 0.6.0 got the following new features:</p>
|
||||
<ol>
|
||||
<li>Camera and light node positioning</li>
|
||||
<li>Node rotation along X axis</li>
|
||||
<li>Node scripting support</li>
|
||||
<li>Thumbnail dialog to preview models when editing scene node model properties</li>
|
||||
<li>Node copying and pasting</li>
|
||||
<li>Node selection by LMB click in the scene</li>
|
||||
<li>Window geometry and state restoration after restart</li>
|
||||
</ol>
|
||||
<p>We don't have 0.7.0 completion date at the moment, because we decided to take some time to set up a roadmap for Shuan and Mahjong 2. Once done, we will share 0.7.0 completion date and its feature list along with the roadmap.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-06.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Page 7 of 8</p>
|
||||
<p>
|
||||
|
||||
@@ -24,6 +24,31 @@
|
||||
<center>
|
||||
<h1>News</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06.html">Editor 0.6.0</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-06-28 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>We completed Editor 0.6.0. You can <a title="Editor 0.6.0" href="https://youtu.be/q85GcC6l4Tw" target="_blank">see 0.6.0 in action here</a>. </p>
|
||||
<p>Editor 0.6.0 got the following new features:</p>
|
||||
<ol>
|
||||
<li>Camera and light node positioning</li>
|
||||
<li>Node rotation along X axis</li>
|
||||
<li>Node scripting support</li>
|
||||
<li>Thumbnail dialog to preview models when editing scene node model properties</li>
|
||||
<li>Node copying and pasting</li>
|
||||
<li>Node selection by LMB click in the scene</li>
|
||||
<li>Window geometry and state restoration after restart</li>
|
||||
</ol>
|
||||
<p>We don't have 0.7.0 completion date at the moment, because we decided to take some time to set up a roadmap for Shuan and Mahjong 2. Once done, we will share 0.7.0 completion date and its feature list along with the roadmap.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="editor-06.html">Continue reading</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="editor-06-roadmap.html">Editor 0.5.0 and plans for 0.6.0</a>
|
||||
|
||||
114
en/news/pskov-again.html
Normal file
114
en/news/pskov-again.html
Normal file
@@ -0,0 +1,114 @@
|
||||
<!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/pskov-again.html">EN</a>
|
||||
<a href="../../ru/news/pskov-again.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="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>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td><code>POST /list</code></td>
|
||||
<td>Get a list of files in the requested directory</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td><code>POST /read</code></td>
|
||||
<td>Get file's contents</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td><code>POST /write</code></td>
|
||||
<td>Write file's contents</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h1 id="pskovtomorrow">"PSKOV" tomorrow</h1>
|
||||
<p>Thus, the simplest way to get back to "PSKOV" development is to rewrite the
|
||||
helper script. I decided to replace Python with Kotlin because:</p>
|
||||
<ol>
|
||||
<li>Kotlin can be compiled for desktop, mobile, and web</li>
|
||||
<li>Kotlin is strictly typed</li>
|
||||
</ol>
|
||||
<p>These two factors simplify future work with portable code.</p>
|
||||
<p>As of now, I have <code>GET /path</code> implemented for JVM, macOS, and Windows (image
|
||||
in the beginning).</p>
|
||||
<h1 id="november">November</h1>
|
||||
<p>I plan to implement the following commands in November:</p>
|
||||
<ul>
|
||||
<li><code>POST /list</code></li>
|
||||
<li><code>POST /read</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="disqus_thread"></div>
|
||||
<script>
|
||||
var disqus_config = function () {
|
||||
this.page.url = "https://opengamestudio.org/en/news/pskov-again.html";
|
||||
this.page.identifier = "pskov-again.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>
|
||||
Reference in New Issue
Block a user