Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

29. May 2012

 

 

Oh joy of joys.  Tonight I get some nasty work off my plate and decide to wind down for some Diablo 3 action.  Initially I start encountering server problems and a quick check on their server status page shows that their servers are down.  Great.

 

So I let about an hour go by.  This being Diablo, I of course have to fight through a series of Error 37’s, but I eventually get logged in.

 

To be greeted by the message:

 

A new patch for Diablo III is available. The game will now close and apply the patch automatically. You will be able to continue playing after the patch has finished installing.

 

Oh joy, I love forced patching of my single player games…

 

Click OK and…

 

image

 

Lovely, “Diablo III has stopped working”.  Exactly what I wanted to see.  Then followed by this lovely screen:

 

image

 

“Diablo III is already running”.

 

 

From my outside perspective, it appears the game patcher is trying to restart the game to apply a patch, but the game isn’t exiting, causing the version that is going to do that patching to die a horrible APPCRASH death.

 

EDIT ( Fix details ):

Crash is being caused by having a client on a server at a different patch level.  For example, I ran the UK installer apparently, but I am playing in the America regions.  The patch has been deployed to the America’s but not the UK.  So when I log in to the American server, its sending me to the UK server to patch, and there is no patch available, so it crashes. You can check your install version by going to C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs.  If the folder is enGB and you are logging in to the American server, this is why you are crashing.

You will either have to wait for Blizzard to push the patch out to the UK, or re-download the game with the US client.  If you are constantly being logged in to the wrong servers, this is also probably the reason and solution.

Seriously Blizzard, amateur hour. Sad smile

 

And again… this is on my SINGLE PLAYER game, that I again cannot play online because of the stupid auction house, that I am never EVER going to use.

 

Let’s just say, as a non-WoW player, Blizzard to me is just another developer, one who is losing all of my goodwill fast!  For the record, I currently have no work around, except that is to wait for Blizzard to fix their damned game. Sad smile

 

If I do come across a fix for the Diablo 3 patching loop of death ™, I will post it here.

 

Oh, and Blizzard, CACHE MY DAMNED PASSWORD!!!  I hate entering it again and again and again while trying to get past the Error 37 messages. 

 

 

EDIT:  Well it appears when I bought it from Blizzard.com, because I speak Queen’s English ( I am Canadian ), it gave me the enGB client!  This may be contributing to the crash, but it’s going to really annoy me if I have to download the entire thing again just to fix this!  I currently cannot select an English options other than enGB.

 

If I set my region to Europe, it doesn’t try to patch and the crash doesn’t occur!

 

Log in to Blizzard.com and here is my download setting:

image

 

 

The client they sent me is English(EU) this results in your patch server being enGB.patch.battle.net. So if I want to stop being sent to the UK servers, it appears I need to download the client all over again, this time with English (US) selected. You can check yourself by opening your .agent.db file, in my case located at C:\Program Files (x86)\Diablo III.  Since it’s name starts with a “.”, you may need to set “Show Hidden Files” in Explorer to true to be able to see it.

 

{ "uid" : "diablo3_engb", "config" : { "expansion_level" : 0.000000, "last_played" : 0.000000, "update_progress" : 0.000000, "ptr" : false, "beta" : false, "supports_multibox" : false, "fullpath_hash" : false, "archive_override_subpath" : "", "data_dir" : "Data_D3/PC/MPQs/", "switcher" : false, "use_sparse" : false, "patch_url" : "http://enGB.patch.battle.net:1119/patch", "priority_file_layout" : "Retail", "product" : "D3", "updater_product" : "d3_patch", "update_identifier" : "d3-update-", "update_method" : "patch on demand", "update_regex" : "(?P<prefix>d3-update-(?P<dataset>\\w+))-(?P<build>\\d+)\\.mpq$", "torrent_file_path" : "Diablo III.tfil", "manifest_file_path" : "Diablo III.mfil", "priority_file_path" : "Diablo III.pfil", "binary_version_path" : "Diablo III.exe", "binary_launch_path" : "Diablo III.exe", "binary_launch_path64" : "", "run64bit" : false, "uninstall_path" : "C:\\Program Files (x86)\\Common Files\\Blizzard Entertainment\\Diablo III\\Uninstall.exe", "installed_locales" : [ "enGB" ], "display_locales" : [ "enGB", "esMX", "ptBR", "koKR", "zhTW", "deDE", "esES", "frFR", "itIT", "plPL", "ruRU" ], "launch_arguments" : [ "-launch", "-uid", "diablo3_engb" ], "preinstalled" : true } }

 

 

