<?xml version="1.0"?>
<rss version="2.0"><channel><title>3D Latest Topics</title><link>https://www.html5gamedevs.com/forum/4-3d/</link><description>3D Latest Topics</description><language>en</language><item><title>A small upkeep-debugging pattern from a Godot dungeon loop</title><link>https://www.html5gamedevs.com/topic/73603-a-small-upkeep-debugging-pattern-from-a-godot-dungeon-loop/</link><description><![CDATA[<p>
	Disclosure: I work with SEELE AI. This note comes from reviewing a real internal Godot 4.6 Dungeon Master Tycoon prototype, not from a shipped plugin or official engine integration.
</p>

<p>
	 
</p>

<p>
	One useful debugging pattern was treating upkeep as an early warning signal instead of a punishment that only appears after combat fails.
</p>

<p>
	 
</p>

<p>
	In the prototype, the player can dig space, assign useful rooms, recruit monsters, and then face a hero wave. The part worth testing was the relationship between monster choices, room value, happiness, and combat readiness. If the player overbuilds without enough income, happiness drops before the wave, so the next decision becomes readable: stabilize the economy, recruit differently, or accept a weaker defense for one wave.
</p>

<p>
	 
</p>

<p>
	For a browser or WebGL build, I would instrument three checkpoints before adding more systems:
</p>

<p>
	 
</p>

<p>
	1. build-state validity: can the room/monster setup be understood before combat?
</p>

<p>
	2. economy pressure: does upkeep explain why the next choice matters?
</p>

<p>
	3. combat readability: can the player connect the wave result back to the previous setup?
</p>

<p>
	 
</p>

<p>
	That separation made the loop much easier to debug than one combined success/failure screen.
</p>

<p>
	 
</p>

<p>
	Workflow reference: <a href="https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w2&amp;utm_content=phase28_upkeep_debug_html5_01&amp;utm_id=phase28-html5-upkeep-debug-01" rel="external nofollow">https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w2&amp;utm_content=phase28_upkeep_debug_html5_01&amp;utm_id=phase28-html5-upkeep-debug-01</a>
</p>
]]></description><guid isPermaLink="false">73603</guid><pubDate>Sat, 18 Jul 2026 03:20:48 +0000</pubDate></item><item><title>How Developers Can Launch Mobile Games Faster Using Ready Unity Templates</title><link>https://www.html5gamedevs.com/topic/73348-how-developers-can-launch-mobile-games-faster-using-ready-unity-templates/</link><description><![CDATA[<div>
	<div>
		<div>
			 
		</div>
	</div>
</div>

<div>
	<div>
		<div>
			 
		</div>
	</div>
</div>

<div>
	<div>
		<div dir="ltr">
			<div>
				<div>
					<span>Many indie developers struggle with launching mobile games quickly.</span><br />
					<br />
					<span>Building a Unity game from scratch often takes 3–6 months due to:</span><br />
					<span>• UI setup</span><br />
					<span>• Monetization integration</span><br />
					<span>• Store compliance</span><br />
					<span>• Optimization issues</span><br />
					<br />
					<span>Recently I explored ready-to-publish Unity game templates and found that production-ready source codes can significantly reduce development time.</span><br />
					<br />
					<span>These projects usually include:</span><br />
					<span>- Clean C# scripts</span><br />
					<span>- AdMob integration</span><br />
					<span>- Android App Bundle support</span><br />
					<span>- Easy reskin structure</span><br />
					<br />
					<span>For developers looking to speed up publishing, curated Unity templates can be a practical option.</span><br />
					<br />
					<span>If anyone here has experience using ready Unity projects, would love to hear your thoughts.</span>
				</div>
			</div>
		</div>
	</div>
</div>
]]></description><guid isPermaLink="false">73348</guid><pubDate>Thu, 26 Feb 2026 18:41:08 +0000</pubDate></item><item><title>Proof That "Vibe Coding" Has Officially Hit the Skids</title><link>https://www.html5gamedevs.com/topic/73340-proof-that-vibe-coding-has-officially-hit-the-skids/</link><description><![CDATA[<p>
	finally found it: the absolute floor of the "vibe-coding" trend. If you ever wondered what a repo looks like when the dev hits <code>npm install</code> while literally forgetting to zip up their fly, look no further than <b><a href="https://boner.run" rel="external nofollow">boner.run</a></b>
</p>

<p>
	This isn't just "minimalist" or "experimental" - it's a digital dumpster fire fueled by pure, unadulterated laziness. It’s the kind of project that screams, <i>"I spent $20 on a domain and 20 seconds on the logic."</i>
</p>
]]></description><guid isPermaLink="false">73340</guid><pubDate>Tue, 24 Feb 2026 18:40:07 +0000</pubDate></item><item><title>How to make Slot games for Online casino?</title><link>https://www.html5gamedevs.com/topic/32330-how-to-make-slot-games-for-online-casino/</link><description><![CDATA[
<p>
	Hello Community !
</p>

<p>
	I am a newbie and i want to start building an online casino which will have all user management i.e cash in cashout and update features. 
</p>

<p>
	And many slot games to play with it with a fixed logic. I.e rtp 
</p>

<p>
	Please help me how can i do this project? 
</p>

<p>
	Everyone's help is appreciated !
