Game Development with Unity 2D – part 4: Oplites, Back to Basics!

This is the fourth part of a voyage in Unity 2D development, where we document in video the design and development of a simple strategic game reproducing the Battle of the Teutoburg Forest; here we take a quick detour. If you missed them here are Part 0, Part 1, Part 2, Part 3, Part 5. [Read more…]

Social Share Toolbar

Game Development with Unity 2D – part 3: GUI, or No Text is an Island

This is the third part of a voyage in Unity 2D development, where we document in video the design and development of a simple strategic game reproducing the Battle of the Teutoburg Forest. Here are Part 1, Part 2, Part 4.

Video

In this part three we are going to have health bars, labels and winning conditions; here is the video (also directly on YouTube watch it in HD for a better experience): [Read more…]

Social Share Toolbar

Game Development with Unity 2D – part 2: Javelins & Battle Cries

This is the second part of a voyage in Unity 2D development, where we document in video the design and development of a simple strategic game reproducing the Battle of the Teutoburg Forest. Here are Part 0, Part 1, Part 3, Part 4, Part 5. [Read more…]

Social Share Toolbar

Game Development with Unity 2D – part 1: The Battle of the Teutoburg Forest

In this episode of our voyage in Unity 2D development, we create the first version of our Battle of the Teutoburg Forest.

Here are Part 0, Part 2, Part 3, Part 4, Part 5.

Teutoburg Battle

In this first video we see the basics of Unity 2D sprites and animations (as provided in Unity 4.3 and following), and a base class structure for a strategic game.  [Read more…]

Social Share Toolbar

Game Development with Unity 2D – Part 0

Before we start our tutorial, lets look at others. Here are Part 1, Part 2, Part 3, Part 4, Part 5.

Some cool Unity 2D (4.3+) tutorials

Unity now includes specific tools for building 2D games. This makes it an even more attractive environment where to begin game development. While the Unity fellows are trying hard to make things as easy as possible, the 2D tools are not entirely trivial to use – game development is intrinsically complex. [Read more…]

Social Share Toolbar

Why is Unity so popular for videogame development?

When I started studying the peculiar world of videogame development, I soon met the confusingly named Unity3D as the reference tool used by many practitioners of the black art of game creation. I (wrongly) classified it as a tool for those in realistic 3D games (a style many in Indie games today don’t particularly love – “We’re all effin’ tired of 3D”) telling myself “it must be a kind of Maya for games”. So I ignored it, as at the time the core of my interest was the game design dimension and not the development details, left to poorly paid slaves when needed (by which I mean myself, of course). [Read more…]

Social Share Toolbar

A short note on using Object Oriented models in Unity

In the last weeks as a part of my learning Unity development I have been exploring how to integrate object oriented programming (OOP) modeling concepts in Unity, as done in projects such as in those by Brett Hewitt, Unity 4.x Game AI Programming,  in the Unity examples and in others created by friends. Given what a nice and evolved language is C#, the temptation of projecting the OOP techniques I’m used to in Java is irresistible.

One useful answer to a “root” doubt I got it here:

OOP for Unity

But my impression was more and more that I simply had to drop my “start modeling from the root” approach (coming from server side web development) as wrong, and now the point has become clear: in Unity you simply don’t begin at the top of the object hierarchy, not even closer: you begin at the bottom! MonoBehaviour is neither an interface nor an abstract class, but as concrete as it can be, handling e.g two timelines and a series of extension by components. The correct way is to use a component based approach, just like MonoBehaviour does, where your MonoBehaviour (flat, direct, and final) extensions instances can carry modeling properties which can use inheritance modeling.

Happier now Sorriso

Social Share Toolbar

A very basic Unity 2D tutorial in C#

On YouTube there is a popular tutorial for Unity 2D game development for beginners, in 18 videos, starting here:

Unity 2d game tutorial–part 1 of 18

where you create a Galaga-like game.

The code in the videos is in JavaScript, I followed the tutorial re-writing all code in C#. Note: I am not the author of the YouTube tutorial.
It was quite noticeable while writing code how simply using a statically typed language as C# can avoid quite a number of errors in writing the code.

You can download the complete project written in C# here:
https://docs.google.com/uc?id=0B3QdVbIN8dohRmQtS2ZKai16Qms&export=download

Now some note of caution on the tutorial:

– It is not a tutorial on how to write code correctly in C#, or on how to structure object oriented programming for a game made in Unity, or on how to model AI, game mechanics and so on.

– It is not a tutorial on how to write real, commercial 2D games in Unity – more so now that Unity 4.3 is coming with a brand new integrated approach to 2D games.

The tutorial just introduces Unity as a 2d game tool and makes you use the very basic concepts. From what you learn you can use Unity to test basic game mechanics, but from this to creating professional games in Unity there is a long way to go. I’m proceeding with the books linked and with more complex projects: but thank you tutorial, it was a nice first go at it.

You can keep in contact with me on Twitter.

Social Share Toolbar

