Sunday, 2 November 2014

6x Mass Production Alpha 2 released!

Hi everyone!

I'm proud to announce that after 6 weeks of work I am releasing the second alpha of 6x Mass Production to the wider world... slowly. I say slowly because I've been crunching on it in my spare time so much that I've literally put life things aside and I need to catch up on those (lest I fall into a bad work habits again)

But I'll cut to the chase, here is the game, play it!

Web build - Requires Unity Plugin (7 MB) (ignore the beta warning, can't seem get rid of it. Also don't go fullscreen! Not implemented that yet :p)
Windows build (15MB)
MacOS build (16 MB)
Ubuntu Linux build (17 MB)
Feedback I'm looking for is:

  1. Tutorials! Did anything confuse you or did you get stuck anywhere?
  2. UI! Are there UI elements that are unclear or confusing at first? Did you mistake one thing for another or misinterpret anything?
  3. If you have other comments or suggestions I'm always keen to hear :)
I've posted a similar post on the Make Games South Africa forums, if you have any feedback, feel free to post there, or post a comment here, or email me at 

So I've already gotten a TON of great feedback from many wonderful people. I want to release it to more forums, more people, more exposure. I am going to implement the latest round of feedback first and then go into another round of seeking feedback with a wider audience. Like I said, I don't want to burn myself out and I'm not relying on this game for income, so I'm going to get to it when once I've recovered a little.

I really wanted to make a special gif for this post thanking those who have already given me such valuable feedback, but I'm not going to beat around the bush, I needed a break and spent all day playing Don Bradman's Cricket 2014 while watching the Starcraft 2 WCS finals Ro16 replays (cricket and Starcraft 2 are the only sports I watch profesional games of, both have such interesting meta-game to me). So here's this one I made for MGSA instead :p

Once I get more shapes on the board I'm definitely making a Zergling level

As a side note this is a completely new version, nearly none of the code from the old version was used. I incorporated (most of) the feedback I got from way back in March when I first demoed it and the improvements really shine through. That said I still have a long way to go.

That's it! Below is a list of changes, putting there if you are interested. Otherwise thanks for reading!



List of planned changes/considerations for the next version (just so it's on record), there are tons more written down as notes when I did live testing but I'll compile those later:
  • General Design:
    • Playing with the idea of starting the player off in a "test" level that is hard but not impossible. There will be (some) mechanism that'll ask the player if they want to go to the tutorial levels. This is to see if they play or panic. People who are comfortable to test out the level and try and fail will probably figure out the general idea of the game and can jump straight to the creative solution vibe. Other people might want a gentler introduction and are given that option to do very hand holding style tutorials.
    • I have a huge list of level design ideas for specific levels. Too many to list here (also HyuN is playing INnoVation in WCS so I'll write it out later :p)
    • Complete the tutorial levels! Right now it just kinda ends (because I ran out of time when designing it)
    • Thinking of adding UI hints inbetween levels that show some of the more intricate UI hotkeys and tweaks
  • Aesthetic:
    • Make the yellow lights more orange
    • Generally get an artist to let loose on this whole thing :p
    • Make parts fade in when being generated (or have some effect or transistion). Considering having it come in from off the board but this might be too busy
    • Get the transition screen to line up properly (actually just need to get that screen redone completely)
  • Finish Area:
    • Make the finish area look *completely different* and have it open up to accept a correct construction instead of it mysteriously disappearing
    • Alternatively there might be an 'output node' (like the input node) that the construction just needs to touch in order for it to be checked (I'm leaning towards this one tbh)
  • Instruction 'belt'
    • The instruction belt will run left to right rather than up/down
    • Will only have one belt open on the board at a time (might make it such that you can open more than one by pressing ctrl) since having many open causes a huge clutter.
    • The open space on the left will be used to store 'reference belts, they will be lined up with the grabbers but off the board so that they are not in the way all the time. They will also be editable but will be lined up so that multiple grabbers can be viewed 'side by side'
    • This is tentative but these reference belts on the left will probably be hideable
  • UI:
    • Might have a slider instead of 4 buttons with different speeds
    • Might make a preview shadow or ghost of where the grabbers will go once run (like 25% transparent arrows that appear when hovering)
    • Alternatively, since the arrows might be noisy, might add black dots that appearon hover to the left and right of the grabber head to show where it would end up if rotates one left or one right
    • Change the green "level complete button" to no green... was very confusing
    • Copy paste functionality for instructions (somehow :p)
    • Hotkeys for starting, pausing, and stopping
    • Allow hotkeys to trigger insert when hovered over the insert arrow
    • When dragging instructions, upon dropping them they need to tween to their position, not clear where they end up.
  • Technical/Bugfixes
    • Make webplayer go fullscreen properly

Monday, 20 October 2014

2D Lights and Normal Maps with Unity 4.6 UGUI

Hello world!

So I recently tried out the new Unity 4.6 beta. That's actually an understatement since I'm now using it fulltime for development of 6x Mass Production!

It's really good! If anyone knows or has used NGUI they'll know just how complete a UI system that is. They also might know that the main developer behind NGUI was involved in development of the Unity GUI system, and it shows! The coding and component style is very similar! I've decided to switch to uGUI completely now as a result. Slight risk on my part since it might be in beta for a while but 6x Mass Production is going to be in beta for a while so I'm going to run with it.

But! The reason I post here now it to show off something cool that was far easier in UGUI than NGUI, shader tricks! Well, at least this shader trick!

So there are no 3D elements in the game, just 2D elements, a shader, one directional light and some point lights. This is nothing new, but I'm so stoked that this worked out so well that I wanted to share what I did. I did briefly try to get this working with the Unity 2D sprite component... when I say briefly I mean 10 minutes, didn't quite get it but I'm sure it's possible too!

Also note that I might be butchering terminology, leave a comment if anything bugs you in this regard ^_^

Anyway, for UGUI:

Step 1: You'll need your texture and a bump map

So this texture is already shaded, the artist didn't know I'd be using dynamic lights

5 minutes to hack this up in Photoshop

You'll want to make sure that the normal map is setup correctly:
The important part is to turn on the "Create from Grayscale" option. If you don't know, basically the "Create from Grayscale" option turns the grey heightmap into a normal map

Step 2: Create the custom shader. This following code is almost exactly the same as the standard Unity Diffuse Sprite shader, besides 3 lines

Shader "Custom/Sprites/Bumped"
  [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
  _BumpMap ("Normalmap", 2D) = "bump" {}
  _Color ("Tint", Color) = (1,1,1,1)
  [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0


  Cull Off
  Lighting Off
  ZWrite Off
  Fog { Mode Off }
  Blend One OneMinusSrcAlpha

  #pragma surface surf Lambert vertex:vert
  #pragma multi_compile DUMMY PIXELSNAP_ON

  sampler2D _MainTex;
  sampler2D _BumpMap;
  fixed4 _Color;

  struct Input
   float2 uv_MainTex;
   float2 uv_BumpMap;
   fixed4 color;
  void vert (inout appdata_full v, out Input o)
   #if defined(PIXELSNAP_ON) && !defined(SHADER_API_FLASH)
   v.vertex = UnityPixelSnap (v.vertex);
   v.normal = float3(0,0,-1);
   o.color = v.color * _Color;

  void surf (Input IN, inout SurfaceOutput o)
   fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * IN.color;
   o.Albedo = c.rgb * c.a;
   o.Alpha = c.a;
   o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));

Fallback "Transparent/VertexLit"

Sorry for the lack of syntax highlighting, couldn't get blogger to play nice :/

Step 3: Create a bump map material with your normal/bump map
You'll see that I use "Custom/Sprites/Bumped" this is the shader I pasted above

Step 4: Create a Unity Image component with your image and custom bump map material

Step 5: Add lights, add more sprites make them do things and BOOM!

Ok, so this isn't an all encompassing tutorial or anything but I thought I'd share because I thought it looked cool and really wasn't too much effort to set up! There are some issues that might need addressing:

  1. Since we are using lights we are now constrained by the limitations that the light system imposes on us. So only a limited number of point lights (the default is 4 but you can set the number in the Unity quality settings)
  2. Extra draw calls! A direct result of using more lights means that more draw calls are needed to draw each light's contribution. This is usually fine for standalone but I suspect mobile might struggle a bit.
  3. If you are working from a sprite sheet and using unity to cut it up this method might not be workable. At least if it is I've not tried to make it work. Crux of the matter is that Unity's sprite atlasing parts and the normal mapping texture parts don't integrate nicely right now. Only tried for liek 10 minutes to get it to work so maybe someone has a smart solution out there. With NGUI I was able to map a normal map sheet to the image sheet with a similar shader, wonder if there's something similar I can do with UGUI...

That said, look at this shit! No 3D elements and it's looking pretty cool... well I think so anyway!

Oh, on another note! Keep an eye out, I'll have a playable version of 6x Mass Production for people to play soon, light effects and all! I should be working on the level design but I kinda meandered along this interesting light effect, game seems lifeless without it now :p

Thursday, 25 September 2014

Post-AMAZE daze


So I've been away for quite some time now. Not only online but for many of you in real life too! Here's what happened:

Jan-March 2014: Finally back on my feet! Use all spare time working on 6X Mass Production, with a full work day this was essentially a crunch mode for me time-wise

April 2014: Exhausted but finally feel confident to demo to the local community, get some great feedback and am buzzed by the whole experience! Get contacted about freelance work I could do on the side, sounds like a great opportunity!

**I would like to invite the reader to fire up this video of sad violin music while you read the next few paragraphs**

April - July 2014: Day-job work goes balls to the wall. Two major projects' deadlines collided at the same time and already pretty tired from my personal project we go into a month long crunch, which set us back on the next deadline and put us into another month long crunch, we made it through alright but this was followed by another deadline push, which given our energy levels was effectively another crunch (... and I wish I was joking)

August 2014: End up more exhausted and drained than I could ever imagine. That side contract went through a lot of initial planning but had to pull out just before I signed anything (fortunately. Going through with it would have been a big mistake, but it was still an uncomfortable situation I found myself in :/ ). Work finally eases up to a mild panic, back to 8 hour days at least! Even so, my health and many personal relationships had taken a massive strain, and I suppose it's a testament to how strong those bonds are that they didn't break during that time (I'm truly sorry about that, hope that I'll be able to make it up to you all <3 ).

September 2014: Slightly recovered, I go to the A MAZE festival...

And that's sort of were the story ends. Or rather, a new one begins. I have so many words to say about my experience at A MAZE I don't know where to start. A MAZE is a festival of games and playful media and some truly wonderful people were there, all just loving games and play in general.

Before this trip, I wasn't entirely sure making games was for me anymore, in my exhaustion that passion in me had been suffocated somewhere and I felt like I was weaving my craft with the weakest of threads, the most misshapen of needles, and a brain too numb to realise that I didn't even need those things to start with. I over-express it a touch, but it was pretty ugly thought to have hovering in my head. And I know that I probably haven't had it even that bad, I'm a very lucky person to be where I am. But that's what it's like being in a rut, you feel hard done by, which only makes things worse...

**if you decided to play the violin music, you may pause it now**

That's thankfully changed now. I got to meet my idols, and idols I didn't know I had. The sheer passion of people around me shook me out of my rut and I'm excited to make games again. I want to see people smile and laugh and be a part of creating those experiences.

It's been a tough year for me but I'm glad I'm seeing the back of it now. Thinking now it's not been such a bad year game-wise, I made these after all!

I'm excited to make games again. So to cap off this blog, here are an couple that I'm making now or want to make as a result of A MAZE:

I saw my people

A game about cultural exchange, think Eufloria for the aeshtetics and the difficulty of cultural interactions and integration for the theme. Central experiences just how draining and difficult it can be when integrating into a new culture, overcoming that challenge and the new challenges that arise when you return to the people you left, who you may not get on with anymore! We have NO idea what to do for mechanics besides but we are figuring this out as we prototype along and as we learn more about the topic. The idea belongs to @damousey and I tried to do it justice with a prototype... not that either of us really know how to pull this off, but this was a first stab

Try it out here, it's not much but any ideas are welcome!

Kick In The Door - The Actual Edition

Kick in the door was originally designed as a 3 player game (with @CoolYourJets_SA), each player having one button to 'kick'. We had foot pedals for buttons but this edition will basically add an actual physical door with 3 large buttons which the player needs to actually physically kick to “press”. Kick in the door was already quite fun with foot pedals for buttons, but I’m keen to see people destroy a real life door playing this game… so yeah I expect I’ll be building more than one of these controllers...

Tried to get a webplayer build working, I failed... miserably, so check out the showreel vid of it (at 2:33s)


This game I actually made at AMAZE with two awesome Fins (@KissaKolme and @jukiokallio) We made it in about 3 hours it had a game breaking jam bug so we couldn't show it at the festival. The game is a 2 player competitive pole climbing simulator.

Check it out here. Needs two XBOX controllers (controls are left/right bumpers to grab, analog sticks to move hands) ... also I've not actually been able to play test this since getting back from AMAZE so lemme know what you think (and if it works properly)

Burning Alien VR

A game we made in 3 hours for the Oculus workshop at A MAZE (with @CoolYourJets_SA) that we couldn’t actually test because the Oculus just wouldn’t work on my laptop *sadface* You ride on an alien dinosaur and wonder around looking at various random crystals, pillars and whatever else our modeler had time to make. The Oculus interaction is different from usual because it takes the head direction to be the direction of travel, rather than the controller direction (similar to XTODIE: Rangnerok - an awesome game that was shown at AMAZE - check it out!) the difference being that turning your head turns your dino's direction slowly, which *should* feel like a natural experience but I don’t know since we never got time to actually test it. Anyway thought the idea was fun ^_^

Bite-based game

I don't know what, and I don't know how, but I want to make a game that involves a controller you have to bite on to win. Besides the obvious hygiene issues with sharing such a controller between people I think it would be an interesting thing to try out. Seems natural to make it a zombie game where you play the zombie.

6X Mass Production

Ok this game has existed way before AMAZE, but being there has given me the push I needed to actually get this on the road again, I started this project almost 18 months ago on and off in my spare time, about 6 months ago I decided to take it beyond a prototype and show it to my local community. They loved it (or at least liked it) and I got a hell of a lot of good feedback and a very clear picture of where to take it mechanically. You read my sob story above about loosing my passion a bit but it is back and I’m keen to sink some proper time into this (but without killing myself this time). I’m making plans so if you like puzzle games like I do, keep an eye out ‘cause this is gonna be fucking awesome and I’m gonna do what I can to make it a reality.

... err the current version is undergoing a massive rewrite and is not playable at the moment, really wanting to get that running asap, but in the meantime check the showreel video for an idea of the game (at 1:05s)

Tuesday, 25 March 2014

Past, Present, and Future of raxterworks

Hello everyone!

It's been, wow, 4 months since I last posted! Heeeeeavy. Lots have gone down since then. Did a MASSIVE overhaul of the artwork in 6x Mass Production, mainly with the goal of applying for government funding to get to GDC '14. It seemed a bit odd to me, "what am I doing? sprucing up the graphics just to impress someone into giving me money". Well, it seems that way but with the game in its previous form, there is no way anyone would take raxterworks seriously... I wouldn't. And with the possibility of going to GDC I wasn't about to take any chances. I had a solid mechanic that was fun (or at least engaging), it just needed something to bring it to life.

Thus began a 2 week drive of utter madness and work to 1) find someone who could do art for this, 2) concept it up and 3) complete all the content needed (even just a trimmed down list for demo purposes). Not to mention that it desperately needed sound ad music.

