Blog

Fungus 3.4 now on the Asset Store

Fungus 3.4 just went live in the Asset Store, so it seems like a good time to post an update about recent improvements. You can check the release notes for the full list of changes in recent releases - there's way too much to list everything here.

The coolest recent feature is probably the conversation system contributed by Leah Lee. This allows you to create lengthy character conversations and stage portrait changes using a simple but powerful text format. It's should help cut down on RSI when making those longer games :)

The Fungus website has been streamlined a bit, and we've set up some new domains.

On the coding side, all the source code has been spruced up to meet our coding standard. As well as some general best practices, all public API members are now documented which should help coders working with the Fungus API.

FungusLua has seen a big improvement in Fungus 3.4. We're now using MoonSharp 2.0, which means you can use Lua in WebGL builds, debug Lua scripts using VSCode and even debug into the MoonSharp c# source code.

In other news, we've now had 900+ forum topics which is a fantastic and constantly building source of knowledge for people using Fungus. Huge thanks to everyone who's been helping out with answering questions there!

And I just noticed Fungus now has 50 reviews on the Asset Store, all 5 stars. Thanks folks, it's a good start ;)

Chris
@gofungus

Robot Invasion Hotline

Last weekend myself and my brother took part in SparksJam and came up with a weird little audio-only game that you control using a hacked together rotary dial telephone. The theme of the jam was 'Invasion' so the game is called Robotic Invasion Hotline. You can play the game on Itch.io using keyboard controls - or you could build your own rotary dial telephone controller - read on!

A few people asked about how we made the project, so here's some notes on how everything works.

Also this project doesn't actually use Fungus, but I needed somewhere to put this blog post so here it is :)

A Fairytale beginning

We had a rotary dial telephone from 1979 sitting in our attic for years and every time I saw it I thought it would be cool to get it working again and make a game with it. You can pick one up yourself fairly cheap online.

I started out by finding this great Fairytale Phone article, which describes making something similar using a Raspberry Pi & some Python script. For our project, we used a Makey Makey board and Unity running on a Macbook Pro. 

The Makey Makey is a hobbyist board that lets you quickly build game controllers from anything that conducts electricity - including things like your own body and fruit! Rotary dial telephones also work very simply by opening and closing the circuit on a few wires.

There's no point repeating the steps in the Fairytale Phone article above, so I'll focus on what we needed to do to make it work with a Makey Makey & Unity.

Cut the blue wire

The nice thing about old devices like this is that they were designed to be easy to repair. The whole casing is held on with just 2 big screws and all the wires are easy to access and plug in and out.

When you open up the phone, the first job is to figure out which wire does what. There are 3 circuits (pairs of wires) in particular that you need to find. I have no idea what the proper names for these circuits are so I just made up my own :)

  1. Handset Active: Off when the receiver is sitting in the cradle, and on when the receiver is picked up.
  2. Dialler Active: Off when the dialler is at its resting position. On when you turn the dial to dial a number.
  3. Number Active: On while Dialer Active is on, but pulses off when the dial passes a number on the way back to the resting position. Basically, if you dial '4' then you'll get 4 off pulses. Dialling 0 actually generates 10 off pulses because of the number layout on the dial.

Plug the Makey Makey into your computer and try isolating a pair of wires at a time to identify each circuit. Connect one wire of the pair to Earth on the Makey Makey and the other wire to any of the input contacts. When a circuit closes (e.g. as you pick up the receiver) the LED on the board will light up for that input, letting you know you've found the right pair of wires for that circuit. Repeat until you've found all 3 circuits listed above. 

The headphone jack and red USB cable plug into the laptop

The headphone jack and red USB cable plug into the laptop

The funniest bit is watching people under the age of 25 trying to work out how to use it

The funniest bit is watching people under the age of 25 trying to work out how to use it

Wire it up

Once you've identified those 3 circuits you then need to wire them up to any 3 inputs on the Makey Makey. If you look carefully at the picture below you might notice that I used some industrial grade Xmas Selotape to connect the wires from the phone to a bunch of other wires which run to the contacts on the Makey Makey. It's a total mess, but hey it works.

