You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 11KB

2 maanden geleden
2 maanden geleden
3 maanden geleden
4 maanden geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. <!DOCTYPE html>
  2. <html>
  3. <meta charset="utf-8">
  4. <head>
  5. <link rel="stylesheet" href="../../style.css">
  6. </head>
  7. <body>
  8. <script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
  9. <div id="header">
  10. <div class="header2">
  11. <div class="menu">
  12. <a href="../../en/news/index.html">News</a>
  13. <a href="../../en/game/index.html">Games</a>
  14. <a href="../../en/tool/index.html">Tools</a>
  15. <a href="../../en/page/about.html">About</a>
  16. </div>
  17. <div id="lang">
  18. <a href="../../en/news/index.html">EN</a>
  19. <a href="../../ru/news/index.html">RU</a>
  20. </div>
  21. <div class="clear"></div>
  22. </div>
  23. </div>
  24. <center>
  25. <h1>News</h1>
  26. <div class="news_item">
  27. <h2 class="news_item_title">
  28. <a href="lha-jvm-macos.html">The first Local Host Access working version</a>
  29. </h2>
  30. <p class="news_item_date">
  31. 2024-12-09 00:00
  32. </p>
  33. <div class="news_item_contents">
  34. <p><img src="../../images/2024_web-test.jpg" alt="web-test" /></p>
  35. <h1 id="localhostaccess">Local Host Access</h1>
  36. <p>Tiny web server called Local Host Access (<strong>LHA</strong>) is ready to replace
  37. Local File System Access (<strong>LFSA</strong>) on JVM and macOS: I've generated this
  38. very article with LHA on macOS. Thus, Kotlin prooved to be a good choice for
  39. cross-platform development with a minor limitation.</p>
  40. <p>The minor limitation is the fact that 99% of Kotlin is used on JVM. The
  41. remaining 1% is so-called Kotlin Native for iOS, Linux, macOS, and Windows.
  42. Thus, when one needs something as simple as to find out if a symlink. . .</p>
  43. </div>
  44. <div class="news_item_more">
  45. <a href="lha-jvm-macos.html">Continue reading</a>
  46. </div>
  47. </div>
  48. <div class="news_item">
  49. <h2 class="news_item_title">
  50. <a href="pskov-again.html">Back to the development of "PSKOV"</a>
  51. </h2>
  52. <p class="news_item_date">
  53. 2024-11-14 00:00
  54. </p>
  55. <div class="news_item_contents">
  56. <p><img src="../../images/2024_lha-path.gif" alt="lha" /></p>
  57. <h1 id="pskovtoday">"PSKOV" today</h1>
  58. <p>Now, we have an old "PSKOV" version and we need an improved one.</p>
  59. <p>First, we should recall what "PSKOV" consists of:</p>
  60. <ol>
  61. <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>
  62. <li>Helper <a href="https://opengamestudio.org/lfsa/en/index.html">Python script</a> to save generated files to disk</li>
  63. </ol>
  64. <p>Helper script is used to bypass web page restriction to access
  65. local file system.</p>
  66. <p>The script itself is a tiny web server with the following commands:</p>
  67. <table>
  68. <thead>
  69. <tr>
  70. <th>№</th>
  71. <th>Command</th>
  72. <th>Details</th>
  73. </tr>
  74. </thead>
  75. <tbody>
  76. <tr>
  77. <td>1</td>
  78. <td><code>GET /path</code></td>
  79. <td>Get current working directory path</td>
  80. </tr>
  81. </tbody>
  82. </table>
  83. </div>
  84. <div class="news_item_more">
  85. <a href="pskov-again.html">Continue reading</a>
  86. </div>
  87. </div>
  88. <div class="news_item">
  89. <h2 class="news_item_title">
  90. <a href="ht-sound.html">Sound support and the search for a new direction</a>
  91. </h2>
  92. <p class="news_item_date">
  93. 2024-10-11 00:00
  94. </p>
  95. <div class="news_item_contents">
  96. <h1 id="soundsupport">Sound support</h1>
  97. <video controls width="700">
  98. <source src="../../images/2024_sound.mp4" type="video/mp4"/>
  99. </video>
  100. <p>In September I implemented sound support. However, this was the last
  101. work for "Tail and Shadow" project, because the project's story writer -
  102. Eugene - left.</p>
  103. <h1 id="thesearchforanewdirection">The search for a new direction</h1>
  104. <p>In September I also noticed the loss of interest in the project by the
  105. audience. I linked this to the fact that the project's functional and
  106. graphical results did not match that of the audience.. . .</p>
  107. </div>
  108. <div class="news_item_more">
  109. <a href="ht-sound.html">Continue reading</a>
  110. </div>
  111. </div>
  112. <div class="news_item">
  113. <h2 class="news_item_title">
  114. <a href="ht-scenes.html">Switching scenes</a>
  115. </h2>
  116. <p class="news_item_date">
  117. 2024-09-06 00:00
  118. </p>
  119. <div class="news_item_contents">
  120. <h1 id="august">August</h1>
  121. <video controls width="700">
  122. <source src="../../images/2024_scenes.mp4" type="video/mp4"/>
  123. </video>
  124. <p>In August I implemented scene switching, which allowed me to do the following:</p>
  125. <ul>
  126. <li>pressing "Start the game" button in the splash screen takes the player to a level with three floors</li>
  127. <li>selecting a door takes the player to another floor</li>
  128. <li>selecting a TV set focuses the player on the TV set with a remote control</li>
  129. <li>switching TV channels results in different images being shown</li>
  130. </ul>
  131. <p>Thus, scenes are good both for focusing on items and moving the player around.. . .</p>
  132. </div>
  133. <div class="news_item_more">
  134. <a href="ht-scenes.html">Continue reading</a>
  135. </div>
  136. </div>
  137. <div class="news_item">
  138. <h2 class="news_item_title">
  139. <a href="rethinking.html">Rethinking</a>
  140. </h2>
  141. <p class="news_item_date">
  142. 2024-08-12 00:00
  143. </p>
  144. <div class="news_item_contents">
  145. <p><img src="../../images/2024_rethinking.jpg" alt="Game" /></p>
  146. <p>When July started my initial plan was to make the instrument support Python to
  147. JavaScript code translation. However, this did not happen because tasks with
  148. higher priority emerged.</p>
  149. <p>Which task is more important than develpment of the instrument?
  150. Development of a game, of course! Now, let's go back to the beginning of
  151. July 2024…</p>
  152. <h1 id="gamejam">Gamejam</h1>
  153. <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.
  154. I participated in the jam to validate the instrument under development and. . .</p>
  155. </div>
  156. <div class="news_item_more">
  157. <a href="rethinking.html">Continue reading</a>
  158. </div>
  159. </div>
  160. <div class="news_item">
  161. <h2 class="news_item_title">
  162. <a href="memory-gui.html">"Memory" GUI</a>
  163. </h2>
  164. <p class="news_item_date">
  165. 2024-07-04 00:00
  166. </p>
  167. <div class="news_item_contents">
  168. <h1 id="memorygui">"Memory" GUI</h1>
  169. <p>In June I implemented GUI for "Memory" game in Python with the help of
  170. <a href="https://arcade.academy">Python Arcade</a>.</p>
  171. <p>While searching for the most convenient tool to create resources (assets), I found
  172. notebooks lined with graph paper to work the best:</p>
  173. <p><img src="../../images/2024_memory-gui_notebook.jpg" alt="Texture of a notebook" /></p>
  174. <p>To see the portable code architecture in real life, I participated in the 3-day long
  175. 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>
  176. <p>Here's how the customized version looks like (<a href="https://ims.cr5.space/app/p/4FvJS4fk/Вредные-продукты/about">Windows64 build</a>):. . .</p>
  177. </div>
  178. <div class="news_item_more">
  179. <a href="memory-gui.html">Continue reading</a>
  180. </div>
  181. </div>
  182. <div class="news_item">
  183. <h2 class="news_item_title">
  184. <a href="memory-text-ui.html">"Memory" text UI</a>
  185. </h2>
  186. <p class="news_item_date">
  187. 2024-06-14 00:00
  188. </p>
  189. <div class="news_item_contents">
  190. <h1 id="memorytextui">"Memory" text UI</h1>
  191. <p>In May I implemented text UI for "Memory" game in Python. And converted it to C++
  192. by the instrument under development.</p>
  193. <p>Game logic cycle implementation lead to the creation of a controller that manages
  194. context. Creating the controller in Python was straightforward. C++ version took
  195. 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.
  196. The instrument under development is limited to C++11 in order to support OpenWrt.</p>
  197. <p>Here's how much code I wrote (in lines):. . .</p>
  198. </div>
  199. <div class="news_item_more">
  200. <a href="memory-text-ui.html">Continue reading</a>
  201. </div>
  202. </div>
  203. <div class="news_item">
  204. <h2 class="news_item_title">
  205. <a href="memory-logic.html">"Memory" game logic</a>
  206. </h2>
  207. <p class="news_item_date">
  208. 2024-05-03 00:00
  209. </p>
  210. <div class="news_item_contents">
  211. <h1 id="memorygamelogic">"Memory" game logic</h1>
  212. <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>
  213. <p>Limited language model assumes the following architecture of two parts:</p>
  214. <ol>
  215. <li>state context</li>
  216. <li>pure functions without side effects working only with the context</li>
  217. </ol>
  218. <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>
  219. <p>```python
  220. class memory_Context:
  221. def <strong>init</strong>(self):
  222. self.hiddenItems = []. . .</p>
  223. </div>
  224. <div class="news_item_more">
  225. <a href="memory-logic.html">Continue reading</a>
  226. </div>
  227. </div>
  228. <div class="news_item">
  229. <h2 class="news_item_title">
  230. <a href="llm-first-py-cxx.html">The first example of a portable code</a>
  231. </h2>
  232. <p class="news_item_date">
  233. 2024-04-11 00:00
  234. </p>
  235. <div class="news_item_contents">
  236. <h1 id="supportedplatforms">Supported platforms</h1>
  237. <p>To verify code portability, I selected the following platforms and languages:</p>
  238. <ul>
  239. <li>C++: Linux, macOS, OpenWrt, Windows</li>
  240. <li>JavaScript: Chrome, Firefox, Safari</li>
  241. <li>Kotlin: Android</li>
  242. <li>Python: Linux, macOS, Windows</li>
  243. <li>Swift: iOS, macOS</li>
  244. </ul>
  245. <p>I created a simple "Hello World" example for each language to understand the basic requirements of each platform.</p>
  246. <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>
  247. </div>
  248. <div class="news_item_more">
  249. <a href="llm-first-py-cxx.html">Continue reading</a>
  250. </div>
  251. </div>
  252. <p class="pagination_title">Page 1 of 8</p>
  253. <p>
  254. <a href="index2.html">Older »</a>
  255. </p>
  256. <div id="footer">
  257. The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
  258. from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
  259. </div>
  260. </center>
  261. </body>
  262. </html>