Thread: Netty #317

Page 1 of 2 12 LastLast
Results 1 to 10 of 15
  1. #1 Netty #317 
    Registered Member
    Michael P's Avatar
    Join Date
    Dec 2013
    Posts
    1,264
    Thanks given
    499
    Thanks received
    321
    Rep Power
    674

    Information

    Netty #317 is a custom framework made by me using the Netty libary. As much as I wish that this will exterminate the use of PI, I know it will not so I will not set that as my goal, as many people do when they make frameworks. With that said, let's get away from that. My overall goal with this framework is to just provide a clean, yet stable framework. This will NOT have much content. So, if that's what you're looking for, Netty #317 is not for you.

    Although there is currently only a log-in server, I do plan on adding the basics into this before I'm done updating it; just enough to get started with.

    Media



    Credits:

    • artem543(Logo)
    • Blakeman8192 (StreamBuffer class)
    • Me
    Reply With Quote  
     

  2. Thankful user:


  3. #2  
    Java Developer

    Anezka's Avatar
    Join Date
    Aug 2013
    Age
    30
    Posts
    373
    Thanks given
    96
    Thanks received
    95
    Rep Power
    174
    Would be nice source to start a scratch project I suppose.
    Reply With Quote  
     

  4. #3  
    Chemist

    Advocatus's Avatar
    Join Date
    Dec 2009
    Posts
    2,622
    Thanks given
    201
    Thanks received
    813
    Rep Power
    1462
    Uhhh. Where to begin.
    The overall structure of the entity model is very hyperion esq. PacketSender is the equivalent of ActionSender. etc. But despite the similarities, it is obvious that you wrote this.

    The packaging is utterly horrid. You have the networking packages located within the core package even though there is no relevance between the classes in core and the classes in net. Your only class in core is, 'GameEngine' which is an implementation of task, so in all reality it should be in a subpackage of task.

    In "org.rs2.core.net.login," you have ConnectionManager. This is another example of a poorly located class. I would think that it would be worth moving to the 'net' superpackage.

    Additionally, in that class you have

    Code:
    	@Override
    	public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    		/*
    		 * If the message is a player, then we set the player.
    		 */
    		if (e.getMessage() instanceof Player) {
    			player = (Player) e.getMessage();
    		} 
    
    		/*
    		 * If the message is a packet, then we handle the packet.
    		 */
    		else if (e.getMessage() instanceof Packet) {
    			PacketManager.handlePacket(player, (Packet) e.getMessage());
    		}
    	}
    This is not thread safe, because you are running netty on threads separate from your GameEngine. As a result, the way the source is organized currently you will have problems with processing packets while processing/updating. Hyperion attempts to address this issue by submitting every packet as a Task to be processed on the game thread.
    Quote Originally Posted by blakeman8192 View Post
    Quitting is the only true failure.
    Reply With Quote  
     

  5. Thankful users:


  6. #4  
    Registered Member
    Michael P's Avatar
    Join Date
    Dec 2013
    Posts
    1,264
    Thanks given
    499
    Thanks received
    321
    Rep Power
    674
    Quote Originally Posted by Advocatus Diaboli View Post
    Uhhh. Where to begin.
    The overall structure of the entity model is very hyperion esq. PacketSender is the equivalent of ActionSender. etc. But despite the similarities, it is obvious that you wrote this.

    The packaging is utterly horrid. You have the networking packages located within the core package even though there is no relevance between the classes in core and the classes in net. Your only class in core is, 'GameEngine' which is an implementation of task, so in all reality it should be in a subpackage of task.

    In "org.rs2.core.net.login," you have ConnectionManager. This is another example of a poorly located class. I would think that it would be worth moving to the 'net' superpackage.

    Additionally, in that class you have

    Code:
    	@Override
    	public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    		/*
    		 * If the message is a player, then we set the player.
    		 */
    		if (e.getMessage() instanceof Player) {
    			player = (Player) e.getMessage();
    		} 
    
    		/*
    		 * If the message is a packet, then we handle the packet.
    		 */
    		else if (e.getMessage() instanceof Packet) {
    			PacketManager.handlePacket(player, (Packet) e.getMessage());
    		}
    	}
    This is not thread safe, because you are running netty on threads separate from your GameEngine. As a result, the way the source is organized currently you will have problems with processing packets while processing/updating. Hyperion attempts to address this issue by submitting every packet as a Task to be processed on the game thread.
    Alright, thanks for the feedback!
    Reply With Quote  
     

  7. #5  
    Banned
    Join Date
    Oct 2013
    Age
    25
    Posts
    685
    Thanks given
    15
    Thanks received
    68
    Rep Power
    0
    Get's boring when on every thread there's we want to eliminate pi.
    Reply With Quote  
     

  8. Thankful user:


  9. #6  
    Registered Member
    Michael P's Avatar
    Join Date
    Dec 2013
    Posts
    1,264
    Thanks given
    499
    Thanks received
    321
    Rep Power
    674
    Quote Originally Posted by Dri Comics View Post
    Get's boring when on every thread there's we want to eliminate pi.
    Because we all know how horrible it is; however I said that it will probably never happen, so I'm not even going to set it as one of my goals.
    Reply With Quote  
     

  10. #7  
    Banned
    Join Date
    Oct 2013
    Age
    25
    Posts
    685
    Thanks given
    15
    Thanks received
    68
    Rep Power
    0
    Quote Originally Posted by Michael P View Post
    Because we all know how horrible it is; however I said that it will probably never happen, so I'm not even going to set it as one of my goals.
    Goodjob though, I always like seeing a 317 framework, makes my day.
    Reply With Quote  
     

  11. #8  
    Registered Member

    Join Date
    Dec 2010
    Posts
    1,982
    Thanks given
    174
    Thanks received
    256
    Rep Power
    223
    Should use the up-to date netty
    Reply With Quote  
     

  12. #9  
    Registered Member Mechanikas's Avatar
    Join Date
    Jan 2012
    Posts
    205
    Thanks given
    18
    Thanks received
    7
    Rep Power
    36
    Nice work, waiting for updates.
    Reply With Quote  
     

  13. #10  
    Registered Member
    Join Date
    Oct 2012
    Posts
    102
    Thanks given
    18
    Thanks received
    16
    Rep Power
    41
    Good luck, will be following the progress!
    Reply With Quote  
     

Page 1 of 2 12 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. BattleScape Netty 317 [v1] [BS]
    By Jacob Ford in forum Downloads
    Replies: 44
    Last Post: 05-19-2012, 05:51 PM
  2. Exion - 317 Netty Framework
    By Smokey in forum Projects
    Replies: 13
    Last Post: 06-09-2011, 07:41 PM
  3. NETTY - 317 Packet Encoding with Isaac Cipher implemented
    By Warped Reality in forum Requests
    Replies: 13
    Last Post: 10-18-2010, 04:35 AM
  4. A Netty 317 Server.
    By Continue in forum Requests
    Replies: 1
    Last Post: 09-17-2010, 12:47 AM
  5. Replies: 32
    Last Post: 05-25-2010, 07:18 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •