Showing posts with label Game Development. Show all posts
Showing posts with label Game Development. Show all posts

Sunday, February 15, 2015

The final stretch for our first Kickstarter campaign

Under 4 days remains from our first Kickstarter campaign for Children of Morta:

https://www.kickstarter.com/projects/deadmage/children-of-morta

We have reached our first stretch goal so far, which is the PS4/Vita version. This has been a very exciting month and things have turned out to be great for the project. The team behind the game has been very passionate and worked together really well and they deserve a big success.

Looking forward to the remaining four days.


Sunday, October 05, 2014

Bicephalous Monster

Hello blank page, hello white page ... long time no see.. well I should correct myself... I saw you a few times but did not see what you are turning into now ... a non blank page .. oh yes... you are changing with every press of my fingers ... hmmm... goodbye white page ... goodbye blank page ... it happened again, wanting to write about everything and many things and ending up writing about nothing at all .. I'm just going to be cool with it and let if flow this time... lets see how it goes..

Where should I start from ... hmmm... ok ... I know ... I will just start ... days are good... these days are good ... I don't know how long they will last but they are good ... and they aren't good because of any specific thing or event ... they are good because I don't believe in the infinite chain of causality being real .. well this statement had some contradictions in it apparently but I will let it pass for now since this post is about letting it pass... a free form brain dump ...

Work is still a major player in my life ... we are experiencing the new office with a slightly larger ecosystem .. ecosystem of developers ... making sure one project lands well in Steam airport, trying the best to make sure another takes off ... supporting a third project with a brand new team and dedicating any available time to a fourth remote project with great friends ... oh and at times mourning on a few dead opportunities ... embracing the high low waves of reality. The situation while being very challenging is extremely fun to be in and something to remind you that you are alive. Balancing this with "Memento Mori" will bring the ultimate joy.

More projects would mean more interactions with people, the most important part of every project. Now I am absolutely sure that great people will deliver great product and mediocre people will deliver nothing! The biggest challenges however seem to be two things: First knowing what to do, also knows as project/product validation (a very hot topic in lean startup methodologies) and the second making sure the team morale is what it needs to be. Knowing what to do refers to "Are we building the right product" as opposed to "Are we building the product right". The second is the topic of numerous books, articles and academic research but the first is probably hidden somewhere in black magic books and accessible to the inner circles of the high rank freemasons only. Which you and I are not part of and our only chance is to learn it the hard way.

The second challenge is the challenge of the century! From the outside, it appears that creative projects require developers that are highly skilled in various fields and know their craft inside out. This is what I believed in before getting serious about game development but as years pass and you get involved in serious development, you become to realize that somethings are much much more important than developer talents and skills and those are the attitudes and team morale. Three good developers that are highly motivated, trust in one another, are honest and work passionately can do miracles that teams of 50 with low morale can never even think about. This is probably my biggest understanding today after having the company founded for 11 years now. The biggest assets for a company are its people and you need to care about two things on a daily basis: 1 - Are they doing the right thing? 2 - Is the morale high enough? I think the reason small companies often do great things that leave the big giants in the dust are because of these two factors.

In order to make my attempt at caring about the above two points, I had to change course a bit in the past few months and distance myself from technical tasks and coding. This has been extremely hard to do since I really enjoy working on technical challenges and losing myself in the zone wrestling various programming related issues but that would directly translate to a major absence from seeing where we are heading as a team and how satisfied and happy the other members are. A great analogy for this situation is the Player/Coach position in athletic teams which I have had some experiences and know how destructive it can be. I am not sure how successful I have been regarding the two issues but I have recently found an area to devote some pure programming time to recently and I hope the big euphoria I get from the little dopamine rush of it is enough to keep me alert and alive for focusing on the two main issues.

I recently read the wonderful book by Ed Catmull called Creativity Inc. where he talks about how he changed his role in the company to make sure they can continue and work on great products and found it very much aligned with what Gabe Newell always talks about regarding his role in Valve and the people that work in there and how all this is very much inline with how Walt Disney operated at his great company as described in his biography, The Animated Man. Reading about all the great leaders and how they handled their great teams further reiterates the fact that what is important for success in such teams is very much related to the above mentioned issues.

I really wanted to write about many other things in this post but since it somehow ended up with this two very important points, I would rather keep it like it is and pretend this is a post that focuses on the two grand challenges for any creative project. There is always time for the other stuff, or is there? Memento Mori!

