Bobba.io - HTML5 Habbo implementation

Page 3 of 3 FirstFirst 123
Results 31 to 44 of 44
  1. #31
    Registered DannyUK is offline
    MemberRank
    Jun 2011 Join Date
    EnglandLocation
    24Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Awesome work. Didn't mean to knock what you've done as its looking good just trying to give a bit of feedback.

    Should say I live in the UK so I'm a long way off SF.

    Keep it up

  2. #32
    Registered Relevance is offline
    MemberRank
    May 2018 Join Date
    17Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by DannyUK View Post
    Awesome work. Didn't mean to knock what you've done as its looking good just trying to give a bit of feedback.

    Should say I live in the UK so I'm a long way off SF.

    Keep it up
    Oh I meant that my last message wasn't published because it needed Moderator approval. :)

    Thanks!

    Could you please tell me if you got any speed improvement?

  3. #33
    Registered DannyUK is offline
    MemberRank
    Jun 2011 Join Date
    EnglandLocation
    24Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by Relevance View Post
    Oh I meant that my last message wasn't published because it needed Moderator approval. :)

    Thanks!

    Could you please tell me if you got any speed improvement?
    Much faster loading. Good work!

    Whats next?

  4. #34
    Death from above! The General is offline
    DeveloperRank
    Aug 2011 Join Date
    9,235Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Any repository to browse?

    Have yoi considered sticking to the original Habbo packet structures so you can easily intergrate it without having to write a custom server?
    Discord: TheGeneral#0063
    Join the Arcturus Discord server: https://discord.gg/eDr7FKQ (You can ask help here regarding Arcturus :love)

  5. #35
    Ultimate Member spreedblood is offline
    MemberRank
    May 2014 Join Date
    174Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by The General View Post
    Any repository to browse?

    Have yoi considered sticking to the original Habbo packet structures so you can easily intergrate it without having to write a custom server?
    During the development of the client I assume he'll be working on the server, if you mean about integrating current servers then it's another story :P

  6. #36
    Registered Relevance is offline
    MemberRank
    May 2018 Join Date
    17Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by The General View Post
    Any repository to browse?Have yoi considered sticking to the original Habbo packet structures so you can easily intergrate it without having to write a custom server?
    https://github.com/Josedn/battleball_server
    https://github.com/Josedn/battleball_client


    ClientMessage and ServerMessage classes are similar to current emulators (appendString, appendInt, popInt, popString...). Some packets could be essentially the same, but i haven't considered to sticking to original Habbo Packets.



    Quote Originally Posted by spreedblood View Post
    During the development of the client I assume he'll be working on the server, if you mean about integrating current servers then it's another story :P
    That's right

    - - - Updated - - -

    Quote Originally Posted by DannyUK View Post
    Much faster loading. Good work!

    Whats next?
    Next task is fixing the Furni Imager, it's a bit inefficient.

  7. #37
    Registered Leonson is offline
    MemberRank
    Apr 2012 Join Date
    22Posts

    Re: Bobba.io - HTML5 Habbo implementation

    How is this currently going? Any inprovenents?

  8. #38
    Hardcore Member B3T4T3ST3 is offline
    MemberRank
    Dec 2013 Join Date
    149Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by Leonson View Post
    How is this currently going? Any inprovenents?
    Don't ask for update every day, just take a look at the commits in github :)

    https://github.com/Josedn/battleball...commits/master

    https://github.com/Josedn/battleball...commits/master

  9. #39
    Registered Relevance is offline
    MemberRank
    May 2018 Join Date
    17Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by Leonson View Post
    How is this currently going? Any inprovenents?
    It got some improvements related to draw order, avatarimager, furniimager.

    I have no date for improvements, but eventually I work on it.
    But at this point I think that I'm writing more code than it should, so next big change will be a recode using React (or maybe another JavaScript framework), and PixiJS for graphics. Also converting all to ES6.

    But as B3T4T3ST3 said, you can check GitHub if you want :)

    - - - Updated - - -

    Quote Originally Posted by B3T4T3ST3 View Post
    Don't ask for update every day, just take a look at the commits in github :)

    https://github.com/Josedn/battleball...commits/master

    https://github.com/Josedn/battleball...commits/master
    You so nice :)

  10. #40
    Registered PeacefulDreams is offline
    MemberRank
    Sep 2016 Join Date
    6Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Nice work so far! Looks really promising. An implementation like this could also provide much more creative freedom regarding customs when it's stable. Keep up the good work! I'm excited to see how this turns out.

    Quote Originally Posted by The General View Post
    Any repository to browse?

    Have yoi considered sticking to the original Habbo packet structures so you can easily intergrate it without having to write a custom server?
    Might as well offer the client to Sulake then, they might pay a good amount for it lol. Nice idea though! I see a possible Arcturus & Bobba.io collab here..

  11. #41
    Registered Relevance is offline
    MemberRank
    May 2018 Join Date
    17Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by PeacefulDreams View Post
    Nice work so far! Looks really promising. An implementation like this could also provide much more creative freedom regarding customs when it's stable. Keep up the good work! I'm excited to see how this turns out.



    Might as well offer the client to Sulake then, they might pay a good amount for it lol. Nice idea though! I see a possible Arcturus & Bobba.io collab here..
    Thanks!!

    Actually some messages are very similar to the original ones, or maybe a bit simpler.

    Spoiler:
    Code:
    Communication.OUTGOING_LOGIN = 1;
    Communication.OUTGOING_REQUEST_MAP = 2;
    Communication.OUTGOING_REQUEST_MOVEMENT = 7;
    Communication.OUTGOING_REQUEST_CHAT = 9;
    Communication.OUTGOING_REQUEST_LOOK_AT = 12;
    Communication.OUTGOING_REQUEST_WAVE = 13;
    Communication.OUTGOING_REQUEST_ROOM_DATA = 15;
    Communication.OUTGOING_REQUEST_ITEM_INTERACT = 18;
    
    Communication.INCOMING_LOGIN_OK = 3;
    Communication.INCOMING_MAP_DATA = 4;
    Communication.INCOMING_PLAYERS_DATA = 6;
    Communication.INCOMING_PLAYER_STATUS = 8;
    Communication.INCOMING_CHAT = 10;
    Communication.INCOMING_PLAYER_REMOVE = 11;
    Communication.INCOMING_PLAYER_WAVE = 14;
    Communication.INCOMING_ROOM_ITEM_DATA = 16;
    Communication.INCOMING_ITEM_REMOVE = 17;
    Communication.INCOMING_ITEM_STATE = 19;
    Communication.INCOMING_WALL_ITEM_DATA = 20;
    
    function Communication(game) {
      this.game = game;
    }
    
    Communication.prototype.doLogin = function(username, look) {
      var message = new ClientMessage(Communication.OUTGOING_LOGIN);
      message.appendString(username);
      message.appendString(look);
      this.game.connection.sendMessage(message);
    };
    
    Communication.prototype.requestMap = function() {
      this.game.connection.sendMessage(new ClientMessage(Communication.OUTGOING_REQUEST_MAP));
    };
    
    Communication.prototype.requestRoomData = function() {
      this.game.connection.sendMessage(new ClientMessage(Communication.OUTGOING_REQUEST_ROOM_DATA));
    };
    
    Communication.prototype.requestMovement = function(x, y) {
      var message = new ClientMessage(Communication.OUTGOING_REQUEST_MOVEMENT);
      message.appendInt(x);
      message.appendInt(y);
      this.game.connection.sendMessage(message);
    };
    
    Communication.prototype.requestChat = function(chat) {
      if (chat.length > 0) {
        var message = new ClientMessage(Communication.OUTGOING_REQUEST_CHAT);
        message.appendString(chat);
        this.game.connection.sendMessage(message);
      }
    };
    
    Communication.prototype.requestLookAt = function(userId) {
      var message = new ClientMessage(Communication.OUTGOING_REQUEST_LOOK_AT);
      message.appendInt(userId);
      this.game.connection.sendMessage(message);
    };
    
    Communication.prototype.requestWave = function() {
      var message = new ClientMessage(Communication.OUTGOING_REQUEST_WAVE);
      this.game.connection.sendMessage(message);
    };
    
    Communication.prototype.requestInteractFurni = function(itemId) {
      var message = new ClientMessage(Communication.OUTGOING_REQUEST_ITEM_INTERACT);
      message.appendInt(itemId);
      this.game.connection.sendMessage(message);
    };
    
    Communication.prototype.handleMessage = function(data) {
      var request = new ServerMessage(data);
      switch (request.id)
      {
        case Communication.INCOMING_LOGIN_OK:
          this.handleLoggedIn(request);
          break;
        case Communication.INCOMING_MAP_DATA:
          this.handleMap(request);
          break;
        case Communication.INCOMING_PLAYERS_DATA:
          this.handlePlayers(request);
          break;
        case Communication.INCOMING_PLAYER_STATUS:
          this.handleStatus(request);
          break;
        case Communication.INCOMING_PLAYER_REMOVE:
          this.handleRemovePlayer(request);
          break;
        case Communication.INCOMING_CHAT:
          this.handleChat(request);
          break;
        case Communication.INCOMING_PLAYER_WAVE:
          this.handleWave(request);
          break;
        case Communication.INCOMING_ROOM_ITEM_DATA:
          this.handleRoomItems(request);
          break;
        case Communication.INCOMING_ITEM_REMOVE:
          this.handleRemoveFurni(request);
          break;
        case Communication.INCOMING_ITEM_STATE:
          this.handleFurniState(request);
          break;
        case Communication.INCOMING_WALL_ITEM_DATA:
          this.handleWallItems(request);
      }
    };
    
    Communication.prototype.handleLoggedIn = function(request) {
      this.game.onLoggedIn();
    };
    
    Communication.prototype.handleMap = function(request) {
      updateStatus("Received map");
      var cols = request.popInt();
      var rows = request.popInt();
      var doorX = request.popInt();
      var doorY = request.popInt();
    
      var heightmap = [];
      for (var i = 0; i < cols; i++) {
        heightmap.push([]);
        for (var j = 0; j < rows; j++) {
          heightmap[i].push(request.popInt());
        }
      }
    
      this.game.setMap(cols, rows, doorX, doorY, heightmap);
    };
    
    Communication.prototype.handlePlayers = function(request) {
      var count = request.popInt();
      //updateStatus("Received (" + count + ") players");
    
      for (var i = 0; i < count; i++) {
        var id = request.popInt();
        var x = request.popInt();
        var y  = request.popInt();
        var z  = request.popFloat();
        var rot = request.popInt();
        var name = request.popString();
        var look = request.popString();
    
        if (this.game.currentRoom != null) {
          this.game.currentRoom.setPlayer(id, x, y, z, rot, name, look);
        }
      }
    };
    
    Communication.prototype.handleRoomItems = function(request) {
      var count = request.popInt();
      //updateStatus("Received (" + count + ") room items");
      for (var i = 0; i < count; i++) {
        var id = request.popInt();
        var x = request.popInt();
        var y  = request.popInt();
        var z  = request.popFloat();
        var rot = request.popInt();
        var baseId = request.popInt();
        var state = request.popInt();
    
        if (this.game.currentRoom != null) {
          this.game.currentRoom.setRoomItem(id, x, y, z, rot, baseId, state);
        }
      }
    };
    
    Communication.prototype.handleWallItems = function(request) {
      var count = request.popInt();
      //updateStatus("Received (" + count + ") wall items");
      for (var i = 0; i < count; i++) {
        var id = request.popInt();
        var x = request.popInt();
        var y  = request.popInt();
        var rot = request.popInt();
        var baseId = request.popInt();
        var state = request.popInt();
    
        if (this.game.currentRoom != null) {
          this.game.currentRoom.setWallItem(id, x, y, rot, baseId, state);
        }
      }
    };
    
    Communication.prototype.handleFurniState = function(request) {
      var itemId = request.popInt();
      var state = request.popInt();
      if (this.game.currentRoom != null) {
        this.game.currentRoom.setFurniState(itemId, state);
      }
    };
    
    Communication.prototype.handleStatus = function(request) {
      var count = request.popInt();
      //updateStatus("Received (" + count + ") statusses");
    
      for (var i = 0; i < count; i++) {
        var userId = request.popInt();
        var x = request.popInt();
        var y  = request.popInt();
        var z  = request.popFloat();
        var rot = request.popInt();
        var statussesCount = request.popInt();
        var statusses = {};
        for (var j = 0; j < statussesCount; j++) {
          var key = request.popString();
          var value = request.popString();
          statusses[key] = value;
        }
        this.game.currentRoom.updateUserStatus(userId, x, y, z, rot, statusses);
      }
      /*var userId = request.popInt();
      var x = request.popInt();
      var y = request.popInt();
      var rot = request.popInt();
      if (this.game.currentRoom != null) {
        this.game.currentRoom.movePlayer(userId, x, y, rot);
      }*/
    };
    
    Communication.prototype.handleRemovePlayer = function(request) {
      var userId = request.popInt();
      if (this.game.currentRoom != null) {
        this.game.currentRoom.removePlayer(userId);
      }
    };
    
    Communication.prototype.handleRemoveFurni = function(request) {
      var furniId = request.popInt();
      if (this.game.currentRoom != null) {
        this.game.currentRoom.removeFurni(furniId);
      }
    };
    
    Communication.prototype.handleChat = function(request) {
      var userId = request.popInt();
      var text = request.popString();
      if (this.game.currentRoom != null) {
        this.game.currentRoom.addChat(userId, text);
      }
    };
    
    Communication.prototype.handleWave = function(request) {
      var userId = request.popInt();
      if (this.game.currentRoom != null) {
        this.game.currentRoom.addWave(userId);
      }
    };


    https://github.com/Josedn/battleball...mmunication.js


    So an integration is possible :)

  12. #42
    C# / while (!asleep); N0tis is offline
    True MemberRank
    Aug 2011 Join Date
    259Posts

    Re: Bobba.io - HTML5 Habbo implementation

    I love the 60 fps. Github?
    Hi.

  13. #43
    Death from above! The General is offline
    DeveloperRank
    Aug 2011 Join Date
    9,235Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Whats the performance when you turn off hardware acceleration in chrome?
    Discord: TheGeneral#0063
    Join the Arcturus Discord server: https://discord.gg/eDr7FKQ (You can ask help here regarding Arcturus :love)

  14. #44
    Registered Relevance is offline
    MemberRank
    May 2018 Join Date
    17Posts

    Re: Bobba.io - HTML5 Habbo implementation

    Quote Originally Posted by The General View Post
    Whats the performance when you turn off hardware acceleration in chrome?
    Tested on a Core i5 - 7200U, it's about 60fps.

    Hardware acceleration off
    Spoiler:





    Hardware acceletation on
    Spoiler:




    - - - Updated - - -

    Quote Originally Posted by N0tis View Post
    I love the 60 fps. Github?
    Github links on the initial post :)



Page 3 of 3 FirstFirst 123

Advertisement