I made a video.

My first serious attempt at a YouTube video.

Enjoy.

Posted in Uncategorized | Leave a comment

Progress Update

Work

Massive, the company I have been so busy at over the last 22 years was sold a few months back. This is an amazing milestone. It’s rare to have a job that you love to go to every day. In my role as the person who solves the new and technically hard stuff in a user experience centric manner, I get to work on the most amazing technologies with the most creative people in the world.

My Son’s Game

Hope you have all been following the success of my son’s game. He’s currently close to releasing ‘skinning’ which was inspired by some fan art submitted about the game.

You can purchase it on Steam for US$3. It’s a bargain.

MetaWrap Rides Again

2019-03-11_12-06-29As a side project, I’m turning the game’s core networking engine into a separate project and product. It’s been evolving over the last few years into my main side project, mainly as a way to save hosting costs and distribute load for his game. People who knew me from back when I was working on MetaWrap kept drawing my attention to the last season of Silicon Valley as their ‘new internet’ is similar to what I was talking about many years ago. The distributed object model that MetaWrap exposed to the world was always imagined as a ‘free’, consistent and more useful version of the internet developed over the top of the existing one. While working on the game networking engine I kept being drawn back to the old ideas and solutions I came up back then that solved the same problems, so it’s merged with the goals of my old vision of a distributed decentralised internet. I’ll definitely be posting more about this in the future.

Hex – But In Unity

I’m resurrecting my cellular automata physics game. I sank years into Hex, only to have Microsoft abandon XNA. This made me down tools for a while. I’ve been working on the networking technology required to run such a massive world in the meantime and been testing it on my son’s game. I’ve done so much in Unity over the last 5 years helping my son with his game that I feel confident in using Unity starting Hex up again. Luckily I designed it with many layers of abstraction and Unity also uses C#, so this will be more of a port than a re-write.

Posted in MetaWrap Server, TheGame | Leave a comment

The story of Rivalry – by Kew’s Dad (Post PAX 2015)

0120c16f7f2346ae51e012041e517448154f5d858c.jpg

Kew was struggling at primary school. He was having a hard time keeping up with what he was being taught, especially maths and science; he was being left behind.

Now, he loved computer games.

He loved creating things in computer games. He was the kind of kid who would spend all of their time in the level editor of a game instead of playing the game itself. He especially loved Little Big Planet in which he built many amazing machines and circuits. I think Little Big Planet (and later on Minecraft) was to him what Lego was to me.

He also loved talking about games.

I started using ProcessingJS to help him visualise some of his maths and science homework. Like me, he’s a visual learner. Using ProcessingJS I could animate a number line, draw graphs, show relationships between things, simulate and draw a planet rotating around a star. Being a kid he wanted to look behind the curtain, play with the code, make it do crazy things so I would teach him little bits. I joke that I accidentally taught him JavaScript. Eventually, I got him an account on https://www.codecademy.com/, and he did their online JavaScript course at his own pace.

He really loved playing a physics game called ‘Dust’, I started designing a game based around hexagons and triangles, a kind of cellular automata physics simulation with a view to including him in the design process. Hexagons are made out of triangles and the game contained an analog of physics and chemistry, so there was room for lots of discussions relevant to his school science and maths The game was partially started as a platform to engage him in something he loved, during which I could craftily slip him some education.  We would discuss how we could work out how to draw the triangles. How gasses and liquids and solids would move through the world as well as concepts like points, vectors, collisions and volumes. It meant that I could ask about his homework and apply a lot of what he was learning at school to practical uses in the game, or at least explain it to him in the context of the game.

We started a rule in the house that Kew could do anything he wanted with the computer, or computer games until midday, but after midday he had to finish his homework and then if he wanted to use the computer he had to use it to create something.If the computer was involved, it had to be a creative task. My theory was that with YouTube and computer games, kids talk about them amongst themselves a lot, it’s a kind of social currency, if you deny them access or make the rules too complicated it turns into a constant negotiation and kids just become more obsessed.

We swim every Saturday, but on a Sunday or school holidays if he wants to get up early and watch YouTube or play games for 6 hours, I’m can cope with that, knowing he will then spend the next 6 hours creating something. We currently have a teen who does not sleep all day and does his homework. I’m calling that a success. This created a vacuum for creative activities after midday. I taught him how to edit video and he created a YouTube channel. It’s now the time he does most of his programming.