</p>
]]></description><guid isPermaLink="false">32330</guid><pubDate>Sat, 12 Aug 2017 03:47:40 +0000</pubDate></item><item><title>What the best 3d framework?</title><link>https://www.html5gamedevs.com/topic/35080-what-the-best-3d-framework/</link><description><![CDATA[
<p>
	I need to build a 3D game that supports browsers and devices that do not support WebGL.
</p>

<p>
	What is the best framework for my mission?
</p>
]]></description><guid isPermaLink="false">35080</guid><pubDate>Mon, 15 Jan 2018 13:38:02 +0000</pubDate></item><item><title>Distorted Texture Mapping Issue in Three.js</title><link>https://www.html5gamedevs.com/topic/52887-distorted-texture-mapping-issue-in-threejs/</link><description><![CDATA[<p>
	Hey all,
</p>

<p>
	I'm using Three.js for a 3D game and facing a problem with texture mapping. Textures applied using TextureLoader appear stretched and distorted on models. Checked dimensions, tried different settings, but no luck. Any insights or solutions? Using OBJ/GLTF models, JPEG textures.
</p>

<p>
	And I recently completed <a href="https://www.igmguru.com/big-data/splunk-training/" rel="external nofollow">splunk certification</a> and I also faced problem in integrating splunk in this game.
</p>

<p>
	Thanks!
</p>
]]></description><guid isPermaLink="false">52887</guid><pubDate>Wed, 23 Aug 2023 09:59:54 +0000</pubDate></item><item><title>[ Three.js ] Character moving problem</title><link>https://www.html5gamedevs.com/topic/42625-threejs-character-moving-problem/</link><description><![CDATA[
<p style="background-color:#ffffff;color:#222222;font-size:15px;">
	Can someone please tell me why this is moving my Character in the +Y direction instead of the +Z direction?
</p>

<p>
	// Forward local direction is '+Z'
</p>

<p>
	this.__tempVec.set ( 0.0, 0.0, this.__currentVelZ );
</p>

<p>
	this.__entity.localToWorld ( this.__tempVec );
</p>

<p>
	this.__entity.setLinearVelocity ( this.__tempVec );
</p>

<p style="background-color:#ffffff;color:#222222;font-size:15px;">
	Thank you!
</p>

<hr style="background-color:#ffffff;border-top-color:#e9e9e9;border-top-style:solid;border-width:1px 0px 0px;color:#222222;font-size:15px;padding:0px;" /><p style="background-color:#ffffff;color:#222222;font-size:15px;">
	~Aerion
</p>
]]></description><guid isPermaLink="false">42625</guid><pubDate>Mon, 15 Apr 2019 23:36:01 +0000</pubDate></item><item><title>3D Asset Protection and Outsourcing</title><link>https://www.html5gamedevs.com/topic/43358-3d-asset-protection-and-outsourcing/</link><description><![CDATA[
<p style="color:#000000;font-size:medium;">
	<span style="color:#000000;">Hey everybody!</span>
</p>

<p style="color:#000000;font-size:medium;">
	<span style="color:#000000;">I work for a startup called PolyPort that specializes in 3D asset protection. We are solving a $300bn digital asset theft problem by transforming how the creative market protects, collaborates and distributed high-value digital assets. We enable 3D asset creators, VR/AR developers, collaborators, internal and external studios and brands to protect and control their 3D content wherever it travels, for its entire lifecycle.</span>
</p>

<p style="color:#000000;font-size:medium;">
	<span style="color:#000000;">Our unique and trusted platform provides you with the ability to securely outsource work and leverage the best talent across the globe. PolyPort analytics provide a digital story of where your assets have traveled through their entire lifecycle, as well as the ability to revoke access to those assets in real-time. Most importantly, PolyPort is completely transparent to your existing workflows and processes.</span>
</p>

<p style="color:#000000;font-size:medium;">
	<span style="color:#000000;">We are currently in Beta, but have received some wonderful feedback; we won two consecutive SXSW awards for privacy &amp; security and we’re thrilled to have NAB invest in our company after winning the NAB Pilot Pitch Contest in NYC this past fall.</span>
</p>

<p style="color:#000000;font-size:medium;">
	<span style="color:#000000;">It would be great to get some additional feedback:<br />
	- Is the security around 3D art an issue in the gaming industry?<span> </span><br />
	- Is working with external vendors challenging due to security issues?</span>
</p>

<p style="color:#000000;font-size:medium;">
	<span style="color:#000000;">All feedback in greatly appreciated <img alt=":)" data-emoticon="" height="20" src="https://www.html5gamedevs.com/uploads/emoticons/default_smile.png" srcset="https://www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>
]]></description><guid isPermaLink="false">43358</guid><pubDate>Fri, 19 Jul 2019 20:57:15 +0000</pubDate></item><item><title>How To Build Feature Like Coupon Applied Successfully UI Design In My Mobile App</title><link>https://www.html5gamedevs.com/topic/51334-how-to-build-feature-like-coupon-applied-successfully-ui-design-in-my-mobile-app/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	I am developing a mobile app for users. And I want to integrate features like Coupon Code Applied Congrats. Someone suggested Javascript and controller/view interaction in this <a href="https://www.igmguru.com/course/ruby-on-rails-certification-training/" rel="external nofollow">Ruby on Rails</a>, but I am getting confused. I also find it on GitHub and Stackoverflow but didn't get any solutions.
</p>

