/docs/wiki: T1.4 Developing

This commit is contained in:
veclavtalica 2025-02-22 21:21:42 +03:00
parent 05f85062e8
commit a88392b9e9
2 changed files with 18 additions and 0 deletions

View File

@ -53,6 +53,7 @@
<li><b>T</b> for townengine; development and apis. <li><b>T</b> for townengine; development and apis.
<li><b>G</b> for gamedev; guides and FAQs on game making. <li><b>G</b> for gamedev; guides and FAQs on game making.
</ul> </ul>
<p>There's no reason not to pile up knowledge, refactoring is irrelevant.
</blockquote> </blockquote>
<p><a name="abi"></a><strong>T1.3 </strong><strong>Procedure Interface</strong> <p><a name="abi"></a><strong>T1.3 </strong><strong>Procedure Interface</strong>
<blockquote> <blockquote>
@ -76,5 +77,21 @@
<li>Returns must be restricted/closed on being constant over frame, parameters or asset frame. <li>Returns must be restricted/closed on being constant over frame, parameters or asset frame.
</ul> </ul>
</blockquote> </blockquote>
<p><a name="dev-on"></a><strong>T1.4 </strong><strong>Developing</strong>
<blockquote>
<p>One of hard choices we employ is requirement on having more or less the same tools on all platforms in order to compile.
If you're on Windows you need to get a MinGW environment. [cmake] and [python3] (>specify versions<) are also required.
[clang] is preferred over [gcc], as it has superior lto, which matters a great deal with our architecture (literal day and night difference in frame time).
[git] is used for version control. Git for Windows distribution could also be used for getting conforming cli environment, much recommended.
<p>Inside $TWNROOT/bin folder the [twn] script is used for engine instrumentation.
It could build and run your projects and even open this very wiki locally!
You could execute [source hooks] inside $TWNROOT to add [twn] to your $PATH temporarily. Symlinking of it is also supported.
Look inside the script to see what it can do, it's ever growing !
<p>[twn init &lt;template&gt; &lt;name&gt;] could be used to quickly initialize a project.
Look into $TWNROOT/apps/templates folder to see available templates.
<p>Support for [clangd] completions is provided with [twn devcompl] command, it generates compile_commands.json inside $TWNROOT/build folder.
Having workspace placed in $TWNROOT by your IDE should be enough to make it all work. Rerun [twn devcompl] if new files are added.
<p>Web target requires [emsdk] as of now. Use [twn build --target=web] to use it.
</blockquote>
</body> </body>
</html> </html>

View File

@ -21,6 +21,7 @@
<p style="margin:0">T1.1 <a href="about-townengine.html#introduction">Introduction</a></p> <p style="margin:0">T1.1 <a href="about-townengine.html#introduction">Introduction</a></p>
<p style="margin:0">T1.2 <a href="about-townengine.html#wiki">Wiki</a></p> <p style="margin:0">T1.2 <a href="about-townengine.html#wiki">Wiki</a></p>
<p style="margin:0">T1.3 <a href="about-townengine.html#abi">Procedure Interface</a></p> <p style="margin:0">T1.3 <a href="about-townengine.html#abi">Procedure Interface</a></p>
<p style="margin:0">T1.4 <a href="about-townengine.html#dev-on">Developing</a></p>
</blockquote> </blockquote>
<p style="margin-bottom:0"><a name="input-system"></a>T2. </strong><a href="input-system.html">Input System</strong></a></p> <p style="margin-bottom:0"><a name="input-system"></a>T2. </strong><a href="input-system.html">Input System</strong></a></p>
<blockquote style="margin-top:0"> <blockquote style="margin-top:0">