Posts Tagged ‘all’

Sane replacement for GLSurfaceView

May 1, 2010

I’ve been asked several times about my implementation of OpenGL ES on top of Android’s SurfaceView so I’m posting it here for easier access 🙂 And maybe someone finds it useful by googling.

A few words about why did I bother in the first place? First, I wanted to control the main game loop by myself and don’t rely on GLSurfaceView’s callbacks. Doing it this way allowed me to have a much better code architecture and is more robust as I can *really* control when and what it does. My version does the same thing in 200 lines of code instead of 1350 and can actually be understood by human beings. That brings us to the second reason: I was experiencing weird bugs and had to debug my GL rendering code. Tracing the issue I ended up at EGL level. To this day I don’t know what was really the problem as GLSurfaceView is an abomination. It doesn’t have a proper separation of responsibilities in its thirteen internal classes, the logic is horribly convoluted… let’s say initially I started to refactor it into something understandable but after a few hours just gave up and wrote my own implementation. In a single class. Simple and working one. Nuff said 🙂



Android on the iPhone!

April 24, 2010


That was my first thought when I saw this post and watched the video 🙂 I just finished installing it on my iPhone, finally it’ll be put to some use 😉

It’s just the first alpha release so things are a bit dodgy but it’s fantastic news anyway and I bet it’ll be improved quickly now. The prebuilt binaries contain Android 1.6 but others built 2.0 and 2.1 working images as well.


OS booting, phase 1

OS booting, phase 2

Android on the iPhone!

Web browser

Two hints if you want to try it on your own. I found this tutorial for dummies very helpful. To easily extract firmware you may want to use commands from this page.

Crappy Dell hardware

April 12, 2010

My first laptop was Compaq Armada M700. I bought it second-hand and used for several years. It wasn’t exactly the fastest machine out there but with PIII 750MHz and about 500MB of RAM it was perfectly usable laptop for 2003 (I think 🙂 ). I even dropped it on the hard floor once and apart from breaking off a corner of its case it survived the crash without other harm. All these years it reliably served me, with a decent battery life until the end.

Then I got Fujitsu-Siemens Amilo Pro V3515. With 2+GHz Core Duo and 2GB of RAM it was an obvious upgrade from the previous one.

Shortly after that I bought white MacBook as a second laptop and used both for a couple of years. Again, no problems with either of these, solid hardware, good battery life. Pretty idyllic life, ey?

Then I bought a Dell XPS M1530 and was collided with harsh reality. Apparently not all laptop manufacturers make good hardware. After little more than a year its battery started to fail only to die a couple of months ago. Obviously battery life in all laptops goes down with age but I’ve never had a battery dying on me completely. Oh, well, bad luck I thought. Then a few weeks ago I started to have problems with its keyboard only to discover today that one of the keys stopped working completely. With a few others being really hard to operate (arrow keys, home/end/pgdn/pgup) I suspect it’s not an isolated case. I had to remove the failed key, cleaned its socket and am now trying to put it back in, hoping it would solve the issue. Oh, by the way, putting it back is a royal pain in the ass due to Dell’s super-clever key mounting mechanism.

Frankly, I’m very disappointed with the build quality of this laptop and, no surprise, will definitely NOT buy any other Dell laptops in the future.

Liquidiser – a Blender to M3G converter

March 18, 2010

Recently I released Liquidiser, a new tool to convert Blender’s .blend files to M3G’s .m3g format. It doesn’t support the whole M3G spec yet but can convert static and skeleton-animated textured models which is the most important part 🙂
Apart from being a converter Liquidiser is also a library capable of reading entire contents of .blend files so can come in handy for those wanting to write their own converters or utilities.

M3G model viewer

July 8, 2009
Perilith Knight

Perilith Knight

Recently I was busy modeling and animating a lower-poly replacement for Perilith Knight meant to be used with JME game I’m working on. All was dandy as long as I was working inside Blender. I exported the model a few times and it was all looking fine as a static mesh. Animated model was a whole different story…

I ran into all kinds of issues from animation not being played at all, being played at the wrong speed, wrong vertices being animated… long story short I needed a tool to preview model from all angles, at different animation steps, scaled, rotated, mashed… I needed a M3G model viewer.

Monster download of Wizzer Works’ M3G Viewer didn’t really bring the expected benefits as it refused to import any of my models. Nifty 🙂 A desktop application would be nice but at the end of the day what really counts is how a model looks on an actual device so a simple J2ME M3G viewer was the way to go.

If you think the left guy seems familiar you may be right. Although the model is different the texture is the same 😉 Actually I think I messed up with texturing of the knight too.


J2ME M3G model viewer

Eclipse 3.5 with MTJ 1.0 is out

June 25, 2009


Looks like Eclipse folks made it again 🙂 Galileo release with Eclipse 3.5 and MTJ 1.0 is included. Yes, I did say ‘MTJ 1.0’! After years of trouble and uncertainity about project’s future Eclipse Mobile Tools for Java project actually saw its release 1.0! 🙂 I have to admit I’ve never been a huge fan of Java ME tools integrated with various IDEs and instead developed BitCruncher but it’s such an important milestone that I just have to try it out 🙂

Java ME SDK 3.0 on Linux/OSX

June 18, 2009

Finally! It seemed like eternity but finally there’s some real news for Linux and OSX devs out there — Sun presented a prototype of Java ME SDK 3.0 running on nothing else but Mac OS X! 🙂


There’s a video available — check it out at Java ME SDK Team Blog.

FSFR: acromym acronyms! :)

October 16, 2008

Recently acronym RPG when applied to computer games is mostly equivalent with MMORPG. For all fans of single-player role-playing games it’s an uncomfortable situation and some people (like Epic of Thalia devs) felt the need to underline that their game is not a MMORPG. But having a new acronym (actually an acronyms acronym) beats it all and one has been suggested yesterday by FSFR. FSFR obviously stands for FOSS SP FPS RPG which of course stands for Free/Open Source Software Single Player First Person Perspective Role Playing Game. Brilliant 🙂


October 15, 2008

I must admit — somethimes I like, well, not very serious things 😉 Today I bought Spi-Dogs!!!

Aren’t they cute?

Background video is Dr Motte & Westbam – Lovparade 2000.

Big LOL at a Linux old-timer (i.e. myself)

September 13, 2008

I’ve just had a big LOL at myself today. I bought a small Bamboo Wacom tablet, brought it home and plugged into my Linux box. First impression: it’s good. Tablet was recognized as a mouse, I could move cursor and click things but, well, GIMP didn’t like it as a damn tablet. Taught by years of hacking Linux I fired up Firefox, googled for “linux wacom tablet”, found excellent Linux Wacom Project and started debugging/configuring/messing around with system settings. The problem was that everything seemed to work as expected but damn GIMP refused to treat stupid tablet as a, well, tablet. Half hour later I read about disabling something when RedHat is booted with tablet plugged in as it differently autoconfigures tablet when it’s connected before system start and when system is running. *DING!* Maybe my old habits just don’t apply to modern Linux times when things Just Work? Automagically? I rebooted (I know, I could’ve just killed X) with tablet connected and voila! everything Just Works.



Happiness 🙂

That happens when you’re just so used to manually configuring things that you just don’t think that free software is up to the task of applying AutoMagic(tm) and everything Just Works 😀

UPDATE (2010.05.01): Since Ubuntu 9.4 (or possibly earlier version, can’t remember) it’s not even necessary to have it connected at boot time, just Plug’n’Draw baby, anytime 🙂