[DEV] Corele Emulator (RP and Hotel) (R63 and R63B) [MongoDB]

Status
Not open for further replies.

Techie

Member
Aug 22, 2012
129
6
Czi3hRb.png

The emulator of the century
(Credits to Aria for the logo)

What is Corele Emulator?
Corele Emulator is an emulator created from scratch. It uses multiple languages such as NodeJS, C#, and some C++. Please read below for more information on this new emulator, and what it includes.

How is Corele different to any other emulator?

Corele Emulator is different because it can be ran using R63 or R63B depending on your config value. Corele Emulator is also an rp and hotel emulator in one. It can be changed between rp and hotel just by editing a config value. It is simple and extreemly easy to set up. Corele is also different to any other emulator because it uses something that no other emulator has supported yet, It supports 3 different MySQL drivers, Mongo, MySQL, and PostGre SQL. You can also choose between any revision you want, just by entering the REVISION into the config.

What do we promise?

We promise to release new versions every 2 weeks, and keep on top of updating the build regulaury. We promise to introduce at least 5 new features in each release, and fix any exisiting or new bugs that appear. We also promise to extreemly bug test the emulator before every version release, to ensure you don't bump into any nasty errors.

Who are the developers of Corele?
We only current have two developers, Me and Josh. We are hiring C# developers to work along side of us, which they will receive a percentage of the donations donated to us by users using Corele emulator. You must be confortable in C# and know your way around Visual Studio, please read below for more information on what it takes to be a Corele Developer.

What does it take to be a Corele Developer?

Needed Requirements
- Basic C#
- Basic Packet coding
- Thread Safe Knowledge

Extra Requirements
- OOP Basic
- LINQ Basic

The "Extra Requirements" just increase your change of becoming a developer and are not 100% required, but the "Requirements" you MUST know at least know all of them. Anyone can enter as a developer but your chances of succeeding are you requirements.

Any release date on Corele Emu?
There is current no release date, untill we hire more developers. Once we hire a few developers the ETA date of Corele EMU will become closer, and we will be able to get more done. We hope to release it in the early months of 2016, but that date could change.

Will there be a CMS with Corele EMU?

Yes, there will be a stable, fast and secure CMS coming with Corele EMU, using PDO and MySQL database drivers, which is also optional in the config file. It will also come with some new unique features that no other cms has yet introduced into the retro community, along side the release of Corele EMU

Why are you dong this development?
I have just finished school, and need something to set my mind on as I have a lot of free time on my hands. I am also doing this because many emlators out there are terrible coded, and there is not yet a emulator that supports many of the features I am offering with Corele. I have absoultely no intention to give up on Corele Emulator, and I hope no intention comes.

I am also doing this development because I am not happy with the current emulators active in this community, the only good emulators are unfinished, or not publicy released. And I hope to change that and release a noob-friendly, fast and secure emulator, whether it is open or closed source. I don't mean to rant or boast, or even throw abuse at the current project Azure, even though Azure is the most updated emulator released, the code is terrible, and filled with unneceserry code, and var's in places they shouldn't be.

Any more information on Corele?
Nothing yet, I may add some at a later date...

Need to know, on Corele?

That corele will be the best C# Habbo Emulator ever released?

Will Corele be open source?

Undecided for definate, but as it stands Corele will be closed source enless your a premium user of Corele.

Need to talk?
skype: centralrp14
facebook: /ashleytechie

Code:
Completed List:
- Main base structure
- Config Manager
- MongoDB Implementation
- Sockets
- Packet Processing

To-Do List:
- Packets
- Packet Handlers

Custom Features:
- Anti-DDOS feature

Premium users of #ProjectCorele also do NOT need to use a proxy, as we offer a alternative way to hide your IP, only by using Corele.

Code Snipplets
Code:
XmlConfigurator.Configure();
Corele coreleBase = new Corele();
coreleBase.LoadCorele();
while (true) Console.ReadKey();[/COLOR]
Code:
// STILL IN TESTING STAGES
protected static IMongoClient client;
protected static IMongoDatabase database;

public void Load()
{
    client = new MongoClient();
    database = client.GetDatabase("test");
}

Images

cT2OC32.png
 
As updates progress, I will leave a comment with the information of the update. Below is the first update of the Corele Thread.

Update 1

Socket Manager is done, spoiler below.
Code:
public void StartListening()
{
    this.serverSocket.Bind(new IPEndPoint(IPAddress.Any, port));
    this.serverSocket.Listen(backlog);
    this.BeginAccept();
}
 
Last edited:

