So the main reason I’ve had to shelf working on the client is because I really don’t want to put a lot of work into it until it is interfacing with the server, primarily because the client is going to be receiving most of the information it needs about the game world from the server. On the projects I’ve worked on in the past, getting a client connected to the game server has been a snap when working with ElectroServer 5 and the ActionScript 3 client API library provided for it. Soon after setting up a fresh install of ES5 to begin creating a server for the Portal Walker client, it dawned on me that a Haxe client API library for ES5 doesn’t exist! Or, at the very least, I can’t find it.
After spending a brief moment looking into alternative server solutions, of which the closest I came to selecting was node.js, I decided the best course of action might be to roll up my sleeves and take a shot at porting the ES5 as3 client API to Haxe. Not only would this (theoretically) allow all of the various platforms I plan on targeting for Portal Walker to share the same netcode, if I am able to do this successfully I think it will have been one heck of a learning experience, not to mention something that can be of value to others.
I’ve been putting a lot of hours into porting all of the parts of the library that are essential for running a simple “Hello World” demo, and am pretty sure I have quite a long way to go until I get there. However, should I get a working demo going, I definitely plan to put my work up on GitHub to open it up to the community and the folks at Electrotank in the case that anyone else out there wants to work on it. I should probably have the first version of the complete library port finished by the time someone else becomes interested in taking a look at it, which would be pretty good timing considering I have very little faith in everything actually working by that point and will probably end up needing a hand. I never, ever, thought I’d be a contributor to an open source project, let alone be the creator and primary contributor, so I got that goin’ for me, which is nice.
Anyway, the People Powered Games coding stream has been EXTREMELY BORING since I started this porting project, which is an extraordinary thing to say about a stream where you already knew you were in for watching a guy sit there and type away at his keyboard. My process has been to run the as3 library though a useful tool called as3hx, which converts as3 scripts to Haxe scripts. Unfortunately, it’s a little rough around the edges and most files require quite a bit of fixing up before they resemble both working and human-readable Haxe code. Needless to say, combing file after file, line by line, to ensure that everything converted correctly has been a long and arduous task, and I’m not even close to having enough finished to test a demo of “Hello World”! I just hope that when I get there this actually works and I didn’t end up wasting a few days on something someone could have probably told me wouldn’t work if I had the gall to make a few forum posts. Sigh.