Sunday, April 19, 2015

Pocketmine-PE Multiplatform server for Minecraft PE

Today I tested Pocketmine-PE.  It's a Multiplatform server for Minecraft PE. My test system was running lubuntu 15.04 x64.
Following the instructions on the download screen to add the requisite libraries,  dump it to the hard drive and get it up and  running was dead easy.  After having a quick play with the config files I connected to it with my tablet without an  issue.  It appeared on the world screen straight off.

The world generated looked serviceable. Because I was trying the beta and not the new alpha it lacked booked and a few other features but the world was reminiscent of perhaps PC alpha 1.6. It lacked biomes and caves but was quite playable.

Doing basic tasks like digging,  punching a tree,  using a crafting table and a furnace worked alright.  There seemed to be a slight issue with crafting where it didn't always stick but repeating it would work.

It doesn't have mobs implemented yet,  but it does use the network message system to display achievements analogous to Minecraft on PC and console.

The website offers a large number of plugins for Pocketmine-PE. I haven't tried these yet but I believe that if the server gets developed further it could be a real killer app.  Having Craftbukkit like functionality for a mobile platform could really help give Minecraft PE a boost for players that prefer a less casual gaming experience more in line with modded servers.

In  short it's  not ready for primetime if you  want a survival mode experience but would work fine for collaborative creative  mode action.

Thursday, September 20, 2012

When is a variable?

When it's not initialized of course!

I spent hours tracing an access violation which appeared in my code with no sane explanation.

Long story short it took a lot of output to stderr before I nailed it because there were no compiler warnings and where it was crashing was a library call.

I inadvertently discovered how to initialize a variable without initializing it. Cutting through the specifics I had the equivalent of a C char*. I had managed to forget to initialize it. "No compiler warning?" Well that's the fun part.
See this char* string existed as a temp variable to do some filename parsing on so I could autoload related resources. I was concatenating to this string. This uninitialized string. The concatenation was initializing it... but wasn't. What I think it was doing was trying to add my text on after the first nul it found in memory. Whoops!

I feel rather happy that it at least crashed the program. Otherwise that is a hell of a timebomb to have sitting around in code.

Tuesday, September 11, 2012

Ideas into reality, or wrapping something in an idea?

Over the past few weeks my toy project has been a simple tiling game engine. The thing is I don't know what direction I want to take it in. It's acute Indie-itis. Still it's better than the next layer back which is "I have a great idea for a game, will you make it for me?"-osis, which is a far more chronic ailment.

When it comes to having an idea, documenting it and realizing it, I can do all three. But this time around it's a poorly fleshed out concept for an engine for actualizing ideas. Still need to see if I can compile it using the JVM too. Thinking about it from a code protection POV it's also rather brilliant. Current tools allow anyone with a few spare neurons to decompile Java. But what if the bytecode wasn't generated from javac in the first place? I'm just about 100% sure that it couldn't be decompiled easily enough for the average 1337 h/\xX0R to bother with. Besides, if I flesh out a few more layers it just may support those files which smell of eggs that web2.0 things like so much.

New tablet kernel just finished downloading. Time to try it! Bye.

Saturday, September 8, 2012

Doing horrible things to platforms.

So recently I've been distracted from my goal of an extensible SDL engine by a couple of things. Compiling a  Kernel for my Android tablet (Ainol Elf II) which is a [i]very[/i] good tablet for the price by the way and trying to compile FreePascal and Lazarus from SVN.

The latter may sound easy. Well it is. But it isn't. I can compile Pascal. I can make a .deb package for Pascal. I can install Pascal.
I can compile Lazarus. I can make a .deb of Lazarus. I can install Lazarus but...

Lazarus depends on a matching version of fp. If I compile fp, install it and try to compile Lazarus it chucks a wobbly about differing signatures of the RTL. fff...

I can even compile Pascal, install it, then compile Pascal again so it has self compiled, install it and Lazarus still won't compile!

Lazarus will compile with the standard package version of fp however.

Why am I going to such effort?

Well you see, the SVN version of fp has JVM as a target. So I could compile a Pascal program with it. Instead of write once, compile anywhere, it'd be write once, compile once. My ultimate goal was to self compile Pascal in the JVM, but I'm having no luck with that. Why? Because I think it'd be neat.

I should also point out that when I'm saying fp I mean FreePascal, not fp the textmode IDE for FreePascal, which is also pretty cool by the way if you date back to that sort of thing like myself. It's like coming home.

Friday, August 24, 2012

Learning about Dropbox

Today I decided to have a look at Dropbox which is a sort of cloud-y file sharing thing. There are many other ones out there but Dropbox seems to be gaining traction and finding support embedded into applications.

The final push to get me signed up was when I was testing the Android onboard Java IDE AIDE. It boasts supporting Eclipse projects and Dropbox support. So I decided to try out its Eclipse support. Yes, it supports Eclipse projects. However getting the projects over to my tablet was a pain.

I haven't tried out AIDE's Dropbox support but I have tried Dropbox out in Debian Wheezy x64 and Android ICS. Seems to work just fine.

Dropbox only seems to support a root folder in which the things to share between devices get dumped. That didn't really suit me as I have a tree for projects plus I wanted to use Dropbox for other things too, so changing its root to my project tree would have been silly. I looked around online and didn't find anyone mentioning a good way of handling what I wanted to do so I tried the obvious. made a symlink from my Eclipse workspace and put it in the Dropbox root directory. It honoured the symlink. I'm happy.

Of course that means that on my tablet the project is in the Dropbox root folder but I'm fine with that. If anyone wanted to do it both ways they could probably just create a symlink in Android to point to where they want their folder, but that opens up another can of worms on another device, like if it is on an SD card or something changes funny things can happen.
My desktop is pretty static so I'm not so concerned, and AIDE can be pointed anywhere to open a project so it's neither here nor there. Anyway as mentioned earlier it has Dropbox support. Not really sure what that entails yet but I guess I'll find out.

Hello and Welcome!

This blog is a sister to my pre-existing blog The intent of this blog is a far less formal, more truncated place I can put little morsels of information, discoveries, what I'm doing. That sort of thing.

hope you find something of interest.