Author Topic: Soldat Server Source + Node.JS  (Read 14606 times)

0 Members and 1 Guest are viewing this topic.

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Soldat Server Source + Node.JS
« on: August 08, 2013, 09:24:24 pm »
I think the biggest mistake of Soldat development is the fact of the soldatserver not being an open source project.
Why don't you guys (soldat developers) create a Github project and release the Soldatserver code?
I'm telling this cause I'm a Node.JS developer and I really want to create a Soldatserver opensource project written in Node.JS.
With Node.JS, I can build a very scalable and light soldatserver.

With the soldatserver source opened, that port can be release much faster and easier?
When this game will change this little mentality and selfishness?
When this game will become a great and big game?
Soldat is like a game that is always on ALPHA.
...

Offline duz

  • Flagrunner
  • ****
  • Posts: 586
  • Old nick: HunterZ
Re: Soldat Server Source + Node.JS
« Reply #1 on: August 08, 2013, 11:01:42 pm »
There's a lot of developers trying to release a successful Soldat clone along 10 years and there's no one clone that is solid as Soldat, with a decent community as ours (active official forum, sctfl, swc etc). I'm asking myself about this since 2006. Why fix little bugs ("features" for veterans) if what we need is a new Soldat (new graphic engine especially)?

I loved the OpenSoldat idea but...
« Last Edit: August 08, 2013, 11:18:14 pm by duz »
2002-2007 / 2009-2012
HunterZ The Movie I / II / III
Awards

Offline homerofgods

  • Soldat Beta Team
  • Rainbow Warrior
  • ******
  • Posts: 2029
  • We can do better!
Re: Soldat Server Source + Node.JS
« Reply #2 on: August 09, 2013, 05:25:35 am »
strack if you care about soldat come to #soldat.devs on irc and find a way you can help. All the devs are there so you can talk to them directly

Offline Shoozza

  • Retired Soldat Developer
  • Veteran
  • ******
  • Posts: 1632
  • Soldat's Babysitter
    • Website
Re: Soldat Server Source + Node.JS
« Reply #3 on: August 11, 2013, 06:05:20 am »
Soldat is closed source, this is intentional.
In the long term the goal is to make the server opensource.
But there are a few things we need to do before that can happen.

