I was fortunate to be able to attend the twelfth Experience Programming in Quorum conference which was once again conducted online.
It was a superb intellectual break, a safe space where I could ask anything and where I had the freedom to create.
I could give a session-by-session description but this time, I am going to talk about quorum, its new features and what I experienced.
There are several new features in quorum including the creating of accessible graphs, the new 3d scene editor and a number of data science related functions. We were asked to create a game yet again.
I was happy to do so because I had a crack at the new 3d scene editor. The most import thing to remember is the screen coordinate system.
- the x coordinate moves from left to right and the other way.
- The y coordinate moves up and down.
- The z coordinate moves forward and backwards.
This was an eye opener because I used to believe that the y coordinate would be mapped to forwards and backwards.
Another terrific feature of the scene editor is that I can create my own scene files which are in json and quorum supports both writing and reading json. I do not like json per se or rather, I am still trying to understand why json is better than say xml. Irrespective of that, I have a programmatic way to build the scene file and I do not have to write json strings
I was unable to find the code of the mushroom eating game I wrote earlier so had to write my game from scratch.
There was much talk of accessibility therefore I tried to add some new features in my game.
This time, I made a space game where the objective was to get the space ship off the runway and to have it fly to a given destination.
The first problem came when I dropped the spaceship on to the runway which was a platform object in the 3d scene editor. As a blind developer, I had a hard time following what the component did. This was because I enabled physics on the spaceship and on the platform. I wanted things as realistic as was possible.
This is not a fault of the developers of quorum. As far as I know, no one has tried to make 3d graphics accessible to blind people in this way before.
I will discuss a workaround towards the end of this post.
Once I had my ship on the runway, I had to get it off the ground. That involved some fiddeling with the physics system. I think I disabled the system for better control.
I then had to find my destination. One way was to create a function that would capture coordinates. In addition, there was no way for me to know where the object was.
Mind you, I was the one who had placed the object but had not documented its coordinates.
I then attached a sound to my quest object. This is another feature of the scene editor. I was then by centering the sound able to reach the quest object.
This is doable but is still hard. I may add the function to jump to coordinates afterall. Even when placing components, it may be a good idea to attach sounds to them and to write code to detect if they fall below the floor etc.
As of this writing, it is the only way I know of being able to place components successfully in a scene and to determine what happens at runtime.
The quorum team is working on more exciting stuff like shaders which as a start will help simulate explosions and do a range of other things.
I must not neglect to mention the user interface and the cross platform work that has been done to talk to the graphics subsystem. A lot of the work is in windows because of funding. Plenty is happening on the MAC side of things too.
One of the most enjoyable parts of the conference was the real time debugging we did of quorum studio. Yes, there is a shiny new integrated development environment to write quorum code. Quorum studio is live and is written in quorum. The IDE is open source which gives one the ability to see the plumbing under the hood.
I am left with a deep respect for Dr. Andy Stefic who has embraced handling some of the toughest challenges in the field of accessibility. In addition, I better appreciate what goes into designing an accessible game and I salute those developers who have created such games.