Possible fire hazard - ho ho ho!

Possible fire hazard - ho ho ho!

I still don't know what those yellow wires do

I still don't know what those yellow wires do

Once you've wired everything up correctly then you should be able to see the 3 input LEDs on the Makey Makey light up and pulse as you pick up the receiver and dial in a number.

Like in the Fairytale Phone, I simply connected the wires from the speaker in the receiver to a chopped up old headphone jack and plugged it straight into the headphone socket on the Macbook. Worked great!

Codey Codey

We wanted to have a crossed line bit where an angry Portuguese person shouted insults at you but ran we out of time sadly. Next time Joao!

We wanted to have a crossed line bit where an angry Portuguese person shouted insults at you but ran we out of time sadly. Next time Joao!

With everything wired up, it was time to write some code in Unity to read the signals from the Makey Makey.

The Makey Makey basically pretends to be a keyboard, so when a circuit closes you get a keypress event on the computer.

As an aside, if you open a texteditor you can use the Makey Makey as a really crappy keyboard that can only write stuff like AWSDEFG. Handy.

In Unity you can use Input.GetKey() to check for the 'pressed state' of these keys. The trickiest part is correctly handling the sequence of signals that might come from the phone and translating them to gameplay events that you can use to build a game with. Bear in mind the player could hang up the phone at any time so it's important to be able to reset the gameplay as soon as this happens.

I used a Unity coroutine to handle this, take a look at the PhoneInput.cs script for the source code. I used another coroutine (in GameController.cs) to play the appropriate audio at the right time in the call based on the events received from the phone.

Can you hear me?

With the hardware side done it was time to write the story script and record some funny voiceover. Steve recorded my voice in a quiet room on a portable Zoom H5 with a shotgun mic pointed at me so as to mainly pick up my voice and not the room. We tried out some funny accents and got people to listen to the sound through the phone receiver. It took a while to find something that both sounded good and was easy to understand. We went with a slow robotic monotone in the end which worked well.

The raw voice recording was cleaned up using Izotope Rx4 software using the denoise utility to highlight and remove background noises/ambiences from all the audio which just leaves the clean vocal.

Not actually a shotgun

Not actually a shotgun

Steve composed the music as a cheezy Muzak version of 'Come Fly With Me' by Frank Sinatra, similar to music you would hear on hold or in an elevator. The robot voice effect was created using the Little Alter Boy plugin in SoundToys. The phone ringing and dial tone samples, recorded dialog and muzak were then brought into Logic Pro where they were arranged and edited in a linear form. From when you first pick up the phone to when you get your first choice is a single piece of audio. All the mixing was done in Logic Pro rather than in Unity.

Steve worked in some nice little details like the phone ringing after you have been put on hold and just before they answer. When you dial a number, the dial tone cuts out as the rotary phone passes each digit and the Muzak is ducked while the robot is speaking. Subtle things, but they make it feel more authentic. Finally, we felt the voice sounded a bit muddy through the speaker so we used an Audio Mixer in Unity to suppress the frequencies around 1000Hz which helped the voice come through clearer .

Thank you for calling - please hold

We were pretty happy with how everything worked by the end of the jam (which lasted 12 hours). The game got good laughs out of everyone who played it, which is what we were aiming for. With more time we would have added more interaction in the script, but we had to keep it very simple to meet the deadline. Maybe next time!

You can download the full source code for the game as a .unitypackage from Itch.io (scroll down for the download link).

Any questions just ask in the comments section below, and if you like this project we'd appreciate if you gave the game a rating on Itch.io - cheers!

Chris
@gofungus

Badb's Tea House and More - A Chat with John O'Kane

I had the pleasure of chatting with John about his most recent release, 'Badb's Tea House' and also chatted with him about his own insights into his development and design process!

When did you start making games, and what motivated you to do it and keep doing it?

