A-Frame is here.

August 28, 2016

If you approach the 3D capabilities of the open web browser world, you usually go via the ThreeJS Framework (like I did in my multidevice demos).

But now there’s A-Frame and it takes a different approach, quote:

“A-Frame is an open-source framework for easily creating WebVR experiences with HTML. It is designed and maintained by the Mozilla VR team (MozVR). A-Frame wraps three.js and WebGL in HTML custom elements. This enables web developers, designers, and artists to create 3D/VR scenes without having to learn WebGL’s complex low-level API. Because WebGL is ubiquitous in modern browsers on desktop and mobile, A-Frame experiences work across desktop, iOS, Android, and Oculus Rift headsets.” (link)

card

So it does mainly two things: it abstracts WebGL in an HTML-like way that appeals to everyone and not only developers, and additionally it bridges between high-end VR goggles like Rift and Vive and cheapo Cardboard knock-offs. This is great news for the open web. Oh, and it also has ThreeJS under the hood.

Having the luxury to be able to operate both ends of the spectrum, I can tell you that it’s not easy to develop and debug VR applications even if you can afford an Oculus Rift. Mostly you are in a Unity development loop and simply installing new drivers can cost you days and days. Of course, there are alternatives like Unreal Engine 4, but it is great news that the VR extensions will be implemented into the major browsers.

I took a good look at A-Frame for the last days, and I think it’s on the brink of hitting prime time. I still have to figure out the details behind the community driving this, but it’s another initiative from Mozilla (from Mozilla’s VR Team, MozVR, to be precise) with Kevin Ngo being one of the main actors. But not surprisingly you find also Googlers among their ranks, for example Don McCurdy, who brought the excellent CannonJS physics engine into the game.

Because that’s one of the advantages of A-Frame: it’s Entity-Component-System makes it extremely easy to create and re-use components. There is even support for the Leap Motion already. And that’s the main difference between A-Frame and other 3D markup languages.

There is a ton of examples out there – of varying quality, I have to say. But let’s not forget: this is uncharted terrain; we don’t even know how to create proper user interfaces for VR.

I was working on a successor of my demo directly in ThreeJS, but it might be more effective to jump on the A-Frame bandwagon.

What keeps you? Here is a starting point.


Multiplayer and synchronized viewport demo

September 21, 2014

Not too many posts here recently, I know.

But I wanted to let you know that I created a small prototype that shows how to create a multiplayer and synchronized viewport demo and opened the source.


New kid on the block: Babylon.js

August 12, 2013

New kid on the block: Babylon.js

There is a new JavaScript framework called ‘Babylon.js’ by David Catuhe which is the first one for some time that does not rely on Three.JS.

I didn’t have time to play with it yet, but it looks awesome.

Check out the demos on the website!

It is open source under a Microsoft license and the first major contribution from MS to the WebGL community that I know of. Kudos to David and Microsoft!


So you want to be a Browser Game Developer? (about Turbulenz and other engines)

May 9, 2013

…an HTML5/CSS3/JavaScript Game Developer, that is?

Turns out you have various choices to proceed.

0) Develop your own JavaScript game engine – NOT. There’s a plethora of game engines out there already. I checked a couple of them out today and even if you choose to develop your own, be aware there might be one out there that very well suits your needs. There’s a comprehensive list here and if something is missing you can add it there like I did today.

1) Try to avoid JavaScript altogether (I wouldn’t blame you), use an existing C/C++ game engine and compile it with Emscripten. I covered Emscripten before and if you are into C/C++ programming already, this might be the way to go – especially if you want to avoid a programming language that was developed in ten days.

2) Use Turbulenz which went open source this week. From my experiments today it’s a game engine done right – it has a building tools (written in python – yay!), it has tons of features and (gasp!) loads of documentation. The thing that bought me was the fact that I had no problems to install and run it and especially the impressive performance of  this Quake 4 asset import:

3) If options 1 to 2 are too heavy then – again – I recommend to check out the list that I mentioned above. The library I intend to check out is the iio engine (that’s the one I added) and I also intend to write tutorials on using it in the near future aimed at people starting out on JavaScript games (if you are interested, leave a comment).

4) If you just want to start without any installation – the Pixieengine is an online IDE (editor) and you can develop right away from inside your browser (and export it or embed an iframe if the environment allows it).

So get out there and roll the bones!


Pixelpark Islands leaving Second Life

March 15, 2013

TL;DR: German company Pixelpark is leaving SL.

