I released my first videogames-related thing on the 9th of April in 2011.
Dreamagine was both my first attempt at game development and at getting in touch with the Italian indie game developers’ scene. Without any programming knowledge, I managed to get probably the worst looking adventure game ever out in a week for the Brave New Game contest. My goal was to meet new people and enjoy a pizza with the other developers that were there, and so did happen!
Developing it was a strange and new experience to me, yet so addictive that I think I still carry the same passionate approach when I work on a game.
Of course I won’t speak about my skills back then, I’ll save me some further embarrassment and just cross my fingers and hope I got a little bit better (both in my skills and my ambitions).
Four years in a nutshell (TL;DR)

Being able (and willing) to challenge myself, by attending game jams (both online and not), by engaging different interests and merging them, by hanging out in online and “offline” communities of game developers, always networking, by reading and (sometimes) writing about game design, helped me learn all I know about game development, today.
It helped me widen my interests and, therefore, my knowledge. In these four years I discovered places, people, opinions and things that probably I would have never discovered otherwise and that made me, I think, grow a lot.
As I said in the title, of course I’m not even halfway there, but that’s fine. Looking back at what I’ve learned so far made me a little more self-confident, which lately helped me engage new adventures in game development.
I can’t avoid to thank all those who helped me and still do along the way. Any little step forward I take and I plan to keep on taking is possible mostly because of them.
Programming?! Me?!
If it’s true that now I understand more than I did before, I think that it’s mostly because of practice.
I’m nobody to do that, but if I had to share some game development tips with you (no matter what kind of ambitions you may have), I’d say: if you are in any way like me, you don’t ever have to stop doing it. And I’d say that because eventually you may understand those things that you didn’t understand at first.
At least, this is what happens to me all the time!
I was never good in math, also I don’t think I have a “natural talent” for getting it “right away”. Rules and theory are really difficult for me to memorize if I can’t see why and where should I use them.
I remember that initially I couldn’t understand almost anything about programming: not even the simplest theory behind classes and arrays.
Not that now I’m nearly as good as, say, <insert your favorite programmer here>, but that’s not the point. I will probably never be as good as <insert your favorite programmer here>, it’s just that I don’t start cold sweating every time someone mentions a dynamic array.
How I Learned To Stop Worrying and Love Coding
Here are some things that helped me get where I am (wherever I am) today, which is not even halfway from being good at it, but at least it’s somewhere!
Adventure Game Studio
Discovering Adventure Game Studio opened me the doorway to game making.
Among all the games I like, love and would make, there are also point and click adventure games.
When I was little, I learned how to read also thanks to games such as The Secret of Monkey Island, Maniac Mansion and Zak McKracken running on my brother’s Amiga600. In more than a way, I owe them a lot.
Adventure Game Studio is a tool to develop mainly low-res point and click adventure games. Currently its development is maintained by members of the community that built around it during the last 10-15 years.
Many developers squeeze it and twist it to make games also completely unrelated to the adventure genre and the results are both amazing and very inspiring.
The forums are really active and the help sections are always full of answers. Also, amazing developers and artists are always there, ready to hand out tips and criticism, which is great.
Of course this happens in lots of communities, with the main difference that if adventure games are your thing, well, that’s one of the best places you may want to go.
Global Game Jam
At the three Global Game Jams I attended in Rome, I learned a little about everything related to games development. Most of all it helped me realize which skills I lacked. Each time I joined the Lonely Crew team, I was amazed by how each member was good at what he did.
Having a team to work with, made me understand how helpful it is to deal with different points of view at once and how important it is to have them since the brainstorming phase.
Undoubtedly I had a great amount of fun experimenting and I also met amazing people that otherwise I would have never met.
Oh, and having attended them in Italy, I had access to tasty slices of pizza each time, which is a great plus!
Ludum Dare (compo)
With the compo “version” of the Ludum Dare, I had a different, tougher, experience than the one I had at the Global Game Jams.
Basically, in the compo you are on your own. You challenge yourself personally and you are the only one who can sort things out, making them work in the best possible way.
Having not the chance to rely on (or blame) anybody else other than myself lead me to learn how to deal with problem solving and workarounds first-hand.
Oh, and my Google skill increased a lot as well! Don’t ever forget about that skill!
Wax on! Wax off! – Hang in there: things just “click”!
I don’t think I’m going to say something unusual, here.
Anyway, do you remember what Master Miyagi always said? Wax On! Wax Off!
Why should I break my back cleaning the floor to learn Karate? How are these two things even remotely related? I come up with questions like these since high school.
Music Programming
Among my many interests there’s also music. I’m not a good musician at all, but I really enjoy writing, producing and playing music. Let’s say that I can “plan” simple melodies in my head before playing them even if I’m not always aware of what I’m actually doing.
When I started the Introduction to Programming for Musician and Digital Artists course on Coursera, I had some small knowledge of programming basics, but I still had troubles understanding most of it (the course itself provided the theory behind that, anyway).
But since for the whole course I was far more interested in producing the tunes I wanted to produce than programming, things went kinda smoothly.
Being able to hear the code I wrote, I was also able to understand how to tweak it in order to make it do what I wanted.
So I ended up creating instruments using classes and playing chords and scales iterating through arrays. I did try to study classes and arrays before, but they only made sense when I heard those sounds working the way I wanted.
Now that I really understand one of the uses I can make of an array, It’s easier for me to know what other uses can have in subjects different from music programming. Why I couldn’t do before, after trying to study them in different scripting languages, I don’t really know. Probably lack of practice and direction.
After I ended the course, I sent a message to one of my high school math teachers. It said something like: “next time someone asks you, please tell them that one could program drum fills with recursive functions and songs with algorithms!”
It was a funny message, but I was actually kinda angry about it. Why couldn’t I make such connections before? Why did nobody make them clearer to me? It felt like a lot of wasted time.
Connecting examples and knowledge
All these “simple” challenges I put myself into every time, help me to be more or less always active as a small developer and constantly show me the gaps in my skills that I have to fulfill, providing me tons of examples.
Strictly speaking about programming: by always reading code written by others and by writing code myself, I realized that, at some stage, things just “click”.
Inside my head, things I learned from different examples connected and lit up my little light bulb and you are, like: “Oh, wait! What if I mix these things to make this other thing work?”.
I believe that this applies to any subject, not just programming.
So yes, Master Miyagi was right to say that you should shut up and learn, but also Daniel-san was right in having his doubts and wishing to see some actual results.
I guess it’s just like what happens in some adventure games, where you suddenly solve a puzzle in your head and can’t wait to see if it works and, when you go for it, it does.
It’s a great feeling, but it’s not something that you really know how to look forward to, probably.
I wish I had a perfect way to remind myself of this kind of “clicks”, therefore not growing tired of waiting. I mean, everybody tells you that you have to keep working on the things you want to learn. We know it’s true… But you know, we’re stubborn (lazy) rebels!
So, what’s next?
Up to now it has been a really good ride. I met talented and amazing people that taught me a lot and still do. I’m really enjoying all the things I’m discovering day by day even if some days are worse than others.
Lately, thinking about all this, I grew more self confident about what I’m able to do and this also helped me a lot. Of course as I said already, I’m not even halfway there and that’s fine.
Right now I’m working with two other people from the AGS community on fixing a short adventure we’ve worked on in January and that will be available pretty soon (so stay tuned).
I plan to learn more and get better. I’ll delve more into Unity, that’s for sure. There are pretty amazing things that I want to try with it.
I want also to keep posting updates on this blog. Something I was never really able to do. Yeah, maybe writing shorter posts…
What else? I don’t know. I’ll see what comes up in my mind and let you know, ok?
Special Thanks
I’m really thankful to all the people that helped me along the way and still do: my family and closest friends above all. Beavers.it* and IndieVault.it*, AGS and its community, the Italian and Irish indie game developers’ scene and all the people I met down the road at the Jams, all the people who give me feedback for the things I do and those who feature them on their websites. Thank you, folks, really!
Also thank you, if you’ve read all I’ve written.
If you just skipped here, shame on you!
*To whose staff I have to apologize, for not having written articles in ages.