Oh wow, the big question. I don’t really recall not wanting to make games. I think I was three or four, I saw a game at someone else's house on an old casio computer or something. It had an educational game where if you got the right answer an animation of a train would traverse the screen. I got fascinated at that point. I never really had a computer until I was about twelve, so I spent much of my time around my cousins or friends playing games on the Commodore 64 or NES/SNES. I made a few small things, it was normal to do that as well and play games. The first game I made was a lottery text adventure type thing. It was a so-so game but it did expose me to basic programming.

Playing games was usually a social thing. With my cousins we had a room with chairs in a queue and a game setup (after a really slow tape loading process), often running all day. One moment everyone would be outside playing football, then next everyone could be inside playing Frogger! It was just a part of the normal activities. So despite the relative lack of computers, we all got a lot of experience, at least playing on them. I do think it was fun to also slowly discover new genres of game as they got created. Today, as soon as you are aware of games, you sort of get the full and polished history of them thrown at you immediately..

As I went into my teenage years I kinda became that classic solitary gamer. I didn’t really make games then, I just consumed everything I could on the Amiga. After college I decided to get into making games for a living. There's good advice out there, that “you should be constantly making games”. I didn't do that, oops! When I applied to  game companies I quickly realised I had nowhere near enough skills or experience. So I started making my own hobby demos to learn what I was missing. I eventually did get employed in a company called Torc interactive (later known as Instinct technology) in the early 2000’s.

After a few years of working I went backpacking and when I came back I wanted a soft landing. I decided to do the IET Masters at Trinity college but it turned out to actually be a lot of work! While doing it I decided I wanted move more into the creative side of things, that I was playing it safe by sticking with programming only. I always loved the creative design process such as the story telling, design and drawing. So that newer direction has been where I've been going ever since.

Next question! It is pronounced BABS or BAVS? It’s BABS isn’t it?

I’m not going to answer that…

Please answer it!

I really don't know ha ha, I’m going to say BADV's with a V at the end with a silent D. I really don’t know though. It was a thing with Grandpa Pip as well, there were a lot of characters that people couldn't pronounce if you weren't Irish.

I’m Irish and I couldn't say half of them ha!

I would often have an idea of who the character was. Then I'd look up Irish mythology and find some characters that seem to have similar characteristics and more often than not someone cool would exist. For example, Badb (also known as Morrigan and other names in different european countries) seem to fit the role perfectly. It’s kinda like Egobahl. I had the main character not know how to say his name and it was just an in joke. So to answer your question, I’m not going to give you a definitive answer. (BAVS is his preference)

Before Badb’s Tea House, there was Grandpa Pip's Birthday, very similar in art style, game play, story design etc, Both games were featured in PipsVille. What was the inspiration behind PipsVille, and the games surrounding it?

The whack mode featured in Grandpa Pip’s Birthday is Super Sword Sword Shield (SSSS), but a shorter version, put in for fun.  It’s built on the same sort of tech and was just a chance to show that off.  I was working on SSSS and Chris was working on fungus, and it was a way of bringing some attention to SSSS and Fungus. When I started making SSSS, I didn’t like endless runners.

Really odd, cus you’re making an endless runner ha!

Yeah right? The bit that I realized that I didn’t particularly like was that they were endless. Like I would happily play a runner if I was told it had a finite ending. Although SSSS looks like a endless runner, it's actually a 10 minute fixed experience. I just really like the idea of learning the mechanics and techniques rather than dealing with randomness and the sense of being worn down.

I also wanted to create a sense of progression in the visuals e.g. “I got to the mountain region” or “I was at the first well” etc. That put pressure on the art requirements though. 
In SSSS, the horse runs through the village in fifteen seconds. So if I was going to build up these graphics getting reuse out of them by making a game in Fungus for each section seemed to make sense. As I was creating more graphics I needed something to the right of the village which ended up in Badb’s Tea house. The character Ann from Grandpa Pip’s seemed popular. Ann is a very excitable, dark and strong character. Badb was designed in Ann’s spirit but a little more rounded.