<p>
	 
</p>

<p>
	I am using this String but it is not working-
</p>

<pre style="border:0px;text-align:left;vertical-align:baseline;"><code style="background-color:transparent;border:0px;padding:0px;vertical-align:baseline;"><span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">String</span> code = <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">"request code with dialog"</span>
<span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">try</span> {
    <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">String</span> url = <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">"https://play.google.com/redeem?code="</span> + URLEncoder.encode(code, <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">"UTF-8"</span>);
    context.startActivity(<span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">new</span> Intent(Intent.ACTION_VIEW, <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">Uri</span>.parse(url)));
} <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">catch</span> (android.content.ActivityNotFoundException e) {
  <span style="border:0px;font-size:13px;padding:0px;vertical-align:baseline;">// Play Store app is not installed</span>
}</code></pre>

<p>
	 
</p>

<p>
	Any suggestions will be highly appreciated.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="jpg" data-fileid="25788" href="https://www.html5gamedevs.com/uploads/monthly_2023_01/0b7755601f6da952399625f2c4489864.jpg.cc0b2dbd085b83b05c7a4fc560a6be1d.jpg" rel=""><img alt="0b7755601f6da952399625f2c4489864.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="25788" data-ratio="75" width="800" src="https://www.html5gamedevs.com/uploads/monthly_2023_01/0b7755601f6da952399625f2c4489864.jpg.cc0b2dbd085b83b05c7a4fc560a6be1d.jpg" /></a>
</p>
]]></description><guid isPermaLink="false">51334</guid><pubDate>Thu, 05 Jan 2023 05:50:03 +0000</pubDate></item><item><title>WebGL or Three.js for faster 2D rendering?</title><link>https://www.html5gamedevs.com/topic/48300-webgl-or-threejs-for-faster-2d-rendering/</link><description><![CDATA[
<p>
	Hello :). Warn: Question could be dumb. tl;dr:<strong> </strong><u><strong>If I want to harvest the power of GPU for a low-level 2D rendering, should I use WebGL, three.js, or something similar? Or Pixi.js is the way? Other options?</strong></u>
</p>

<p>
	Version with redundant personal information: I've been making this rendering/animation engine for pixel-art, which I intend to integrate in different projects... It has simple vector animation ui and simple script lang, for converting from vec to pixelated graphics and applying pixel-wise transformations. And now I need to draw these big "pixels" fast. Also the task of creating pixel texture and filling a triangular region with it is at hand. Also custom shaders, programmable from my lang. And that's the end of my ambitions at the moment.. What should I use to GPU this?
</p>

<p>
	I learned a little Pixi.js, but it seems a little high level (?). As I understand it, WebGL is the ultimate low-level answer to GPU questions.. I just need to draw big squares and textures... Creating custom shaders would be awesome too. 
</p>

<p>
	(Is the whole project stupid?) I have this problem (with ego?) of building everything from scratch, no engines etc. And as a result a heap of unfinished projects with years of dev behind them. HELP! One of the first forum questions for me.. have mercy. <span class="ipsEmoji">?</span>
</p>
]]></description><guid isPermaLink="false">48300</guid><pubDate>Sun, 10 Apr 2022 09:28:57 +0000</pubDate></item><item><title>Question about HTML5 game focus</title><link>https://www.html5gamedevs.com/topic/48453-question-about-html5-game-focus/</link><description><![CDATA[
<p>
	Hello, I don't know much about HTML5, so this may be a dumb question for most of you. 
</p>

<p>
	Let's suppose that we have an HTML5 game that is inside a web page where you can click a button to make it full screen if you want. With either choice, in order to start the game, the users have to click inside the game canvas to give mouse focus to the game. If they don't, then they can move the mouse pointer around, but they are restricted to the edges of the screen, when the mouse pointer stops at the edge, the lookaround inside the game stops as well. When they click inside the canvas of the game, a message shows up from the browser saying "windows.net has control of your pointer. Press Esc to take back control."
</p>

<p>
	The user basically walks around a gallery with paintings on the walls. When the user is in front of a painting, he or she clicks the left mouse button, and a full screen overlay appears with some information, it's something called a "widget". At this point, the game has a command to show the mouse pointer, because some of these overlays have hyperlinks that will open websites in the user's default browser.
</p>

<p>
	The way this is intended to work, and it does perfectly in the game engine (Unreal Engine 4.23) and builds to both macOS and Win64, is that when the user clicks the right mouse button, the full screen overlay closes and the user is back on the game, where he or she can keep walking around and taking a look at other paintings. The problem I have is that when the user left clicks on the painting and this opens the overlay and also shows the mouse pointer, that releases the mouse focus from the game to the system. And in the HTML5 version, when the user closes the overlay, the mouse focus doesn't return to the game, it stays in the system. This is a huge problem for me because I need the focus to go back to the game, because if the user left clicks in the same position, then the overlay will open again, and it will be confusing. I know this thing so I know that I can walk back until I'm not close to the painting and then click, and I will go back in the game without triggering the overlay to open.
</p>

<p>
	So since the game works as intended in every other way, and only does this in HTML5, it seems to me that this is a restriction browsers have, for which they don't allow any code to grab the mouse focus unless the user clicks inside it first. Am I making a correct assumption?