Mit grossem Bedauern muss ich mitteilen, dass Pixelpark (mein Arbeitgeber) Second Life verlässt.
Das Bedauern bezieht sich nicht auf die Entscheidung per se – diese ist betriebswirtschaftlich gar nicht anders zu verantworten – sondern auf die Konsequenz die das haben wird: eine der aktivsten, positivsten Communities im deutschsprachigen Second Life – die Deutschen Mentoren – wird damit heimatlos und muss sich ergo auflösen.
Pixelpark hatte die Ehre von den Deutschen Mentoren betreut zu werden, und alles was die Sims so grossartig gemacht hat, ist durch diese Menschen erzeugt und kuratiert worden. Die Gruppe löst sich jetzt leider auf.
Mir war, ist und bleibt unklar, warum Linden Lab den Niedergang des eigenen Universums ignoriert
(am besten dokumentiert hier: http://nwn.blogs.com/nwn/2013/03/why-losing-second-life-sims-matters.html) aber mein Gefühl ist: auch Linden Lab hat SL eigentlich schon verlassen.
Aber vielleicht gibt es ja noch eine Alternative? Wer an Second Life glaubt, hat jetzt die Möglichkeit, die Sims zu übernehmen.

BKL and the minecraft effect

January 18, 2013

I am speechless.

Somebody on Hacker News just posted A Minecraft-like Block Based Game Engine Using Three.js, WebGL and Node (badassjs.com).

This is already cool.

But in the comments somebody else promoted BLK – a project from Ben Vanik – a Google employee – who created BKL in his 20% Google spare time.

I set up a server on Amazon EC2, and the t1.micro instance was seconds ago populated by people – building things.

The Minecraft effect is incredible.

[EDIT] link to the main page is here.

Bildschirmfoto 2013-01-18 um 21.38.55 Bildschirmfoto 2013-01-18 um 21.29.20 Bildschirmfoto 2013-01-18 um 21.12.50 Bildschirmfoto 2013-01-18 um 21.11.39 Bildschirmfoto 2013-01-18 um 21.11.12


Source code of the minimal first person webGL demo

January 7, 2013

I forgot to mention that I uploaded the sources to the minimal FPS that I mentioned in my last postTowards open game engines in the browser‘. Hopefully this gives a head start to someone who wants to combine 3D (Three.JS), physics (Cannon.JS)  and first person controls.

You can find the repository on Github.

Bildschirmfoto 2013-01-07 um 17.38.49

 

[EDIT]:


Towards open game engines in the browser

January 6, 2013

I started a series of experiments towards a game engine in the browser. This is part of a bigger plan that I hopefully get sorted out soon and write down eventually*.

To me, there are two paths to follow towards games** in the browser and I will follow both of them.

The ‘Bananabread’ way

Taking a full fledged game engine like Cube2 is the way that Alon Zakai is following – his Emscripten process is compiling it to pure Javascript and ports Bananabread to the browser. At this very time of writing he is adding the last missing piece to it – network support.

Bildschirmfoto 2013-01-06 um 11.52.00

I cannot stress enough how incredibely cool this is.

The JavaScript library way

A ‘game engine’ comprises usually a couple of different components and it turns out that you find open source JavaScript libraries for nearly (?) every purpose of such an engine – sometimes even more than one.

This list is by far not complete (more complete lists here and here) and I am probably missing some bullets and some libraries which even underlines my point: everything seems to be there.

To get a grip on it myself, I took a 3D engine, a physics engine and the first person controls and build a little demo, sporting an (albeit unsophisticated) Blender model and some dynamic objects:

Bildschirmfoto 2013-01-06 um 11.52.24

Why is this important?

There is absolutely nothing wrong with proprietary concepts like the Unity Engine, not even with Flash.

I still think it’s important to be able to create something right in your Browser – both Mozilla and Google are working towards turning their browsers into multimedia engines and add the parts missing in a spectacular speed.

Most of the components needed are already there, so why not use them?

But even more important: all of these libraries are open source. This means we can not only use them for free, but we can learn from them, combine them and maybe enhance them to something that the original authors may have never thought of.

So – what keeps you from building?

* Rob Hawkes (former Mozilla) has written an excellent post which includes some aspects of the bigger plan.

*Disclaimer: when I say games I mean the good definition of games like in  “cutting edge real-time database network application with multimedia frontend for entertainment” and not the awkward german definition of  “it’s fun so it can’t be serious”.  And no, I won’t grow up.

[EDIT] The source code to the demo is on Github.

[EDIT2]

Blender view


Minecraft Game Server Launcher released

December 11, 2012

As I stated in my previous post I am going to open source the Minecraft Game Server Launcher (MGSL).

And I just did.

Stella Haystacks world on EC2

The MGSL is a python script that can be used to launch a Minecraft server in Amazons EC2 cloud on an Ubuntu server.

The MGSL is dead simply to use: you run ‘python mgsl.py’ once and the server starts and loads the your Minecraft world. You run it again, and your world gets stored in a safe place and the server is terminated.

That’s it

Get it  here:

https://github.com/dirkk0/MGSL

Tell my if it works for you and what I can do to improve it in the comments.


MGSL (the Minecraft Game Server Launcher)

December 6, 2012

I decided to open source a project that I was working on in my spare time.

The idea behind this concept that I call MGSL (Minecraft Game Server Launcher, in lack of a better name :-) ) is that people don’t need a minecraft server 24/7. What they do need is a very simple mechanism to start and stop a server on Amazon EC2  *plus* an automatic save/load routine.

Under the hood it’s a two applications: the web interface that manages a database (based on web2py) and a python/boto script doing the hard work.
More infos soon.