I moved quickly when designing Badb's Tea House so I didn't realize what the game was about until I was about two thirds through. I had to stop and make large changes. The result is sort of messier for it, but also more distinctive. People seem to have enjoyed it. I had someone call Badb’s not a game. I felt proud after that.

Badb’s was featured on a lot of sites like Rock paper shotgun, front-page of GameJolt, features in general. How do you feel about it? Pretty cool right?

It’s nice knowing that some people have seen and played it. Also getting feedback on your work is always good. In other ways it doesn’t matter, making the game was the important bit, getting that creative release. Having two games of similar style helps I think, for both me and an audience. An audience, who like what you do, is good. I would love to make a living on this and validation does help motivate you. It’s not that I have a clear goal in how I go about doing that, but thinking commercially or how to get cultural funding has to be a part of it. I don't think anyone should think less of anyone attempting to make some money to survive, we've all got do it or we won't be able to continue. No one needs to be a starving artist.

When will we see more of PipsVille?

I'm in the process of designing the next one, which will be a couple of weeks of thinking and fleshing everything out. This is always the most fun stage. With Grandpa Pips I didn’t rush into it, it was a slow burner. A lot of the rough edges were taken off it, it was mostly a puzzler game. With Badb’s the process was not as good, particularly in the middle when I was a little lost for direction. For the next game I'm going to try avoid that but keep some of the rough edges.

The next game takes place in a haunted abbey. It will probably be more of a puzzle kind of game and will roughly be around the twenty minute mark. I will do a solid two months to get the logic of the game, art, and animations done. After that I will then take another couple of months, spread out, to give me time to polish and tinker with the dialog as well as continue with other projects. So maybe before Christmas this year? 

If you want to check out more of John's work be sure to check out the links below

Twitter: @johnokane

Itch.io : Link

Website: Link

 

 

 

Chatting with Florian Velt about himself and 'Lieve Oma'

Recently I had the joy of having a chat with the lovely Florian Velt about his background, motivations, and his award winning game 'Lieve Oma'.

When did you start making games and what motivated you to do it?

I wanted to make games for a long time, when I was like 13? I wanted to make games, but it was pretty hard as there was no development process back then. There wasn’t anything like unity. I was always interested in it but didn’t have much of an opportunity to make things myself for a long time, so I ended up wanting to study animation and from there I also realized that was also kind of complicated to do on your own. I decided to study illustration instead and that’s how I ended up in an art’s school. While there I met people making games in things like Unity and Game maker and thought at a certain point that I could try doing stuff myself! In fourth year in… 2012? I started making interactive 3D stuff in Unity.

Do you think that art background helped you with making games?

Yep definitely. It really helped me a lot. As I started making things, I was studying illustration. In France you learn how to tell stories through different mediums like text but also through images, and the combination of those two is basically what makes illustration, and I think video games do that also with things like sound and interactivity and all of those various feedback's allow you to tell a story. I used my knowledge of illustration and applied it to make games I guess.

What was the inspiration behind your most recent game, Lieve Oma? I know it’s an ode to grandmother but what is it personally to you?

Well before Lieve Oma, I worked on this train game with some friends, which I released yesterday for free (link) for free as we worked on it very hard and put a lot pressure on ourselves into making it but it felt like a bit too much for us as I was the only one doing the interactivity for It in unity. I was doing the programming and all the unity integration so it became too big of a project for me and burned me out. So we reached this decision that when we reached a playable build of the project that I would take a break from it and start a small project that I could do in about 6 months? Or something like that. So I basically started thinking of what would be interesting for myself to work on and it turned out to be the game about my grandmother (from an organizational side I guess).  On a more inspiration level, it came from just in general walking simulators, or games about interactive fiction and I thought about the experience of walking and talking with someone else felt kind of like a healing process. It might help you psychologically digest things in your head and I thought it would be interesting to translate into a game because we’ve got all the tools for walking simulators.

