Graal Reborn in the browser?

Well, I was reading a Microsoft’s article about Canvas element in HTML5 versus SVG:
http://msdn.microsoft.com/en-us/magazine/jj159886.aspx

I am wondering how much doable, a client (or an editor) in Javascript/Canvas is possible.
Would it be a problem for a Javascript to connect to listserver, gserver and NPC-server and talk to them?

I guess this is in the spirit of the time: no more special client to play games: use the browser.

I have even found a name for it:
GRO: Graal Reborn Online :wink:

Unfortunately there’s no native socket exposed through any HTML5 components, so the GServer would have to be rewritten to support websockets, as well as an entire client being recreated from scratch in Javascipt and HTML5.

http://socket.io/ ?
It seems to use different technologies depending on what’s available to do it’s job ( http://socket.io/#browser-support ).
But, yeah, it seems to be considered a security problem to allow one to connect to any server in a web page, and exchange information (thinking about it, it surely is). Not sure how this goes through that problem.

It seems to use http://nodejs.org/ (I am still reading what it is)

Which in turn seems to define some package manager for it:
http://npmjs.org/

At the lowest level, it’s all websockets or TCP through Flash, or something proprietary for the browser. You still have theissue that someone would have to make a brand new client in HTML5.

I have a unfinished version made with node.js and socket.io. I tried to get it to connect to the gserver to get player-data, but I got stuck and lost interest. I have it still on my file-server.[COLOR=“Silver”]

---------- Post added at 05:24 PM ---------- Previous post was at 05:24 PM ----------

[/COLOR]it has gani-support and nw-level support.

See! All what was needed was to ask. :wink:

It would require someone to make a script interpreter that can read GS1 if you want scripts to work though.

Yeah, unfortunately that’s nowhere near complete. There’s a lot of reasons why nobody wants to make a backwards compatible client, and in my case it’s because the client has so many quirks and is 100% authoritive in a lot of cases, so if your client differs in compatibility with the default client in some behavior, then you can ruin the experience for every single player on the server.

[doesn’t know what he’s talking about]
Didn’t Graal Online try something like that and it failed hard? (Not talking about the Classic Java Graal.)
[/doesn’t know what he’s talking about]

Maybe you’re talking about the Flash client that’s used on Facebook for iClassic? That works fine, and I think it’s compiled with Adobe’s Alchemy compiler, basically C or C++ -> Flash VM instructions.

Did you choose your nick because you always see the bad side of things? Thinking about baddies? Using the NPC-Server seems to mitigate the issue in my opinion. There is the possibility for servers to refuse or make mandatory this new client. Although, there is the possibility for the players to modify the client to lie to the server. Was thinking about using it in combination with a NPC-Server. Making progress on NPC-Server(s) still is a needed thing.

Not only baddies, but all scripted objects handled by the leader. All in saying is that backwards comparability is both impractical and pointless, let’s move on from the older clients for once and either make our own or reverse the GS2 bytecode format and write our own compiler.

According to: http://www.websocket.org/quantum.html

This seems a serious issue for this idea to come true.

[Edit1]Ah, well, Buffer object in Node.js seems to go around this issue: http://nodejs.org/api/buffer.html[/Edit1]

[Edit2] The way I see it, the easiest way (the Node.js way) to do it would be to have a javascript server application that would receive io.socket connections from the clients. Basically, the server-side app would map between hi-level events on the clients, with binary packets sent to the listserver, gserver and npc-server. That would probably work around the problem Cadavre had making the connection. At the price of a single point server for all the clients. [/Edit2]

How about we stop trying to change the game and enjoy free Graal?

Well, the client hardly runs on Windows 7 and will probably never run under Windows 8, so unless you want to play in a virtual machine… And plus, the client sucks, and because of that Reborn doesn’t have a killer app or even a decent server to draw a single active user online. It’s a step in the right direction to write a new client, unless you’d rather the whole thing just wither up and die.

Let us just wait until Downsiders NetSpanner Engine is ready to use. :slight_smile:

I can’t wait for it. I have lots of ideas of games in my mind. I already want to develop with it’s SDk!

Well, I come to ask myself if HTML 5 Canvas would be fast enough. So I began to search for some demos.
I was not able to load them in 56k :wink:
And like I said, for using Node.js, I believe one would have to have server-side talking to GServer & ListServer.

So I begin to ask what is small, open-source, and have easy to use graphics programming language.
The answer that came in my mind is Suneido.
It won’t remind any of you of something, but it is partly similar to Rebol, for integrated graphics.
It is a bit similar to Smalltalk (Squeak) for the programs in a database file rather than text files.
It has it’s own database integrated.
It is Windows only however, speaking Win32 (with ability to add DLL binding easily).
I spent part of last night restudying the integrated manual.

It does have win sockets access, so I expect it would be not to hard to interface with GServer and ListServer.

Edit:

But Mono/C#/GTK would be a much more conventional and portable solution

It would be good for a Mac user like me =D

Oh I had forgot there were Mac users. Mac users are not very easy to satisfy, because they use proprietary cocoa libs. Same for Windows, but at least Windows users should be able to switch to Reactos one day far far away in a galaxy near you. Guess, the easier is just ignore Mac users that complain.