If you read my previous post, you'll discover I'm not a fan of Dell. Given the poor customer support from Dell, I switched companies opted for an ASUS G53S laptop. This has been working nicely so far. The intent has been to get a portable machine that satiates my gaming needs as well as works for dev efforts... I bring my laptop to work and work on personal stuff over the lunch hour.
Well, starting yesterday I began working on getting the laptop loaded up with my project and the necessary tools to build my game, DB42. Oi! What pain! I've finally got things working and thought I'd post my experiences here for future reference and in the event it might help someone else out.
A bit of background first. I'm using Eclipse and the Android SDK. I've forked the libgdx project into my own distribution with a couple of tweaks here and there. I also don't have to worry completely about relying on a specific nightly build since I've got a snapshot of things. This means that I also have the support tools for *that* installed -- the Android NDK, MinGW for compiling, Cygwin & ant for building.
So, the first thing I did was install the latest and greatest Eclipse 3.7.1 (codenamed Indigo). This went off fine. Next up was TortoiseHG 2.2 so I could pull my repo from the hosting site I'm using. First problem encountered. After installing this, I noticed that the icon overlays were missing on the root directory folders. WTF. Even a reboot did not correct this. The sub-directories seemed to be ok, but there was no indication on the root as to "no change" or "modifications". So, I downgraded to 2.1.4. This cleared up that problem.
Next up was the installation of Android SDK r15. Downloading as a snap. Installing the ADT was pretty simple as well (done from within Eclipse).
After getting all of that going (which took a while -- installing the various Android components results in a pretty big download), I ran into a snag. I first cloned my repo to my hard drive. Then, I tried to import the various components. Instead of giving me a source folder and sub-packages, Eclipse showed everything as a package. For example, instead of the hierarchy of "src" with "com.gushikustudios.db42lite" as a package, I saw the package "src.com.gushikustudios.db42lite". I don't know what was up with that, but it hosed the build. To correct that, all you have to do is right-click on the project > New > Source Folder > src. For whatever reason, that corrected the layout.
Next up were errors with the project. I have no clue why, but my project settings were missing. I had to right-click on the project > properties > Java Build Path. Here I had to do several things: Add Library > JRE System Lib (which was missing for whatever reason.) Project references were missing. Recall that I've got my own build of libgdx, so I reference the project instead of things like gdx.jar. My lib settings were also missing, so I had to reference a lib that I have copied in my libs dir.
Ugh.
After correcting all of that, I tried to build my Android project and get an .apk file. Nothing. No apk file or anything produced in the bin/ sub-directory. It turns out that this behavior is the new default for the latest ADT. To 'fix' this, in Eclipse go to Window > Preferences > Android > Build > deselect the 'Skip packaging' check box. I also changed build output from 'silent' to normal. That fixed that problem and I was able to produce an .apk file.
Next up was the desktop build of gdx. I failed to realize that the resulting gdx.dll that I created referenced other dlls that I didn't have installed on my new laptop. Oh no, of course when you try to execute, the JVM doesn't give you any sort of error that is helpful in any way. I kept getting "UnsatisfiedLinkError" / "Can't find dependent libraries" errors. Great -- which dependent libraries can't you find? I mean, throw me a bone here. After poking around in the gdx.dll, it turned out that there were dynamic references to some build dlls: libstdc++-6.dll & libgcc_s_dw2-1.dll. Oops. Of course, I didn't discover this until after a couple of hours troubleshooting.
All I had to do was install MinGW and reboot and all was fine. Very frustrating, but things are finally starting to work.
A blog detailing my experiences with Android as an independent (indie) game & app developer.
Friday, November 25, 2011
Monday, November 14, 2011
Will NEVER buy another Dell or recommend their products
I just wasted about an hour and a half talking to Dell tech support about my Dell XPS M1730. I easily paid over $3000 for this beast 3 years ago... Top of the line. etc. etc. etc. My problems with this thing first started up when I installed Win7 on it a couple of years ago. For whatever reason, the video drivers never quite seemed right with the hardware and although I have 2x8800M video cards installed, I had to disable one due to incompatibilities. Whatever.
Then, about 7 or 8 months ago, the battery quit holding a charge. Which, I understand, but instead of dying off quietly, I would getting annoying nags about it, so I just pulled the battery completely. Last week the Power Supply quit being recognized. Huh? So, what does the software do? Derate of course. I purchased a new power supply. That didn't fix it.
I'm stuck with a machine that is about as crippled as you can get. The derating brings my programming builds to a crawl. Oh, and I'm only 149 days out of the extended three year warranty I purchased. The support people were sympathetic and polite, which is great, but how does that help me? It doesn't.Their solution was to upgrade the BIOS. Oh, but wait, you can't run the reflash program unless you have a recognized power supply and battery. Oops. There goes that idea.
I figured my only option was to get a new motherboard. Tech support gave me the out-of-warranty repairs number, who then redirected me to somebody that claimed I shouldn't have been directed to. Argh! They said my best bet was to skip a motherboard replacement altogether and instead buy a new computer. Ummm. Excuse me? I have no desire to purchase another Dell. I recommend everyone avoid them at all costs. I was considering to 'upgrade' to an Alienware machine -- but they share the Dell taint so I guess I need to look elsewhere.
If you are considering buying a Dell, think again.
A disappointed, FORMER Dell customer.
Then, about 7 or 8 months ago, the battery quit holding a charge. Which, I understand, but instead of dying off quietly, I would getting annoying nags about it, so I just pulled the battery completely. Last week the Power Supply quit being recognized. Huh? So, what does the software do? Derate of course. I purchased a new power supply. That didn't fix it.
I'm stuck with a machine that is about as crippled as you can get. The derating brings my programming builds to a crawl. Oh, and I'm only 149 days out of the extended three year warranty I purchased. The support people were sympathetic and polite, which is great, but how does that help me? It doesn't.Their solution was to upgrade the BIOS. Oh, but wait, you can't run the reflash program unless you have a recognized power supply and battery. Oops. There goes that idea.
I figured my only option was to get a new motherboard. Tech support gave me the out-of-warranty repairs number, who then redirected me to somebody that claimed I shouldn't have been directed to. Argh! They said my best bet was to skip a motherboard replacement altogether and instead buy a new computer. Ummm. Excuse me? I have no desire to purchase another Dell. I recommend everyone avoid them at all costs. I was considering to 'upgrade' to an Alienware machine -- but they share the Dell taint so I guess I need to look elsewhere.
If you are considering buying a Dell, think again.
A disappointed, FORMER Dell customer.
Thursday, October 27, 2011
Repulser, pass #1
I modded the libgdx particle emitter class to allow the programmer to have old particles track a specific angle. I did this so that I could get the effect you see above. It's a repulse ray. I need to polish it up a bit -- the player's tracer line appears when it shouldn't (this is a screenshot of the first, proof-of-concept pass). But, it looks functional and I like how it emanates outward. I was going to try to animate this action with multiple images, but using particles gives a waaaaay better effect. Things should be fixed up tomorrow.
Wednesday, October 19, 2011
*DING*
Slide rule Android app - 10k user Achievement Unlocked.
Checked the developer console today and saw this:
"10012 total installs (users)"
Cool! Broke the 10k barrier.
Checked the developer console today and saw this:
"10012 total installs (users)"
Cool! Broke the 10k barrier.
Sunday, October 9, 2011
Training Level 07 is done
Finally. Done. With training level 07. I wanted to create a new pendulum object for this one and had a bit of trouble initially getting it to work the way that I wanted to. After getting a tip from a Box2D guru, I was able to get things working. The problem had to do with me creating an axle that had no fixture. When I did this, the pendulum rod quit swinging. Double plus ungood. You need to have a fixture in place or the fixtureless body constrains rotation.
So, yeah, WOOT! Here's a screenshot.
So, yeah, WOOT! Here's a screenshot.
Saturday, October 8, 2011
Bobbing for crates
I wasn't happy that I had this fancy dancy new water texture but no physics behind it to make things (like crates) float. I went out and discovered that the Box2DFlash port by "BoristheBrave" had already implemented this. I ported that over to the libgdx library... and was able to do it by adding shape extensions so I didn't need any updates to the underlying libgdx JNI code which was cool. After realizing that Box2DFlash's coordinate y-axis was inverted from my environment's y-axis AND fixing a couple of bugs I introduced, it's now working flawlessly. Here's a screen shot of a couple of crates floating:
One other thing that I did last night was to integrate ACRA. This is Application Crash Reporting for Android. If you give your application Internet permission, it will send crashes off to Google docs for analysis. This will give you the trace you need that the standard 'Force Close' window absolutely does not provide.
The best thing about this is that the overall impact on the app is minimal. You add a new class and override the onCreate() method in that class, set up a Google docs form, and you are ready to go. I was a bit confused at first because I wasn't sure how to integrate it with libgdx, but it really boils down to just adding the class as part of the Android project & including the acra .JAR file. QED!
One other thing that I did last night was to integrate ACRA. This is Application Crash Reporting for Android. If you give your application Internet permission, it will send crashes off to Google docs for analysis. This will give you the trace you need that the standard 'Force Close' window absolutely does not provide.
The best thing about this is that the overall impact on the app is minimal. You add a new class and override the onCreate() method in that class, set up a Google docs form, and you are ready to go. I was a bit confused at first because I wasn't sure how to integrate it with libgdx, but it really boils down to just adding the class as part of the Android project & including the acra .JAR file. QED!
Monday, October 3, 2011
Subscribe to:
Posts (Atom)