Did you run into issues while developing Lieve Oma?, like how you did with the train game?

Yeah I ran into some problems, as I’m a self-taught programmer as there’s a lot of things I don’t know how to do properly. I had a hard time figuring out how to have the grandmother follow you, stand next to you, wait for you if she’s ahead, and join you if she’s behind. I figured out how that worked from racing games like Mario Kart, where you have this visual of whose in first place, second place etc. and I had to figure out how to determine whether the player was in front or behind the grandmother, and that was quite complicated at first. There were also things like what happens when you walk away during a conversation with the grandmother, do you just break up the conversation or do you pick it back up or what happens, just things like that were hard to figure out. There wasn’t anything big going like the previous train game. The problem with the train game was that the scope was too big. With Lieve Oma, I went in with the belief that if an aspect became good enough and I was happy with it, I’d move on to another aspect of the project.

Lets talk about your award, the WTF!? Award from amaze! How do you feel about it?

It was really really unexpected for me! Especially that award, I thought it would be given to a game that was really different as I felt I tried to do something differently narratively but in terms of how it looks, its not something visually new, or very different from things you’ve already seen. I tried to make something that felt finished so, there are other games that are little rougher on the edges so I thought those games would have a bigger chance getting that award. Amaze was my first games related event, so I was really just blown away by getting the award.

So you’re a game design celebrity now right?

Ha, I don’t think so.

Now, we’re on to fungus,

During Lieve Oma, you worked with fungus. How did you find working with it?

It was really really good. When you start working on a project like this, just a project where you want to have dialog in any kind of way, it’s a real challenge to implement a dialog system, fungus really was the best thing I could use. I was really glad to have found out about it, it changed my way of working and now integrating dialog and narration becomes almost second nature when working on a project. Before I was just avoiding it as it was really too complicate to do.  Thanks to fungus it becomes very accessible, it opens up a whole part of game design that was originally difficult to do.

How’d you hear about Fungus?

I saw a presentation on the Unity YouTube channel from Unite that was filmed and posted online, I think it was Chris giving the talk, and when I saw it, I thought “this is perfect and I really need this.”

Is there anything you’d like to see added to fungus in terms of functionality, small changes, or anything?

In the end I personally ended up not focusing very much on the node based system and I mainly used the ability of reordering dialog boxes in the inspector. That’s where everything happens on my end. I was used to twine which works slightly different, that was interesting to come from as it works slightly different from fungus, but I think both systems could match to each other a little more maybe, that would be kind of interesting I guess. On the other hand though I got really used to working with fungus, I wouldn’t see anything that I’d change.

Id definitely be using fungus in the future, I really like how it comes with prefabs how dialog works and everything. It’s really useful and you can take from it and make it work how you want it too. I’ve seen something like ‘yarn’ I think it’s called which is way more complicated to get going at first. Fungus for me is the most efficient of doing things, it’s also very moddable in a way so if I need to extend on functionality it’s very easy.

Oh maybe one thing that might be interesting would be to make it easier to trigger dialog boxes in non-traditional narrative games, like in 3D environments. Triggering like you would trigger an animation, it would be really cool to be able to trigger it but also when you’re done clean it up very easily or something like that.  

I’m kinda sad that at the end of working on Lieve Oma, that I haven’t really kept up to date Fungus updates as I didn’t want break the source files.

 

You can purchase 'Lieve Oma' here!

Fungus 3 Beta

Hello Fungus folk!

Fungus 3 Beta is now available to download. The big new feature in this release is Lua scripting support, so you can control Fungus (and any Unity object) using a simple text based scripting language. You can download the .unitypackage and see the full release notes using the link above.

There's a bunch of new examples in the FungusExamples/FungusLua folder. Check out the new documentation and send us your feedback / questions in the Fungus Beta 3 forum channel.

Enjoy!

Chris
@gofungus

 

Fungus documentation update

As we're gearing up to release the next update of Fungus, we've redesigned the documentation to make it easier for you to find information and also made it simpler for us to keep it updated.

