Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Synthclipse - GLSL demo development environment based on Eclipse IDE.  (Read 7834 times)
0 Members and 2 Guests are viewing this topic.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Posted 2014-02-16 19:23:36 »

Hi folks,
In last couple of months I've been developing Open Source GLSL demo development environment based on Eclipse IDE, called: Synthclipse.
Its main purpose is to help making GLSL demos but it's kind of Java gaming related since it is written in Java and can be used as ordinary GLSL editor (for your games, of course Smiley ).

I've finally released version 0.1.0 of the Synthclipse.
Here's the web site: synthclipse.sourceforge.net

And here's a screenshot:



More screenshots you can find here.
Offline Longor1996
« Reply #1 - Posted 2014-02-16 19:34:06 »

Now this is something really awesome.
PITA I can't download it, since my internet-connection crashes every 2-5 Megabyte of data-volume.
(And the 'resume download' functionality of Firefox and FreeDownloadManager doesn't work)

I really want this.

- Longor1996

Sorry for my bad English! That's because i am from Germany.
Offline Roquen
« Reply #2 - Posted 2014-02-16 19:37:36 »

I'll try out some of my Fragmentarium scripts once I've got this set-up.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #3 - Posted 2014-02-16 20:17:42 »

I'll try out some of my Fragmentarium scripts once I've got this set-up.

There is Fragmentarium importer that can help you: Just choose from the main menu "Synthclipse -> Import... -> Fragmentarium Creation...".
Offline Drenius
« Reply #4 - Posted 2014-02-16 20:24:33 »

Will check this out. But could you add a more direct download link? It is quite annoying...
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #5 - Posted 2014-02-16 20:40:11 »

You mean to Eclipse with already installed Synthclipse plugin-ins? I'm planning to but I was thinking that for version 0.1.0 with not all features implemented (like recording) it would won't be necessary.

Current "installation" is that problematic? Maybe I should reconsider releasing one archive file...
Offline Drenius
« Reply #6 - Posted 2014-02-16 20:46:29 »

No, no, just the fact that you have to go through several sites to just download thet .zip. Just a personal opinion that downloads should be more direct.
Offline Slyth2727
« Reply #7 - Posted 2014-02-17 02:32:19 »

Oh man, this is awesome! Thanks  Smiley
Is there any way to load in obj files to test out post processing effects?

Was I before Chuang Tzu who dreamt about being a butterfly, or am I now a butterfly who dreams about being Chuang Tzu?
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #8 - Posted 2014-02-17 08:49:37 »

Unfortunately it isn't possible to use 3d models in current version of Synthclipse.
I'm planning to add scripting support to Synthclipse in future. With it such things would be possible.
But it won't be soon, maybe 6 months from now, since I have couple of things to implement before scripting.
Offline Roquen
« Reply #9 - Posted 2014-02-17 13:00:47 »

Okay some initial feedback.  I've only looked at a couple of my 2D fractals so far.  Later I'll look at some 3D fractals and then some realtime targeted stuff.  One of the fractals is this:

http://www.java-gaming.org/?action=pastebin&id=840

So (I'm sure this isn't news) the progressive rendering could do with some work.  Also the rendering goes wonky if rendering window gets resized.

Random thoughts:
1) Assuming you're parsing GLSL, then allow for constants to have UI elements (like uniforms).
2) Print out the rendering time
3) Engine generated quasi-random provided as a uniform.  Say a vec4 where the values are updated once per progressive frame.  

Keep up the good work. Wink

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline junkdog
« Reply #10 - Posted 2014-02-17 13:35:50 »

This is great! I was actually looking for some rudimentary glsl support a couple of days ago. Taking it for a spin later.

Didn't find a changelog however (noticed 0.1.1 is released) - would be nice to have it on the page somewhere; unless I just missed it.

Edit: Any chance the codebase will migrate to github? It would make contributing easier imo.

artemis-odb: bugfixing and performance optimized fork of artemis ECS
Offline Roquen
« Reply #11 - Posted 2014-02-17 14:05:15 »

2D direction support.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #12 - Posted 2014-02-17 19:10:16 »

Random thoughts:
1) Assuming you're parsing GLSL, then allow for constants to have UI elements (like uniforms).
2) Print out the rendering time
3) Engine generated quasi-random provided as a uniform.  Say a vec4 where the values are updated once per progressive frame. 
Ad.1. Would you like this because uniforms have some (little) performence penalty? Maybe I should implement uniform locking like in the Fragmentarium. It basically replaces uniforms with constants.

Ad.2. FPS counter isn't sufficient or do you mean rendering time in progressive mode? Of course I could add this feature. (maybe tomorrow).

Ad.3 This will be possible when I implement scripting support.

As of 2D rotation component I will start implementing it today Smiley