Concepts from Gabe - we ended up going for painterly

Enter Gabriele Gabba and Joe Bolton, the true heros of this story! So I worked with these two lovely people to get a demo off the ground. I'll leave out the minutes of it all, everything went quite smoothly and 2 weeks later I had a "working" demo. Ok well, it worked for me, not a chance that I was releasing it to the anyone else, you look at it odd and it bugs out. But i was sufficient to make a few vids, get a few screengrabs and give a good impression of where things were going.

That was 4 months ago. About a month ago (and for your notebooks, GDC just ended) and the funding didn't come through. Not for me, nor anyone actually... turns out that the government has limited funds for these sorts of 'trade missions' and that it gets used up as soon as the applications open... and they open in March/April each year. Meaning GDC would never have gotten through. And all that time was wasted...

Baaha of course not, I loved working on it. Not to mention that the work I did then has been instrumental to the progress that is happening now. Ok, I was really hoping on GDC for exposure for 6x Mass Production, and for... well going to GDC at all! But getting 6-fold to the state it was in, I could see the potential in the game. I'd been working on the back end mechanics so much that I kinda lost sight of making it a good experience and putting the art and music in brought it to life and I could see it as more than just a prototype.

Although I loved my little Hexel artworks, this was not going to convince anyone that this was a marketable game
It still needs a lot of work, but it's feeling a lot better now. I think anyway