You can view the new layout by following the link in the Learn section. Please let us know if you find any issues or would like to help with improving the docs.

There's a new Community Articles section in the docs, so if you write an article, make a tutorial video, etc. let us know and we'll add it to the list. Enjoy!

Chris
@gofungus

 

Fungus v2.3.0 released

This is an incremental update, with several new commands, improvements to existing commands and a bunch of bug fixes.

You can grab the latest version from the downloads section and it'll also be live on the Asset Store in a few days time. As usual, if you have questions or spot any bugs please let us know on the forum. Enjoy!

Chris

Change Log

Added

  • SetDraggable2D command #191
  • WaitInput command #276
  • Fade UI command to fade UI objects #349
  • Read Text File command to read a text file into a string variable #344
  • Added Set Audio Pitch command #340
  • 'Center View' button to center Flowchart window on all Blocks #302
  • Clear Menu command #300
  • Set Slider Value command #297
  • Stop Flowchart command #289
  • Integration with Esoteric Spine animation system (available in Fungus/Integrations/Spine folder)

Changed

  • Added null checks in Flowchart variable accessors
  • Set Say Dialog property for characters
  • Can now specify the gameobject to shake for punch tag in Writer component
  • PlayMusic command has a loop property
  • Updated reorderable list control to v0.4.3
  • Updated to LeanTween 2.30
  • Added HasExecutingBlocks() and GetExecutingBlocks() to Flowchart class
  • Remove unused Text Width Scale property on Say Dialog
  • Can now specify a camera to use with Camera command (not just main) #319 #307
  • Can now disable Camera Z being forced by View commands #319
  • Text tags now support multiple parameters.
  • Write command now works with Text Mesh Pro text objects.
  • Writer.InstantComplete property controls click-to-complete writing.
  • Shake tag shakes camera instead of Writer game object.

Fixed

  • Ensure parentBlock is set when block executes #320
  • While loop with following If doesn't loop correctly #354
  • Auto cross fade music in Play Music command #199
  • Play Music call doesn't restart if same music already playing
  • Concurrent Say commands on same Say Dialog should interrupt #356
  • CustomGUI class not in Fungus namespace #353
  • Whitespace trimming after {wc} & {c} tags #346
  • iTween commands on the same gameobject can conflict #342 #303
  • Show Sprite should affect child sprites #338
  • Null reference if command classes have same name #312
  • End command indents when not matched with an If #308
  • Draggable objects behaving incorrectly #310
  • Inactive localizeable game objects are now also cached #322
  • SceneManager warnings in Unity 5.3
  • Fixed Windows store build 268
  • Fixed Writer beep timing issues in WebGL #295
  • Removed say command from Flowchart prefab

Write A Game Challenge 2015

We're always really excited to see and share what people make using Fungus.

The recent Write A Game (WAG) Challenge had a number of great entries whose creators decided to use Fungus. Here's a list of those that we are aware of (if we missed any, please let us know on the forum):
 

The Hollow  (Winner Pro Category)

Created by:   Out Of The Loop
Game Page:  http://tomirony.itch.io/the-hollow

In The Hollow, you play as a huntsman who is forced to search for his daughter after she mysteriously vanishes from the forest's edge. With the help of your daughter's creepy talking doll, you will encounter satyrs, basilisks and other stranger characters.

 

The Bottom Of The Well  (Winner Amateur Category)

Created by:   Wolfrug
Game Page:  http://wolfrug.itch.io/the-bottom-of-the-well

This visual novel centres around Alice, who has had a very disturbing dream about the imminent apocalypse. The story is told through a chat dialogue with her friend, as Alice pieces together what happened and what her dream might mean.

 

Celia

Created by:   Lucid Level Games
Game Page:  http://lucid-level-games.itch.io/celia

Join Celia's adventure as she loses herself in this science-fiction Wonderland. This visual novel features multiple endings and branching dialogue. 

 

The Meteva Accident