</p>
]]></description><guid isPermaLink="false">48453</guid><pubDate>Wed, 01 Jun 2022 22:26:10 +0000</pubDate></item><item><title>[OpenGL emscripten] looking for tutorials</title><link>https://www.html5gamedevs.com/topic/48356-opengl-emscripten-looking-for-tutorials/</link><description><![CDATA[
<p>
	Do you know good docs / lessons / samples / tutorials ?
</p>
]]></description><guid isPermaLink="false">48356</guid><pubDate>Mon, 09 May 2022 12:08:45 +0000</pubDate></item><item><title>Pathfinding</title><link>https://www.html5gamedevs.com/topic/29088-pathfinding/</link><description><![CDATA[
<p>
	I am creating a game to test, there is no scenario, obstacles and nothing.<br />
	My question is that I'm trying to get an object to move to a certain coordinate I want.
</p>

<p>
	Example, I want to move a ball to the coordinates of DestX, DestY and DestZ.
</p>

<p>
	I've looked a lot for pathfinding, but I can not find anything that solves my problem. I just think moves executed by the keyboard arrows, I need to set the coordinates and this object should get there
</p>
]]></description><guid isPermaLink="false">29088</guid><pubDate>Wed, 15 Mar 2017 21:17:52 +0000</pubDate></item><item><title>Where can I find advanced 3D HTML5 game programming courses?</title><link>https://www.html5gamedevs.com/topic/45153-where-can-i-find-advanced-3d-html5-game-programming-courses/</link><description><![CDATA[<p>
	I have followed almost all courses for three.js and babylon.js game programming on Udemy and have created several small games in Unity3D aswell.  Most of the courses are targeted at beginners and/or are very brief. Regardless of the high price tag, are there any indepth advanced HTML5 3D game programming courses for three.js or babylon.js?
</p>]]></description><guid isPermaLink="false">45153</guid><pubDate>Tue, 14 Apr 2020 01:30:04 +0000</pubDate></item><item><title>Showing highlighted silhouette of mesh ONLY when it is occluded</title><link>https://www.html5gamedevs.com/topic/48165-showing-highlighted-silhouette-of-mesh-only-when-it-is-occluded/</link><description><![CDATA[
<p>
	Hi everybody, so i'm trying to create an online game using Babylon.js but have run into a problem thats got me a little stumped so hoping someone here would be willing to help me out. Please bear with me on this one, i'm a complete newbie with babylon as i've only every worked with THREE.js. Right now my game consists of a scene compromising of multiple meshes with multiple users represented as avatars (created from basic circle geometry for the moment) loaded into an environment. What I want to do is highlight the outline of these avatars ONLY when they are occluded by any other object, meaning that when they are not occluded they look normal with no highlight but when behind an object their highlighted silhouette can be seen by others (including yourself as you can see your own avatar). This is very akin to effects used in many other video games (see example below).
</p>

<p>
	 <img class="ipsImage ipsImage_thumbnailed" data-fileid="25357" data-ratio="56.17" width="600" alt="image.png.d737efd1bb2d857bc148eb0d6512c72b.png" src="https://www.html5gamedevs.com/uploads/monthly_2022_02/image.png.d737efd1bb2d857bc148eb0d6512c72b.png" />)<br />
	<br />
	Thus far, based on some googling and forum browsing (<a href="https://stackoverflow.com/questions/59807160/babylonjs-outline-through-walls" rel="external nofollow">https://stackoverflow.com/questions/59807160/babylonjs-outline-through-walls</a> &amp; <a href="https://forum.babylonjs.com/t/highlight-through-objects/8002/4" rel="external nofollow">https://forum.babylonjs.com/t/highlight-through-objects/8002/4</a>) I've figured out how to highlight the outline of objects using <a href="https://doc.babylonjs.com/divingDeeper/mesh/highlightLayer" rel="external nofollow">Babylon.HighlighLayer</a> and I know that i can render objects above others via <a href="https://doc.babylonjs.com/divingDeeper/materials/advanced/transparent_rendering" rel="external nofollow">RenderingGroups</a> but I can't seem to figure out how to use them in conjunction to create the effect I want. The best i've managed to do is get the highlighted avatar render above everything but I need just the silhouette not the entire mesh. I'm also constrained by the fact that my scene has many meshes in it that are loaded dynamically and i'm also trying to keep things as optimal as possible. Can't afford to use very computationally expensive procedures. <br />
	<br />
	Anybody know of the best way to approach this? Would greatly appreciate any advice or assistance you can provide.Thanks!
</p>
]]></description><guid isPermaLink="false">48165</guid><pubDate>Fri, 18 Feb 2022 08:33:27 +0000</pubDate></item><item><title>Question about Gdevelop alternatives</title><link>https://www.html5gamedevs.com/topic/47372-question-about-gdevelop-alternatives/</link><description><![CDATA[<p>
	What is a 3D Game Engine that is easy to use and without programming languages to learn almost no-code GDevelop type?
</p>]]></description><guid isPermaLink="false">47372</guid><pubDate>Thu, 03 Jun 2021 09:51:08 +0000</pubDate></item><item><title>Challenges in pure WebGL in 3D</title><link>https://www.html5gamedevs.com/topic/47990-challenges-in-pure-webgl-in-3d/</link><description><![CDATA[
<p>
	<strong>Christmas Tree</strong>
