HaxEE - An experimental HTML5 client made with Haxe

Hey guys, I recently started working on a project that I'm calling "HaxEE". It's an experimental client for Everybody Edits that uses HTML5 technologies instead of Flash. It is written in Haxe and uses the OpenFLPhaserFrost game engine, and from there it is compiled into the final JavaScript code. I know the EE dev team has been working on "UnitEE" for a similar result, and my biggest reason for making HaxEE is this: while the WebGL export from Unity works well and has good functionality, the resulting game is very bloated and uses an unreasonable amount of processing power. I have seen many people complaining about poor performance and lag in the current Flash version, and I am sure that the Unity WebGL version would just make this problem worse. HaxEE is an attempt to solve this problem by using a much more lightweight solution while still upgrading to the modern HTML5 technology.

2017/7/8 - Saturday- Set up Haxe project and experimented with OpenFL- Got PlayerIO integrated for HTML5 builds- Made the game connect to the Everybody Edits servers as a guest and join a room- Switched to logging in with an account, and made it output chat messages to the console

2017/7/9 - Sunday- Disabled old test code and switched server to the "Old Everybody Edits" server- Copied over graphics from Old EE- Added a screen system and made screens for connecting, lobby, joining, and playing- Made the lobby load and display the list of rooms, and added code for joining rooms- Added world system to handle blocks, and loaded the world from the provided map string- Listened in for block change events and added basic block placing- Added keyboard input manager and free camera movement with arrow keys or WASD- Made where player can click and drag to place blocks- Added system to change selected block when the number keys are pressed- Switched to a visual block selector, and added a face selector- Started to keep track of players and their positions- Listened in for players changing faces, and made the face selector functional- Made a new connecting/splash screen with HaxEE logo

2017/7/10 - Monday- Wrote a concept for the forum post and made some graphics for it- Set up a basic "coming soon" page at "http://joshua.lightwolfstudios.com/haxee"- Wrote the contents of this dev-log up until this point- Made movement keys control player instead of camera directly, and made camera lag behind- Added "tick" system for reliable physics time-stepping- Implemented most of the player movement code from modern EE, although it was very buggy

2017/7/11 - Tuesday- Debugged player physics, now they act just like modern EE- Fixed a few significant bugs- Tested the game with Kentiya to verify that everything was working- Experimented with loading assets made in Flash- Upgraded Haxe libraries to see if they had improved functionality- Noticed some new performance issues and reverted the libraries for now- Created a PlayerIO server for HaxEE and added core movement, world, and user sync functionality- Tested and debugged new server, and uploaded first live version

2017/7/12 - Wednesday- Remade the "menubar" and added buttons for god mode and minimap- Made god mode functional, including server side, rendering, and physics- Updated block graphics to look like they do in modern EE, also added the black block- Made where the player can erase by holding the shift or control keys- Revamped the lobby screen and made a few tweaks to the menubar- Attempted screen fade transitions but there were problems- Tried to get embedded fonts working

2017/7/13 - Thursday- Managed to get embedded fonts working properly- Tweaked some graphics, like the "go to lobby" button- Made an item manager to keep track of blocks- Added a fully functional minimap- Made a block placement queue so player doesn't get stuck- Added links at the bottom of the lobby- Did a more optimized build and minified code- Designed, created, and uploaded the HaxEE webpage- Planned the forum post, with some text from the earlier concept

2017/7/14 - Friday- Released HaxEE!

Some parts of the client were based on the "Old EE" (http://old.everybodyedits.com/), but I implemented the modern physics and graphics. Also, it currently runs on it's own PlayerIO server that mimics messages that go to and from the real server. I'll likely be doing some more experimentation and adding more features over time. I definitely want to make some standalone builds sometime soon. Standalone builds are now available for download on the website!

I know that some of you will ask why I'm not just making my own game instead, and I don't know that I have a good answer to that question. Although I've never been very active in the community, I've had a very long history with EE and I'd hate to see so much potential in the game go to waste. So I'm just doing what feels like my part in guiding EE into what could be a new era for the game. I'm also aware that there will likely be a major transition in the dev team very soon, and who knows what that will bring. But I hope this project can at least spark some interest among you and lead to more thoughtful discussion about the future of Everybody Edits.

So let me know what you think, and where you think I should go with HaxEE!-- Josh

Re: HaxEE - An experimental HTML5 client made with Haxe

Honestly, if EE has any future, this is probably it.

I'm off to scout camp for a week, so I won't be on at all. Completely cut off from the outside world. It's gonna be great ('cept 4 teh fud ofc.) cuz dat fud b nazty. liek srsly nazty. I IS LIKE SO PUMPED I DUN GIVE A CRAP ABOUT GRAMMR!!!!one!!!eleven1. So. Bye. When I get back I'll know how to shape metal and carve wood. I already know how to make baskets, towers(like big ones), find my way with a map, run for my life, and how to get caught in a tornado bcuz srsly that Knsas weathr is liek totaly krazy. It's like raining for 10 min then it stops and u look outsid and then you cant c a single cloud liek anywer? Yeh, is liek dat. I'll be living in a canvas, semi-permanent tent and using tons of bug spray because those ticks are absolutely awful there. And then it gets so dang hot there its like omg I'm melting and then you look at your hand where your canteen was (bcuz if u dun have a canteen in ur hand u r srsly slow and might even die) and ur hand melted off. Well, I've spammed enough and described how I will be living enough for now. Bye!