Created by:  Marcin Ruszkiewicz
Game Page:  http://aevi.itch.io/the-meteva-accident-prologue

The Meteva Accident, which happened on the 4th of May 2029, was one of greatest setbacks in biotech research of the twenty-first century. You all should be at least familiar with it, since it's still a part of the history program in schools everywhere. But there's some probability you weren't paying attention, so this game will give you a short reminder. 

 

Love/Space

Created by:  SpideyJ
Game Page:  http://spideyj.itch.io/love-space

A woman searching space for answers, her only company a rapidly deteriorating AI and memories of lost loves.

Fungus v2.2.0 now available!

Fungus v2.2.0 is now available from the download page.

Here's a summary of what's new in this release, the full set of release notes is available here

Write command

We've redesigned the text writing features in Fungus to be much more modular and robust.

There's a new UI > Write command which can write text to any Unity text object (UI Text, UI Input Field or Text Mesh). This supports all the same text tags as the Say command, like {b} bold and {w} wait and variable substitution & localisation.

To control the writing behaviour, you can now attach a Writer component to the text object to configure writing speed, punctuation pause, text colouring, etc. Attaching the new Writer Audio component will let you play typing sound effects as the text is written, including a new beep-per-character mode that plays random beeps selected from a list of audioclips.

Say Dialog

The Say Dialog system has been completely rewritten to use the same Writer and WriterAudio components as the Write command above, so you get all the nice new configuration options. For example, you can now display the unrevealed portion of a line of text using a custom color to give a Karaoke-style text effect.

The new Dialog Input component provides new options for handling player input. You can choose to only accept clicks on the dialog UI or on the Continue button. You can specify which keys can be pressed to advance through dialog, and there's a new option to hold the Shift key to auto-advance through character dialog. This is great for when you want to skip to a certain part of the conversation without clicking a hundred times.

The layout of the UI objects inside the Say Dialog prefab is now simpler and easier to customise. The Say Dialog now fades in and out automatically when writing text. Use the new Fade When Done property to specify if the Say Dialog should disappear once the Say command has finished.

There's a new Input Text example which shows how to read text from a UI Input Field into a Fungus string variable using the Get Text command.

Stage & portrait

We've fixed a number of issues in the portrait system. You can now use any size portrait images and it's easier to customise Stage positions.

Menu command

You can now add menu options that are visible but not selectable. The selectable state can be linked to the state of a boolean variable.

Localization

The Set Text and Write commands are now localisable, and you can integrate your own custom commands with the localisation system using the ILocalizeable interface.
The localisation system now correctly handles CSV files that use Windows-style line endings.

Scripting

With the powerful new Scripting > Invoke Event and Scripting > Invoke Method commands you can call methods on any Unity script. Pass multiple parameters, store return values in Fungus variables and even manage coroutines. If you're looking to integrate Fungus with another Unity asset this can be an easy way to make it work without writing custom commands.

The new Quit command will exit the application on supported platforms.

Graphics

We've added the Sprite > Set Sprite Order and Sprite > Set Sorting Layer commands to give more control over Sprite render order.
The new Set Mouse Cursor command lets you set a custom mouse cursor. Take a look at the DragAndDrop example to see how it works.

There's a new Fullscreen command which sets the application to fullscreen mode on supported platforms.

Audio

The Control Audio command now works correctly with multiple Audio Source objects.

Process changes

We are now using the Unity Test Tools framework for unit and integration testing. All new features and bug fixes have an automated test where possible. This is already making a big difference to stability.

We've also changed our Github development process so every change is now made on a feature branch and integrated via a pull request. In practice this should allow us to have more frequent releases.

Upgrade notes

We made a LOT of improvements to the text writing features in this release. Unfortunately these changes are likely to break existing customised Say Dialogs in your project. If you upgrade an existing Fungus project and find the Say Dialogs are no longer working you will need to delete your Say Dialogs and create new ones.

So what's next?