I'm not sure if a server in a different programming language will be helpful.
You see, the server and client are supposed to share some common code. This way changes to the server don't require additional work on the client.
ATM server and client share some code parts but not everything (due to historical reasons, don't ask...) and we are working on improving that.

Soldat will become better as we are cleaning up the code base.
If you want to help us with that and you know Delphi/Object Pascal feel free to talk to us on #soldat.devs on quakenet.
Rules
Tools: ARSSE - SARS - SRB - chatMod

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #4 on: August 13, 2013, 06:42:17 pm »
@Shoozza
If we hypothetically build a Node.JS version of soldat server, we could have the common part written in C++ and the rest could be written in Javascript.
Today, Node.JS (Javascript) have the biggest open-source community in the internet. And that could be a boost in soldat's expansion.
Think about that?
It's impossible to start a project like that, today?
...

Offline jrgp

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 5036
Re: Soldat Server Source + Node.JS
« Reply #5 on: August 13, 2013, 11:23:20 pm »
@Shoozza
If we hypothetically build a Node.JS version of soldat server, we could have the common part written in C++ and the rest could be written in Javascript.
Today, Node.JS (Javascript) have the biggest open-source community in the internet. And that could be a boost in soldat's expansion.
Think about that?
It's impossible to start a project like that, today?

That would require a huge rewrite. Issues:
 - Soldat's code is over 100k lines of Pascal, so you can't copy/paste or refactor to c++ so easily
 - A lot of Soldat's "features" are really bugs so reproducing the exact behavior/gameplay wouldn't be that trivial
 - "Node.JS (Javascript) have the biggest open-source community in the internet." << what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about

That said, nothing is stopping you from making a clone of Soldat and its server in Node. You'll just have no existing code to go off of.
« Last Edit: August 13, 2013, 11:25:04 pm by jrgp »
There are other worlds than these

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #6 on: August 14, 2013, 12:53:09 am »
@Shoozza
If we hypothetically build a Node.JS version of soldat server, we could have the common part written in C++ and the rest could be written in Javascript.
Today, Node.JS (Javascript) have the biggest open-source community in the internet. And that could be a boost in soldat's expansion.
Think about that?
It's impossible to start a project like that, today?

That would require a huge rewrite. Issues:
 - Soldat's code is over 100k lines of Pascal, so you can't copy/paste or refactor to c++ so easily
 - A lot of Soldat's "features" are really bugs so reproducing the exact behavior/gameplay wouldn't be that trivial
 - "Node.JS (Javascript) have the biggest open-source community in the internet." << what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about

That said, nothing is stopping you from making a clone of Soldat and its server in Node. You'll just have no existing code to go off of.
Ok. Keep coding on that. And Soldat will continue falling.

Quote
<< what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about
http://webcache.googleusercontent.com/search?q=cache:4IOcCsF6v_oJ:https://github.com/languages+&cd=1&hl=pt-BR&ct=clnk&gl=br&lr=lang_en%7Clang_pt
What? 24% (21% js + 3% coffee)
« Last Edit: August 14, 2013, 12:57:43 am by strack »
...

Offline jrgp

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 5036
Re: Soldat Server Source + Node.JS
« Reply #7 on: August 14, 2013, 01:03:07 am »
@Shoozza
If we hypothetically build a Node.JS version of soldat server, we could have the common part written in C++ and the rest could be written in Javascript.
Today, Node.JS (Javascript) have the biggest open-source community in the internet. And that could be a boost in soldat's expansion.
Think about that?
It's impossible to start a project like that, today?

That would require a huge rewrite. Issues:
 - Soldat's code is over 100k lines of Pascal, so you can't copy/paste or refactor to c++ so easily
 - A lot of Soldat's "features" are really bugs so reproducing the exact behavior/gameplay wouldn't be that trivial
 - "Node.JS (Javascript) have the biggest open-source community in the internet." << what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about

That said, nothing is stopping you from making a clone of Soldat and its server in Node. You'll just have no existing code to go off of.
Ok. Keep coding on that. And Soldat will continue falling.

Quote
<< what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about
http://webcache.googleusercontent.com/search?q=cache:4IOcCsF6v_oJ:https://github.com/languages+&cd=1&hl=pt-BR&ct=clnk&gl=br&lr=lang_en%7Clang_pt
What? 24% (21% js + 3% coffee)

Just because 24% of the projects include javascript (I'm not going to count coffee script) doesn't mean they're all using nodejs, which is what you're arguing for. Furthermore, I can't even find the link you pasted outside of google cache. Additionally, that list probably aggregates languages each project uses, so it'll count projects that include PHP and JS and ASP/JS and Perl/JS all towards JS' share. So, if you think that 24% of Github's projects are just javascript you're probably reading the graph wrong. And again, most of that JS usage is definitely client side widget toolkits/libraries, not stuff on the server end which is what you're proposing.
« Last Edit: August 14, 2013, 01:07:18 am by jrgp »
There are other worlds than these

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #8 on: August 14, 2013, 01:11:12 am »
@Shoozza
If we hypothetically build a Node.JS version of soldat server, we could have the common part written in C++ and the rest could be written in Javascript.
Today, Node.JS (Javascript) have the biggest open-source community in the internet. And that could be a boost in soldat's expansion.
Think about that?
It's impossible to start a project like that, today?

That would require a huge rewrite. Issues:
 - Soldat's code is over 100k lines of Pascal, so you can't copy/paste or refactor to c++ so easily
 - A lot of Soldat's "features" are really bugs so reproducing the exact behavior/gameplay wouldn't be that trivial
 - "Node.JS (Javascript) have the biggest open-source community in the internet." << what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about

That said, nothing is stopping you from making a clone of Soldat and its server in Node. You'll just have no existing code to go off of.
Ok. Keep coding on that. And Soldat will continue falling.

Quote
<< what? Are you kidding me? Node is right up there with Rails and Flask and every other hip new framework that all the fanboys rave over for a few years then forget about
http://webcache.googleusercontent.com/search?q=cache:4IOcCsF6v_oJ:https://github.com/languages+&cd=1&hl=pt-BR&ct=clnk&gl=br&lr=lang_en%7Clang_pt
What? 24% (21% js + 3% coffee)

Just because 24% of the projects include javascript (I'm not going to count coffee script) doesn't mean they're all using nodejs, which is what you're arguing for. Furthermore, I can't even find the link you pasted outside of google cache. Additionally, that list probably aggregates languages each project uses, so it'll count projects that include PHP and JS and ASP/JS and Perl/JS all towards JS' share. So, if you think that 24% of Github's projects are just javascript you're probably reading the graph wrong. And again, most of that JS usage is definitely client side widget toolkits/libraries, not stuff on the server end which is what you're proposing.

Github removed that page:
https://github.com/blog/1585-explore-what-is-trending-on-github
But that info is recent. And no, that graph is based on the most written language on each project.
Most of Javascript projects also work in Node.JS.
So that fact is: The most active community today is Javascript and Node.JS (+coffee script, there is a lot of Node.JS projects written in coffee).
...

Offline jrgp

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 5036
Re: Soldat Server Source + Node.JS
« Reply #9 on: August 14, 2013, 01:23:01 am »
Github removed that page:
https://github.com/blog/1585-explore-what-is-trending-on-github
But that info is recent. And no, that graph is based on the most written language on each project.

Probably also includes people duplicating projects/"forking" which just copies code around.

If you want to see a solid example (that doesn't have the page redacted :-/) of the languages with the most lines of code written, look at OhLoh: https://www.ohloh.net/languages?query=&sort=code

C > XML > C++ > HTML > Java > Javascript

You can't use github as your only source (lol pun!) here because it's based around people finding a project, "forking" it (which doubles the stat), occasionally submiting code or just forgetting about it.

Most of Javascript projects also work in Node.JS.

Yeah, especially the ones that revolve around manipulating the HTML DOM to make clickable buttons and slide things around. /sarcasm

Just because the syntax is the same doesn't mean the utility also is.

So that fact is: The most active community today is Javascript and Node.JS (+coffee script, there is a lot of Node.JS projects written in coffee).

What you're not grasping is that the usage of JS is primarily geared to client side web browser scripting, not complex tasks on the server side, and certainly not game server logic.

As this war has gone on long enough (not to say I haven't enjoyed it but it's still petty) I'll just lay down these points:
 - I'm all for rewriting Soldat in another language
 - Releasing Soldat as Open Source would be cool, but Shoozza listed the caveats required in doing so numerous times over the forums
 - I do enjoy writing code in JS (as well as other languages) and I use it often at work
 
My only gripe with what you're proposing is that you're saying that JS is the best language for the job to rewrite a complex game server in, while ignoring that the vast majority of JS in existence is for the purpose of client side scripting rather than server side applications and using that as your argument.
« Last Edit: August 14, 2013, 01:25:16 am by jrgp »
There are other worlds than these

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #10 on: August 14, 2013, 02:46:14 am »
I've already talked with jrgo on IRC.
But just to clear it out.
That link is ordered by code lines. And that does not count. (C and Java project are much bigger than other languages)

Probably also includes people duplicating projects/"forking" which just copies code around.

If you want to see a solid example (that doesn't have the page redacted :-/) of the languages with the most lines of code written, look at OhLoh: https://www.ohloh.net/languages?query=&sort=code

C > XML > C++ > HTML > Java > Javascript

You can't use github as your only source (lol pun!) here because it's based around people finding a project, "forking" it (which doubles the stat), occasionally submiting code or just forgetting about it.

That link is ordered by code lines. And that does not count. (C and Java project are much bigger than other languages)
The correct ordered are:
https://www.ohloh.net/languages?query=&sort=projects
https://www.ohloh.net/languages?query=&sort=contributors
And ignoring CSS, HTML and XML (not programming languages).
Javascript is the first.

Yeah, especially the ones that revolve around manipulating the HTML DOM to make clickable buttons and slide things around. /sarcasm

Just because the syntax is the same doesn't mean the utility also is.

There are many of browser javascript projects that also have a Node.JS API.
Also, there are many Node.JS that requires browser javascript plugins and frameworks.

What you're not grasping is that the usage of JS is primarily geared to client side web browser scripting, not complex tasks on the server side, and certainly not game server logic.

As this war has gone on long enough (not to say I haven't enjoyed it but it's still petty) I'll just lay down these points:
 - I'm all for rewriting Soldat in another language
 - Releasing Soldat as Open Source would be cool, but Shoozza listed the caveats required in doing so numerous times over the forums
 - I do enjoy writing code in JS (as well as other languages) and I use it often at work
 
My only gripe with what you're proposing is that you're saying that JS is the best language for the job to rewrite a complex game server in, while ignoring that the vast majority of JS in existence is for the purpose of client side scripting rather than server side applications and using that as your argument.

Node.JS is a not just Javascript running outside the browser.
It can easly handle complex tasks on server side. I work for almost two years with Node.JS and i've seen many complex projects using Node.JS.
Also you are able to write Node.JS C++ addon if you can't do something on the Javascript part.
Just read more about Node.JS and search for Node.JS projects and you'll see.
...

Offline Falcon`

  • Flagrunner
  • ****
  • Posts: 792
  • A wanted lagger
Re: Soldat Server Source + Node.JS
« Reply #11 on: August 14, 2013, 05:10:05 am »
You know, i've read somewhere that "Psychology and IT" field of study will be popular soon with thesis "Inheritance via prototyping and Stockholm syndrome". I actually start to believe that.

But, let's get down to business. Soldat (server) in javascript is NOT gonna happen, no matter how hard you want it. Why? First of all, because of what Shoozza said: code won't be opensourced anytime soon (although i'm against this one myself). Secondly, because of also what Shoozza said: netcode is shared between client and server, so if server in NodeJS was ever written, that implicates one of two things: also client in javascript (lol), or two necode bases that has to be kept in sync. Neither solution seems appropriate to me.
Thirdly (least important though), imo javascript just sucks. If you have a scale that assumes "the smaller codebase is, the better language it must be" then there's nothing left for me to say but "thank you, go be yourself somewhere else". Javascript is just bad by design: no hard typing makes all kind of typos more than easy, even decent IDE doesn't know which variable belongs where. No distinction between class and object creates a huge mess in defining new types (if we can even call it like that). Closures on function level are just hilarious. And the whole approach to "adapt" and try to parse everything that's passed to function. Seriously, it just feels that programmers are scared to throw an exception in your face because they think that it might offend you. Let's make code crash in a random place 1000 lines later, shall we.

tl;dr: Just.. no, you can as well ask to close this topic. Soldat in JS is not gonna happen, at least not anytime soon.
« Last Edit: August 14, 2013, 05:12:03 am by FalconPL »
If you're not paying for something, you're not the customer; you're the product being sold.
- Andrew Lewis

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #12 on: August 14, 2013, 09:47:10 am »
You know, i've read somewhere that "Psychology and IT" field of study will be popular soon with thesis "Inheritance via prototyping and Stockholm syndrome". I actually start to believe that.

But, let's get down to business. Soldat (server) in javascript is NOT gonna happen, no matter how hard you want it. Why? First of all, because of what Shoozza said: code won't be opensourced anytime soon (although i'm against this one myself).

...
 
Secondly, because of also what Shoozza said: netcode is shared between client and server, so if server in NodeJS was ever written, that implicates one of two things: also client in javascript (lol), or two necode bases that has to be kept in sync.

Like I said in my last post, you can write C++ addon to Node.JS. So you can have a C++ part in Node.JS soldat server and a C++ client with the same code.

Neither solution seems appropriate to me.
Thirdly (least important though), imo javascript just sucks. If you have a scale that assumes "the smaller codebase is, the better language it must be" then there's nothing left for me to say but "thank you, go be yourself somewhere else". Javascript is just bad by design: no hard typing makes all kind of typos more than easy, even decent IDE doesn't know which variable belongs where. No distinction between class and object creates a huge mess in defining new types (if we can even call it like that). Closures on function level are just hilarious. And the whole approach to "adapt" and try to parse everything that's passed to function. Seriously, it just feels that programmers are scared to throw an exception in your face because they think that it might offend you. Let's make code crash in a random place 1000 lines later, shall we.

tl;dr: Just.. no, you can as well ask to close this topic. Soldat in JS is not gonna happen, at least not anytime soon.

Javascript have classes.
Well so you really never worked with JS and have your knowledge about it based on what people always said about it.
Think what you want and keep with that. The problem of Soldat starts that. =)

Do what you want with the topic. =)
...

Offline Falcon`

  • Flagrunner
  • ****
  • Posts: 792
  • A wanted lagger
Re: Soldat Server Source + Node.JS
« Reply #13 on: August 14, 2013, 09:54:03 am »
Like I said in my last post, you can write C++ addon to Node.JS. So you can have a C++ part in Node.JS soldat server and a C++ client with the same code.
That still implies maintaining NodeJS abstraction layer which is pretty much the same thing, just in C++ instead of JS (which is still different from pascal, or are there also pascal bindings?)

Javascript have classes.
Well so you really never worked with JS and have your knowledge about it based on what people always said about it.
Think what you want and keep with that. The problem of Soldat starts that. =)

Do what you want with the topic. =)
I work as website front end developer, i know my stuff about javascript and no, i've never seen classes in here. Afaik they've appeared in ECMA Script 5 but got dropped in harmony anyway. And ECMA5 was never implemented. At least not in browser's javascript implementations. Although i've never ever used NodeJS nor any other server side javascript technology, neither i intend to.
« Last Edit: August 14, 2013, 09:56:34 am by FalconPL »
If you're not paying for something, you're not the customer; you're the product being sold.
- Andrew Lewis

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #14 on: August 14, 2013, 11:24:41 am »
That still implies maintaining NodeJS abstraction layer which is pretty much the same thing, just in C++ instead of JS (which is still different from pascal, or are there also pascal bindings?)
Oh god...
I don't know if there is pascal bindings. But I don't doubt there is.

I work as website front end developer, i know my stuff about javascript and no, i've never seen classes in here. At least not in browser's javascript implementations. Although i've never ever used NodeJS, neither i intend to.
Well, it's everything explained.
Classes on Javascript are different and confusing. But it exists.
Also there are many frameworks that helps you work with classes on Javascript, for an example: TypeScript - http://www.typescriptlang.org/
Also all features of ECMA 5 are being implemented on V8 and Node.JS source.
...

Offline jrgp

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 5036
Re: Soldat Server Source + Node.JS
« Reply #15 on: August 14, 2013, 11:40:56 am »
Well, it's everything explained.
Classes on Javascript are different and confusing. But it exists.
Also there are many frameworks that helps you work with classes on Javascript, for an example: TypeScript - http://www.typescriptlang.org/
Also all features of ECMA 5 are being implemented on V8 and Node.JS source.


Hacked together clases by third party modules (be it that typescript or coffee script) don't make up for deficiencies in the language itself. Using the latest ecma experimental features as they come out doesn't allow for a necessarily stable and mature codebase either since those new features might not exist forever. And none of that gets around the issue of a split codebase between server and client.
There are other worlds than these

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #16 on: August 14, 2013, 11:56:32 am »
Well, it's everything explained.
Classes on Javascript are different and confusing. But it exists.
Also there are many frameworks that helps you work with classes on Javascript, for an example: TypeScript - http://www.typescriptlang.org/
Also all features of ECMA 5 are being implemented on V8 and Node.JS source.


Hacked together clases by third party modules (be it that typescript or coffee script) don't make up for deficiencies in the language itself. Using the latest ecma experimental features as they come out doesn't allow for a necessarily stable and mature codebase either since those new features might not exist forever. And none of that gets around the issue of a split codebase between server and client.

Ok, believe in what you want. Me and other thousands of developers don't agree with that statement
If you don't even know how Node.JS is built and never used, how can you be sure?
And like I said before: a Node.JS soldat server can easily share a C++ part with the soldat client.
You can just open a mind that is already locked.
« Last Edit: August 14, 2013, 11:59:17 am by strack »
...

Offline jrgp

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 5036
Re: Soldat Server Source + Node.JS
« Reply #17 on: August 14, 2013, 11:59:10 am »
Ok, believe in what you want. Me and other thousands of developers don't agree with that statement
And like I said before: a Node.JS soldat server can easily share a C++ part with the soldat client.

You can just open a mind that is already locked.

Me and other thousands of developers don't agree with that statement << Which statement? I made several.

And you can go try to make a clone of soldat and its client in node/c++. Stop whining and go do it if you're that hell bent on the idea.
There are other worlds than these

Offline strack

  • Major(1)
  • Posts: 13
    • SoldatBR
Re: Soldat Server Source + Node.JS
« Reply #18 on: August 14, 2013, 12:01:02 pm »
Oh you want me to build a clone of Soldat? From scratch?
Ok. Sit and wait. I'll not waste my time on that.

Hacked together clases by third party modules (be it that typescript or coffee script) don't make up for deficiencies in the language itself. Using the latest ecma experimental features as they come out doesn't allow for a necessarily stable and mature codebase either since those new features might not exist forever.
This statement.

--

I guess i'll watch Soldat be forever the same as today.
« Last Edit: August 14, 2013, 12:17:46 pm by strack »
...

Offline jrgp

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 5036
Re: Soldat Server Source + Node.JS
« Reply #19 on: August 14, 2013, 12:21:17 pm »
Oh you want me to build a clone of Soldat? From scratch?
Ok. Sit and wait. I'll not waste my time on that.

So you'd rather we waste our time instead? Rewriting either the client or server in node mostly still constitutes a clone from scratch even with access to the source as you can't use any of it except as reference.
There are other worlds than these