2016-10-25_12-44-43.png

He got into Minecraft, like most kids do (only I was just as into as he was). When he was 10 he wanted to build a mod, so I walked him through creating a very simple one that was a cowbell block. I told him “What Minecraft really needs is more cowbell!”. I still don’t think he gets it 🙂  At first, it was mostly me typing and showing him the tools. Getting him used to the mechanics of programming. Source code, compiling. I would get him to point at different parts of the code and identify what it was. I started teaching him code from the inside out, literally. Lines and small sections of code first, later the larger structures holding the program together,  He came up with an idea for a Minecraft mod called ‘Excalibur’ which is a fun ‘capture the vorpal sword’ game mechanic and will probably surface in Rivalry when it gets online capabilities.

2016-10-25_12-46-50.png

He turned one of the JavaScript CodeCademy tutorials into a name generator, and I showed him how to use an application called Appcelerator that would let you publish mobile phone apps from JavaScript. https://itunes.apple.com/au/app/awesome-name-generator/id918079114?mt=8

2016-10-25_12-47-53.png

Kew was 12 when he came me up with the idea for Rivalry but it took him another year to get the skills together to be able to start it. He asked me if I thought it would work I said that part of creating something complex and interactive like a game is that you don’t know until you try.  I seem to remember quoting the old Sesame Street “That idea’s so crazy it might just work.” Secretly I just figured it would be a good learning experience for him and not go anywhere.

I helped him set up Unity, taught him the basics of C#.

We worked as senior/junior programmers with him as the game designer. He would explain what he wanted. I would suggest an architecture, and then he would wire it up and fill in much of the actual code. Rivalry is where he has really matured in thinking about the structure involved in programming. He constantly surprises me.

When I played what emerged I was like OMG!! it was fun and deep and silly and strategic all rolled into one.

Rivalry.jpg

Then Kew said he wanted to sell the game. He had said for a long that that we wanted to be a game developer so I figured “why not?”, its an amazingly fun game and he might as well try and take the whole “Indy” journey. It’s a bit like being in a garage band, you need to learn how to promote yourself.  All the research into what the successful Indy game devs were doing basically said “Crowdfund your marketing but then the best crowdfunding is sales”. Kew made the video, I was (and will be for at least the next few years) the responsible legal adult entity and after a lot of fun and hard work the $2000 Kickstarter scraped through by the skin of its teeth. We are ever so grateful to all the backers. They were amazing.

Unfortunately the cheapest Indy stands at PAX we were aiming for were all gone by then but Guy ‘Yug’ Blomberg of PAX reached out to us and offered 3-day passes, which was amazingly generous. We asked if there was a cancellation queue and we were told we would have to wait for three people to cancel. We had low hopes and started planning for the next year but we were lucky and a stand came through. Then, a week before PAX we received the map of Indy stands and it looked like we were in a good position,

I was talking about how lucky we were with with Kew just before the doors opened to the first day of PAX and he asked me “Is all life luck?” and my reply was “you need to know enough and work hard enough to take advantage of the luck when it arrives.”

As an Indie, to sell a game on steam you need to go through the ‘Greenlight’ process where the game is judged by Steam members. I think some make a hobby out of it. The initial comments were, as you would expect from the Internet for a game that looks like his, rather brutal. Basically lots of “Beyond horrible.” and “Please just stop”. One guy just left a poop emotion. They were basically saying that they thought the game was not good enough for steam without playing the game.

2016-10-25_12-54-18.png

The response from the PAX crowd, who actually played the game was overwhelmingly positive.

2016-10-25_12-55-22.png

The first day we were swamped with enthusiastic players. We had three machines going and there was rarely an empty line. Just before closing of that first day we were exhausted but feeding off the enthusiasm of the crowd. Such a fantastic day.”Two more days!?” Kew exclaimed, conflicted, but obviously overjoyed. He followed it up with “I can’t feel my feet!” and grinned widely.

017a5435af7a55c05cd95a7fae76db235241f9900a.jpg

The second day we were mobbed by people who had heard about it from friends and people who kept coming back and bringing friends.

0146de414da179b0ed9aef10dd05d106944f0094fc.jpg