Now all I have to do is find a proper name for this post, oh, you have already read it? Well ... thanks to the nonlinear feature of digital media! ... I can scroll up there and add a title for this post ... lets see.. hmmm.... ....... oh.. I have an idea ... google ... hmm... wikipedia ... hmm... wordhippo.com ... yup .. I have it .. scroll up ...

Good night! 

Thursday, April 10, 2014

Shadow Blade Lessons

Every project contains an ocean of hidden knowledge that can be learned and tons of valuable experience. One of the ways to strengthen this learning process is to reflect on the whole development process of the project a few months after the end of the project. Thinking about what went right during the project and what went wrong, all in the hopes of doing better on the next project, being more efficient and producing better quality products.

Here is a postmortem article I wrote today for Gamasutra about Shadow Blade:

Shadow Blade Postmortem


Monday, March 31, 2014

The Three Commandments for The Fall of Video Games (As we know them)

Free to Play has been on my mind for a while now, thinking about how it works, what people expect from it and its dynamics overall. It has never totally clicked for me and I still have a lot of open questions regarding free to play games and their corresponding economics and their effect on the game industry. I certainly don't just hate it and I do believe that there are certain games that are perfect for this over popular monetization model, but that is just it, a certain group of games!

The whole concept can be studied from various different angles, I want to touch upon one of my concerns in this post. I always thought that in any business, not just in games, the creator does his best creation and knows that the users of the service or product will use it and hopefully enjoy the experience and be happy about the product or service, once they are happy with it, then they will pay and you make your money from the happy customers of your business. Very basic, very classic and just what the human race has been used to for centuries, want to make more money? Make the people who love your product or service happier so that they are willing to pay more! What does this have to do with free to play? Well I'm afraid a lot, here it goes:

Only a portion, in fact to be more exact a very small portion, of the players pay in f2p games. There has been a recent report by Swrve lately about f2p monetization that you can get from here. In this report they conclude that 50% of the f2p games revenue comes from only 0.15% of the gamers! Another shocking number is that 9% of this revenue comes from purchases over 50 USD! Well these rare species that spend so much in f2p games have been known for a while now as whales. In other words, we can easily say that people do not pay for f2p games, but there is a tiny portion of them out there who have kept the f2p economics alive. Alive and kicking and generating tons of revenue for the hit titles. Now what is the problem with that? Let the developers suck the cash out of the whales you say? Well lets proceed then:

Developers, especially those who liked to defend the f2p model said that the proper way to charge people for in-app purchases is for cosmetic features, things that do not have any effects on gameplay, in order to provide a fair situation for all players and avoid "pay to win". Well this was a dream that vaporized as fast as a drop of clean water evaporates in the middle of the Sahara! Soon publishers realized that the best things that sell in games are stuff that give you super advantages so that you can clear a level or an obstacle in the game. This is the trend that all major titles such as even Angry Birds have followed. It was not good for gamers to clear these games too quick, since they would not have an option to pay for in-app items, so these games need to block your progress and by the way enable you to proceed a bit if you pay.

Blocking the progress can be done by the following methods


    1. Make the game extremely hard and provide powerups that can be purchased (hard levels, requiring certain amount of starts to proceed, ...)
    2. Make the player need to repeat levels for different excuses
    3. Rely on non skill-based game mechanics that rely on numbers and stats in order to have progress and provide options to buy stats or time, like Clash of Clans.
No wonder why the number of paying players is so extremely low. 

  1. What kind of a person would want to pay to buy super powers in game to clear the levels? This is directly contradictory with the basic nature of games which is all about challenges. Alas why play a game if you do not want to confront a challenge? Classically this is known as cheating for athletes and gamers. 
  2. Who would like to repeatedly do the same thing in games just because the designer wanted you to? The best way this is implemented in games is known as grinding and that is not a positive point among the gamers for a game to have, especially if you know that the designer has added it to increase the game play time.
  3. Who likes to rely on non skill-based mechanics? Non skill? Skill is hand in hand with challenge and the essence of a game.
The people who like to do the above are definitely not the traditional gamers, the people who like to play to get engaged in a challenge with themselves and their abilities or with their friends. But hey, who said such people are playing games these days, the total number of gamers that want to play games for games is maybe at most 40 million in the world. The close to 1 billion that play Angry Birds are then for sure a different target, thanks to the ubiquity of the mobile devices. Out of those new gamers that are in fact non-gamers, there are a tiny fraction that are interested in paying for whatever they can in the game so that they can have progress, the whales!