As you can tell from patch_url, it is setting me to international servers and launch_arguments.

 

 

I doubt this is the problem, but this would be why Diablo 3 keeps trying to send me to the European servers!

 

If you are finding Diablo 3 keeps sending you to the wrong continent, log in to Blizzard.com, check your client and see what language it is set to.  Hopefully I will find a solution that doesn’t require re-downloading everything.

29. May 2012

 

This is one of those libraries I really have been meaning to check out.  Every time I turn around it seems like it’s been ported to another platform and today is no different!cocos2dbanner  Cocos2D can now target HTML5.

 

 

In the developers own words:

 

We are happy to announce that Cocos2d-html5 alpha is released!

This is the first version of Cocos2d-html5. Most of functionality and test cases from Cocos2d-X are implemented in Cocos2d-html5. Currently, Cocos2d-html5 utilizes canvas for rendering, the API is almost the same as Cocos2d-X and Cocos2d-iPhone. High level API will be wrapped in next phase, which will offer nicer interface for Javascript programmers and will also be compatible with the javascript binding of Cocos2d-x & Cocos2d-iPhone.

Cocos2d-html5 has two menu implementations. One is DOM menu, and the other one is canvas menu. DOM menu will run more efficiently, but the drawback is that all menu items will always above the canvas.

Test cases has being tested and works as expected on

  • Chrome 16 & 18,
  • Safari 5.1,
  • IE 9 & 10
  • Firefox 12.0.

 

You can run through all of the demos in the browser using the above link, or check out the getting started guide here.  At this point I think Cocos2D is basically available on every platform for every language short of BASIC for the Amstrad, but I am sure there is a port in the works!

 

I really have to check this library out one of these days.

News

27. May 2012

 

I have long been a cheerleader of the excellent Wings3D a freely available 3D modeler in the vein of the long dead Nendo.  Sadly, the main developer announced his intention to stop development of Wings.  The project seemed destined for death, and for a number of months that was exactly what seemed to be happening.  Then I noticed today that the website has gotten a face lift and this wonderful tidbit!

 

New Release in the Works! (05/12/12)

Wings is still alive and we're working on a getting a new release ready. In the mean time you can checkout our updated gallery.

 

Excellent news!  If you haven’t yet, I highly recommend you give Wings a look!

 

In the meanwhile, here are a few of those updated images:

 

 

Looking forward to a new release!

Art

27. May 2012

 

Quickly following on the release of PlayN 1.3, a new release Playn 1.3.1 has been announced.  There aren’t a lot of changes, mostly just cleaning up the maven integration.  It has absolutely no effect on the NetBeans instructions I posted earlier.  If you are working on an iOS project, I am sure you will appreciate the updated instructions though!

 

Hot on the heels of the 1.3 release, I present the 1.3.1 release! This
patch release contains a few bug fixes, a revamping of the way PlayN
Game projects are organized with Maven, and instructions on how to
build for iOS (made possible by simplifications to the build process
that I got into this patch release)

 

Full release notes available here.

News ,

24. May 2012

 

This tutorial is going to cover everything you need to know to get a PlayN project up and running using NetBeans.  In the end you will know everything you need in order to be able to create and run the Java, Web and Android projects using PlayN 1.3.  The iOS project should work as well, but I am not on a Mac.

 

I have come to a conclusion recently.  I hate Eclipse, every time I work in it, I am fighting with the IDE more than anything else.  More specifically, I hate the M2E maven plugin more than words can describe.  I have attempted to create a series of beginner tutorials for PlayN and each and every time, I end up jumping through a half hour or more of hoops in order to get Eclipse to build my project.  Not much point in making tutorials, if my readers can’t even get PlayN up and running, right?  I don’t want to spend all of my time troubleshooting PlayN installs!  It seems like 90% of the support issues you see with PlayN revolve around Eclipse and M2E problems.

 

