Scala 3D Engine

It has been an extremely long time since I’ve been here, but I hope I’m not an unwelcome guest. :slight_smile:



I hope this doesn’t strike anyone as attempting to compete with jME, quite the contrary.  I have started a 3D engine in the Scala language and though I have pretty lofty goals I’m looking to add some additional development support of the project and was curious if anyone here has Scala experience and is interested in such an endeavor?



Here’s the main project URL:

http://sgine.googlecode.com



I’ve been asked to speak at Scala Days 2010 in Switzerland and am hoping to push development as far as possible before April 15th comes around.  Again, I am not trying to compete with jME but rather continue to push development of 3D in the Java environment and encourage collaboration and cooperation where possible.  Most discussion currently goes on in IRC, but we do have a forum that has never been used and a mailing list that is infrequently used. :slight_smile:



I hear there are some exciting things going on with jME these days and I look forward to seeing how it continues to progress. :slight_smile:

Cool, but why did You as hard-core Java programmer started to use Scala?

This is the first time  I hear about such language.

Hi darkfrog, nice of you to stop by again! You should definitely get in touch with lex. I know for a fact he had plans of making a Scala 3D engine of his own. (the mailto icon works right? If not let me know and I’ll share his e-mail; in this case I’m sure he won’t mind).



Let’s not pretend like two 3D game engines won’t be competing against each other :wink:


  • Sgine appeals to Java developers
  • Sgine is geared at 3D games production



    That's one more competitive factor than Ogre3D has to offer, and they're definitely our competition! All I am saying is, like you, but with different phrasing, competition doesn't need to be a bad thing, at all.



    Like you said, we can benefit of one another's good fortune. It's just like with Ardor3D; in many ways they're our closest competition, but if they make a breakthrough some of that 'Java in games' buzz will rain down on jME as well.





    Scala intrigues me (I've bugged Momoko_Fan about it before…). I am very excited to see what this project can produce, and I am looking forward to a fruitful, friendly competition ;D Best of luck to ya!

Yeah, lex has been hanging out in #sgine from time to time if he's the same person that wrote simplex3d.  The great thing about competition in open-source projects is that they can bring each other up to greater levels. :slight_smile:



I've been a Java developer for over 12 years and Scala is the first language that's turned my head since I started.  It's an absolutely incredible language and provides so much that I've longed for as a Java developer.  So far my engine's performance is pretty amazing as well.  I'm getting around 6,600fps on average in basic examples and a completely blank scene in jME doesn't go over 4,000fps for me.  Granted that is with jME 2 and I've never really taken a hard look at jME 3, but Scala provides some significant performance and development benefits to business and game development.  For example, the ability to mix-in traits gives the ability to have multiple inheritance which can be of great benefits when representing characters and objects that may have mixed characteristics.

Personally, I think languages like Scala, Groovy etc. are nice and such, but they are not such a big step forward that I would have to jump on the train… As you see, many people havent even heard of the language and dont know about the benefits. Java on the other hand has a huge userbase.

For the advantages, I think that in a few years, when all the smoke around multiprocessors, concurrency etc. is getting less dense there will be a demand for new languages again that make it easier to adapt to new programming paradigms with concurrency built into the language, a less error prone design (no nullpointers, no exception throwing) etc. By then, Scala will be part of the same oldschool generation as Java, so why bother? ;p



Cheers,

Normen



P.S. I also firmly believe that not a single fps gained in your engine is due to scala.

If you can live with an outrageous API documentation and no real IDE support then Scala is worth the jump. In fact if one knows Java there is no jump at all: the biggest issue is the main constructor concept.



I'm a bit skeptical too regarding the performance gain. Idiomatic Scala should be a little slower because it involves more allocations and jumps- but less branches.

Glad to see that good ol' DF is up to something.  :D


normen said:

For the advantages, I think that in a few years, when all the smoke around multiprocessors, concurrency etc. is getting less dense there will be a demand for new languages again that make it easier to adapt to new programming paradigms with concurrency built into the language,
...


Actually, i think it will be worth designing an engine around the new JDK 7 concurrency. Even Java can keep up with the new languages. For example, if it borrowed the concept of "places" from X10 (say for JDK 8 ) then Java remains as modern as there is (in regards to concurrency).

By the way, are Android and Scala on friendly terms?

Well, in general I agree that most languages are not worth the effort in learning but I disagree with lumping Scala in with a language like Groovy (after all, the creator of Groovy said if he had read “Programming in Scala” before he began writing Groovy he probably never would have written it).  The IDE support is getting quite a lot better.  I use the Eclipse plugin nightly and it has its quirks but generally works quite well.  IDEA and NetBeans seem to have more stable support, but not as nice of an environment. :-p



The benefits as a programmer that Scala gives is astounding.  The more I use Scala the more I dread when I have to write any code in Java.  Also, to be clear, Scala is statically-typed and compiled language that can run in the JVM or .NET and provides a great deal of functionality that Java should have had years ago if they weren’t such freaks about backwards compatibility.



As for Android, yes, there is quite a bit of support for it in Scala (for example: http://www.scala-lang.org/node/160)



Now, I didn’t come back here really to defend Scala, but rather expecting that many of my old jME collaborators were probably already using Scala and might be interested in assisting with this endeavor I’m attempting to undertake.  I’ve already made some significant strides, but the development group is quite small at the moment and I need help. :slight_smile:

darkfrog said:
As for Android, yes, there is quite a bit of support for it in Scala (for example: http://www.scala-lang.org/node/160)
Ah yes, I remember reading the first revision of this article. I remember it 'rerouting' a bit more back then, but it seems even now the process isn't quite streamlined. In any case, if you make an attempt at any Android support, that would probably be of the greatest interest to me as far as this project is concerned. Android is still very new territory, and like we've both stated already I believe any advancement in this area could very well benefit us all.
darkfrog wrote:
Now, I didn't come back here really to defend Scala, but rather expecting that many of my old jME collaborators were probably already using Scala and might be interested in assisting with this endeavor I'm attempting to undertake.  I've already made some significant strides, but the development group is quite small at the moment and I need help. :)
I hear that. Shall we say the boundaries of this topic have been tested and understood? ;) Have you already searched around the forum for potential contributors to contact? Funny finding an old post of yours that basically sums up the plan that took you where you are now ;D

@darkfrog: I wanted to download the latest build, but the link is broken. Can you have a look?

Darkfrog, what is the benefits from coding in Scala compared to Java ?


OK just read up on it, there's plenty of benefits. Problem is to port an existing project to Scala. They claim that the Eclipse Plugin can "mix and match"…so far having tons of problem with it.

I use IntelliJ IDEA 9 CE to program in Scala, it has a plug-in that works (sort of). Plugins for Eclipse or Netbeans have more problems than features.

Ok am convinced…scala is like ten times better than java…thanks for the tip frog !

Baune said:

Ok am convinced..scala is like ten times better than java..thanks for the tip frog !


Why?
Henri said:

Baune said:

Ok am convinced..scala is like ten times better than java..thanks for the tip frog !


Why?

It has the strength of Java and it's also function oriented. Java is like 10 years old and is starting to look its age. Syntaks is alot nice, you dont have to write as much code. For my hobby projects, I have switched to Scala.

Ok. There is written: "Scala interoperates with Java and .NET". Can I make programs with scala on Android?

Think you can yea

<shameless plug>

Darkfrog gave me some really interesting answers on my silly questions: http://dgronau.wordpress.com/2010/04/05/interview-with-matt-hicks/

</shameless plug>