Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][POSIX][Open Source Anarchy]

Page 1 of 5 12345 LastLast
Results 1 to 15 of 72
  1. #1
    TheJacob was here. TheJacob is offline
    MemberRank
    Jun 2010 Join Date
    Toronto, CanadaLocation
    326Posts

    Support Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][POSIX][Open Source Anarchy]

    Project Salmon
    Habbo Hotel Emulator (r63b)

    ---
    Bulletin: There are two important dates for this project: end of January and the end of February. The goal is to have the Hotel view working by the end of January and an undetermined number of features implemented by the end of February (an official list will be posted as January ends). We reckon we will be able to meet this tentative deadlines (and possibly finish earlier). Moreover, on the first deadline we will release the first stable build of this project as an 'r63b emulator framework' and on the second deadline we will release 'salmon emulator (r63b)'. Once the first deadline has been reached, the repository will be closed so the remainder of the Habbo features can be developed privately; then released near the end of February.

    Notice to Sulake: If you find yourself looking at this thread, the project is created for educational purposes only. I do not run or maintain a Hotel (nor am I directly affiliated with any). If you are keen to contact me, my information is at the bottom of this thread (or see my portfolio website).
    ---

    Preamble

    Back story, an aside if you are inclined to read it.

    Spoiler:

    Hi! My name is Jacob Pollack. I have been both the child and man behind a lot of projects 3 years ago that were oriented towards the progression of Habbo Hotel private servers; though primarily website development projects, I have also worked on a few Uber emulator edits. In summary, these projects were in the past and much has changed.

    Some members may have the displeasure (which is understandable) of recognizing me from previous Habbo private server ventures (i.e. Demon Hotel and RaGEZONE Hotel, henceforth never referenced again); they are in the past. I understand that lasting, buried away emotions may be lifted from this development, however I am kindly asking that you express these emotions somewhere else. I have kindly asked MentaL to forgive the past in the promise of positive contributions to the community (which I will be keeping my word). I understand that the path to keeping my word will be filled with adversity, however I am confident that it will be kept.

    This project is my contribution to the community; pooling some of the material that I have learned over the past 3 years. The contribution does not end at that, it's an attitude contribution as well in the hope to continue an open source and community development thriving section (personal goals, ones you may or may not share which is ok).

    Features Summary

    Habbo Features

    Not enough has been complete to be worth mentioning... this will be updated as development progresses. Client version will be posted as well (including a link to the cracked SWF).

    Other Features

    ... to be done.

    Snippets

    Habbo Snippets
    Spoiler:

    To arrive...

    Code Snippets
    Spoiler:

    Socket Manager Constructor
    Code:
    // See header file.
    SocketManager::SocketManager(const string bindIPAddr, const short bindPort, const short backLog) {
      // Initializes the fields.
      this->serverFD = -1;
      this->connectionReactor = NULL;
    
      // ####
    
      int result;
      sockaddr_in inAddr;
    
      // Creates the server socket and stores its file descriptor. Forces the TCP 
      // protocol.
      result = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    
      // Determines if there was one or more errors creating the socket. If so, 
      // throw a critical exception.
      if (-1 == result) {
        throw CritException("Could not create socket.", __LINE__, __FILE__);
      }
    
      this->serverFD = result;
    
      // Set the server socket as non-blocking. This will be inherited.
      const int tmpFlags = fcntl(this->serverFD, F_GETFL, 0);
    
      fcntl(this->serverFD, F_SETFL, tmpFlags | O_NONBLOCK);
    
      // Set the server socket as reusible. This will be inherited.
      const int on = 1;
    
      result = setsockopt(this->serverFD, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast<const char *>(&on), sizeof(on));
    
      // Determines if there was an error setting the server socket option.
      if (-1 == result) {
        throw CritException("Could not set the server socket as reusible.", __LINE__, __FILE__);
      }
    
      // Begins storing the server address information.
      inAddr.sin_family = AF_INET;
      inAddr.sin_port = htons(bindPort);
    
      result = inet_pton(AF_INET, bindIPAddr.c_str(), &(inAddr.sin_addr));
    
      // Determines if there was an error storing the IP address in its Network 
      // Byte Order in the server information struct. If so, throw a critical 
      // exception.
      if ((0 == result) || (-1 == result)) {
        throw CritException("Could not convert the server's IP address to its NBO representation.", __LINE__, __FILE__);
      }
    
      // Zero-fills the sin_zero field.
      memset(&(inAddr.sin_zero), 0, sizeof(char) * 8);
    
      // Binds the server socket to the specified server address information.
      result = bind(this->serverFD, reinterpret_cast<sockaddr *>(&inAddr), sizeof(inAddr));
    
      // Determines if there was an error binding the server socket to the 
      // specified server address information. If so, throw a critical exception.
      if (-1 == result) {
        throw CritException("Could not bind the server socket to the server address information", __LINE__, __FILE__);
      }
    
      // ####
    
      // Marks the server socket as accepting incoming connections.
      result = listen(this->serverFD, backLog);
    
      // Determines if there was an error marking the server socket. If so, throw 
      // a critical exception.
      if (-1 == result) {
        throw CritException("Could not mark the server socket as accepting incoming connections.", __LINE__, __FILE__);
      }
    
      // ####
    
      // Creates a new ConnectionReactor nwo that the server socket has been 
      // created, bound, and marked for accepting incoming connections.
      this->connectionReactor = new ConnectionReactor(this->serverFD);
    }

    Development Information

    The entire subversion repository for this project can be found here:

    SVN: [live!] svn://jamach.servehttp.com/projectSalmon

    Some other useful links include:

    Working Copy: svn://jamach.servehttp.com/projectSalmon/trunk
    Developer's Copy: svn://jamach.servehttp.com/projectSalmon/branches/jacob

    To checkout the repository, run the command pipline svn co svn://jamach.servehttp.com/projectSalmon. Note, if you are a contributor then pass the --username flag and proceed to authenticate.

    There are two important areas in the repository: /trunk and branches/jacob. /trunk contains the latest working copy (or, stable release) of the project, whereas /branches/jacob contains the latest development copy of the project. Changes are merged from /branches/jacob into /trunk once they are finished.

    Everyone can anonymously access the repository however, you only have read permission as an anonymous user. To contribute to this project, see the contributors section of this post.

    Rig information:

    OS: Mac OSX 10.8.2
    Processor: 2.3 GHz Intel Core i5
    RAM: 8 GB 1333 MHz DDR3

    Dependency information (non-exhaustive list of programs or libraries that are required; platform-specific configuration may still be needed). This information will accurately reflect the requirements for the working copy (subject to change as development progresses). Note, requirements for the development copy may be different.

    • Subversion control (svn) client,
    • g++ compiler (C++03, not 11),
    • make, and
    • pthread library (may need to pass the -lpthread flag).

    Here are some other programs that may serve of some interest if you are contributing or exploring the source code. Note, pass the -g flag.

    • gdb, and
    • valgrind (be careful on OSX).

    Development Diary

    We are going to explore maintaing a development diary as well. This consists of Youtube videos outlining the progression in the emulator's development. Suggestions are welcome for how we approach this. Moreover, it will also consist of a list of 'rabbit stages' (see below; constantly updating as rabbits are caught and introduced).

    • Setup repository, [done!]
    • Game environment, [current task]
    • Configuration data, [done!]
    • Socket manager, [done!]
    • Connection reactor, [current task]
    • Request handler, [current task]
    • Sessions, [current task]
    • Error handling, [done!]
    • Exceptions (Critical), [done!]
    • Thread pool, [current task]
    • Crypto, [to do!]
    • Database, and [to do!]
    • ... more to list.

    Developer's Diary: These videos are time lapse of progression from one revision to another. Note, these videos are all live (that is, it is not rehearsed)!

    Setup: link to arrive
    Episode 1: link.
    Episode 2: link to arrive

    JoinME: For those that are interested in seeing me work on the project live then you I invite you to visit the join.me web page and view my screen. I will attempt to have it available every time I am working on the project, so randomly connect and see if it's up. Note, I am -5 GMT.

    Link: click here [offline!]

    Change Log

    For the working copy's SVN change log, run the command pipeline svn log in /trunk.

    For the development copy's SVN change log, run the command pipeline svn log in /branches/jacob. Broad list of changes will not be posted until they are merged into the working copy.

    Contact

    Email: jacobpollack@jamach.com
    Skype: thejacobpollack
    Last edited by TheJacob; 11-01-14 at 06:59 PM. Reason: Updated thread change log.


  2. #2
    Alpha Member Emily is offline
    MemberRank
    Oct 2012 Join Date
    The NetherlandsLocation
    2,408Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Well err... nobody can judge since we don't even see a simple std::cout, you just make a thread about a project that hasn't even started yet, what's the point of that? Couldn't you just wait until you actually DID something?

  3. #3
    Developer BurakDev is offline
    MemberRank
    Mar 2013 Join Date
    ParisLocation
    376Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Nice project ! :)

  4. #4
    TheJacob was here. TheJacob is offline
    MemberRank
    Jun 2010 Join Date
    Toronto, CanadaLocation
    326Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by Tha View Post
    Well err... nobody can judge since we don't even see a simple std::cout, you just make a thread about a project that hasn't even started yet, what's the point of that? Couldn't you just wait until you actually DID something?
    Fair statement, in the bullet I noted that it will be arriving shortly. Some initial commits have been made, more will occur throughout the day. It's the beginning of a long venture (=

  5. #5
    Confused. hatlevn is offline
    MemberRank
    Jan 2007 Join Date
    ON, CanadaLocation
    723Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Although you don't have anything considerably worth showing at the moment, I believe your involvement and communication with the community about your project is key. I watched your time lapse diary, and I think that is a very good way to show the progression of the development; do you plan on recording every single contribution you make to it? If you do have any speculation of what your overall goal of the project is (that being what you are focusing on), I'm sure that will get us possibly more excited about the release.

    All that aside, good luck, and I hope this leads to something very successful!

  6. #6
    TheJacob was here. TheJacob is offline
    MemberRank
    Jun 2010 Join Date
    Toronto, CanadaLocation
    326Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by hatlevn View Post
    ... do you plan on recording every single contribution you make to it? If you do have any speculation of what your overall goal of the project is (that being what you are focusing on), I'm sure that will get us possibly more excited about the release.
    The first development diary video was a trial to see how involved it would be to film whilst working on the project. I am comfortable doing more of these if it's of interest (and possible annotate a few and put it to real time). The end goal of this project is two things: (1) to have an as complete as possible r63b emulator; lot's of learning, and (2) contribute as much as possible to the community during its development.

    I am open to suggestions on the development diary, if you have any. The time lapse was suggested by a friend of mine; though a good idea, I still think it can be improved.

  7. #7
    Alpha Member Emily is offline
    MemberRank
    Oct 2012 Join Date
    The NetherlandsLocation
    2,408Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by TheJacob View Post
    Fair statement, in the bullet I noted that it will be arriving shortly. Some initial commits have been made, more will occur throughout the day. It's the beginning of a long venture (=
    Tbh I was expecting a little flame, anyways, good luck, if you have sockets done, can you perhaps push them onto SVN so I can take a look and learn how multithreaded async works? (I'm a noob in C++ and really want to learn it more :))

  8. #8
    TheJacob was here. TheJacob is offline
    MemberRank
    Jun 2010 Join Date
    Toronto, CanadaLocation
    326Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by Tha View Post
    ... if you have sockets done, can you perhaps push them onto SVN so I can take a look and learn how multithreaded async works? (I'm a noob in C++ and really want to learn it more :))
    I committed the work I did this morning onto the subversion repository (and merged the branches). I will be constantly committing today; focusing on the socket management (now) and thread pool (later today).

    For those that are interested to see the current changes I did, see /trunk. Throughout today I will be working on the developer's copy though, so see /branches/jacob.

  9. #9
    Lurking since '06 1ntel is offline
    MemberRank
    Jul 2006 Join Date
    401Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by TheJacob View Post
    I committed the work I did this morning onto the subversion repository (and merged the branches). I will be constantly committing today; focusing on the socket management (now) and thread pool (later today).

    For those that are interested to see the current changes I did, see /trunk. Throughout today I will be working on the developer's copy though, so see /branches/jacob.
    Not Found

    The requested URL /projectSalmon/trunk was not found on this server.

    Apache/2.2.22 (Ubuntu) Server at jamach.servehttp.com Port 80

  10. #10
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    I know that screenshots and snippets are required for any development thread...

    Anyways good luck as long as you can keep Sulake outside your door. Should put your real name there. Now you're on their deathlist I think

  11. #11
    Alpha Member Emily is offline
    MemberRank
    Oct 2012 Join Date
    The NetherlandsLocation
    2,408Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by 1ntel View Post
    Not Found

    The requested URL /projectSalmon/trunk was not found on this server.

    Apache/2.2.22 (Ubuntu) Server at jamach.servehttp.com Port 80
    It's SVN, you can't access it through your browser.
    I use tortoiseSVN and I can access everything fine (by going to the svn:// link)

  12. #12
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Well just looking at the other closed dev thread I think this is just another example of how retarted this community is and in the end only wants to make money.

    Leon did the same with his comet emulator. Spreading the word and in the end just selling his junk.

    I keep this position till something proper is released.

  13. #13
    TheJacob was here. TheJacob is offline
    MemberRank
    Jun 2010 Join Date
    Toronto, CanadaLocation
    326Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Update: The second developer's diary (part 1) has been filmed and is being annotated before it's uploaded to Youtube. The second developer's diary is a trilogy covering how I implemented the reactor pattern for handling concurrent connection requests. A friend suggestion I annotate the video with my thoughts; the video is significantly different than the first developer's diary (not a time lapse, entirely).

    Quote Originally Posted by HillBilly View Post
    I know that screenshots and snippets are required for any development thread...
    There is a Youtube video (developer's diary) and a repository that you can view. See the thread.
    Last edited by TheJacob; 26-12-13 at 01:50 AM. Reason: Updated remark about developer diary #2 (part 1) status.

  14. #14
    "(still lacks brains)" NoBrain is offline
    MemberRank
    Sep 2011 Join Date
    United KingdomLocation
    2,658Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by HillBilly View Post
    Well just looking at the other closed dev thread I think this is just another example of how retarted this community is and in the end only wants to make money.

    Leon did the same with his comet emulator. Spreading the word and in the end just selling his junk.

    I keep this position till something proper is released.





    It's going to be free... Lol



    Sent from my Windows Phone 8S by HTC using Tapatalk

  15. #15
    Confused. hatlevn is offline
    MemberRank
    Jan 2007 Join Date
    ON, CanadaLocation
    723Posts

    Re: Project Salmon (Habbo Hotel r63b Emulator) [C++03][UNIX][Open Source]

    Quote Originally Posted by HillBilly View Post
    Well just looking at the other closed dev thread I think this is just another example of how retarted this community is and in the end only wants to make money.

    Leon did the same with his comet emulator. Spreading the word and in the end just selling his junk.

    I keep this position till something proper is released.
    Although Jacob specifically states at the beginning of his thread... "I ask kindly that you wait 2 weeks before you criticize the progression of this project."

    Of course this is going to be free.



Page 1 of 5 12345 LastLast

Advertisement