Re: HaxEE - An experimental HTML5 client made with Haxe

Re: HaxEE - An experimental HTML5 client made with Haxe

Also I have no idea how much time you have put down on this. But if I look at the EE Staff they haven't succeeded with this in 2 or more years.I love this, everything feels much smoother than the flash version.

Re: HaxEE - An experimental HTML5 client made with Haxe

capasha wrote:

Also I have no idea how much time you have put down on this. But if I look at the EE Staff they haven't succeeded with this in 2 or more years.I love this, everything feels much smoother than the flash version.

I'm glad you like it! I actually started on this last saturday, so less than a week ago. A full development log is included in the first post!

Re: HaxEE - An experimental HTML5 client made with Haxe

Just wondering, why doesnt anyone ever make these sorts of things in pure javascirpt? Wouldnt that be just as easy to write, much less bloated by the exporter things, and generally more efficient because you actually write the end code, not something that is converted to something else, probably fairly inefficiently?

Re: HaxEE - An experimental HTML5 client made with Haxe

destroyer123 wrote:

Just wondering, why doesnt anyone ever make these sorts of things in pure javascirpt? Wouldnt that be just as easy to write, much less bloated by the exporter things, and generally more efficient because you actually write the end code, not something that is converted to something else, probably fairly inefficiently?

While some benefits could come by writing in raw JavaScript, managing a large project like that can get out of hand very quickly. The coding structure of JavaScript isn't really designed for bigger projects.

Re: HaxEE - An experimental HTML5 client made with Haxe

TechnoWolf99 wrote:

destroyer123 wrote:

Just wondering, why doesnt anyone ever make these sorts of things in pure javascirpt? Wouldnt that be just as easy to write, much less bloated by the exporter things, and generally more efficient because you actually write the end code, not something that is converted to something else, probably fairly inefficiently?

While some benefits could come by writing in raw JavaScript, managing a large project like that can get out of hand very quickly. The coding structure of JavaScript isn't really designed for bigger projects.

What would be different about using javascript from using other languages? Javascript can pretty much do anything any other language can cant it? The main difference I can think of is that javascirpt doesnt have types, so it could sometimes get confusing if you dont keep information about the structure of the data.

Re: HaxEE - An experimental HTML5 client made with Haxe

Re: HaxEE - An experimental HTML5 client made with Haxe

I thought I should post on here about the updates I've been doing. I've been active on the Discord chat server for EE over the last week, working with everyone on there to help debug HaxEE and to try out new features. As development went on, I kept running into various core problems with OpenFL. So I've just switched to Phaser, and so far it's been going a little more smoothly. Well, there were some problems with keyboard and mouse input at first for some people, but most of them have been worked out. I still have more work to do on it to be more stable, but I think I'm in the right track. We'll see where this goes from here.

Re: HaxEE - An experimental HTML5 client made with Haxe

I doubt a game will reach the same spark of success by trying to replicate the past.

It won't replicate itIt will learn from Ee mistakes and choose it's own road

At least I hope so

So far it's using the same physics engine, user interface, graphics. It doesn't look that way to me.

Ee's main problem was inventing things. They always not worked out enough and doesn't get updates "cool update" turns out useless in couple of weeks

For example Campaigns? Campaign suggestions? Could be an amazing addition, but they decided to release only 2-3 campaigns each year and close season-based campaigns which is stupid imo Solution could be crew campaigns

Crews?Looks like they just needed a way to give players abilities to run commands as world owner. Crews could have so much potential For example they could do crew campaigns Crew could put 3-5 worlds in their crew campaign and release it More likes and favorites campaign gets - more rank crew gains Ee isn't rewarding for your work, this could fix it^

Blocks? We have ton of useless blocks. Too many colours for all of them Making colours for the blocks was okay on the early stages of the game when there weren't many blocks to begin with Now we have a lot of useless shiny blocks. And so few useful action blocks!Moving spikes, ramps, timed hazards, blocks which break when you are standing to long on them - there are a lot of cool suggestions which a really ignored. It's easier to draw a shiny block colour than program physics of the new block!

Code?Ee code is terrible! It needs to be rewrited! And they knew that 2 years ago they announced unitee This looks like a joke now.

Featured worlds? So amazing idea You could access to the worlds which a loved in the community Oh what? You can't see them offline? Pls.

And I can continue forever

Ee had potential but staff were making useless things instead of upgrading old ones.

If HaxEE has a future, they should think hard about every update they make

Re: HaxEE - An experimental HTML5 client made with Haxe

Gosha wrote:

Moving spikes, ramps, timed hazards, blocks which break when you are standing to long on them

The problem with these is that they just dont fit in with the way EE works, the whole block idea means moving spikes wouldnt fit in, ramps wouldnt be supported by the current physics engine, and blocks that break would have to have too many parameters for it to work in every situation (plus it could only be used in a few situations anyway)

I think the main thing that they think about when picking suggestions is 'does it fit in', and then if it does 'it it possible without re-doing everything'