Archive for the ‘Programming’ Category

Epistory: Lessons learned while switching to Unity

Thursday, April 16th, 2015

More about the game on indieDB



Paradigm Shift

When we started working on Epistory, we had to choose whether to use our proprietary engine or not. For reasons that go beyond the scope of this post we decided to go with Unity. While the prospect of working with a tool as streamlined as Unity was stimulating, after five years working in a workflow dominated by C++ my C# habits were rusty if not inexistent.

After some time with C# I remembered and saw some of the neat tricks you can do with this language. I also received and read a few tips for Unity itself that can do wonders to keep performance high and coding time low. I will keep this as code free as possible and direct you to the relevant documentation -if necessary- to get all the juicy details that would needlessly blow up the length of this post.

Stay organized

While Unity is very flexible and lets you do basically anything, it can be a blessing as well as a curse. If you don’t force yourself to organize the project and the code from the start, it will become messy really fast. One performance hit that is negligible at the beginning but can grow into a big problem later down the road is the caching of your GetComponent(). Basically each time you ask for a specific component in a GameObject, Unity will go through its component list. In most cases you can safely cache the result and keep a reference. If you start adding components at runtime you’ll have to decide whether to cache it or not.

Leave no warnings behind

Even though most programmers will treat warning as error -or at least minimize the amount of warnings- it bears repeating. The more serious warnings are almost always a bug waiting to be triggered. That is even more important in C# because of some leeway given to the developer. For example: you can hide a virtual function if you don’t explicitly add the override keyword to the sub-class function declaration. And a warning will remind you to make your intentions explicit. The difference between overriding and hiding is that the overridden function will call the runtime type and the hidden function will call the compile-time type.

False friend

The switch statement is a good way to keep the code readable. But in this case its behavior is slightly different in C#. You cannot fall through to the next case section. You have to place a break/return/goto… However, there is a walkaround. You can use something like “goto case 1;” to jump to another case. More details here

Missing Link

LINQ can be a powerful tool to interface a program seamlessly with a database. Even though its syntax can be off putting, you should at least try it before you leave it. You can use SQL-like statements to query an xml file, for example. You can also use it to perform operations on IEnumerable (a.k.a. Arrays and Array-like) classes. All you can eat buffet here


Daily routine

Coroutines can be achieved in pure C# but Unity made their use very easy and intuitive. It is akin to starting a new thread without the problems associated with thread safety issues like concurrency, race condition & deadlock. The coroutine also behaves like any other member function. It has access to other functions and member variables.

I will leave the implementation details aside (see links below) but know that it can easily be used to provide easing to an object over time or calculate the next score increment. Another, more advanced, use-case is a very elegant way to implement a state machine. More information here and there and state chartshere

Eventful delegation

Event firing and registering is built into the language. Events & delegates are two sides of the same coin. The delegate provides an equivalent to an array of function pointers and the event is the message being sent. This makes for painless event driven programming and we all know how much a game can be event heavy.

This could make a post topic by itself so I leave you with the documentation and an in depth tutorial/study


There you have it. A non-exhaustive list of tips, tricks and gotcha. Thank you for reading and feel free to ask any question in the comments.

The Hour of Code

Thursday, December 4th, 2014

From the 8th to the 14th of December it is the Computer Science Education Week that will take place all around the world. The event will specially focus on the Hour of Code. The Hour of Code is a global movement reaching tens of millions of students in 180+ countries. Anyone, anywhere can organize an Hour of Code event.

This year Belgium’s ready to take part of it with the collaboration of companies such as the Microsoft Innovation Center, The Mundaneum, UMons (University of Mons), Fishing Cactus and more…




You want to participate? It’s easy! Go to and join millions people!

You are in Belgium and want to host the event? Contact us via Facebook or our Website.



Don’t forget to like and share the Facebook page of the Hour of Code in Belgium:

Spread the word! 

#CodeRules !


Algo-Bot has been Greenlit

Friday, March 21st, 2014

Hi Guys,

We did it! Algo-Bot has been Greenlit by the community and we would like to thank you for that!

You can imagine what it means to us to have such a great community supporting the game. We are now more confident about the reboot on Kickstarter. 

If you want to get new about the reboot you can sign up to Algo-Bot’s newsletter here.



Now live on Steam Greenlight!