Techie

Member
Aug 22, 2012
129
6
wo Good Luck with Corele Emulater.
Thanks for the support guys, here is another update of the CoreleWorker.cs

Code:
public CoreleWorker()
{
    this.timer = new Timer();
    this.timer.Elapsed += new ElapsedEventHandler(OnTimer);
    this.timer.Interval = 30 * 1000;             
    this.timer.Enabled = true;
    this.timer.AutoReset = false; // keep it running

    this.Log = LogManager.GetLogger("Corele.CoreleWorker");
}

What will CoreleWorker do? It is mainly used to update the title when uptime or online count changes, although there may be some new elements added to the file yet.
 

Adil

DevBest CEO
May 28, 2011
1,276
714
What exactly are you using the different languages for?
Quite intriguing for someone to be using C++, C# and JavaScript all in the same project :p
 

Techie

Member
Aug 22, 2012
129
6
What exactly are you using the different languages for?
Quite intriguing for someone to be using C++, C# and JavaScript all in the same project :p
The NodeJS is for communication from the emu to the client, for the foleplay features I am planning to introduce and a few more also C++ is for the sockets, as I hate coding sockets in C#. The rest of the emulator is in C#.

Why did I decide to use multiple programming languages? If you got it, show it off is what I say, that isn't the actual reason I just feel using multiple languages will improove the stability, and I can do some things in C++ that I can't with C#. It's all about prefix and what you feel comfortable with.
 

Adil

DevBest CEO
May 28, 2011
1,276
714
The NodeJS is for communication from the emu to the client, for the foleplay features I am planning to introduce and a few more also C++ is for the sockets, as I hate coding sockets in C#. The rest of the emulator is in C#.

Why did I decide to use multiple programming languages? If you got it, show it off is what I say, that isn't the actual reason I just feel using multiple languages will improove the stability, and I can do some things in C++ that I can't with C#. It's all about prefix and what you feel comfortable with.
If you are using C++ and you're targeting a pure Windows environment/setup, have a look at IOCP[1].
You could also have a look at things like kqueue[2] and epoll[3] for network related tasks. kqueue is a BSD feature (I think), which would be an interesting journey for you!

[1]:
[2]:
[3]:
 

Techie

Member
Aug 22, 2012
129
6
If you are using C++ and you're targeting a pure Windows environment/setup, have a look at IOCP[1].
You could also have a look at things like kqueue[2] and epoll[3] for network related tasks. kqueue is a BSD feature (I think), which would be an interesting journey for you!

[1]:
[2]:
[3]:
Thanks, it's great to see even moderators are supporting developments these days. This should be a good read.
(Waiting for BabeStation to finsh then ill give them a read, joke)
 

Jaden

not so active
Aug 24, 2014
886
263
The NodeJS is for communication from the emu to the client, for the foleplay features I am planning to introduce and a few more also C++ is for the sockets, as I hate coding sockets in C#. The rest of the emulator is in C#.

Why did I decide to use multiple programming languages? If you got it, show it off is what I say, that isn't the actual reason I just feel using multiple languages will improove the stability, and I can do some things in C++ that I can't with C#. It's all about prefix and what you feel comfortable with.
So basically you're using node.js to do the job of MUS? If so, then why don't you just use MUS?
Also C++ Sockets? Have you actually done research on what it is that you're saying here? To my knowledge C++ is a more flexible language meaning that you have less boundaries while coding... meaning you could write your own methods that reflect towards asynchronous communication... You have a hard time coding a basic multi-threaded server using the TCPListener class in C#.
I would stick to C# personally because the only benefit you may receive from using C++ sockets is CPU utilization (If done correctly) and compile time.
As for encapsulation? C# wins. Multiple platforms and environments (Not that this matters because the emulator's solution is in C#) C++ wins. When it comes to thread-safety and memory management/garbage collection (GC)? C# wins. The fact that C# even works your CPU harder is because of the fact that its managing your socket's performance.

Little tip to reduce CPU utilization is by making use of the SocketAsync Classes (More detail on that if you want).
I could go on forever, porting C++ over to a C# solution just like snap is not always a good idea as well.
 

Techie