</p>

<p style="background-color:#ffffff;color:#43474b;font-size:14px;text-align:left;">
	Demo in pure WebGL, glMatrix, Ammo.js, JavaScript:<span> </span><a href="https://8observer8.github.io/webgl10-js/fps-christmas-tree-first-release/" rel="external nofollow" style="background-color:transparent;color:#287bda;">Christmas Tree</a>
</p>

<ul style="background-color:#ffffff;color:#43474b;font-size:14px;text-align:left;">
	<li>
		w, s, d, a - for moving
	</li>
	<li>
		arrows keys - for camera rotation
	</li>
	<li>
		the ‘f’ key - the third person camera for debugging of colliders
	</li>
</ul>


	<img alt="image" data-ratio="97.22" style="border-style:none;vertical-align:middle;" width="395" src="https://aws1.discourse-cdn.com/business7/uploads/babylonjs/original/3X/b/b/bba29c662620fac591f715339e6d05d8d626dbdc.png" />

]]></description><guid isPermaLink="false">47990</guid><pubDate>Thu, 30 Dec 2021 09:46:57 +0000</pubDate></item><item><title>Three.js - Collision detection on imported models</title><link>https://www.html5gamedevs.com/topic/47271-threejs-collision-detection-on-imported-models/</link><description><![CDATA[
<p>
	I'm trying to make a turn based rpg scene with 3d models. I got glTF exports from blender and their animations from mixamo.
</p>

<p>
	I've a constructor like; 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted">
<span class="kwd">constructor</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">clock </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> THREE</span><span class="pun">.</span><span class="typ">Clock</span><span class="pun">();</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">scene </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> THREE</span><span class="pun">.</span><span class="typ">Scene</span><span class="pun">();</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">loader </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> THREE</span><span class="pun">.</span><span class="typ">GLTFLoader</span><span class="pun">();</span><span class="pln">

        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">mixer</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">mixerEn</span><span class="pun">;</span><span class="pln">

        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">fog </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">

        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">animations </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="str">"Idle"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Kick"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Stun"</span><span class="pun">];</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">animationsEn </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="str">"IdleSaf"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"HitSaf"</span><span class="pun">];</span><span class="pln">

        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">actions </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">actionsEn </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">

        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">init</span><span class="pun">();</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">animate</span><span class="pun">();</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	then loaded models and their animations;
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted">
<span class="pln">loadModels</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="com">// main model</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">loader</span><span class="pun">.</span><span class="pln">load</span><span class="pun">(</span><span class="str">'glb/Es.glb'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="pln">object</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">mixer </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> THREE</span><span class="pun">.</span><span class="typ">AnimationMixer</span><span class="pun">(</span><span class="pln">object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">);</span><span class="pln">
            object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">position</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(-</span><span class="lit">250</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
            object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">rotation</span><span class="pun">.</span><span class="pln">y </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Math</span><span class="pun">.</span><span class="pln">PI </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pun">;</span><span class="pln">

            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">isMesh</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">castShadow </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
                object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">receiveShadow </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">

            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">);</span><span class="pln">
            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">loadAnim</span><span class="pun">();</span><span class="pln">
        </span><span class="pun">});</span><span class="pln">

        </span><span class="com">//opponent</span><span class="pln">
        </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">loader</span><span class="pun">.</span><span class="pln">load</span><span class="pun">(</span><span class="str">'glb/Es.glb'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="pln">object</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">mixerEn </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> THREE</span><span class="pun">.</span><span class="typ">AnimationMixer</span><span class="pun">(</span><span class="pln">object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">);</span><span class="pln">
            object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">position</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="lit">250</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
            object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">rotation</span><span class="pun">.</span><span class="pln">y </span><span class="pun">=</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Math</span><span class="pun">.</span><span class="pln">PI </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pun">;</span><span class="pln">

            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">isMesh</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">castShadow </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
                object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">receiveShadow </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">object</span><span class="pun">.</span><span class="pln">scene</span><span class="pun">);</span><span class="pln">
            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">loadAnimEn</span><span class="pun">();</span><span class="pln">
        </span><span class="pun">});</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	the problem is main character's kick pass though opponents stomach, want to detect that so I can play a stun or fade animation for opponent. Most of collision methods for basic meshes like sphere and cube. I dont know what to do.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24650" href="https://www.html5gamedevs.com/uploads/monthly_2021_05/scene.png.279fc48c580be8898cbae63d7b31bebb.png" rel=""><img alt="scene.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24650" data-ratio="63.33" width="600" src="https://www.html5gamedevs.com/uploads/monthly_2021_05/scene.png.279fc48c580be8898cbae63d7b31bebb.png" /></a>
</p>
]]></description><guid isPermaLink="false">47271</guid><pubDate>Mon, 10 May 2021 16:16:17 +0000</pubDate></item><item><title>I'm trying to make an oldschool WebGL engine,</title><link>https://www.html5gamedevs.com/topic/47210-im-trying-to-make-an-oldschool-webgl-engine/</link><description><![CDATA[
<p>
	For the moment i've juste generated a terrain chunk:
</p>