Fungus v2.3 will focus on adding a new set of commands to control UI objects in Unity. The goal is to make it easy to create whatever UI layout you want inside Unity and then control it from Fungus.

 

Fungus talk at Unite 2015

The lovely folks at Unity invited me to talk about Fungus at Unite 2015 in Amsterdam last month - and here it is!

Unite was just a fantastic experience. There were very informative talks and it was a great opportunity to meet the Unity team and other developers. Some highlights for me were "Games? Girls? Palestine?!" by Nevin Erönde, and the Roadmap / Wishlist session. The Meet the Experts area was incredibly helpful (we got UnityEvents working in Fungus - yay!). The talk on SVG Importer was really interesting, looks like a hugely useful asset.

Will definitely be returning!




GDG Dublin, Women Techmakers & Coding Grace - oh my!

Huge thanks to GDG Dublin, Coding Grace & Women Techmakers for organising last weekends Fungus workshop at Google HQ in Dublin!

We had a great time running the workshop and it was inspiring to see everybody getting to grips with Unity & Fungus so quickly. Most people had never used Unity before! The teacher's pet award goes to Gavin Fitzgerald for adding a cool new mouse hover pointer feature to Fungus while doing the workshop ;)

You can find more info and photos over on Coding Grace's blog, and you can still grab the assets from the workshop over on Paul Mc Grath's website.

Looking forward to the next one!


Live at Udemy - Make Interactive Games with Fungus & Unity 3D - no coding required

We said it before and we'll say it again, June has been one of the most exciting months for the Fungus team so far.
To add to our massive update now live in the Unity Asset Store, our involvement with the fantastic Write-A-Game jam and the release of our official tutorial videos+documentation, we have now a new member in the Learn Fungus family.

With the Make Interactive Games with Fungus & Unity 3D - no coding Udemy course we want to accelerate even more the process of creating compelling narrative games for animator, storytellers, writers, artists with no code necessary. 

While our free tutorial videos guide you through the basics of using Fungus, we've made sure that our Udemy course is worth every penny. Paul McGrath (an artist himself) has put a huge amount of work into this in-depth course that will have you on your way to make your own point-and-click game in no time and I'm confident this is up there with the highest-quality online courses you can find. 

It covers the branching-narrative aspect of Fungus, Mecanim, clickable objects and more. But I think the best part of taking this course is direct support from your instructors - an invaluable part of the Udemy experience- and having access to any future updates as Fungus changes at no extra cost.

Special Price

The course will normally be offered at €50 but you can grab it right now as part of an Udemy sale at a discounted  price of €22Grab it while it lasts!

Upcoming Fungus talks

We're doing some presentations in the next few days to talk about Fungus and our plans for the future.

On Mon 22nd June, Chris Gregan is doing an online talk with UC Santa Cruz hosted by the wonderful Brenda Romero. Places are limited so register here for free if you want to join in.

Chris will also be speaking about Fungus at Unite 2015 in Amsterdam on June 25th (Track 4, 6pm), so if you're attending we'd love to see you there!

 

 

Fungus documentation now available!

- This is a guest post by Dr. Matt Smith

Great software deserves great documentation! The new Fungus documentation provides step-by-step recipes, reference documentation for all commands & event handlers and a handy glossary. Take a look by visiting the Learn section.

I wanted to get involved in some Open Source projects, and Fungus looked like a fun project that would benefit from how-to documentation, which is what I write all the time for all the topics I teach at ITB. I had some time on my hands since I've finished all the first drafts of my updated Unity 5.x Cookbook (coming out in the next month or so).

I wanted to learn more about custom Unity interfaces, and I am learning lots about Unity coding by looking behind the scenes at the Fungus code. What I think is great about Fungus is how it lets people do so much without having to get down to the level of Csharp programming (but offers ways to to 'talk' to code if really complicated things are needed for a big game project).

More pages will be added over time, and feel free to suggest on the forum what pages / recipes you'd like to see added to help you on your Fungus games journey

Happy Fungusing :-)

- Matt Smith