<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Game Haxe &#187; Blog</title>
	<atom:link href="http://gamehaxe.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://gamehaxe.com</link>
	<description>Experimenting with Web Game Development</description>
	<lastBuildDate>Fri, 17 Jun 2011 01:24:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Multi-Language-Bench</title>
		<link>http://gamehaxe.com/2011/06/16/multi-language-bench/</link>
		<comments>http://gamehaxe.com/2011/06/16/multi-language-bench/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 15:48:37 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=406</guid>
		<description><![CDATA[I noticed that Google have a site that compares a few languages using a graph traversal benchmark. http://code.google.com/p/multi-language-bench/. So I thought it would be interesting to see how haxe/hxcpp fares. I started with a direct (ie, almost line-for-line) translation of &#8230; <a href="http://gamehaxe.com/2011/06/16/multi-language-bench/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I noticed that Google have a site that compares a few languages using a graph traversal benchmark. <a href="http://code.google.com/p/multi-language-bench/">http://code.google.com/p/multi-language-bench/</a>.</p>
<p>So I thought it would be interesting to see how haxe/hxcpp fares.  I started with a direct (ie, almost line-for-line) translation of their cpp implementation.  I changed the list to arrays where appropriate, and implemented one &#8220;set&#8221; as an array because haxe does not have a native &#8220;dictionary&#8221; object for keying from generic objects.</p>
<p>The supplied cpp target was pretty easy to compile on windows by ignoring the makefile and using:<br />
<code>cl -O2 LoopTesterApp.cc mao-loops.cc /EHsc</code></p>
<p>The haxe target uses  (right-click, Save As) <a href="/wp-content/multi-language-bench/LoopTesterApp.hx">LoopTesterApp.hx</a> and <a href="/wp-content/multi-language-bench/MaoLoops.hx">MaoLoops.hx</a>, and compiles with:<br />
<code>haxe -main LoopTesterApp -cpp cpp</code></p>
<p>The java_pro code can be built and run (note that increased stack size is required when running) :<br />
<code><br />
$JAVA_HOME/bin/javac LoopTesterApp.java<br />
$JAVA_HOME/bin/jar -cvf LoopTesterApp.jar `find . -name \*.class`<br />
java -Xss15500k LoopTesterApp<br />
</code></p>
<p>The java target requires additional stack space &#8211; and so does neko, however there is no option to increase the stack space with neko like there is in java, so neko just panics.  I have not tried as3 &#8211; I guess there will be a script timeout which would need to be managed.  Also a JS or v8 time would be very interesting.</p>
<p>The runtimes are:</p>
<table>
<tr>
<th>cpp</th>
<td>19.2 seconds</td>
</tr>
<tr>
<th>cpp (claimed)</th>
<td>6 seconds ?</td>
</tr>
<tr>
<th>hxcpp</th>
<td>26.7 seconds</td>
</tr>
<tr>
<th>java (pro)</th>
<td>22.5 seconds</td>
</tr>
</table>
<p>The <a href="https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf">google paper</a> cites a 3x speedup with optimised c++ code, but there is no code for this.</p>
<p>The java implementation is the hand-optimized version.  In hindsight, I should probably have ported this version, rather than the vanilla cpp version.  It includes optimizations such as object pooling and task-specific containers.  Also, this particular benchmark is designed to allow java to comfortably perform its JIT compiling.</p>
<p>So in conclusion, I would say I&#8217;m pretty happy with these results.  I&#8217;m sure there are some micro-optimizations, such as the &#8220;unsafe get&#8221; on arrays, which does not check the bounds, and some higher-level stuff that profiling may reveal that could share quite a few percent from the hxcpp time.  I&#8217;m not particularly interested in optmising for a particular benchmark, however a little bit of profiling here may help speed up the target as a whole, which would be a very good thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2011/06/16/multi-language-bench/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Four Years &#8211; Still Kicking</title>
		<link>http://gamehaxe.com/2011/03/13/four-years-still-kicking/</link>
		<comments>http://gamehaxe.com/2011/03/13/four-years-still-kicking/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 13:00:40 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Haxe]]></category>
		<category><![CDATA[hxcpp]]></category>
		<category><![CDATA[nme]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=355</guid>
		<description><![CDATA[Wow, I missed the 4-year anniversary. I have been a bit remiss in updating the old social-media postings of late, but will try harder. So apologies to those whose comments I have not answered, and I hope to do better &#8230; <a href="http://gamehaxe.com/2011/03/13/four-years-still-kicking/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow, I missed the 4-year anniversary.  I have been a bit remiss in updating the old social-media postings of late, but will try harder.  So apologies to those whose comments I have not answered, and I hope to do better in the future.</p>
<p>I would also like say a big thanks to those who have donated to the site &#8211; it is nice to feel useful.</p>
<p>The main change since last update was the release of hxcpp 2.07.  This goes with the latest haxe release and fixes many bugs, making the platform more robust.</p>
<p>Work on NME continues.  There has been some increased interest of late, and a new release is well overdue.  I&#8217;m currently working on a &#8220;project&#8221; system to help with getting up-and-running on the various platforms.  This will replace the iPhone template system and extend it to all supported platforms.</p>
<p>You can always checkout the svn version of <a href="http://code.google.com/p/nekonme">NME</a>, but you will need to build the binaries yourself.  Although I have quite a few outstanding issues, I think I will do a release once I get the project system up-and-running.</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2011/03/13/four-years-still-kicking/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Android + HXCPP &#8211; a Quickstart Guide</title>
		<link>http://gamehaxe.com/2010/09/30/android-hxcpp-a-quickstart-guide/</link>
		<comments>http://gamehaxe.com/2010/09/30/android-hxcpp-a-quickstart-guide/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 06:18:55 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[hxcpp]]></category>
		<category><![CDATA[nme]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Haxe]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=341</guid>
		<description><![CDATA[After having some success with making an Xcode template, I thought it would be relatively easy make something similar for eclipse and Android. However, there was nothing but pain for me when I tried, so instead I&#8217;ve decided to write &#8230; <a href="http://gamehaxe.com/2010/09/30/android-hxcpp-a-quickstart-guide/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After having some success with making an Xcode template, I thought it would be relatively easy make something similar for eclipse and Android.  However, there was nothing but pain for me when I tried, so instead I&#8217;ve decided to write this guide.</p>
<h3>Prerequisites</h3>
<p>There are quite a few prerequisites you need to organize before you can get things going.  Android allows building from Windows, Mac and Linux.  The procedures are quite similar, except that Windows requires some messing about with Cygwin binaries.  The method described here avoids most of the Cygwin pain \- and the google make sytem pain \- by avoiding the google make sysem altogether.</p>
<ul>
<li>Download and install the <a href="http://developer.android.com/sdk/index.html">Android SDK</a>.  This is the Java tools and libraries required for building and debugging byte-code applications.
<li>
<li> Download and install eclipse IDE.  This is the IDE that runs the SDK &#8211; follow the instructions on the Android SDK page and install the Android plugins too.</li>
<li> Install the USB drivers for your device (if required).  For my device (HTC Legend) I found the drivers on the phone itself by using it as a thumb drive.
</ul>
<p>You should now be in a position to build some sample (byte-code) applications for your device.</p>
<ul>
<li>Download the Android Native Development Kit.  This allows you to build binary code for your device.  Now for HXCPP, it is <b>very important</b> to download the latest build provided at <a href="http://www.crystax.net/android/ndk.php">Crystax.net</a>, which is a build done by a generous community member that corrects some of the glaring omissions of the official build, namely RTTI and exceptions.  If it is all the same to you, extract it to c:/tools/android-ndk for Windows, and ~/tools/android-ndk for other systems, and this will make the remaining instructions easier.
</li>
<li> Currenly on Windows, you need the svn version of HXCPP (slightly newer that 2.06.1) which has some include path fixes.  See the instructions at <a href="http://code.google.com/p/hxcpp/">http://code.google.com/p/hxcpp/</a> for getting the latest version.</li>
<li> Also on windows, you need the Cygwin dlls in your path.  One way to do this is to install the whole Cygwin toolchain and put it in your path.  The other way so to drop the two dlls from <a href="/wp-content/android/cygwin-extra.tgz">cygwin-extra.tgz</a> into the ndk binary directory, ie c:/tools/android-ndk/build/prebuilt/windows/arm-eabi-4.4.0/bin.</li>
</ul>
<h3>Project structure</h3>
<p> An android project consists several  components that all work together.</p>
<ul>
<li> Java Code.  The Java code provided in the sample project comes from a couple of places.  Because the project is graphics based, the copy NME Java code is included.  If the version of NME increases, it may be desirable to update the NME code, either by copying the new code in, or instead linking to the NME code directly.  Also, the HXCPP bootstrap Java code is included along with a small Activity wrapper file.</li>
<li> Native code.  The shared object files provide native code for running on the device.  These include the standard libraries, the NME library and the haxe code compiled with hxcpp.</li>
<li>AndroidManifest.xml. This controls how your application is deployed, and quite a few things can be done with this file.  It is best to consult the Android documentation about what can be done here.
<li>Resources &#038; Assets.  These can be useful if you want to add standard menus or other GUI elements to your application.
</ul>
<p>The basic workflow starts by making a change to your haxe source files.  You then compile the haxe code to Android cpp, which is in turn is compiled to an android shared object.  This .so file is then copied to the libs/armeabi directory in the project.  Because eclipse does not recognize a change to the shared objects as a important update, it is then necessary to touch one of the Java files so that eclipse rebuilds the project.  These steps are handled by the build_haxe batch/shell scripts provided with the project, so all you should have to do is change the code and run the script.  Then, press the &#8220;play&#8221; button in eclipse(the first time you do this, you may need to specify Run-As Android Project) and your application should launch.</p>
<p>The haxe code included in the sample directory uses a fixed class name, AndroidMain, as the bootstrap point for building the haxe shared object, libAndroidMain.so.  By fixing these names, the build script is simplified. I encourage you to put your main code for the application outside the provided project directory, and edit the AndroidMain.hx and build.hxml files to point to this external application code.  This will help with cross-platform development, and keep the boiler-plate code separate from your precious source code.</p>
<h3>Creating a New Project</h3>
<p>I could not find a very nice way to make a project template, so this is what I&#8217;ve come up with.  First, download and extract the example project, <a href="/wp-content/android/android-2.06.1.tgz">android-2.06.1.tgz</a>.  You may like to rename the parent directory from android-2.06 to something more meaningful at this stage.</p>
<p>At this point, you should be able to build the sample haxe code using the build-scripts provided.  This requires your prerequisite installations to be good, so it is worth testing.  If you have downloaded the android-ndk to a different location, you can edit the appropriate build script to reflect this.  You will need the latest NME code from haxelib.  Windows users may also need the svn version of HXCPP.</p>
<p>So that all worked?  Congratulations, your system is set up for development.</p>
<p>Next, fire up eclipse, and create a &#8220;File &#8211; New Project..&#8221;, then select &#8220;Android Project&#8221;, then select  &#8220;Create project from existing source&#8221;, and browse to your newly created directory.  You will notice that down the bottom of the Dialog, the properties are filled out with names from the sample project &#8211; we will change these next.  Once you select &#8220;Finish&#8221;, your project should be created, and ready to run on your device.</p>
<p>The project and package names are tied into Java and Android naming conventions, as well as the Android manifest, and can be difficult to budge.  It is easiest to use the eclipse Refactor-Rename menu option to change the name from &#8220;MyActivity&#8221; to something more appropriate for you, say &#8220;CircleDisplay&#8221;.  Then in the source tree under &#8220;src&#8221;, there is a file in com.company called &#8220;MyActivity.Java&#8221;.  Select this, and use the menu option to change its name to &#8220;CircleDisplay&#8221; too.  Similarly, select the &#8220;com.company&#8221; and change this to something else, in my case &#8220;com.gamehaxe&#8221; (select preview and agree to everything).  There is one final change required &#8211; the refactor option misses a reference in the AndroidManifest.xml because it starts with a period.  Double click this and in the &#8220;AndroidManifest.xml&#8221; tab, change the &#8220;.MyActivity&#8221; to &#8220;.CircleDisplay&#8221;.</p>
<p>It is important to rename these items because it effects how your application is ultimately stored in the device.</p>
<p>So now you should be good to go &#8211; press the play button and select &#8220;Android Project&#8221;.</p>
<p>There are quite a few things that can go wrong with so many things to install, so I&#8217;ve got my fingers crossed for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2010/09/30/android-hxcpp-a-quickstart-guide/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>New Releases!</title>
		<link>http://gamehaxe.com/2010/08/19/new-release/</link>
		<comments>http://gamehaxe.com/2010/08/19/new-release/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:27:28 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[hxcpp]]></category>
		<category><![CDATA[neash]]></category>
		<category><![CDATA[nme]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=326</guid>
		<description><![CDATA[Finally, I&#8217;ve managed to make a few more releases. Namely, HXCPP 2.06 and NME 2.0. HXCPP can be downloaded via &#8220;haxelib&#8221;, and works with the new 2.06 version of haxe. This release contains many bug fixes and optimizations. Also, when &#8230; <a href="http://gamehaxe.com/2010/08/19/new-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Finally, I&#8217;ve managed to make a few more releases.  Namely, HXCPP 2.06 and NME 2.0.<br />
HXCPP can be downloaded via &#8220;haxelib&#8221;, and works with the new 2.06 version of haxe.  This release contains many bug fixes and optimizations.  Also, when you compile with the -debug flag, you can get additional null checks and stack dumps.<br />
NME 2 is a complete rewrite from the ground up.  Most of the logic has been moved from neash to the c++ code for optimization reasons.<br />
For NME developers this only means a couple of things:</p>
<ul>
<li> You use &#8211;remap flash=nme instead of &#8211;remap flash=neash</li>
<li> The &#8220;boot&#8221; code has changed, so you will need to follow the main line from one of the samples. </li>
<li> Improved performance! </li>
</ul>
<p>I updated my Xcode SDK, which caused a bunch of link errors linking for the simulator with the NME library.  It seems Apple have changed the &#8220;ABI&#8221; for objc (basically, broke binary compatibility).  So I must choose pre 4.0, post 4.0 or both.  I think I am going to require NME iphone simulator users to have the latest SDK &#8211; unless there are any objections?</p>
<h2>iPhone Xcode Template</h2>
<p>I finally got around to making an Xcode template for haxe compiling. <a href="http://gamehaxe.com/wp-content/xcode/NMETemplate-2.0.0.tgz">Try it out</a> and let me know if it works.  It&#8217;s my first one, so I&#8217;m open to ideas for improving it.</p>
<p>To use the template, first extract it to your developer template area, eg: /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application.<br />
Then when you create an new Xcode project, this template should show up.  You should be able to build for the simulator.</p>
<p>To build for a real device, you will need to go though the official Apple developer program, and get yourself signed up.  Then you need to get your certificates in order, and finally edit the &#8220;plist&#8221; file in the Resources folder and change the company URL to match the one you used in your certificates.</p>
<p>You can edit Main.hx code in the &#8220;haxe/src&#8221; directory, but you will probably want to locate your haxe source tree outside your project area, since we are multi-platform developers an do not  want to tie ourselves to Xcode.  To do this, you can edit the class path in the Build.xml file, and change the boot code in IPhoneMain.hx.  It is done this way so the haxe-generated library always has the same name.  If all else fails, you can have a look in the makefile, which is set up to allow building debug and release versions for iphoneos and simulator without having to change other project settings.</p>
<p>Let me know if you have any luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2010/08/19/new-release/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>3 Years On</title>
		<link>http://gamehaxe.com/2010/02/07/3-years-on/</link>
		<comments>http://gamehaxe.com/2010/02/07/3-years-on/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 10:55:36 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[hxcpp]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[neash]]></category>
		<category><![CDATA[nme]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=279</guid>
		<description><![CDATA[Wow, has it really been 3 years? 2009 was an interesting year &#8211; I guess the big ticket items were haxe for the iPhone and getting hxcpp into the standard distribution for haxe. I am very satisfied with these achievements, &#8230; <a href="http://gamehaxe.com/2010/02/07/3-years-on/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow, has it really been 3 years?  2009 was an interesting year &#8211; I guess the big ticket items were haxe for the iPhone and getting hxcpp into the standard distribution for haxe.  I am very satisfied with these achievements, however there is still quite a bit of polish to add &#8211; especially in terms of ease-of-use.<br />
I also started some other projects &#8211; fastcgi for haxe, and &#8220;<a href="http://code.google.com/p/waxe/">waxe</a>&#8220;, the <a href="http://wxwidgets.org/">wx</a>/haxe interface, as well as continuing with neash and nme development.  One of the big changes for hxcpp, although not visible, was using an internal garbage collector which has improved performance and reduced the compile dependence on a library that is hard to debug on other peoples machines.</p>
<p>Currenly, I&#8217;m working on an NME rewrite to remove GPL code from the iPhone target, and to help integration.  Now that hxcpp has reached a certain level of quality, the diverse projects are starting to coalesce and I&#8217;m pushing ahead with a complete hxcpp/nme/iphone solution which should be very useful.</p>
<p>Looks like 2010 may be the year it all comes together (hopefully!).</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2010/02/07/3-years-on/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Quick Update</title>
		<link>http://gamehaxe.com/2009/10/15/quick-update/</link>
		<comments>http://gamehaxe.com/2009/10/15/quick-update/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 05:01:22 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[neash]]></category>
		<category><![CDATA[nme]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=235</guid>
		<description><![CDATA[Just a quick update to let you know things are still moving forwards. I have not done very much iPhone specific stuff recently, but I have been working on the graphics code base in general. The idea is to separate &#8230; <a href="http://gamehaxe.com/2009/10/15/quick-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a quick update to let you know things are still moving forwards.  I have not done very much iPhone specific stuff recently, but I have been working on the graphics code base in general.  The idea is to separate the graphics code from SDL (although still use SDL most of the time) to avoid GPL issues and also allow the library to be used in a wider set of applications rather than just games.  For example, inside a window in a larger desktop application, or inside Google&#8217;s Native Client plugin.  Another goal is to improve rendering speed by minimising the amount of data moved between haxe and the graphics code &#8211; this involves moving code logic from haxe into c++. I have also been looking at a few minor tweaks such as setting object widths/alphas like flash does.</p>
<p>Once this is done and moved into Neash/NME, I will fix a few of the remaining issues on the C++ backend &#8211; maybe even get to add dynamic properties to the runtime.  I would also like to spend a bit of time finishing off the internal garbage collection to make it thread-safe and run automatically &#8211; this could solve some of the problems compiling boehm-gc on various systems.</p>
<p>And, of course, I would like to write more tutorials&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2009/10/15/quick-update/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Haxe3D C++ Demo.</title>
		<link>http://gamehaxe.com/2009/04/08/haxe3d-c-demo/</link>
		<comments>http://gamehaxe.com/2009/04/08/haxe3d-c-demo/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 15:52:01 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[neash]]></category>
		<category><![CDATA[neko]]></category>
		<category><![CDATA[nme]]></category>
		<category><![CDATA[3d engine]]></category>
		<category><![CDATA[Haxe]]></category>
		<category><![CDATA[haxe3d]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=132</guid>
		<description><![CDATA[Nicolas Cannasse has written a 3D engine for flash 10. I have ported this code to neko and c++ using the neash library. To test the code, first extract the contents of the zip and then look in the bin &#8230; <a href="http://gamehaxe.com/2009/04/08/haxe3d-c-demo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/haxe3d/">Nicolas Cannasse has written a 3D engine for flash 10. </a> I have ported this code to neko and c++ using the neash library.</p>
<p><a href="http://gamehaxe.com/wp-content/uploads/2009/04/h3d.jpg"><img src="http://gamehaxe.com/wp-content/uploads/2009/04/h3d-150x150.jpg" alt="h3d" title="h3d" width="150" height="150" class="alignleft size-thumbnail wp-image-135" /></a></p>
<p>To test the code, first extract the contents of the zip and then look in the bin directory.  Double click the h3d.exe or h3d_ogl.bat files to run the c++ version (the h3d\_ogl.bat uses opengl, the other version uses the software renderer).  You can see the flash version from the .html file (<em>note: you will need flash player 10</em>).  You can run the neko if you have the haxelib version of nme installed by running &#8220;neko h3d.n&#8221;.  All the source files are there in case you want to do some mods.</p>
<p>I have changed the mouse-look scheme from the original code to keep things a bit more centred.  Move the mouse left/right to spin the objects, move it up/down to raise or lower the camera.  You can use &#8216;w&#8217; key for wireframe and the &#8216;p&#8217; key for shading effects.</p>
<p>On my faster computer, I get about 100fps for the opengl renderer, 80fps for the software renderer, 40fps for the flash10 renderer, and 1fps for the neko/software renderer.  There are some optimisations that could be done for the neash API, but really significant improvements could be gained by moving some of the engine into c++ code.</p>
<p>Currently, it is windows only.  <a href="http://gamehaxe.com/wp-content/uploads/h3d-cpp-demo.zip">You can get it here.</a></p>
<h3>Update:</h3>
<p>There were reports of preformance loss in opengl, and I think I may have traced it to excessive texture transactions due to the text in the status panel.  To work around this, I have cached the text as glyph bitmaps (doing this was on my todo list) which seems to have helped. (This update is in the svn version of neash). I have also added a command-line switch to use a simple fps counter instead of the status panel.  You can try this out with the h3d\_ogl\_simple.bat command, <a href="http://gamehaxe.com/wp-content/uploads/h3d-cpp-demo-2.zip">In the new download.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2009/04/08/haxe3d-c-demo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress markdown.php Unknown modifier &#8216;&#124;&#8217;</title>
		<link>http://gamehaxe.com/2009/02/04/wordpress-markdownphp-unknown-modifier/</link>
		<comments>http://gamehaxe.com/2009/02/04/wordpress-markdownphp-unknown-modifier/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 12:16:30 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=103</guid>
		<description><![CDATA[So all of a sudden, all the posts started showing preg\_replace\_callback() [function.preg-replace-callback]: Unknown modifier &#8216;&#124;&#8217; in &#8230;/wp-content/plugins/text-control/markdown.php. I presume this was because my provider changed php versions. There are 2 possible fixes: Disable your markdown plugin Fix the markdown.php file, &#8230; <a href="http://gamehaxe.com/2009/02/04/wordpress-markdownphp-unknown-modifier/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So all of a sudden, all the posts started showing preg\_replace\_callback() [function.preg-replace-callback]: Unknown modifier &#8216;|&#8217;  in &#8230;/wp-content/plugins/text-control/markdown.php.  I presume this was because my provider changed php versions.  There are 2 possible fixes:</p>
<ol>
<li>Disable your markdown plugin
</li>
<li>Fix the markdown.php file, if you can edit it.  This problem was a couple of lines above the one reported, one of the opening braces (&#8220;{&#8220;) had a back-slash quote where it should not have.  ie, it was &#8230;(?:[ ]\{$md_tab_width}&#8230; but shold just be &#8230;(?:[ ]{$md_tab_width}&#8230;
</ol>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2009/02/04/wordpress-markdownphp-unknown-modifier/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GM2D.com &#8211; New Sister Site</title>
		<link>http://gamehaxe.com/2009/02/02/gm2dcom-new-sister-site/</link>
		<comments>http://gamehaxe.com/2009/02/02/gm2dcom-new-sister-site/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 11:43:09 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[gm2d]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=99</guid>
		<description><![CDATA[I&#8217;ve just launched a new site, GM2D.com, about making games in 2D. The new site is more about tutorials and documentation for haxe, flash, NME and Neash libraries, as well as general documentation, while this site will remain more about &#8230; <a href="http://gamehaxe.com/2009/02/02/gm2dcom-new-sister-site/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just launched a new site, <a href="http://gm2d.com/">GM2D.com</a>, about making games in 2D.  The new site is more about tutorials and documentation for haxe, flash, NME and Neash libraries, as well as general documentation, while this site will remain more about technology and experimentation.   I hope the new site will help motivate me to bring out some more documentation and promote some of the great things that are being done in haxe.</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2009/02/02/gm2dcom-new-sister-site/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2 Years Old!</title>
		<link>http://gamehaxe.com/2009/01/21/2-years-old/</link>
		<comments>http://gamehaxe.com/2009/01/21/2-years-old/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 12:11:55 +0000</pubDate>
		<dc:creator>Huge</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://gamehaxe.com/?p=95</guid>
		<description><![CDATA[Another year has gone, and I&#8217;ve updated the blog look for a bit of a change. 2008 was pretty productive &#8211; three main technologies (NME, for low level rendering, Neash for flash interfacing and HXCPP for generating C++ code) have &#8230; <a href="http://gamehaxe.com/2009/01/21/2-years-old/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Another year has gone, and I&#8217;ve updated the blog look for a bit of  a change.  2008 was pretty productive &#8211;  three main technologies (NME, for low level rendering, Neash for flash interfacing and HXCPP for generating C++ code) have progressed to the &#8220;very useful&#8221; stage.  I have one more technology to go, &#8220;gm2d&#8221; &#8211; a reasonably light weight API to abstract the platform quirks required for super fast rendering on flash, software NME or OpenGL.  This will also contain some stuff for making games more easily.  And of course, I hope to get the first three technologies to production quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://gamehaxe.com/2009/01/21/2-years-old/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