<p>
	http://punkcoders.free.fr/Punk3d/ 
</p>

<p>
	Next step is trying export a mesh from blender.
</p>
]]></description><guid isPermaLink="false">47210</guid><pubDate>Thu, 22 Apr 2021 14:13:14 +0000</pubDate></item><item><title>WebGL GLSL Shader one wave over the sphere</title><link>https://www.html5gamedevs.com/topic/46908-webgl-glsl-shader-one-wave-over-the-sphere/</link><description><![CDATA[
<p>
	<span style="font-size:14px;"><span lang="en" style="background-color:rgb(245,245,245);color:rgb(0,0,0);" xml:lang="en"><span><span>Hello, friends.</span></span> <span><span>There was such a task.</span></span> <span><span>Start up one!</span></span> <span><span>a wave over a sphere, which, as it were, looks like a map of the planet, which (map) in turn is generated from planeBufferGeometry and then these geometries are combined using</span></span></span></span><span style="background-color:#f5f5f5;color:#000000;font-size:18px;"> </span>
</p>

<p>
	THREE.BufferGeometryUtils.mergeBufferGeometries(geometries, false);
</p>

<p>
	Code of vertex shader:
</p>

<p>
	vertexShader:`<br />
	    varying vec2 vUv;<br />
	    uniform float time;<br />
	    void main(){<br />
	        vUv=uv;<br />
	        vec3 newposition = position + position*sin(position.z*12.)*0.03;<br />
	        gl_Position = projectionMatrix * modelViewMatrix * vec4( newposition, 1. );<br />
	    }<br />
	`,
</p>

<p>
	The question is how to make only this one "wave", i.e. so that sin does not go over the entire sphere, but only in the middle, for example. And further. How can I change the direction of this "wave", now it comes from the Z coordinate of this sphere, I need it to go from the position I have defined (for example, approximate coordinates of London).
</p>

<p><a href="https://www.html5gamedevs.com/uploads/monthly_2021_02/Screenshot_20210206_101239.jpg.1026db417932031b7dc7e3994f976ed6.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="24452" src="https://www.html5gamedevs.com/uploads/monthly_2021_02/Screenshot_20210206_101239.jpg.1026db417932031b7dc7e3994f976ed6.jpg" data-ratio="73.53" width="850" class="ipsImage ipsImage_thumbnailed" alt="Screenshot_20210206_101239.jpg"></a></p>]]></description><guid isPermaLink="false">46908</guid><pubDate>Sat, 06 Feb 2021 07:43:39 +0000</pubDate></item><item><title>Usage of Ammo.js with TypeScript (Ammo.js is a port of Bullet Physics Engine)</title><link>https://www.html5gamedevs.com/topic/46855-usage-of-ammojs-with-typescript-ammojs-is-a-port-of-bullet-physics-engine/</link><description><![CDATA[
<p>
	My example shows how to use Ammo.js with TypeScript in Debug and Release modes: <a href="https://github.com/8Observer8/hello-ammojs-webgl10-ts" rel="external nofollow">hello-ammojs-webgl10-ts</a>
</p>

<p>
	You should install these modules globally:
</p>

<ul><li>
		npm i typescript -g
	</li>
	<li>
		npm i browserify -g
	</li>
	<li>
		npm i uglify-js -g
	</li>
</ul><p>
	Install all packages from `package.json` using the command: `npm i`
</p>

<p>
	Comment/Uncomment Debug/Release in `index.html` and `main.ts` (see comments in these files).
</p>

<p>
	Use these commands to build the example:
</p>

<ul><li>
		`npm run debug` - to set breakpoint in code editors and to publish on PlayGround (like Plunker), for example: <a href="https://plnkr.co/edit/6KQT9VQHWvswY3cc?preview" rel="external nofollow">Hello Ammo.js. WebGL 1.0, TypeScript</a>
	</li>
	<li>
		`npm run release` - to bundle in `bundle.min.js` for production
	</li>
</ul><p>
	Note. See alse: <a href="https://www.html5gamedevs.com/topic/46858-usage-of-planckjs-with-typescript-planckjs-is-a-port-of-box2d-physics-engine/" rel="">Usage of Planck.js with TypeScript (Planck.js is a port of Box2D Physics Engine)</a>
</p>

<p>
	package.json
</p>

<pre>
<code>{
 "name": "hello-ammojs-webgl10-ts",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
   "test": "echo \"Error: no test specified\" &amp;&amp; exit 1",
   "debug": "tsc -p tsconfigs/tsconfig.debug.json",
   "compile": "tsc -p tsconfigs/tsconfig.release.json",
   "bundle": "browserify public/js/main.js -o public/js/bundle.js",
   "minify": "uglifyjs public/js/bundle.js -o public/js/bundle.min.js",
   "release": "npm run compile &amp;&amp; npm run bundle &amp;&amp; npm run minify"
 },
 "keywords": [],
 "author": "",
 "license": "ISC",
 "dependencies": {
   "ammo.js": "github:kripken/ammo.js",
   "requirejs": "^2.3.6"
 },
 "devDependencies": {
   "@types/requirejs": "^2.1.32",
   "ammojs-typed": "^1.0.6"
 }
}</code></pre>

<p>
	 
</p>

<p>
	public/index.html
</p>

