Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Private What about a emulator in a language like Go?

Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
Not sure what your question is. Any language that supports tcp is possible.
Its a lot of effort to write one from scratch.

It's not a question. It's a debate about use new languages for write emulators like Go. Go is perfect for that. Go is a language server-oriented. It's perfect for concurrence actions and sockets, i think it's the new java. I can try to do a base socket system habbo-based in that. It's easy to compile, to run and scalable. Go is maded by google, so it will have a big future. Facebook, github, DOCKER(<3) use this language on their cores.

So.. What do you think about that General? Do you think a Go server will be better than a java server? (It depends about you write it, but u know what am i asking.)

PD: Good luck with arcturus, you are a nice programmer :love:
 
Joined
Dec 16, 2011
Messages
1,993
Reaction score
631
Give it a go, see what you can come up with. It's all talk until someone does something about it, any language has the potential to be the "best" emulator, it comes down to structure and the quality of the code.
 
topkek amirite??
Joined
May 16, 2009
Messages
751
Reaction score
696
I've messed quite a bit with Go and I bet you could implement an emulator pretty damn quickly. It's the sort of language that just lets you be so productive.

This isn't Go but I was working on one in Swift (the networking is written in C), named Rapid. The source is available here:
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
I've messed quite a bit with Go and I bet you could implement an emulator pretty damn quickly. It's the sort of language that just lets you be so productive.

This isn't Go but I was working on one in Swift (the networking is written in C), named Rapid. The source is available here:

First, thanks u for comment, Leon :eek:tt:

I think Go is a perfect language for things like this because it's concurrency, sockets and simply code is a nice candidate for a habbo server.

I see examples in wich Go handles 1million requests per second (http), so... why not?


(Nice work with comet :love:)
 
Retired
Loyal Member
Joined
May 5, 2007
Messages
497
Reaction score
665
Go is maded by google, so it will have a big future. Facebook, github, DOCKER(<3) use this language on their cores.

Can we stop with this "<big tech company> uses <some technology>, therefore it is superior and we should use it!" nonsense? Sure, Go has its use-cases but deciding to use it just "because Google use it" is pretty biased.

Compared to Java, I think Go will probably be just as good if not even better than an emu in Java. On the other hand, if it is this community doing it, I think Java would be a better approach since it is a language the community is more familiar with.
 
Joined
Mar 30, 2007
Messages
960
Reaction score
166
On the other hand, if it is this community doing it, I think Java would be a better approach since it is a language the community is more familiar with.
We would still be stuck in VB if we never tried anything new. Great example is Holo.
All it takes is one server to change the way people do things.
Who knows, doing one in Go could change this section forever :p
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
Can we stop with this "<big tech company> uses <some technology>, therefore it is superior and we should use it!" nonsense? Sure, Go has its use-cases but deciding to use it just "because Google use it" is pretty biased.

Compared to Java, I think Go will probably be just as good if not even better than an emu in Java. On the other hand, if it is this community doing it, I think Java would be a better approach since it is a language the community is more familiar with.

You are absolutely right, that a certain company uses certain technology does not mean that this is the best or the worst. I wanted to put these examples because when speaking of Go is speak of a young language, which is associated with something that is not mature, not professional, so it is not given the same importance as languages ​​such as java, csharp and others , That's why I mentioned that very large companies have now changed things to go, which gives an impulse to start learning it. Thank you for your comment Martin, thank you.



We would still be stuck in VB if we never tried anything new. Great example is Holo.
All it takes is one server to change the way people do things.
Who knows, doing one in Go could change this section forever :p


In fact, I am testing certain things in Go to publish soon to see what acceptance has in the community. I am not an expert in go, but here there are people who know c ++ and can contribute things and give advice with the f*** the pointers x)

Sorry my english, im spanish
 
Experienced Elementalist
Joined
Feb 5, 2012
Messages
259
Reaction score
93
Meeh, everything that needs to be said was already said by other people. My opinion though on this is that yes it is interesting for developers, but it's nothing that anyone besides developers will notice nor care about. If you can achieve the same thing with other languages that are widely used and can still compete in the business then people won't care. Unless someone drops an emu in some new language and somehow has a HTML5 client in there then that would probably be the only thing that people will really care about, not the language but the fact that it is a HTML5 Client lols.
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
Meeh, everything that needs to be said was already said by other people. My opinion though on this is that yes it is interesting for developers, but it's nothing that anyone besides developers will notice nor care about. If you can achieve the same thing with other languages that are widely used and can still compete in the business then people won't care. Unless someone drops an emu in some new language and somehow has a HTML5 client in there then that would probably be the only thing that people will really care about, not the language but the fact that it is a HTML5 Client lols.

Isn't only for devs. What do you prefer, a house made with stone, or with clay? The languaje is important for all, if i use C# i know i need to install .NET FRAMEWORK and it's only for windows (Linux and Mono, i know.) If it's java i know i need to install jvm and it will use much memory, etc...
 
