Today marks the day of the 5000th commit to the JSC ScriptCoreLib Framework. Exciting times! – Arvo
November 19, 2012
August 23, 2012
- Even if the game is popular it might not make much money
- Think about things you will be able to sell in the future
- Do make a game which is designed to make amoney
- Consumables as a soruce of revenue
- Do not depend on a single platform
- Functional goods vs aesthetic goods
- Do the marketing and self promotion
August 9, 2012
[...] August 6th, 2012 – Los Angeles, SIGGRAPH 2012 – The Khronos™ Group today announced the immediate release of the OpenGL® ES 3.0 specification
[...] Do you have a phone or tablet? then OpenGL matters. - slashdot
There is a significant set of WebGL examples working as JSC Web Applications. Today, it requires a rather new laptop, does NOT run on iPad and requires Firefox Mobile on Android.
How long will it take until OpenGL ES 3.0 is running on Android or as WebGL?
May 7, 2012
- Be positive
- Absorb rejections
- Inspire others with your creation
[...] Be involved in the most interesting thing you can!
June 21, 2011
Only a few years ago I had this idea to have a JSC branded PAC MAN multiplayer game.
Today, I found this via RLammle:
For my amusement I found it rather remarkable to be able to log in with facebook connect and use my tablet to ink a new maze for others to play later.
It would be awesome if a future version of JSC would include a C# project template to create something like this.
August 24, 2010
August 6, 2010
August 3, 2010
Where is the Photoshop File Formats.pdf file?
You need to request the Photoshop File Formats documentation explicitly
On the other hand…
There be dragons!
You could use it to get the most basic elements of a document, as long as you are prepared for hours of trial and error as well, but most features post-5.0 are either described as black boxes, or left out entirely. Clearly nobody inside Adobe uses this document or is properly updating it for third parties.
Update: Form Field Elements
While PSD is an industry standard you may be able to just use Paint.NET to edit them.
Manually converting PSD to HTML.
There is even a book!
July 23, 2010
When I was trying to use jsc to build a flash component the mxmlc compiler failed to launch with this message:
[exec] Error loading: C:\Program Files\Java\jre6\bin\client\jvm.dll
Error loading: C:\Program Files\Java\jre6\bin\client\jvm.dll
To fix that I copied from:
to (x86) on 64bit windows
Then I ran the generated swf file in the flash player which told me the following:
VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found.
As this component was not part of the new BrowserApplication project template it had a custom build.bat which needed a new flag to be passed mxmlc.
Update from the future: While setting up a build environment in Amazon EC the same problem occurs.
July 22, 2010
July 12, 2010
Would you want to program your shaders in C# instead? It would look something like this once implemented:
Update: See GLSL overview
Update: See WebGL Awesomeness
More examples: Ethanol
Update: Photoshop effects
Update: Can we have COLLADA within HTML?
June 5, 2010
The examples I tested listed below:
I plan to generate the assembly ScriptCoreLib.WebGL from WebGL spec (<pre class=”idl”>). The assembly could also be named (but I like the shorter name as ScriptCoreLib.Ultra.WebGL.Volatile.dll.
- Ultra is the new concept where you can have more types defined your assembly than compiled by jsc.
- Volatile means the assembly may have online dependancies on resources like images or spec’s like WebGL IDL. (Or SVG?)
PS. WordPress just asked me “How likely would I be recommending it to my friends and family ?”! Who wouldn’t?
May 27, 2010
And just in time JSC has a brand new JSC powered home page.
The installer has also been upgraded!
Last, but not least – JSC has a brand new cool shiny Visual Studio like project designer. A lot still needs to be built, but you will get the idea. Drag and drop Java Applets and Adobe Flash Sprites. Select C#, F# or Visual Basic. And save your project to disk. Facebook connected IDE? Why not.
Check back soon!
March 10, 2010
It’s interactive (like Google Maps), letting you zoom from a view of the whole city, down to an individual street — any address, anywhere in the city.
March 9, 2010
In this astonishing, inspirational and practical session, Geoffrey “Crossing the Chasm” Moore talks about what you need to be great at, what you need to be merely good enough at, and how companies consistently mix these two categories up.
The next generation of software can be built on top of jsc.
Your Core, My Context, I pay.
My Core, Your Context, you pay.
[#13:44] The purpose of neutralization and innovation is to get the maximum input from the minimum input output for the minimum input and be good enough.
Differentiation – How you make money
Neutralization – How to stay in the game
March 4, 2010
This is awesome
February 22, 2010
At the moment only the HTML web page is converted to DOM building code which looks like this under reflector.
In the future releases the native source codes could be parsed and placed in the correct location based on their namespace for their respective back-end compilers.
Seems like I will need source code parsers to pull it off. First step is to generate a stub. The next step would be to convert the native source to IL. If we go just for the first step, then one can surely benefit from some native language specific syntax constructs.
Update: The second pass would mean that the native back-end compiler does it’s job and jsc will go and decompile JVM or AVM to IL as jsc is not about compiling source to IL.
42 var Applet1 = new AboutApplet();
44 Applet1.Method1(“hello world”);
46 var Applet1Element = Applet1.AttachAppletToDocument();
48 Applet1Element.style.border = “1px solid red”;
This will create a red java applet in your browser.
The AboutApplet.java should could look something like this:
1 // PromotionWebApplication1.AboutApplet.dll
2 package PromotionWebApplication1;
4 import java.applet.Applet;
5 import java.awt.Component;
6 import java.awt.Container;
7 import java.awt.image.ImageObserver;
8 import java.awt.Panel;
10 public final class AboutApplet extends Applet implements ImageObserver
14 public AboutApplet()
20 public final void Method1(String p)
Cool features ahead. Including HTML5 Including an actual installer!
jsc has now a twitter feed!
PS. What about .class, .jar, .swf, .swc? I surely would like to pull media from online .swf files just to be able to recompile them into my own application.
Hey Compiler that flash game there has nice logo and sound, could you go ahead and make them accessible for me in the code? Thanks!
February 19, 2010
February 18, 2010
January 26, 2010
Seems like they have yet another project cooking – ripley project.
We propose Ripley, a system that uses replicated execution to automatically preserve the integrity of a distributed computation. Ripley replicates a copy of the client-side computation on the trusted server tier. Every client-side event is transferred to the replica of the client for execution.
Ripley prevents a malicious user or remote hacker from altering the behavior of code running inside a Web browser by creating an exact copy of the computational environment and running that copy on the server. Ripley then sends all of the user’s actions, including mouse clicks, keystrokes, and any other inputs, in a compressed “event stream” from the client to the server. This stream is run through the cloned client application on the server, and the behavior of that virtual doppelganger is compared to that of the application running on the user’s browser at home. If there are any discrepancies, Ripley disconnects the client.
It is very important to carefully analyze available tools and to place one self in the market. At the moment jsc is not in the business of replicating client side business logic in the server side. Yet jsc is capable of that. I will revisit this idea in the future.
If jsc solution were to implement the idea then:
- Server side business logic could run on PHP
- Server side business logic could run on Google App Engine Java
- Server side business logic could run on ASP.NET
- Client side business logic could run on flash
- Client side business logic could run on java
Update: Come to think about it jsc solution could pursue another goal of automatic synchronization of client applications via stratus which just recently got multicast support.
January 19, 2010
What if you could write all your components within C# in Visual Studio? Soon you will!
codename: jsc solution
What does jsc do? It will tear part your .net assembly and convert components to the target language and form. Neccesary proxy glue code will be generated and injected.
- java applet object
- flash object with p2p stratus and alchemy
- java servlet for google app engine
- php code generation
- web services
- Windows Forms
Source view mockup:
January 15, 2010
Disclaimer: This is a quick and dirty post.
The new Pre-build event looks like this:
C:\util\jsc\bin\jsc.meta.exe ReferenceWebSource /ProjectFileName:”$(ProjectPath)”
Seriously, the other day I saw a blog post about how to make T4 download source code for you. At first I thought, thats just insane. It is a serious security liability. You will compile source code which you may have not written.
Update: I added the link. How long until the computer will automatically link to the posts by description? 5 years?
jsc.meta now supports this new command ReferenceWebSource, which basically scans your project and downloads references source files from the internet, compiles them, merges them, adds some attributes and adds the new assembly to your project as a reference. This opens up a whole new group of possibilites.
The upper projects are supposed to be external projects written by other developers. Your project is the ReferencingWebSource project. As you can see there are multiple folders in that project suffixed with WebSource. Each of those which has a references.txt file is basically a list of source codes on the web. They can point either to .vb or .cs.
The source code could be generated by the web server on the fly. Talk about WSDL in C# And after the downloaded code is compiled jsc.meta could apply any additional IL translation it wants to on it. It could go ahead and infer new types from existing code…
After you load your project you should do a build. This will invoke the pre build event and update the dynamic reference.
Here is an example of how I can use it in my project. Remember those Class1 types are downloaded via HTTP GET.
This feature is new and not fault tolerant. Oh and this windows forms project is also compiled to java.
Update: Future extension points:
- Reference source code in a zip or tar file.
- Reference assets within flash files
- Reference 3D objects within google warehouse.
- Reference HTML design documents
- Reference online wave files and compile them as inline components
- Reference windows forms textual design
- Reference game maker games for their assets
- Cache downloaded files for offline scenarios
- Check for forbidden API usage to increase security
- Reference HTML file with links to images and have them converted to embedded assets
- Reference UML diagrams and create components with (network) events?
- Reference XSD, XML, JSON to create serializeable DOM’s.
- Reference native classes. BCL assembly should be merged with the reference.
- Reference HTML DOM as IDL
- Reference static HTML file to inject dynamic code
- Merge current and sattelite assemblies and dump unused sattelite types to reduce code size.
- Reference open source .net projects and simplify by recompiling them to be used with jsc
December 29, 2009
Let’s build some muscle on jsc.
OrcasMetaWebService. Crosscompiled from C# to Java for Google App Engine and PHP.
The idea is that your little cute Web Service will be running on PHP and Google App Engine. See the C# source code used in this example over here.
See live example running on PHP. See live example running on Google App Engine java
There are features missing. But you sure can see where it is going
PS. Video parameters “&w=800&h=500&fmt=18″
I had this idea to publish the web services via WSDL with HTTP Protocol. But it seems this scenario isn’t exactly supported by the big old Microsoft just yet. So the next step would be to implement xml-soap?
October 21, 2009
In this post I am going to show you how to implement yet another .net class for java. It is going to be Windows.Forms.Treeview.
This will be included in the next jsc release.
It is actually a regular .net windows forms application (see c# source code)!
October 14, 2009
In this post I will document which files need to be changed in OrcasJavaGoogleApplication project template in order to switch to the new version.
I guess you probably are now thinking this could be easier and yes it could and yes it will.
With the jsc solution you will soon be able to convert your simple web application to a Google Application Engine java servlet with ease provided you have the required tools like jsc, ant and appengine itself installed in your development environment.
October 1, 2009
Now that I got your attention:
There is a new release for jsc with two new screencasts. This time around you are able to omit [Script] attribute and ditch the tools/build.bat. The jsc solution now includes the jsc.meta compiler which will talk to the other compilers for you.
I am also experimenting with pre compilers. For example the Forms example makes use of TextualUserControl and TextComponent. Without getting too technical they generate a new assembly and add the reference to your csproj file. This opens up some really interesting possibilities. I will talk more about this in future posts.
Future pre compilers in jsc solution could include automatic stub generators for java jar files and for flash swf and swc files.
Open java version:
September 1, 2009
Cool huh? Note that this widget will only show on your primary display if you are one of the multi display citizen. Note that this widget needs a right click to close.
You may see the following warning when opening my widget:
You are installing a file which can alter the way Opera behaves. Opera may become unstable or less secure as a result.
You should only download setup and widgets from sources you know and trust. Do you want to proceed?
August 31, 2009
PS. Did you know? javax.swing.plaf stands for platform look and feel
Problems at porting which should be fixed in the future versions:
- C# won’t allow nested classes in interface. Workaround is to use “sattelite” nesting parent class.
- Calling base method from a virtual method seems to be broken and will cause stack overflow. fixed
- The is operator in if expression was missing parenthesis. Workaround is to use local variable.
- The boolean comparision in if expression should be optimized. Workaround is to use local variable.