From the Swrve report, this is a serious suggestion for f2p game designers:
  • Have we identified these customers within our own business?
  • Are we investing appropriate time and resources on retaining this specific group of players?
  • Do we understand where they come from, and have we amended our acquisition strategy accordingly?
By "these customers"the report is clearly referring to the paying customers. 

I like to call the above rules : "The Three Commandments for The Fall of Video Games"!

What happens if we identify those customers, the whales, and then invest the appropriate time and resource in retaining that specific group of players, in other words, design our game so that that specific group are happy with us, the whales are happy with us, and do we know where they come from and amend our acquisition strategy so that we can target them and invite them to our lovely game! Maybe we should focus our acquisition strategy in the north pole and install large billboards there!

So this is the root of my paradox, who are we designing and creating for? The gamer or the whale? Mobile games have been made by people from the game industry with "Game Design" mind sets, maybe this is why we still can play some of the mobile games, seems like it won't last long since the more designers start to obey the above three rules and base their design on the loyal paying customers, the more those games will be strange for people looking for pure play experience and challenge and fun and the more they will appeal to hip wannabe douche bags who will pay more than 100 dollars just to be a bit on the higher parts of that other gamer list on their Facebook account and will share that with all their aunts and grandmas so that they get praised for how cool and adorable they are! If a creator is to pay attention to its customer and create for its customer so that they are happy and bring him wealth, then game designers better start and study these valuable assets and see what clicks with them and brings them joy. I am sure the final product will look nothing like the best games that we have all experience and have changed our lives to some extent and we have been craving for just another close experience for some time now.

Designers will follow those rules, they will make many whales happy and bring tears to their eyes and they will make a lot of cash in the way, all I hope for is that a few designers will remain to stick to what games are and make the digital experiences for the few game lovers that remain in the future!

EDIT: I just read this news: Square Enix president admits that company 'lost focus' and the part of it that I liked very much and brings hope is this:

"Matsuda seems to be suggesting that Square Enix will be changing how it approaches developing games for a global market, by focusing on making games that appeal to what it believes to be a "niche audience" and trusting that players who appreciate those games will seek them out, rather than attempting to make games that will appeal to a broad audience."



Thursday, August 29, 2013

Our optimization journey!

Here is a recent article I wrote for the Gamasutra blogs about our challenges increasing the performance of Shadow Blade on mobile devices.

http://gamasutra.com/blogs/AmirFassihi/20130828/199134/0__60_fps_in_14_days_What_we_learned_trying_to_optimize_our_game_using_Unity3D.php

We are aiming for shadow blade to be released this fall:

http://shadowblade.deadmage.com


Thursday, August 15, 2013

Let's Play Together!

I've been involved in the fascinating challenge of multiplayer game programming during the past year and it has proved itself to be quite challenging and exciting. I tried to gather part of the stuff that I studied and researched with the help of my friends during this time as a one hour talk I had yesterday.

Here is a link to the presentation slides:

Let's Play Together: Networked Multiplayer Games

The amount of information shared by the experts who have worked in this field already is wonderful, I have included them in the references section of the slides.

We have a long journey to go in this area for our current project.

Wednesday, May 29, 2013

AI for Video Games

I recently ran a course on Artificial Intelligence for Video Games. The slides can be found here:

http://fanafzargames.com/ahf/igdiai/

The course was an introduction to the applications of AI in video games and diverse topics were covered.

Saturday, November 24, 2012

Fundamentals of Game Development

I recently taught a course about the Fundamental of Game Development. It was an interesting experience for me, first of all because I was back in a class after about four years and secondly because it was the first time that I had a class about game development, a topic which is quite interesting for me these days and I've been involved with during the past 6 years. The great thing about teaching in a class is getting exposed to fresh new minds, trying to help them achieve their goals and also finding a time to reflect on yourself and your own status. Too much teaching is not something that would be good for me but a little is what I would need.

Here is a link to the course material I had prepared for this class:

http://fanafzargames.com/ahf/gdi

Students ranged from people who were aiming to pursue their studies in different categories related to game development, some technical, some art and some related to game design. Quite diverse and the topics needed to be quite diverse also.Alas, this is the real beauty of game development!

Sunday, September 02, 2012

Why do you make games?