Sure I should be able to see that a game will be good from raw mechanics alone without the need for swish graphics and melodies, but I'm not that good and in the end that is how it went down in my mind. Next time I'll be more astute, more observant and wiser I hope, for now I took that opportunity and decided to run with it.

That was about a month ago, I'm now sitting on a Phase 1 Alpha build of 6x Mass Production that I'm quite proud of, actually not scared to show to the world, and has a hand plan for Phase 2, 3 and beta releases. It's difficult, lovely, odd, and scary all at the same time. Difficult since I'm doing this in my spare time. My work for Renderheads is essentially my day job, working on 6-fold is like going into crunch mode since it occupies nearly all my spare time. It's odd because I've not taken a game I've built from scratch this seriously before. It's new ground for me.

It's scary because I want it to be a success, which intrinsically means I'm opening my self up for failure. Financially I'm doing alright from the Renderheads work, even recovered from a rather difficult year last year. I'm more scared of the "am I good enough" thought. It's a genuine worry, I watch these incredibly talented game devs from around the world (and some next door) and wonder if I'm missing a trick.

I always remember though, I'm making a game I like, I love puzzle games, I love games in general. I'm making a game I want to see exist, I'm assuming that there will be others that will like it too (I'm not all that unusual, you see :p). It's not so much a financial thing, I'd love it to sustain me so I can make more games full time, although I'm not expecting 6-fold to be a runaway success or anything. But part of the reason I make games is for people to enjoy them. That is the end goal I'm keeping in mind. I'm lucky that failure of this particular project won't leave me on the streets. This is why it is lovely.

As for the future. The Renderheads work is keeping me on my toes, it's hard work but super challenging and fun (except for the odd nonsensical client request) I've learned an incalculable amount working on various projects or prototypes there! Digging it to the core! I might have an exciting 'side' project on hand (a client project, technically but it's shaping up to be a very very fun idea). If that happens then 6-fold will have to take a back seat for a bit as this would be another paying job. In either case I'm going to write up a detailed plan of where 6 fold will go, so that when I return to it I can pick up on it with minimal warm up time. Mainly what phases mean what features and in what state of completion, that sort of thing. All in all, very exciting times ahead!

 Stay cool and groovy, dudes!