<pre>
<code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;Hello Ammo. WebGL 1.0, TypeScript&lt;/title&gt;

    &lt;!-- Debug --&gt;
    &lt;script data-main="js/RequireConfig"
        src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"&gt;&lt;/script&gt;
    &lt;!-- Release --&gt;
    &lt;!-- &lt;script src="js/bundle.min.js"&gt;&lt;/script&gt; --&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;canvas id="renderCanvas" width="300" height="150"&gt;&lt;/canvas&gt;

    &lt;div id="output"&gt;&lt;/div&gt;

    &lt;a href="https://github.com/8Observer8/hello-ammojs-webgl10-ts"&gt;Source Code on GitHub&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="https://plnkr.co/edit/6KQT9VQHWvswY3cc?preview"&gt;Playground&lt;/a&gt;
&lt;/body&gt;

&lt;/html&gt;</code></pre>

<p>
	 
</p>

<p>
	src/client/main.ts
</p>

<pre>
<code>import { mat4 } from "gl-matrix";
import AmmoModule from "ammojs-typed";

let Ammo: typeof AmmoModule;
let gl: WebGLRenderingContext;
let output: HTMLDivElement;

function init()
{
   const canvas = document.getElementById("renderCanvas") as HTMLCanvasElement;
   gl = canvas.getContext("webgl");
   gl.clearColor(0.2, 0.2, 0.2, 1);
   gl.clear(gl.COLOR_BUFFER_BIT);

   output = document.getElementById("output") as HTMLDivElement;

   const vec = new Ammo.btVector3(1, 2, 3);
   output.innerHTML = `vec = (${vec.x()}, ${vec.y()}, ${vec.z()})&lt;br&gt;`;

   const matrix = mat4.create();
   output.innerHTML += `matrix = [${matrix}]`;
}

function main()
{
   AmmoModule().then((api) =&gt;
   {
       Ammo = api;
       init();
   });
}

// Debug
main();

// Release
// window.onload = () =&gt; main();</code></pre>

<p>
	 
</p>

<p>
	src/client/RequireConfig.ts
</p>

<pre>
<code>requirejs.config({
   baseUrl: "js",
   paths: {
       "gl-matrix": "https://cdn.jsdelivr.net/npm/gl-matrix@3.3.0/gl-matrix-min",
       "ammojs-typed": "https://dl.dropboxusercontent.com/s/e5iytx67noqoew7/ammo"
   }
});

requirejs(["main"], () =&gt; { });</code></pre>

<p>
	tsconfigs/tsconfig.json
</p>

<pre>
<code>{
   "compilerOptions": {
       "target": "ES5",
       "outDir": "../public/js",
       "allowSyntheticDefaultImports": true,
       "esModuleInterop": true
   },
   "include": [
       "../src/client/**/*.ts"
   ]
}</code></pre>

<p>
	 
</p>

<p>
	tsconfigs/tsconfig.debug.json
</p>

<pre>
<code>{
   "extends": "./tsconfig.json",
   "compilerOptions": {
       "module": "AMD",
       "sourceMap": true,
       "types": [
           "requirejs",
           "gl-matrix",
           "ammojs-typed"
       ],
       "moduleResolution": "node"
   }
}</code></pre>

<p>
	 
</p>

<p>
	tsconfigs/tsconfig.release.json
</p>

<pre>
<code>{
   "extends": "./tsconfig.json",
   "compilerOptions": {
       "module": "CommonJS",
       "sourceMap": false,
       "types": [
           "node"
       ]
   },
   "exclude": [
       "../src/client/RequireConfig.ts"
   ]
}</code></pre>
]]></description><guid isPermaLink="false">46855</guid><pubDate>Fri, 29 Jan 2021 15:11:18 +0000</pubDate></item><item><title>Habbo WebGL Game Engine</title><link>https://www.html5gamedevs.com/topic/34312-habbo-webgl-game-engine/</link><description><![CDATA[
<p>
	<u>This is strictly for educational purposes only</u>
</p>

<p>
	 
</p>

<p>
	Since Flash is prett<u>y</u> much being deprecated in most browsers so is Habbo.
</p>

<p>
	Since there's retro versions, most of Habbo's assets are available on the internet.
</p>

<p>
	 
</p>

<p>
	I've been using Pixi for now to create a 2D loading screen, which I did successfully.
</p>

<p>
	Then it occurred to me that Pixi is mostly just a renderer, and doesn't support 3D the same way as Three or Babylon does.<br />
	Problem is that, I found coding of 2D UI elements in both Three and Babylon really difficult compared to Pixi.
</p>

<p>
	In Habbo it's really minimal what is going to be 2.5D / 3D as only the rooms, avatars and furni are, the rest is basically 2D GUI.
</p>

<p>
	 
</p>

<p>
	So this is how I've done it for now
</p>

<p>
	<a href="https://gist.github.com/marcus-sa/7993baa14e6301c762747142e55cb5cf" rel="external nofollow">https://gist.github.com/marcus-sa/7993baa14e6301c762747142e55cb5cf</a>
</p>

<p>
	 
</p>

<p>
	Some questions:
</p>