Member
Aug 22, 2012
129
6
So basically you're using node.js to do the job of MUS? If so, then why don't you just use MUS?
Also C++ Sockets? Have you actually done research on what it is that you're saying here? To my knowledge C++ is a more flexible language meaning that you have less boundaries while coding... meaning you could write your own methods that reflect towards asynchronous communication... You have a hard time coding a basic multi-threaded server using the TCPListener class in C#.
I would stick to C# personally because the only benefit you may receive from using C++ sockets is CPU utilization (If done correctly) and compile time.
As for encapsulation? C# wins. Multiple platforms and environments (Not that this matters because the emulator's solution is in C#) C++ wins. When it comes to thread-safety and memory management/garbage collection (GC)? C# wins. The fact that C# even works your CPU harder is because of the fact that its managing your socket's performance.

Little tip to reduce CPU utilization is by making use of the SocketAsync Classes (More detail on that if you want).
I could go on forever, porting C++ over to a C# solution just like snap is not always a good idea as well.

I am not going on performance facts, I am judging what languages to use by what I feel comfortable coding, I have done some research, and C++ fitts myn and the users needs. Yes of course C# sockets are better in some cases, but if you look into it in more detail you will realise C++ can be coded to perform just as well as C#, C++ has more felexbility in its language and its Socket class.
 

Jaden

not so active
Aug 24, 2014
886
263
I am not going on performance facts, I am judging what languages to use by what I feel comfortable coding, I have done some research, and C++ fitts myn and the users needs. Yes of course C# sockets are better in some cases, but if you look into it in more detail you will realise C++ can be coded to perform just as well as C#, C++ has more felexbility in its language and its Socket class.
You're saying you can code a socket manager better than the one in .NET framework? This is the first I'm hearing of your knowledge in C++, hence the fact I'm questioning it.

And if you could, you realize this code wouldn't be about 50-100 lines in total but I estimate almost 100* more?
 
Feb 1, 2014
165
137
So basically you're using node.js to do the job of MUS? If so, then why don't you just use MUS?
Also C++ Sockets? Have you actually done research on what it is that you're saying here? To my knowledge C++ is a more flexible language meaning that you have less boundaries while coding... meaning you could write your own methods that reflect towards asynchronous communication... You have a hard time coding a basic multi-threaded server using the TCPListener class in C#.
I would stick to C# personally because the only benefit you may receive from using C++ sockets is CPU utilization (If done correctly) and compile time.
As for encapsulation? C# wins. Multiple platforms and environments (Not that this matters because the emulator's solution is in C#) C++ wins. When it comes to thread-safety and memory management/garbage collection (GC)? C# wins. The fact that C# even works your CPU harder is because of the fact that its managing your socket's performance.

Little tip to reduce CPU utilization is by making use of the SocketAsync Classes (More detail on that if you want).
I could go on forever, porting C++ over to a C# solution just like snap is not always a good idea as well.

LOL YOUR A FUCKING NOOB, DELETE YOUR ACCOUNT
 

LeChris

github.com/habbo-hotel
Sep 30, 2013
2,744
1,326
so far all I see is planned features and no actually finished features. It's nice you're aiming to do this large project, but once again you stated above you're working with what's comfortable and not exactly what is better on performance. So if you finish your planned features- you're only going to have a massive emulator using multiple languages and coded for comfort not performance which would cause some stability issues I'd imagine. Anyways good luck, and you should of waited for some of your features to be finished before posting.
 

Youngster

Sensitivity killed my dog...
Aug 10, 2015
120
15
Good luck but lets be honest most EMU developments on here never get released.
 

Techie

Member
Aug 22, 2012
129
6
Some updated news guys, there will be a CMS coming with this emulator as annouced in the main thread, I just want to say tha there will be AN RP version and Hotel version sumlaur to how the emulator will work, just by editing a config value, the CMS development will start once booth emulator versions are finished.

Now on the the EMU news... I have implemented and finished the MongoDB class, and also finished the packet processing and Session stuff, I am going to start coding the packets, starting with the ahndshake packets tonight. I will keep you all updated on how it goes, I think I may have a connection late tonight.

P.S Thanks for all the support.
_____________________________________________________________________________________________

so far all I see is planned features and no actually finished features. It's nice you're aiming to do this large project, but once again you stated above you're working with what's comfortable and not exactly what is better on performance. So if you finish your planned features- you're only going to have a massive emulator using multiple languages and coded for comfort not performance which would cause some stability issues I'd imagine. Anyways good luck, and you should of waited for some of your features to be finished before posting.

I totally disagree with you, it is better to keep the users update from the total start. I also have the users experience in mind, as well as perforamnce and speed issues. Not just what im comfortable with.

Code:
return (new[] 
{ 
"You're wrong", 
"You're wrong", 
"You're wrong" 
})[new Random(3).Next()];
 
Last edited:
Status
Not open for further replies.

Users who are viewing this thread

Top