Didn't find a changelog however (noticed 0.1.1 is released) - would be nice to have it on the page somewhere; unless I just missed it.

Edit: Any chance the codebase will migrate to github? It would make contributing easier imo.

Added changelog to http://synthclipse.sourceforge.net/changelog.html.

I'm already using git on sourceforge. Contribution to Synthclipse shouldn't be more diffcult than in github.

Thanks for the feedback guys!
Offline junkdog
« Reply #13 - Posted 2014-02-17 20:46:00 »

I'm already using git on sourceforge. Contribution to Synthclipse shouldn't be more diffcult than in github.

Yeah, maybe it's just my personal aversion to SF; not a biggie regardless.

Hadn't heard Beat Bizarre before; pretty sweat stuff!

artemis-odb: bugfixing and performance optimized fork of artemis ECS
Offline Roquen
« Reply #14 - Posted 2014-02-18 09:06:58 »

Quote
Quote
1) Assuming you're parsing GLSL, then allow for constants to have UI elements (like uniforms).
Would you like this because uniforms have some (little) performence penalty? Maybe I should implement uniform locking like in the Fragmentarium. It basically replaces uniforms with constants.
For non-realtime, say rendering a procedurally generated movie slight performance difference can really add up.  For realtime (coupled with nanosecond rendering time) it allows for a more accurate estimation of how much GPU budget a given implementation is consuming.  Having a variable as a constant opens up more optimization to the backend than a uniform.  Additionally it's slightly less runtime overhead.

Personally I'd slightly prefer:
const float foo; // //! slider[0,.5,20]
.  The idea is "what you write is what you mean" and it's purposefully invalid GLSL.  This is only a minor point however.  Some other thoughts in this direction are:  Having a command-line interface coupled with your future scripting support to allow exporting from the internal format to some (potentially custom) format used by the target application.

Quote
Quote
2) Print out the rendering time
FPS counter isn't sufficient or do you mean rendering time in progressive mode? Of course I could add this feature. (maybe tomorrow).
For realtime, FPS stands for Freaking Pointless System (of measurement).  What you really want is ns/frame and/or ns/fragment.  FPS numbers are too course grain and the inverse time nature makes it very misleading.  Consider 200 fps.  Gosh that's fast!  Except it isn't if your targeting 60 fps for everything.  It's 30% of your total GPU budget.  And 100 fps is 60%, 80 is 75%...see what I mean.  It's much easier to think in linear things.


Quote
Quote
3) Engine generated quasi-random provided as a uniform.  Say a vec4 where the values are updated once per progressive frame. 
This will be possible when I implement scripting support.
Scripting support is even more awesome.

Quote
As of 2D rotation component I will start implementing it today Smiley
Nice.



Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #15 - Posted 2014-02-18 22:45:41 »

@junkdog
Yeah, Beat Bizzare is pretty cool.

@Roquen

I've implemented Direction 2D Tool:



and added frame time to the Rendering View:


As of constants with Uniform Controls, I've put it on my TODO list.

Synthclipse 0.1.2 is redy for downloads.

I've decided that I will implement scripting in the first place, since it is the most desired feature. Any suggestion about scripting functionality and language?

I'm thinking about using Python since it has good OpenGL support and can be easly used with Java (Jython) and with C++
(I need it for my Synthclipse Player), but I don't know if Jython is fast enough.

I was considering also JavaScript because it is everywhere and fast JVM based engine - Nashorn - is coming out soon. Moreover I have expirience with JavaScript-C++ interoperability using Google V8 engine.
But if I would use JavaScript I would have to port part of Desktop OpenGL API to this language... This could take too much time.

What do you think guys?
Offline Roquen
« Reply #16 - Posted 2014-02-19 06:39:32 »

You could use java. Smiley  I don't see any reason to use a dynamically typed language, but I don't know what your vision for scripting is.
Offline Longor1996
« Reply #17 - Posted 2014-02-19 15:55:20 »

Scripting Languages I can think of:
- Jasic (BASIC)
- Rhino (JavaScript)
- Jython (Phyton)
- Nashorn (JavaScript)
- DCPU-ASM (Assembler)
- ...
- A 'Graph' based Scripting-Language?

I still wan't to download this.

Have a nice day.

- Longor1996

Sorry for my bad English! That's because i am from Germany.
Offline cylab

JGO Ninja


Medals: 55



« Reply #18 - Posted 2014-02-20 08:54:30 »

You could use java. Smiley  I don't see any reason to use a dynamically typed language, but I don't know what your vision for scripting is.

+1 for java or simply loading class-files and providing a api-jar, so everybody could use any language that compiles to jvm bytecode.

Mathias - I Know What [you] Did Last Summer!
Offline Roquen
« Reply #19 - Posted 2014-02-20 11:52:16 »