So that is what this guide addresses.  It is about getting a specific version of PlayN ( 1.3 ) running with a specific version of NetBeans ( 7.1.2 ), to the point you can run all of the different kinds of targets it supports.  So if you want to get started with PlayN development, start here!  It’s going to look long and daunting, but it really isn’t all that bad, I just go into a lot of detail.  If you’ve already got Netbeans up and running, you can skip 80% of it!

 

 

What you need to get started

 

 

Before we go too far ahead, you are going to need to have downloaded and installed a Java JDK.  Note, the JRE and JDK are different things, and you very much need a JDK installed.  I recommend version 6 over 7 ( that link was to 6 ) at this point, but either *should* work. Additionally, if you are intending to do Android development, you will have to download and configure the Android SDK.  Details on configuring the Android SDK are available here, just ignore all the Eclipse bits.

 

You are now going to need a version of Netbeans.  Here you have a couple of choices:

 

image

 

You want either JavaSE or Jave EE.  If you don’t care about HTML development, go with Java SE, otherwise go with EE.  In this tutorial we are going to go with the Java SE version and add the bits as we need them.  Download and install whichever version you choose now.  Before you install, make sure you have a Java JDK installed already, you will be asked for the JDK path as part of the install process.  Otherwise it’s just a next , I agree, next, I agree, click fest.  Unless of course you are the type that reads EULAs… in which case, see you in a couple hours!

 

 

Configuring NetBeans’ required plugins

 

 

Now that you’ve installed Netbeans, fire it up.  We need to configure a couple plugins right away.  Select Tools->Plugins

image

 

 

In the resulting dialog, select the Available Plugins tab, scroll down and check “Java Web Applications” then click Install.  You can skip this part if you installed Netbeans EE.

 

image

 

Dialog will appear, click Next

 

image

 

Agree to the license agreements and click Install

 

image

 

 

This process will take a few minutes, then request that it restart NetBeans, let it.

 

Now we need to set up the NBAndroid plugin, which is the Netbeans Android connector.  Once again select Tools->Plugins.  This time select Settings in the resulting dialog:

 

image

 

Then click add, and fill in the following in the dialog.  For name enter whatever you want, I went with NBAndroid.  For URL enter http://kenai.com/projects/nbandroid/downloads/download/updatecenter/updates.xml, now click OK.

 

image

 

At this point Android should show up as an option under Available plugins.  For me, as is the way with software, I encountered a bug and it didn’t.  At this point I exited and re-launch NetBeans, go to Tools->Plugins and now the options are there under Available Plugins.  If they don’t show up for you, restart Netbeans.  Now select Android and Android Test Runner for Net Beans 7.x, like so:

 

image

 

Click install, then as before, agree to the EULA and continue. You may run into this scary message, just click continue:

 

image

 

 

All right, Android is now configured, let’s create our project!

 

 

Creating your PlayN project

 

 

Select the File->New Project menu

 

image

 

In the resulting dialog, select the Maven category, then under Projects select “Project from Archetype”. Click Next.

 

image

 

 

In the next screen, on the right hand side click the Add… button

 

image

 

 

Fill the next dialog in with the following details; Group Id = com.googlecode.playn Artifact Id= playn-archetype Version 1.3, then click OK.

 

image

 

Now make sure your newly added Archetype is selected and click Next.

 

image

 

 

Now fill in the following details.  Name your project in ProjectName, I am going with playndemo and assume you did too for the rest of this tutorial.  Artifact Id will be set automatically.  Group id is your url, in my case com.gamefromscratch.  Be sure to specify 1.3, it will start as 1.0-SNAPSHOT, you don’t want this!  Finally, and this part is extremely important, fill in the value for JavaGameClassName!  I went with playndemo, but it is extremely important to click somewhere on the screen after setting it, another text box for example, or the setting will not be saved!!!  If you get an error later on that JavaGameClassName was not set, you ran into the bug of this value not saving. Now click Finish.

 

image

 

 

If all went well, it should have generated your project like this:

 

image

 

 

Building your project ( resolve Maven dependencies )

 

 

This next part is incredibly important, we need Maven to bring in all the various dependencies.  Right click the Meta Project and select Clean and Build.

 

image

 

Maven is now going to download and configure all of the various dependencies, and there are a lot of them.  Like tea?  Perhaps now would be a good time to brew a cup.  Just keep an eye on the bottom right of your screen:

 

image

 

 

Ideally what you want to see is this:

 

