Have you ever heard about Amazon Sumerian? Do you know what it is? And if you know what it is… have you been able to test it? Are you curious to know if it works well? Is it worth your time and your money? If you’ve one or more these questions wandering inside your head, don’t worry, this post is here to answer them. I’ve entered the Sumerian preview program and I’ve played around with it in the last days, so I’m able to give you a first impression review of this engine. My plan is to continue learning it and then create a toy application with it (maybe a VR presentation for my AR/VR consultancy company NTW) and then maybe write a more thorough evaluation of this framework. Are you intrigued by this? I hope so… if this is the case, keep reading and enter with me the marvelous world of Sumerian.
What is Amazon Sumerian?
In November 2017, Amazon has surprised us all with the announcement of Amazon Sumerian, a new game engine that runs completely on the web. This game engine appeared awesome because:
- It is made by an enormous company like Amazon, that has the economic power to create a high-quality product;
- It runs completely on the web, so it doesn’t require to install anything on your PC;
- It can produce WebGL content easily;
- It can produce WebVR and WebAR (WebXR) content easily;
- It can be used by people that don’t know how to code;
- It is integrated with all the other Amazon web services (AWS): this means IoT, cloud, artificial intelligence, etc…
All these ones are great reasons to be hyped by this product: in fact, the news was reported by all the major VR magazines. And this is why I wanted to enter the preview program to test it.
How to enter the Amazon Sumerian preview?
To enter the elite group of Amazon Sumerian tester, you have to perform an ancient Sumerian ritual: compile the form on this page. I made it some days after the announcement of the game engine, creating also a brand new AWS account for the occasion. Because yes, to use Sumerian, that runs all inside the Amazon cloud, you need an Amazon cloud account: if you don’t have it, you have to hurry in creating one. Don’t worry about your money: there’s a free tier that lets you try Amazon services for free. Anyway, in your free account, you have a threshold for each service: if you want to go beyond this limit, you have to give your money directly to Jeff Bezos.
After having received some e-mails from AWS and from Sumerian Preview program, nothing happened. I supposed that Amazon wasn’t interested in having me inside the preview for some reasons, maybe preferring other more skilled developers, so I went on with my life. Then, in February, I received an e-mail telling that I had been admitted inside the preview program and this has been my reaction:
I’m telling you this story to warn you that it may take some time before being accepted inside the preview program, so chill out.
How to get started
Starting with Amazon Sumerian is very easy since Amazon has provided us a great collection of resources. The place to start with is surely the collection of tutorials that you can find on this page. The tutorials will take you from the description of the interface to easy tasks as the addition of a cube, up to the development of complex tasks like the integration of a virtual reality app with IoT services (wow!). The tutorials are made step-by-step and are full of pictures: they are perfect both in the case you’re already practical with game engines like Unity or if you are just a beginner.
Since I come with a previous experience with game engines, I found them even too easy to follow, so they’re perfect. Then I loved the fact that they are textual tutorials: I hate video tutorials, where I have to watch a five minutes video just to see 3 clicks that have to be made inside the UX (yes, Unity, I’m talking with you). I have to say that after the first tutorials, I completed all the following ones at a time ridiculously lower than the one stated on the website (like 15 minutes for a 1-hour tutorial).
Tutorials are an amazing place to get started and guide you in the development of awesome things like IoT integration, text-to-speech, augmented reality (ARCore/ARKit) app integration. I really loved this section of the website and I want to compliment Amazon for this. I have to say that I have spotted some little errors in the docs (like a “[INSERT LINK HERE]” placeholder), but the overall quality is great. Maybe the greatest problem that I’ve found is that I can’t understand properly the order into which they’ve been put in the website: for instance, there are some tutorials for beginners that have been inserted after the ones for intermediate developers. It’s strange.
After you’ve learned how to use this game engine with the tutorials, you can start digging into the Documentation and the Scripting API Reference.
As always when there is a new technology, the best is always starting experimenting… so after you’ve learned the basics, play around with the engine and try to take it to its limits!
Amazon Sumerian first impressions
As soon as I logged in into Sumerian, I found myself into the Dashboard, that is my personal Sumerian place, from which I can handle my projects and my scenes. I liked that as soon as I entered: some tooltips welcomed me giving me a small tutorial on how the dashboard UI is composed and introducing me to various basic concepts. Great tutorial + welcome tooltips: for sure Amazon knows how to guide the new users.
Inside the Dashboard, it is possible to create a new empty project or to start from a pre-defined template. Since I was really eager to test Sumerian in VR, I created a new scene from a template with a talking avatar, opened it and then I waited for it to load… I waited… I waited…
Because, ehm, there was a gizmo that kept rotating in the center of my screen and nothing else showed up. I was so excited but soon became very frustrated. I’ll talk about this network issue in a further detail later on, for now, let me just say that it happened.
I decided to change approach and started with a new empty scene and then… BAM, Sumerian showed me with all its magnificence.
As you can see from the above picture, the Sumerian Interface is very neat and colored. And at first usage, there are those little popups that give you a quick introduction, so you can’t get lost.
The first impression I had opening it has been: “I love the graphics”. I like the blue themed-UI, the colors on the right and all the little animations that are on every element. For sure, the visual aspect of this solution has been well curated.
After this little WOW, I said myself: “now, what?”. So, I started with the first tutorial and I got used with this UI that is basically… Unity.
If you look the above pictures of Unity and Sumerian, you would notice that they are very very similar and the reason is that Sumerian is like a web version of Unity. In the center you have your game scene; on the upper-left you have the structure of the game objects (that in Sumerian are called the Entities) inside the scene; on the lower-right you have the structure of the assets on your disk (in Sumerian you have a collection of assets packages that are in your cloud space of your project); on the right you have the behaviors associated with your game object/entity with which you can define how this object behaves inside the game.
Even the navigation in the scene is compatible with the one that I’m used to employing inside Unity… so I hadn’t to become mad as with Blender that use different mouse buttons to navigate inside the scene. Basically, if you are a Unity developer, you get started with Sumerian very easily.
The advantage over Unity is that this framework is completely web-based, so you don’t need to install anything, to update anything and such. You just log in to your dashboard with any device from everywhere and you can work. You don’t even have to take your files with you or backup them since everything lives in your cloud space. This is powerful and I found it very handy. The disadvantage is: with Unity you have more freedom, here you’re locked with Amazon environment: you must pay for the Amazon services that you use and you can only produce web applications.
Anyway, after these positive first impressions, I decided to play a bit with this web-Unity-clone and see how it was…
Amazon Sumerian first review
I started following the tutorials, playing a bit with the editor and having a bit of fun. After some days of usages, I think that I can write the first review of this development environment.
First of all, I want to confirm that it is very similar to Unity: if you are a Unity developer, the tutorials’ purpose is to tell you how to do in Sumerian that things that you were used to doing in Unity. Inside Sumerian I used things like:
- Colliders;
- Rigidbodies;
- Lights (point/directional/spot);
- Cameras;
- Materials (diffuse/specular/emissive/etc…);
- Terrains;
- Scripts;
- Etc…
I think that if you have already used a game engine, you are already familiar with these topics. The learning curve if you already know Unity is very steep… you have just to learn how to do the things in a new way and that’s it.
The fact that Sumerian is web-based introduces the problem of latency and connection. Do you remember the problem that I had with the first waiting gizmo? Well, I had that problem several times. I tested Sumerian with different networks: at home, where I have a medium-speed cabled internet connection, loading a simple scene takes at least one minute. In the office, where I have a fast-speed but unreliable wi-fi, it can take even 5 minutes. And the worst thing is that if there are problems of a particular kind, the loading process goes in an endless loop and you are going to never see your scene (I think that it is a bug). So, there is some time toll to be paid at this moment to use this software… (Unity loads the scenes in few seconds) that becomes unsustainable if your connection is bad. And of course, if you have no connection, you can’t work at all (this is something to consider). So, if you want to use Sumerian, my advice is to use a good internet connection. And even in this case, Amazon warns you that during the preview they may mess up with the servers and the connection.
As a further advice, if you have lag, I suggest you change the address of your reference server inside the URL to match the one of your locales. The default link provided you by the tutorials is something like that
https://us-east-1.sumerian.amazonaws.com
But if you are in Italy, like me, it is best to use a server from Europe, so specify
https://eu-west-2.sumerian.amazonaws.com
to connect to a server that is nearer to you and that can so guarantee faster response times. This change has to be performed by hand in the URL of your browser and I advise you to do that at your first run of the dashboard, because when I changed the server, the scenes that I made “on the other server’s dashboard”, disappeared in the new one (strange, but this is what happened).
Apart from the connection issues, the other big problem that I have found is… bugs. It is a preview, so there are bugs and problems everywhere. For instance, inside a particular page inside the Dashboard, the button to return to the Dashboard home doesn’t work; the imported models, if heavy, are not rendered for a certain amount of time; some models in the TV Room tutorials went crazy and flickered like hell; the Terrain Colliders don’t collide with Box collider (whyyyy?); VR mode has a lot of issues (more on this later on); on Edge the published scenes don’t work, etc… But the prize for the most annoying bug goes to the fact that you can’t move objects on Firefox. I have Firefox 58 and if I launch the editor, I can’t move the objects in the scene! They don’t show me 3 arrows for the 3 axes, but just a purple single arrow that does strange things. The funny consequence of this is that I had to develop with Chrome when the suggested browser is Firefox (57).
And the management of the project assets and of the scene hierarchy is even messier than with Unity. IMHO it is difficult to organize assets and entities… and things are made even worse by some bugs and the fact that the various entities in the scene are sorted in alphabetical order and can’t be moved to organize them as you wish (???).
So, there are issues. But there are also very wonderful things. The engine is complete and offers a lot of features. And it is true that it can be used even by people that can’t code since it offers the possibility to program state machines to define the behavior of every entity using blocks programming and not coding. Honestly, I prefer coding over wiring blocks, but I understand that not all people have my skills and this makes the engine usable by more people.
If you like to code… well, there is Javascript. You can write your scripts using a certain structure with some predefined callbacks that get called at every frame update, every update of the physics engine, etc…
Basically, again, it is Unity coding but written in a different way. Learning this “different way” and especially using Javascript when I am used to C# is maybe the biggest nuisance of learning Sumerian. And there is also HTML: you can show inside your scene some HTML code.
There is a particular element called HTML 3D that basically opens you a quad that is like a browser window inside your 3D scene: you can write HTML code inside it and see its output in the scene. In one of the first tutorial, this is used to play a Youtube video inside the TV of the room just by embedding the code offered by Youtube. I was impressed.
The possibility to build in WebGL and WebVR is awesome. Unity has a WebGL exporting feature that works, but it misses completely WebVR at the moment. With Sumerian, exporting WebVR applications is super-easy and even making AR applications for ARCore and ARKit is possible. There’s just an additional step to be made for AR (that at the moment still require the use of a stub application, so can’t run completely from the web), but building every WebXR application is made easy. Let me tell that again: you have more or less the power of Unity, completely on the web and you can export WebXR applications. There are frameworks for easy WebVR developments, like Rodin and A-Frame, but they basically require you to write code for everything. Here you just move stuff visually, you code with state machines, you integrate other Amazon Services and bam, everything works! A-Frame is wonderful, but against Sumerian feels a bit like OpenGL vs Unity. It is like a kid with scoop and bucket versus a construction company. In A-Frame you have to code everything, import other components made by other people in the community inside the code, use npm, etc… Here everything is faster. You import 3d models just by dragging them from your hard drive to the Sumerian canvas. It handles everything… you don’t have to convert them to glTF, publish it on a CDN and then perform a voodoo ritual. Just drag and drop. Even the graphical outcome (so, the shading) is far superior. Of course, A-frame is opensource and here you’re selling your soul to Amazon, but if you are a company and you care about the speed of execution, your soul is worth the advantages.
https://gfycat.com/FineImaginaryCattle
(some snow I created just by setting a flag)
I mentioned the integration with other Amazon web services and I think that this is another feature that impressed me of Sumerian: in a demo, I integrated the reading of some IoT sensor’s data within a WebVR scene in 5 minutes. I just told the engine to read the data from the cloud and move the cube, that’s it. Then you have text-to-speech, speech-to-text and all those awesome stuff that are incredible if combined with Avatars for instance. You have artificial intelligence. Sumerian works on a fully working cloud ecosystem with which it is completely integrated. A lot of complicated things just work without hassles. I think that for enterprise applications, this powerful ecosystem can be the most important reason to choose Sumerian.
If you want to create a graphically appealing scene, there is also a set of predefined assets: tables, vases, TVs, etc… You just click on “Import Asset” and a sort of asset store opens up, from which you can look for what you need. Take care that this asset store is case sensitive: so if you need the package called “CoreVR” and you look for “vr”, it won’t find anything. This asset store is in its beginning and someone from AWS has told me that it is going to be improved in the future to become very similar to the one offered by Unity. It will let you upload your packages and even sell them so that you will be able to earn money from people buying them. And they also plan to integrate it with popular platforms for 3D assets like Turbosquid or Google Poly. It’s going to be great.
The publishing process is very easy: once you have developed your masterpiece, you just hit publish: you obtain a link that points to your built scene… you can publish this link where you want and let all people try your experience.
Do you want to see how a published scene looks like? Here you are with a tutorial scene made by me! (Press W key to make the drone fly and A and D to change its position while flying; use the mouse/touch to rotate the camera)
Amazon Sumerian & VR
Let me tell in detail about the integration of Sumerian with VR. Well, by default Sumerian outputs web 3D apps without VR. You have to import a package called CoreVR (there are multiple instances on the asset store, take the most recent one), drag a VRCameraRig into the scene, set a flag and voilà! Your camera becomes a VR camera and you have VR! There’s of course also support for the VR controllers and interactions with them.
A VR scene doesn’t run automatically in VR: you need to press the little cardboard icon that is in its lower-right corner to activate VR. This means that every VR scene can be used even if the viewer doesn’t have a VR headset. Notice that in the Sumerian editor you can activate VR both in play mode and in editor mode, depending on when you click on the VR icon (this means that in the editor you can preview the scene in VR and modify it as you wish and then hit play only when you feel ready).
https://gfycat.com/CaringHauntingDore
Of course, to use VR you have to have a WebVR enabled browser, that is Edge, Firefox or Chromium or Chrome mobile. It is funny to notice that on Edge nothing works, Chrome mobile doesn’t get detected as a WebVR browser; and that on Firefox everything works like a charm… but in Firefox you can’t use the editor because of the above arrows bug. So, I had to develop on Chrome and then test on Firefox… with all the delays of a similar solution… what a mess.
Sumerian on PC uses SteamVR. There are bugs even in VR integration: sometimes it froze completely my Oculus headset and I had to kill its service.
Anyway, here again… bugs apart, implementation of VR was very easy to add!
Final opinion
My final opinion is that Amazon Sumerian is an incredible tool: it is the best framework I found to develop high-quality WebVR applications. It is full of features: it is almost like Unity (“almost” because Unity is on the market since a lot, so it has an enormous set of features), but in the web. And it is easy to learn if you are already skilled with Unity or a similar engine. And the seamless integration with all the other Amazon cloud and AI services is something incredibly powerful that makes Sumerian ideal for a lot of enterprise applications. I have been impressed by it.
https://gfycat.com/OrderlyAntiqueJunebug
I think that there are anyway two big problems to be considered:
- At the moment it is in preview and it is very buggy. I think that it is currently unsuitable for a web app that has to be stable, for something that has to be in a production stage;
- The success of this engine will depend on a lot of factors, like for instance when Unity and UE4 will release an official WebVR exporter (Mozilla has already released a hack to export from Unity to WebVR). Because people are lazy and do not want to learn a new dev tool: if someone is already skilled with Unity, won’t migrate to Amazon Lumberyard to re-learn to do the same things, unless it offers some feature worth the price. So, we can’t predict how much Sumerian will become popular.
Should you use it?
If you need something ready now, no. (It is too buggy)
If you are not interested in the web, no.
If you are too committed to Unity and Unreal, probably no.
If you want complete freedom, no. (Here you are locked to Amazon environment)
If you are interested in web and VR, probably yes. (“Probably” because you may prefer other tools like Unity + the WebVR exporter made by Mozilla or wait for a Unity official exporter)
If you are interested in an online development environment for WebVR, yes.
If you are interested in WebVR + AI + IoT, absolutely yes.
My advice is to register for the preview and give it a try. After that, you can decide if it is the right tool for you.
I hope you liked this review. If this is the case, please share it using those fancy buttons that are below here and also subscribe to my newsletter to support this VR magazine!
(Header image from an Amazon logo)