We had an issue on the first two days with people not being able to see the game. I went dumpster diving with a friend to get parts to Macgyver a monitor stand to raise one of the screens up high so people at the back could see.

The third (and final) day the crowds snowballed through word of mouth, Kew was told that it was played at the various convention Halloween parties to roaring cheers.

01aa597af902c3cff1d553c6f71548d49cddcc42a8.jpg

Such crazy fun. So many business cards and kind words of support.

We are now sitting back and watching all the love for the game flow into the Steam Greenlight comments.

During this whole journey, Kew’s confidence as increased and he went from being near the bottom to near the top of his class in Maths and Science.

For me, that’s the best of the possible endings of this game.

James McParlane – Kew’s Dad.

PS: Rivalry was greenlit a month and a half after PAX and is available here http://store.steampowered.com/app/431770/

 

Posted in Uncategorized | Leave a comment

The Game Progress Report #27

Still tinkering away on the idealised 1D CA physics engine before I expand it up to the two something dimensions of hexagonal space again.

Realised that I have not updated this in quite a few months, so here is quite a few months worth of updates.

If you follow me on Twitter then this is nothing new 🙂

 

 

 

 

 

Posted in TheGame | Tagged | Leave a comment

The Game Progress Report #26

More progress on the CA physics engine.

Collisions now seem to be working reliability with a conservation of momentum that is accurate (enough) and visually pleasing.

Now experimenting with dispersion and forces.

I have a basic orbit working and gas of sorts. Still trying to close the loop between mass causing gravity, at the moment with this latest version, gravity is hard coded in as I try and get dispersion, momentum and acceleration to not trip over each other.

Posted in TheGame | Tagged | Leave a comment

The Game Progress Report #25

I have been working on optimising the CA physics engine.

Also, my son has a Kickstarter to get his game to PAX Australia , please support it 🙂

Posted in TheGame | Tagged | Leave a comment

The Game Progress Report #24

I’m now starting the 4th and final version of the physics engine… getting the flow right.. The Venn diagram for Efficient, Fun and Realistic is harsh.

 

Posted in TheGame | Tagged | Leave a comment

The Game Progress Report #23

My son has ported his Awesome Name Generator Android app to iPhone and iPad and released it onto the iTunes Store.

26-10-2014 6-39-34 PM

Been back to The Game’s core engine for the last few months on and off.

The tutorial engine, which can be used to multimedia enable Twine stories, is now feature complete.

Slowly working towards a Kickstarter project with one story author to publish their game using just the tutorial engine.

I’m also considering Kickstarting the tutorial engine itself as a separate spin off. The aim being to fund it to get developed to the level of a stand-alone tool as well as a port to Unity.

As for The Game, at this point I’m working on the world physics.

In the last few months I have managed to make progress with….

  • Visualisation of the World Hexagons.
  • Navigation/Focus throughout the World Hexagons. (Mouse, keyboard and game controller).
  • Basic Gas physics (with thermodynamics).

In the demo video below, I scroll around a bit while I simulate a 100kg ball of a 100K ideal gas being released in the vacuum of space. The gas expands until it reaches pressure equilibrium with a cohesive force holding the gas together.

I’m using a time scalable cellular automata send force messages between hexagons. That way I can build up force tensors slowly. I’m aiming at being able to round-robin timeslice the physics updates.

The colors I use don’t represent the relative temperature, more how temperature is changing over time.

Red = heating, Blue = cooling, and Green = stable.

So the core is blue, because it is very hot and losing heat 🙂

26-10-2014 10-08-10 PM

You will see it eventually turn green as it stabilises. What happens before that is rather hypnotic, particularly just before equilibrium where solitons seem to form.

Working on performance and basic data flow at the moment (because getting the data flow correct is really important).

Happy so far. The physics is running hundreds of times faster than I need.

Next steps are to tidy up some of the navigation and simulate gravity in some form. I’m thinking of extending the cellular automata approach to get the cells to explore and agree upon a stable curvature of space based on distribution of mass within it. This should create something very gravity like. Not totally realistic, but gamey enough for things to fall to planets.

Gas velocity will be tricky, but I wants it.

I’m experimenting with moving the physics between different levels of cellular detail based on how how uniform the force vectors are. This is similar to how I distributed detail in my hexagon image and video encoding.