Yeah and use classloaders and you get the ability to unload and submit update versions at runtime.  The C++ other tool could load HotSpot and then there will be no issues related to using different runtimes.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #20 - Posted 2014-02-20 18:00:31 »

This might be not a bad idea. I will seriously consider it. Right now I'm implementing recording similar to Fragmenterium's. When I finish it (in 2-4 weeks) I will start implementing scripting support. So I have some time to think about it and in the meantime I will do a little research about that and other possible implementations of the scripting.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #21 - Posted 2014-02-22 15:23:40 »

Synthclipse 0.1.3 is ready for downloads: https://sourceforge.net/projects/synthclipse/files/synthclipse-0.1.3/.

I've added GLSL Sandbox importer.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #22 - Posted 2014-03-10 18:11:21 »

Synthclipse 0.2.0 with high quality tiled rendering is out. Downloads. Changelog.





Now is the time to implement scripting and support for other shader types (geometry, tessellation, compute). I'll try to make scripting possible in Java, as well as in some other, more dynamic, language (JavaScript or Python probably).
Offline Roquen
« Reply #23 - Posted 2014-03-10 20:29:11 »

I'd strongly suggest choosing one and put any others on a long term wish list.  Don't get crippled by feature-creep-itis.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #24 - Posted 2014-03-10 21:09:49 »

The main scripting API will be in Java. Scripting in JavaScript or Python (Jython really) will be done through javax.scripting.
I hope that there will be not that much to port to JavaScript/Jython with build-in Java-other langages interoperability, offered by javax.scripting API.

I also don't want to support JavaScript and Jython simultaneously. I will choose one when my Java API for scripting will be ready.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #25 - Posted 2014-03-11 20:37:04 »

Synthclipse 0.2.1 quick fix release.

Changelog:
- Fixed cube map's path resolving. Added test-cube-map-texture.fragx to the examples.
- Fixed "random" compilation error (sometimes shaders didn't compile)
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #26 - Posted 2014-07-29 22:54:29 »

It has been a long time since last update but finally I'm ready to release a new version of my application. Synthclipse 0.9 is ready for downloads.



What's new:
- Added JavaScript (JSX) scripting support
- Added support for other types of shaders (Geometry, Tessellation, Compute)
- Added Run Configurations support (last few shaders are now remembered in the "Run" menu)
- Added more sophisticated Color Uniform Control
- Lots of little bug fixes

The list maybe isn't very long, considering amout of time since last release, but bringing scripting support to Synthclipse along with all API and documentation was quite a big task for one person woking on the project only in free time (which lately I don't have much - I'm getting merried next month). Since it was so time consuming I've decided to focus only on one scripting language: JavaScript. Sorry folks, no Java support.

I've jumped from version 0.2 to 0.9 and changed status from alpha to beta since Synthclipse is almost ready for version 1.0. I've decided to not implement new features before releasing version 1.0. Until it happens I'm just going to fix bugs and maybe add some small improvements.

Apart from changes in the application I've updated whole site and started to distribute Synthclipse with Eclipse to simplify installation process.

One more thing worth mentioning is that Synthclipse now requires Java >= 8.

Useful links:
- Screenshots
- User Guide


Offline princec

« JGO Spiffy Duke »


Medals: 434
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #27 - Posted 2014-07-30 08:02:03 »

Jolly good Smiley I've been using it - syntax highlighting is the most useful bit for me whilst learning GLSL.

Cas Smiley

Offline Roquen
« Reply #28 - Posted 2014-07-30 08:51:57 »

Given the whole WebGL thing you could argue JS is a better choice.  Thanks for the update...I'll check it out when I get some free time.
Offline revers

Senior Devvie


Medals: 21
Projects: 1



« Reply #29 - Posted 2014-08-05 06:39:01 »

Synthclipse 0.9.1, quick fix release.

Changelog:
- Fixed Shadertoy importer (although music generation is still not supported)
- Fixed incorrect sub-frame rendering (seen in GraphPlotter.fragx shader)
- From now on JavaScript nature (Eclipse IDE detail) will be added to every new Synthclipse project during creation

Downloads.
Pages: [1] 2
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (30 views)
2014-12-15 09:26:44

Mr.CodeIt (21 views)
2014-12-14 19:50:38

BurntPizza (42 views)
2014-12-09 22:41:13

BurntPizza (76 views)
2014-12-08 04:46:31

JscottyBieshaar (37 views)
2014-12-05 12:39:02

SHC (51 views)
2014-12-03 16:27:13

CopyableCougar4 (49 views)
2014-11-29 21:32:03

toopeicgaming1999 (115 views)
2014-11-26 15:22:04

toopeicgaming1999 (105 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!