Tuesday, January 28th, 2014

We’ve gone ahead and posted Algo-Bot on Steam.

By voting for Algo-Bot on Greenlight, you increase the chances that Valve will distribute the game through Steam. This is pretty important for improving the game’s visibility, and provides a secure, reliable way of distributing the game files automatically to our users.




Greenlight is extremely competitive, so if you’re excited about Algo-Bot, share the Greenlight link with your friends and vote “YES”! Your move!

Thank you!

[Kickstarter Update #3] Internal Level Editor

Monday, January 27th, 2014

[Watch it on Kickstarter]

Hi folks!  

Thank you again for your pledges and support! As you can see, the project gets slowly funded, backer by backer but hey! Rome wasn’t built in a day! Was it?

We noticed that one reason may be the poor visibility we have on the project and it would help a lot to be featured by Kickstarter. According to my sources, one of the statistics that Kickstarter uses to determine who gets featured on the main page is the number of “Finished plays” which means the number of time your video has been entirely seen. We currently have 21,59% of plays completed and we need that number up over 75%. So, here’s my request: Please click play on the main project video, and let it play all the way to the very end. This is super important!

Now, let’s talk about something way sexier. I mean the Level Editor! Many of you backed $80 to have an early access to it and therefore the ability to submit your own levels for the final version of the game. So, we decided to briefly show you how it works. Please keep in mind that this editor is our internal version and it’s not as user friendly as the one you’ll get. Ladies and Gentlemen, please a standing ovation for Guillaume Bouckaert and his level editing presentation!


Hope you enjoyed it!  

Thank you for your support, and thank you for telling your friends about the project!  

- The team



[Kickstarter Update #2] Be the first people to see our new offices :)

Tuesday, January 21st, 2014

update_blog_#2[Read it on Kickstarter]

It’s Day 6 and we are only 5% funded. It’s still a looonnng way home. So don’t forget to share this campaign with your friends, your colleagues, your social network and all the programmers and puzzle lovers you know.

I know that, at almost a week from the beginning of the campaign, you’d like to see updates about the game but we have been very busy moving in our new office this weekend. As a proof, here is some pictures and a video of the weekend. 

You know what’s fantastic with the new building? WINDOWS! We now have windows and it’s just awesome. I am sure it will help us to increase our productivity. 


Thank you again dear backers!

If you have questions don’t hesitate to contact us.

Speak to you very soon!

-The team


Here’s the link again to share it around you:

The traditional Christmas newsletter and our wishes for 2014

Tuesday, December 24th, 2013


Dear Santa,

We have been very good and prolific this year. Now and then we have been oddly and spiky but most of the time as jolly as a cactus can be.

The Cacti worked so hard this year, I am afraid they are just about to turn a little bit grinchy. You know how it is, especially at this time of the year. I guess your elves are busy and grumpy too. At least, I hope your reindeers, penguins and polar bears are getting along. Talking about penguins, we may have got something for you: it’s a game called Learn 2 Fly. We’ve been working on it for a year now and it’s almost finished. Don’t hesitate to spread the word!



Fortunately, we will invest the new building by the middle of January which should make us merry as crickets. It will be the perfect occasion to rest and have a joyful feast.



Our planning for 2014 looks promising: There is an opportunity to develop more Fishing Cactus branded games.

We started with Algo-Bot. This serious game has been developed for Technobel with the participation of the EU. They were so satisfied that they allowed us to extend the development and commercialize as a full game. That brings us to a brand new adventure: crowdfunding. If by any chance you are interested in coding, Santa, it’s the right game for you. Cherry on top, the game recently won two awards: Top 5 best indie game at Indie Prize Showcase and Best Serious Game HR – Training at Serious Game Expo.



Not to be outdone, our other projects are making good progress. In particular, the game we are developing with Child Focus. This one is going to be pure genius. It’s a serious game meant to make teenagers responsible and aware of their use of social networks.

Let’s talk less serious! We just signed a game that will keep us busy in 2014. This game officially gave us the Wii U developer status. So, don’t be surprised if you find our games on your list in the future.pelican_pano_north_pole

So many different games, wonderful universes, beautiful ornaments that are Fishing Cactus’ pride with on tree-topper, Piratoons an awesome pirate game that will also be released under Fishing Cactus brand early 2015.

All this blabla to tell you something, Santa, we have been very kind this year but we don’t need anything for ourselves. If you really want to give us a present, it would be great if you could visit our friends and all the people we had the chance to work with and fill their socks with Candy Canes and beer because we want nothing more than thank them this year.

Thank you and best wishes for 2014.

The Fishing Cactus Team

Tales From the Gaming Trenches

Thursday, November 28th, 2013

Creatures_iOS_thumbNo need to tell you that we have been quite busy these days. Most of our teams are working on several projects at the same time excepting Creatures’ team who is focusing on finishing Creatures Online. That game really cost us an arm.

Talking about Creatures Online,  we have been releasing a “weekly update” on the forum every week for 4 months now  . The point of those updates is to show to the community where the development exactly stands. We should have done that from the beginning but the community management was not that effective back in those days. It was the first time we had to manage such a big license with such an active community. We did our best and I really hope that the community noticed it. As you certainly know, Fishing Cactus doesn’t take care of the CO page on Facebook nor the Twitter account anymore.

Algo-Bot_SGE13_award_thumbAndrea and I talked to Raphaël “Ulandar” from ProsiebenSat.1 Games, who is in charge of the whole community management of Creatures Online. A bunch of good ideas came from that conversation such as making videos to show game improvements, talking about CAOS, etc.

The sooner Creatures will be finished the sooner the team will be available to work on other games in production such as Algo-Bot which should hit Kickstarter in January. Yeah I know what you think! It’s a fact that we have deadline issues :-) I have to admit that I’ve never thought that launching a Kickstarter campaign could be that difficult. Meanwhile, you will find our Kickstarter video here and signup if you want to be informed the day Algo-Bot hits Kickstarter. Hope that this game will be funded because it really deserves to be finished. It’s not my only opinion, the awards below talk by themselves: Top 5 of the best Indie Game at Indie Prize Showcase and Best Serious Game in category HR – Training at Serious Game Expo. So, proud of our little fellow <3

To finish my post I would like to wish you a lot of Roasted Turkey, Mashed Potatoes and Pumpkin Pie! Happy Thanksgiving!


Fishing Cactus at Casual Connect Kiev 2013

Friday, October 18th, 2013

badge_indieprizeIn exactly one week, Fishing Cactus will attend to Indie Prize Showcase with Algo-Bot in its pocket.

The Indie Prize Showcase will take place at Casual Connect Kyiv on October 23-25, 2013 with something like 850 industry professionals attending the event. Over 25 indie game development teams will be showcasing their games and two of them will win prizes awards from the showcase sponsors and Indie Prize committee.

I have the Conference content just in front of me and judging by what I read it’s gonna be very interesting and… Oh waww Fishing Cactus is a speaker!  “Algo-Bot: How Coding Can Be Fun” … wait! What?! Coding can be fun. Can coding really be fun? Of course it can and we will show you how we managed to do that :-) So, be sure to be at Casual Connect the 25 October at 10:30 to hear our Guillaume telling you how difficult it is to make a learning game without being boring.


Also, you are warmly invited to read the article about the development of Algo-Bot  that we wrote for the occasion on You will notice that this game taught us way more than concepts of programming.

All this blabla brings us to the most important thing about this event: What can we eat in Ukraine? 

Happy Programmers’ Day

Friday, September 13th, 2013

A few months ago, we celebrated the Moustache Day. Yesterday was the Video Games Day and we celebrated it, as well, the best we could by spending more time with games we like. But today is one of the most important days of the year for Fishing Cactus. Today is the Programmers’ Day and we decided to make a special post dedicated to our beloved programmers who are working very hard these days on a couple of secret awesome new games.  Also, we would like to thank programmers all over the world for the good work they do to improve our everyday lives.


 Nowadays, coding is coming to every industry you can think of. From your Facebook page to your newspaper online, including games and apps on your Smartphone, it’s everywhere. Without even knowing it, coding turns out to be the most important and desirable skill there is. It’s huge part of our future. At Fishing Cactus we are completely aware of that and that’s the reason why our Artists and Game Designers worked hand in hand with our Programmers to create a very special game named Algo-Bot. Games are mostly related to coding, now discover a game that offers a real coding experience.


Check out Algo-Bot’s Facebook page for more information about this coming game and feel free to spread the word all around you.