16-01-2014 7-00-52 PM

I will be need to do a decent visualisation of this at some point.  It may be a dead end but it should allow the realism to naturally scale based on what is visible and where it is needed.

Posted in TheGame | Tagged , | Leave a comment

The Game Progress Report #22

We are progressing with the game in our spare time, which has been very little but we are making progress.

My son has built an android game that we are publishing to test out all the commerce ‘stuff” we need to start selling games online through the many app stores that are now available.

29-07-2014 11-34-04 PM

I’ve been expanding the Twine interpreter which is going to be used as the games tutorial engine and I’m working with two writers and an artist to publish their interactive fiction/Otome games using the engine as it currently stands. Release early, release often. 🙂

Here is a video of a play-through of part of a story-board using some found images on the internet as place holders for actual art.

The engine so far runs under iOS, Android, OUYA, Xbox360, SonyVita, PC, Mac and I’m now working on a WebGL port that will allow it to run in a web browser.

BtT_cEUCMAA91oP

My Twine engine adds a number of handy multimedia and dialogue macros. I can take an ‘twee’ file exported from Twine and have a running game in a few minutes.

13-01-2014 8-10-24 PM

It has tooling that enables a graphics production pipeline to be created automatically from the story file as well as testing tools that can validate the story code by exploring all the possible story paths.

I’m looking for other Twine writers and graphic artists who want to publish their stories to collaborate on publications.

These two stories are currently at the story boarding stage so the plan is to move back into the core ‘Hex’ game features soon.

Posted in TheGame | Tagged | Leave a comment

I’ve Always Found Remote Controls Unnatural: Controlling Android TV and the XboxOne+Kinect

As an experiment I’ve been submitting myself and my exasperated family to the full  ‘real world’ XBoxOne + Kinect Voice + gesture experience using the HDMI pass-through for the last 6 months.

  • The XboxOne is always on.
  • All Video input from my Windows Media Center & Apple TV pass-through the XboxOne.

27-06-2014 10-25-35 AM

The theory is that you can use voice and gestures to switch between TV and XboxOne Games and Apps.

The reality is that you get an annoying number of false positives which result in the XboxOne dropping you out of TV or bringing up a “What was it you said again?” style prompt.

27-06-2014 10-30-04 AM

  • Sometimes it will lock onto your hand, because it is there.
  • Sometimes it will recognise audio from the TV, conversation in the room or a few times from a video played on my phone about how to control the XboxOne 🙂

A very annoying issue is that once it accidentally swaps you out of TV your voice is competing with audio from the show which continues to play in the background. You find yourself shouting “Stop Listening” or having to pause and do same.

27-06-2014 10-32-01 AM

The most annoying issue however is an issue from the 360+Kinect days which is that the coverage of the Voice/Gesture control is not universal. If you accidentally switch to an app that needs an update you get shoved into the update UI which will not accept Voice/Gesture commands and you need to find a controller. Individual app updates happen a lot.

On the positive side I have noticed that with each update, command registration gets better. So given enough time I believe they can make this workable. But we are not there yet.

Also, we do use it.

We use it to switch between games and TV, to Skype my mother and to play/pause content when the remote is hidden under potato chips.

I still believe that this is the future, we are progressing, but it’s not there yet.

As for Android TV, the newly announced revamp of Google TV……

For me personally, using the phone/tablet to control the TV is better than a remote, at least in the experiments I have done.

But not how Google have implemented it.

Phone as Dpad is not the way. It’s just a more expensive, heavier, less convenient, more complex remote control

What works particularly well is if the browsing and control aspects of the interface are split between the tablet and the TV.

My favourite TV experience is pushing content from my phone or laptop to the TV via the Apple TV. There is some kind of joyful usability magic there beyond the technology.

Browse near, play far.

I’ve always found remote controls unnatural. There exists something wrong at the heart of the experience.

I think there is something basic in our sense of proprioception and in particular our sense of extended proprioception that is violated by a distance further than a short stick suitable for fishing termites out of a mound.

27-06-2014 11-02-54 AM

Browse near, play far. It feels more natural.

I hope that Google can bring some magic to voice and gesture, but don’t believe it will work in the real world yet.

Posted in IPTV | Tagged | Leave a comment