|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- <!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="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>
- <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>
- <p class="news_item_date">
- 2024-03-10 00:00
- </p>
- <div class="news_item_contents">
- <h1 id="thefirstbuspatternimplementationforios">The first Bus pattern implementation for iOS</h1>
- <p>I spent January and February making Bus pattern implementation in Swift for iOS.
- The end result looks nice to me.</p>
- <p>I have also done load testing. Turns out, the Bus is 92 times more expensive
- than a function call. Nonetheless, this doesn't mean the Bus is bad. On the
- contrary, the numbers highlight the Bus should be used in architectural
- glue code where it can save up to 30% of code</p>
- <p>This example demonstrates several states rendered through a single instance:. . .</p>
- </div>
- <div class="news_item_more">
- <a href="bus-iOS.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>
|