Edge magazine had an article where they had asked 18 respected game creators "why they make games!". There are a few interesting answers but I found what Ken Levine had said super awesome and could not resist sharing it here.

"I make video games because it's difficult. We're still figuring out how they work. What other job in the world combines the coolest parts of the creative (art, script writing, etcetera) with an engineering challenge that is evolving every day? I work with a team of superheroes. It's the most beautiful thing in the world to watch them solve problems. The most challenging creative tasks imaginable get thrown at videogame developers, and they figure it out. How much have movies evolved in the last 20 years? TV? Theatre? Now think how much videogames have evolved. I make videogames to be able to work with the people who made that happen."

Ken Levine, Creative Director and Co-founder, Irrational Games

Friday, August 17, 2012

Video Game Optimization

Here is a link to the slides for the recent workshop I held on video game optimization:

Optimization presentation slides

Monday, August 06, 2012

JC

Watching Carmack's keynote in QuakeCon2012 is really interesting in many ways:

1 - A case study of how you can maintain your energy in a 3.5 hour talk.
2 - Passion of a man.
3 - Respect for the audience.
4 - How context affects the relevance of phenomena.
5 - Lots of informative tidbits from a matured code guru.

http://www.youtube.com/watch?v=wt-iVFxgFWk

Tuesday, September 06, 2011

The Rare Breed

Looking for a programmer for an upcoming unannounced game project. The ideal candidate should be able to carry a Generalist Programmer title and have:

Mandatory Attributes:
1 - Showing to work on work days.
2 - Being able to self manage.
3 - Honesty.
4 - Willing to learn new things.
5 - Willing to write any code.
6 - Carrying a bigger sign of Pragmatism than Idealism.
7 - Not afraid to fail.
8 - Aware of the concept of self sacrifice for team excellence.
9 - Willing to help the group.
10 - Responsible.
11 - Familiar with the word: Commitment.
12 - Disciplined.
13 - Able to see out of the box.
14 - Brave.
15 - Time conscious.
16 - Creative.
17 - Passionate.
18 - Believer.
19 - Patient.
20 - Good focus abilities.

Optional Attributes:
1 - Good knowledge of Programming.
2 - Good knowledge of c/c++.
3 - Relevant work experience.

Drop me a line if you are one or know one around. (I am aware that this is a rare breed!)

Sunday, August 15, 2010

GDC 2010 Europe

Getting ready for GDC 2010 in cologne tomorrow. There are quite a few interesting sessions which I've already marked. Lets see how things go.

Sunday, August 01, 2010

Game Engine Design Course

We will be running a Game Engine Design and Implementation course for those interested in knowing more about the topics and gaining some insight into the inner workings of modern Game Engines.
More information can be found here.

Saturday, May 15, 2010

3D Challenge

We are holding a 3D modelling challenge with the help of CGArt.ir society and several notable others for aspiring and experienced game artists. You can read every thing about it over here.

Let all the artists know about this event.

Friday, May 07, 2010

To OOP or not to OOP !!

Object Oriented Programming has been the buzz word for quite a long time in computer programming. The concept has even leaked to higher level issues such as OO Design and OO Analysis.

Just like any other buzz word in the world of information technology, Object Oriented programming has received much more attention than what it deserves.

But what does it really do? We all know that eventually all code written in a programming language needs to be translated into machine code and once in machine code, it is all the same, no matter writing your code in VB or python, it will end up in a unified language of instructions which the target machine knows well.

Object Oriented Design/Programming, is a way of adding a few conceptual layers between the problem domain in our real world and the instructions which need to be run by the target machine, a way of making a smooth transition between the layers of abstraction, a way to help our mind understand the problem and find a proper solution for it. After all, Object Oriented Programming is something to help us human beings overcome our limitations and be able to make better computer programs. Some argue that Object Oriented Programming brings with it new functionality which was not possible to have before such as Inheritance and Polymorphism, however, simple C structs and function pointers are all that you need in a structure programming language such as C to simulate inheritance and polymorphism.

All of these added values toward writing easier code for the programmers come with costs, sometimes huge costs. In other words intellectual manageability which is probably the most important aspect of Object Oriented Design comes with major costs, the most significant side effect is always performance.

Real-time simulation software have usually performance high on their priority list and so Object Oriented Design in such programs, such as games, needs some second thoughts. Such applications usually see their world as groups of data rather than groups of objects which contain data and behavior, unlike the way we see our world.