Experienced Elementalist
Joined
Feb 5, 2012
Messages
259
Reaction score
93
Isn't only for devs. What do you prefer, a house made with stone, or with clay? The languaje is important for all, if i use C# i know i need to install .NET FRAMEWORK and it's only for windows (Linux and Mono, i know.) If it's java i know i need to install jvm and it will use much memory, etc...

If stone and clay is stable and production ready i don't care. You can create my house out of water, as long as it is standing and forms my house and is production ready i don't care. The point is the language doesn't affect the players, but the developers. You missed that didn't you? What does affect everyone is everyone having to enable flash in browsers to get in. This was the case for shockwave before too, until it got replaced by flash and whatever language developers chose to develope the emulator in just went along. The change is from Flash to HTML5, which language goes along that wouldn't really affect anyone or be noticeable by anyone but the developers. But i do agree that GO would be an exotic, interesting and good choice.
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
Good, i have worked on the Go emu and i reach few things, like:

- ConsoleCommands
- MySQL
- Sockets
- ClientMessage and ServerMessage working (Thanks Forex <3)

For requests i have done a Queue-Routine system. I have done a Routine-based system who save all incoming messages in a list, and X number of routines get that messages queued and runs them. (Like a threadpool in java, but Routines aren't threads). It runs efficiently for the moment.

Thanks Wesley for arcturus, i use the headers and packet structures on your server (I give credits on GhopeR for u). At the moment i can connect to the server and retrieve the user info by SSO.
Amariconao - What about a emulator in a language like Go? - RaGEZONE Forums


PD: If someone whants to see go-routines in action:
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
If you want to learn, don't look at other emulators. Do everything yourself. Research all packet structures yourself from the Habbo scripts or if you cannot figure it out from there from packetlogging. I pretty much only used the habbo scripts.

Yes bro, You are right, but i need to try if the clientmessage, servermessage and that things run correctly.


I only look your server for program the ClientOK message header, the HomeRoom message, and the Standard Alert. Nothing more, no clientmessage class, no how your server catch request, database, etc...

I know how habbo paquets are structured, i code this emu a looooooong time ago (don't laugth about how is it code :$:) http://forum.ragezone.com/f353/bobba-emulator-basic-programmed-994387/

I only want to see the potential of Go and practise the code. I think Go is sooooo beautifull...

Thx for arcturus, as i say after i add you on credits command (When i do a $about command i add u here too).
Amariconao - What about a emulator in a language like Go? - RaGEZONE Forums
 
Newbie Spellweaver
Joined
Jan 3, 2014
Messages
37
Reaction score
4
As Liam has already said, it may not be the best emulator if you use this language, as the quality of the code improves everything.

I had read some things about this language but I had never been interested in trying it.

Read a little about net, bytes and some mysql library. I'll do some tests and I'll tell you.

__________________________
My comment in spanish:
Como ya Liam lo ha dicho, puede que no sea el mejor emulador si se utiliza este lenguaje, ya que la calidad del código mejora todo.

Había leido algunas cosas sobre este lenguaje pero nunca me había interesado en probarlo.

Leere un poco sobre net, bytes y alguna libreria mysql. Haré unas pruebas y te cuento.
__________________________

Sorry for my bad English, I'm Spanish.
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
Why call .reset() if you're no longer going to use the buffer?

When I created that function I made a global buffer in which I wrote all the texts and then reset it, I saw examples and others and I saw that it was stupid to do it since it did not make an excessive memory use to create a byte.buffer every time I had I write (In the command part), so I did as you see in the capture, surely when I change it and I saw reset I went head and I should have thought that I would free memory or something.
 
Newbie Spellweaver
Joined
Nov 21, 2011
Messages
66
Reaction score
12
You should re-use the buffers so you don't have to keep allocating memory over and over again. Not sure if there is an implementation in Go. (Another reason why people stick to popular languages)

It's only a byte.buffer when user write in console $XCOMMAND.

I use Byte.Buff for concat strings and you use +...

Why you dont use StringBuilder on this, or concat?

private static final String logo =
" _ ______ _ _ _ \n" +
" /\\ | | | ____| | | | | | |\n" +
" / \\ _ __ ___| |_ _ _ _ __ _ _ ___ | |__ _ __ ___ _ _| | __ _| |_ ___ _ __| |\n" +
" / /\\ \\ | '__/ __| __| | | | '__| | | / __| | __| | '_ ` _ \\| | | | |/ _` | __/ _ \\| '__| |\n" +
" / ____ \\| | | (__| |_| |_| | | | |_| \\__ \\ | |____| | | | | | |_| | | (_| | || (_) | | |_|\n" +
" /_/ \\_\\_| \\___|\\__|\\__,_|_| \\__,_|___/ |______|_| |_| |_|\\__,_|_|\\__,_|\\__\\___/|_| (_)\n" +
" \n" +
" ";


I understand that using the + operator returns a string for each string that concatenates. (I think, atleast in Go to that)
 
Back
Top