<ul><li>
		Is Habbo; 2D with projecting, 2.5D or 3D, and would it be enough to use Pixi only?
	</li>
	<li>
		If no: Would it be possible to extend Pixi with Three or Babylon when there's going to be rendered 2.5D /3D objects?
	</li>
	<li>
		If it's truly 2D with projecting, should I just use Phaser instead?
	</li>
	<li>
		What would be best to do?
	</li>
</ul><p>
	 
</p>
]]></description><guid isPermaLink="false">34312</guid><pubDate>Thu, 30 Nov 2017 21:26:00 +0000</pubDate></item><item><title>Which is the best framework for 3D/FPS games with good mobile support?</title><link>https://www.html5gamedevs.com/topic/44940-which-is-the-best-framework-for-3dfps-games-with-good-mobile-support/</link><description><![CDATA[
<p>
	Hi, I need some help deciding which is the best 3D web game framework. I'm looking for something that has good mobile support native touch/virtual joystick support preferably.
</p>

<p>
	I have worked with playcanvas but there's no good mobile fps example, most of them use a secondary joy stick for camera control and it runs on very low fps on my device
</p>

<p>
	( <a href="https://playcanv.as/p/deRCEGms/" rel="external nofollow">https://playcanv.as/p/deRCEGms/ </a>),
</p>

<p>
	although it has quite a lot of examples for pc FPS games.
</p>

<p>
	I really like playcanvas so if anyone has any examples/templates/ideas to help me make it mobile friendly that would be appreciated. Does anyone have any suggestions or frameworks?
</p>
]]></description><guid isPermaLink="false">44940</guid><pubDate>Thu, 19 Mar 2020 07:06:26 +0000</pubDate></item><item><title>Babylonjs and Flask</title><link>https://www.html5gamedevs.com/topic/45303-babylonjs-and-flask/</link><description><![CDATA[
<p>
	Hello,
</p>

<p>
	I'm pretty new to BabylonJs. I have created a few simple applications with it. What I want to do in this current project is be able to integrate babylonjs and flask microframework. I am much more familiar with python, flask and sqlalchemy etc. than I am similar javascript frameworks. I had set up some babylonjs code for visualizing a 3D model on a webpage using html, css, and javascipt only. I use ImportMesh to load the gltf (or glb) model into the scene. This works fine as I want. I have been problems migrating this to a flask app format. I tried three different ways and each time I have hit problems. I will describe each below.
</p>

<p>
	1. Use ImportMesh just like I did for the 'plain' html, css and javascript:
</p>

<p>
	I tried to incorporate my existing html, css, and javasript files in a simple flask directory structure / simple app i.e. where my html, css, and javascript are in subdirectories to a main app.py file - exactly how I would set up any flask app. Every time I do that I get a notification saying that the model file (.gltf or .glb) can't be found and it throws a 404 error in the console. I've tried multiple different ways to define the path to the model file but it continues to throw this error.
</p>

<p>
	2. Use babylon and model html tags instead:
</p>

<p>
	I then got rid of the javascript file altogether and I simply used the babylon and model html tags in my html to define the model rather than trying to import the model using ImportMesh. This works fine. The issue here is when i tried to control the css and add some actions to the css (or similar in javascript) like repositioning the container when I click a button it doesn't seem to work like the tutorial showed in the documentation.
</p>

<p>
	3. I then tried to define my gltf as a text string.
</p>

<p>
	The thinking here was if I remove the reference to an external model file it could resolve my first issue. First I converted my 0.bin file to a base 64 encoded string and included it directly in my gltf file. I then took the entire gltf file as a text string into my javascript file and essentially called the model as a text string from there rather than as an external file. I checked the file worked in the babylonjs sandbox before I did this and it was fine but when I try to run my flask app it continues to throw an error saying it can't find the 0.bin file. The issue is here that this file is no longer needed (it was orphaned in my previous step as I have described when I converted it to base64).
</p>

<p>
	Overall, can someone help with what I need to do to get the ImportMesh function working in my original method. I'd much prefer to use the javascript ImportMesh way to do it as I feel (rightly or wrongly) I have much more control over the scene and control over the meshes etc. when I am coding in the javascript.
</p>

<p>
	Thanks.
</p>
]]></description><guid isPermaLink="false">45303</guid><pubDate>Sat, 02 May 2020 17:18:06 +0000</pubDate></item><item><title>Is Babylon.js good choice for multiplayer game for a newbie?</title><link>https://www.html5gamedevs.com/topic/45188-is-babylonjs-good-choice-for-multiplayer-game-for-a-newbie/</link><description><![CDATA[
<p>
	Hi everyone,
</p>

<p>
	I should inform you that I am totally new at game development. But I want to make a 3D multiplayer strategy game for Web. I know .NET core, so, I am going to use it for the server side. But I am really lost at what to use for a client part.
</p>

<p>
	So, basically I was choosing between PlayCanvas, Phaser and Babylon.js. I settled with Babylon. But now searching through I don't find almost any information for multiplayer game with Babylon. Phaser and PlayCanvas have documentations at their sites while babylon doesn't. 
</p>

<p>
	How do you think, will it be a big headache to start learning overall game development including finding out how to implement multiplayer aspects with a Babylon.js? Or do you think might it go easier with one of other two engine options? Any advice is appreciated.
</p>
]]></description><guid isPermaLink="false">45188</guid><pubDate>Fri, 17 Apr 2020 18:22:26 +0000</pubDate></item></channel></rss>