An example for the above is the way the main loop for a physics simulation engine works, all it cares about is a few data related to the physical properties and for it, other properties of an object such as its visual properties, sound and game related meta data is of no use.

In these cases, when a part of an application needs to work on specific data, in order to best utilize the system cache and increase the performance, it would be best to provide the relevant data to the sub-system rather than pushing in a whole object containing lots of data, just because handling the code in an object oriented manner is easier for us programmers. Multi-Processing can be managed easier once related data is batched together.

Enter Data Oriented Design. A rather harder way to look at the problem domain and to model which is by far easier and more efficient to process by the machine.

A very good article regarding Data Oriented Design can be found here:
Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)

And another very inspiring article is from Sony Research:
Pitfalls of Object Oriented Programming

Also a very nice presentation by Mike Acton:
Three Big lies: Typical design failures in game programming

Sunday, March 07, 2010

CGS Sharif

Sharif University is running an event on Game Development this week. Here is more information:

http://cgs.sharif.ir/home

Garshasp developers will be running technical sessions in this event, Soheil will have a talk about game character and environment design also.

Thursday, February 25, 2010

The Lost Art of Game Design

Computer games used to be simple, where the focus was on the design of the game as an interactive media, where the designers were there with no armor on the arena ready to battle the huge magical monsters of making a game fun.

Many layers have been added these days to games including detailed graphics, cinematic sequences, polished music compositions, surround audio effects, physical simulations, visual effects and etc. which are actually armors and weapons that the designers can wear and these all together can help and bury some lack of game design talents deep under. Not to mention marketing hype which is quite influential in itself and can mesmerize a player into thinking that they like something.

Game used to bring the thrilling moments to the players every second but it is quite hard to achieve that in most modern games.

Some recent examples, Darksiders, while great at character design and ok at graphics and wonderful visual effects and sound and very polished game play mechanics, the game design throws you out of the immersed world a lot of times and you feel the silly repetitive tasks they have put in there just to increase the length of the game which becomes offensive sometimes. When a game becomes complex in story and features and visuals, then the game designer needs to be much more committed to issues such as the cohesion of all these elements around the element of fun, which is not quite like balancing the game of pac man but more like understanding user emotions, psychology, gaming history, technical issues and lots more. This should be the modern day game design, a highly evolved task, something much much more than level designing.

Assassin's creed, great technically and wonderful visuals but the wide array of possibilities for the player needs exponential design thoughts as how to bring the non stop fun for the player which clearly this game has not been able to provide.

Prince of Persia 4 is another big failure example for game design in my opinion. If the designers had improved half of what the other departments have achieved, then we would have experienced a breath taking product.

Batman, Arkham Asylum, great in many aspects such as a cinematic experience and animation and physics but a very simple game where you do not sense the challenge you usually expect from games and nothing bold in the area of game design, the feelings experienced are much closer to what you have while watching movies than what you used to feel playing Space Invaders.

There was a time when game designers did not have a position in game development and it was all programmers making games, they showed up and helped make better interactive media, they are gone once again today, although not gone int he credits, but really gone and they need to come back and help the industry, they need to come back many many times stronger than what they were with multi-disciplinary knowledge, talent and courage. They need to take our all the superficial armors and weapons of technology, story and cinematics and show that they can be a warrior without all that and bring the gaming to a newer level.

Saturday, October 31, 2009

DWGE 2

We're back from the second Dubai World Game Expo. The exposition was not very crowded, the same as last year, however we managed to find a few new contacts which should be quite valuable.

The Fanafzar booth was right across from the Crytek booth and we got to know a few of their developers who were quite fun and nice guys.

We came up with a presentation to express the current state of game development in Iran with the help of Puya who is the leader of the Quest of Persia game series. Here is a link to the presentation:

The Rise of Game Development in Iran

Sunday, May 03, 2009

The Real Ones

A real coder once said:

"Of course, none of this would have mattered unless the code could be compiled very quickly, so full-blown traditional compilers were out of the question. Instead, we wrote a streamlined compiler custom designed for the task, which we call the "welder.""

In
fact this is how it can be, if the environment isn't what you really need, just BUILD the environment for yourself.

This code was Michael Abrash, talking about the software renderer they made called Pixomatic which performs DX7 level hardware functionality on software.

In fact it's been the work of people like him and Carmack who have worked on Quake that shaped the 3D games world for ever. Magic happens when real people join forces.