image

 

Fortunately, you only need to do that part once.  If you are sitting there thinking… wow, this really took a long time, I wonder if something went wrong?!?!?!  Nope, nothing went wrong, it really does take that long!  Welcome to maven.

 

Running the Desktop Java app

 

Normally all you would have to do is right click the Java project and choose run.  However as of right now there is a dependency on the LWJGL native dlls that you need to resolve manually. If you are reading this at some point in the future, you may no longer need to perform this step!

 

Try running the Java App.  Right click playndemo Java and select Run

 

image

 

In the resulting dialog, select your main class if required and click Select Main Class.

 

image

 

You will receive:

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (default-cli) on project playndemo-java: Command execution failed. Process exited with an error: 1(Exit value: 1) -> [Help 1]

 

If you scroll up the error, you will see:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at org.lwjgl.Sys$1.run(Sys.java:73)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
    at org.lwjgl.Sys.loadLibrary(Sys.java:95)
    at org.lwjgl.Sys.<clinit>(Sys.java:112)
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
    at playn.java.JavaGLContext.viewWasResized(JavaGLContext.java:125)
    at playn.core.gl.GLContext.setSize(GLContext.java:48)

 

This is because of the missing libraries, lets add those now.  ( Or if you didn’t, this problem is fixed and skip ahead! )

 

Head on over to LWJGL’s download site and download the binaries zip.  Now extract the contents of this file somewhere, it doesn’t really matter where.  I extracted to c:\temp, preserving folder names.  The end results looked like this:

 

image

 

It’s really only the native folder we care about.  Stick it anywhere, just remember the path.

 

Now back in NetBeans, right click playndemo Java and select Properties.

 

image

 

 

We now have to add a VM param to the Run options.  On the categories side, select Run, then on the right in VM options, add  -Djava.library.path=c:\path\to\lwjgwl\windows, like this:

 

image

 

Click OK, then right click the Java project and select Run.

 

image

 

Voila, your running Java PlayN application.  Now on the the HTML project.

 

Running the PlayN HTML application

 

Right click playndemo HTML and choose Run:

 

image

 

If Run isn’t an option, something went wrong when you configured the Java Webserver plugin, or you aren’t running EE edition.  Go back and repeat that step until run appears.

 

On first run ( assuming you didn’t install a webserver as part of your Netbeans install ), you will encounter this dialog with an empty server list:

 

image

 

 

We now need to install and configure a web server, don’t worry, its an easy process.  In the menu, select Tools->Servers

 

image

 

In the resulting dialog, click Add Server…

 

image

 

Click GlassFish Server 3+, then Next

 

image

 

Save it wherever you want, I went with the defaults, click Finish ( unless you want to change default settings ):

 

image

 

If all went well, you should see the following screen, simply click Close.

 

image

 

Now right click playndemo HTML and choose run. Now in the deployment dialog, you have a server you can select, do so and click OK:

 

image

 

And voila, your app running in a browser:

 

image

 

If you have problems or need to maintain or restart your GlassFish install, you can do so via the Window->Services menu option:

image

 

 

Running your PlayN Android Application in Netbeans

 

This part has a bit of a gotcha attached.  PlayN switched to use OpenGL 2.0 and the Android emulator simply doesn’t support Open GL 2.0 yet.  You can try to run it on the emulator, but it will crash every time.  If you have a physical device, you can get Netbeans to target it.

 

First right click playndemo and select Properties:

image

 

On the left hand side selection Actions.  In the Actions list, select Run Project.  Under Execute Goals: enter android:deploy android:run, and under Set Properties: enter skipTests=True and android.device=usb.  Finally click OK.  This is behind the scenes configuring a pair of maven commands.

 

image

 

Now with your Android phone plugged in, with USB debugging enabled, right click playndemo and choose Run.  Oddly enough, sometimes it deploys and runs the application, sometimes it simply deploys it and fails to run.  Worst case scenario, locate the app icon on your device and launch it manually.

 

Voila, PlayN running on my Galaxy Note  ( the black is because of the 1280x720 resolution ):

 

export_12

 

 

As you can see, you can successfully target all three platforms from Netbeans.  Trust me, that process looked a lot more complicated than it actually was.  Plus, you only have to do 95% of it once.

Programming , ,

Month List

Popular Comments