Fermi estimates for your crowd funding

I am working on a Kickstarter project (whose details don’t matter now, see the end of the post) for which I will ask for a considerable amount of funding: 60.000$. As happens for large numbers, it is very hard to visualize them, and grasp their full meaning and consequence.

But yesterday I did a simple calculation in my head: 60.000$ in thirty days means 2.000$ per day, which for around 10$ per pledge means 200 pledges per day. 200 pledges per day? It is hard for me to imagine getting 200 people to support me in the total Kickstarter campaign time span, how on earth am I going to get 200 pledges per day?
A visual representation of how many 200 pledges are:

omini-200

That is a lot. Well, I hope that going a bit deeper in the analysis will somehow calm me down: ignoring looming reality is not usually a wise idea. Actually that is why I am writing this post A bocca aperta . So let’s consider the matter further.

Fermi estimate

Making a Fermi estimate or Fermi problem typically involves making justified guesses about quantities that seem impossible to compute given limited available information.

I’ll try an estimation for my crowd funding campaign:

– Aiming to 60.000$ in 30 days, with an average pledge of 20$ (generous people) means 100 pledges per day, including sunny days, football finals and royal weddings, when its harder to get attention.

– I suppose that 1 out of 10 people singularly contacted do pledge my project.

– Suppose that 1 out of 30 people singularly contacted also do promote your project, say by tweeting about how great it is. They get 3 pledges done on average.

So let’s see according to my wild speculation what is the daily work required: to get 100 pledges you have to prepare and send carefully written messages (mainly through e-mail, but also through social networks)… you need 500 brand new messages per day A bocca aperta

This is visualized:

500 messages!

 This looks impossible. Well, how is it that so many campaigns succeed? (I’m thinking Kickstarter, with a success rate of 44% – Indiegogo is behind.)

One factor to be considered is the power of the crowd funding network and the network of pledgers: assuming that 1/10th “network effect” from previous pledges, you “just”  need 20 new users pledging a day to just make it:

Data progression
Graph of pledges

If you include in this network effect upgrading pledges (which is quite common), this may look less wildly optimistic. maybe. Another mitigating factor is that campaigns can have few very high value pledges which can boost the entire campaign (like mine does). So say that brings it down to 18 new pledgers per day – which for my earlier assumption means 90 effective messages. That looks very hard work, but not impossible for a motivated, determined team. So this is my Fermi number, and it looks like this:
Ninety messages

Here I am considering just “reaching the basic goal” – but beware that turning that in an effective production requires way more than this, because all kinds of costs (payment fees, taxes, accounting, fixed costs, campaign costs..) should be considered. Also you should also take into account the likely higher cost of production for more expensive pledges. Computing your campaign income depends on your pledges distribution and to which stretch goal you get to; maybe I’ll get in depth about this in another post.

Still I fear that the crowd funding success function behavior is even more complex then I can imagine because of underlying quadratic behaviors that are not easily understood by those trying.

Is the number of contacts needed to get n pledges the square of n? This would make higher bidding projects way less likely with respect to those that require less pledges per day, and would make my case impossible.

Consider Metcalfe’s “law”: the value of a network is the square of the number of relations that hold in it. So maybe it makes sense to consider successful pledges as a cumulatively building relationship network, which can influence and get new pledges in a triumphant quadratic progression, as done in the graphs above Sorriso?

Ok, so there is no way to predict anything exact here. The only way I see to get more realistic estimates is through experience, which I currently lack entirely.

But it looks that no optimistic evaluation will spare we crowd funding proponents from contacting a whole lot of new people every day of the campaign, and we’d better have something quite uniquely interesting to tell and/or show. It is probably wiser to make some sort of planning on how to do this before the campaign starts.

I’d be glad to revise and extend the content of this post on your feedback: thanks!

My project: Genio

Genio the strategic Renaissance game

Leonardo - the EngineerThe crowd funding project I am working on is about Leonardo da Vinci, the Renaissance and the conceptual innovations it introduced, dealt with within a videogame. Pledges should cover developing the game, called Genio, and also eventually creating Leonardo machines real prototypes (this is a stretch goal), as I am working with a Renaissance technology researcher that already provides working Leonardo machine models to museums.

Creating fun, beautiful games with depth requires a considerable effort and hence, money. Consider that just to create the game prototype and presentation video, ignoring the huge amount of time spent by myself (yes, I am totally aware that this is an economical mistake), the pure cash costs amount to about 10.000$.

So I have to ask for at least 60.000$: wish me luck!

Genio game cards

As for building up a marketing plan and a set of contacts before the campaign starts, I am indeed working on that, by expanding a contact list of journalists / bloggers, maintaining a Facebook page on the theme, contributing to Indie games, talking at events and networking.

Updates about the project can be found in my Twitter stream.

Social Share Toolbar

A simple HTML5 audio for games library

HTML5 audio

Here you find library and how with @pupunzi we created this “simple HTML5 audio for games library”: [Read more…]

Social Share Toolbar