Pages

Tuesday, January 10, 2012

SOPA the death of the games community

This is a small part of a post in IQU's blog that you can read here

SOPA: The Death of the Games Community

SOPA. It's an acronym so dirty that to type it causes a collective washing of the Internets mouth. Reaction has been swift and coherent in its singular defiance of proposed Legislation that is global in its reach, idiotic in its understanding of how new media and the internet intersects, and truly naive if it believes we don’t realise it has everything to do with censorship, and will do nothing against the 'rampant piracy' it purports to end.

Read the full post on IQU's blog

Friday, January 6, 2012

Looking back

I was looking back today. I was reading posts on the blog which got visitors from other sources for multiple reasons. unexpectedly a post on NACL feature of unity and the tech's inpact on the future had the most amount of visitors.
But reading the post i saw how small we started and when started writing we diden't own any game development team or ... It was a hubby for us and game development was not a job really. Later on we started MHG and now we are moving. Many of the things said on the blog even on that Native client related post are not correct and there are stuff that are not good to be here when you are working professionally :)
There are two ways to deal with situations like this. the first way is to either delete the stuff or somehow disconnect you company/team from it which we did not choose. The second way is to let them remain for your own record and for others to see your changes in time. everyone is becomming mature and professional in time while working so there is nothing to hide. Surely compared to today we were beginners yesterday and i really hope that  when i look back to years later, This post would look stupid at best.
Game dev started as something that we love for us and now is the job that hopefully would pay our lifes and we try to improve both ourselves and others with. We'll have a blog on our lovely child, MindHammerGames from now on but surely things will be posted here too. Posts like the last post on UnityPark suite and our experiences with it are useful to be there but when i am writing the most fools ideas about trends and future and ... it's better and surely safer to be here :) After all it's much more personal than the blog of the team and gamestudio.

Monday, November 28, 2011

MMO development with unity

As we work on our project mind farming, We experience different things. One of our main obsticles when starting the development was choosing the game engine and networking stuff. we tested multiple MMO middlewares but in that time (about 2.5 years ago) none of them seem ok for a small team like us. mostly client updates were not as fast as we want and iterative development and fast content addition was hard. At this time among them, surely hero engine is the best option if someone wants to choose between those packages to make an MMO. if you want to use one of the popular engines like unity, cry engine or unreal as your client side tech, then you either have to develop your own server side solution or pick one of the existings.
Too much of our time spent in researching the market for a good MMO middleware or a server side solution for unity, after it turned out that we don't want to use one of those MMO only middlewares and we want unity as our client engine for multiple reasons including cross platform ability and ease of iterative development and content pipeline then we had to do something about the server. Different multiplayer games have different needs. we planned for the most complex ones. a turn based game with asynch play is multiplayer and EVE online is too. our game was partly synch and partly asynch. partly real time and partly not that much. so we needed a complete server side solution with support of physics or at least collision detection. we had to find it or build it.
At first the only option was smartfox and photon was a new option. it was obvious that photon is much better so we downloaded the manual and APIs and started reading. we thought of using physx wrappers for .NET and using unity apps in our servers but both attempts were not good for the small team of ours and our budget. we had a big vision with two coders and less than 20K dollars of money in that time. we wanted to start it but not in a path that we know that it's only headache. we waited and other options were comming,
netdog for example was one of them. the problem was that an MMO need much more than message delivery libraries. we needed easy database connectivity and management, load balancing, physics and bandwidth management. the server side logic also had to be developed in C++ which is good in terms of performance but is not a good idea to make gameplay using C++ for a team with 2 coders.
then we heared the news about hero cloud. it was nice. hero engine had all of the server side tech that we want and the client was a good thing. this option was free to start with, so risk was much lower. oh did i mensioned that 2 years gone with these researches and developing small advergames and code frameworks for others as contract job? Hero was good but the client was not unity and they wanted 30% of our money. another 30% was facebook's cut so after facebook announced it we thought that we should think more.
Then we decided to lower our expectations at first release and use a turn based social mechanics engine called roarengine. we started implementing the plugin for using it with unity. it again turned out that it limits us much in terms of game mechanics of the main farm theme enough to not be able to create the original thing that we want. your middleware should help you and break the limitations so if it limits you it might not be a good option.
in middle of that stuff, just in a random way i saw the name of uLink in a post in unity multiplayer forums. what's this? another fast message delivery library? let's take a look! The product was not ready yet. We did not have the money to buy the license and do our other stuff too but i am somehow good in understanding what tech to choose. previously i saw the potential in unity when it was a young mac only product with much less features. i am not a big visionary that foresees the next big thing in tech but i am good at it. my teammates are too. indied i emailed their CEO to see what's going there. the pikko server was really interesting and the description in the site was in one way or another a complete server side MMO middleware. database access and management, bandwidth optimization and network LOD, lobby system, load balancing, fast message delivery and reliable UDP and much more. it was a great description. it changed later a little and some small stuff like facebook integration were removed from the list of the features in the first release but it's still awesome.
Christian and i talked much and he fortunately loved our idea of making a real 3d farming game which is not turn based and is a real game for facebook and social networks. we loved their tech and they loved our idea so we solved other things together. We bought our license and got early access. Now we are moving forward and not only this tech is not limiting our vision but it allowed us to think about implementing things which were not possible with other technologies. even some of them that pikko server offers are not possible in those expensive MMO middlewares. I cannot talk on our experience with MMO middlewares due to their NDA's content but i can talk on unityPark suite that we are happily using.
The experience is really what we wanted. all development is going in unity. Weather server or client script it's written in unity and using all of its framework and physics and collision detection. The database system is great. It's scalable, fast and easy to use. We developed the whole serialization of the game in few days. We also don't have to write too many XML files (like most MMO middlewares) or other sorts of definitions for data to be saved automatically. Instead in a small method we just write debuggable C# code to say what and how should be saved on the database. Content pipeline of the game would be great because we are free to use unity's pipeline and our own database and nothing is dictated. We make the content pipeline of the game as easy as possible. it's just a matter of minutes now to create a new crop type and add it to the system.
In terms of client side features, unity might not have some of the common MMO features in itself but thanks to it's asset store many of those are available for a good price. for example you can find good mesh morphing in asset store which is an important feature for creating customizable avatars. There are packages for weather system and day/night cycles. again it might not be all of that those MMO middlewares offer but you have a cross platform engine which still is listening to it's customers and adds new features fast. it's becomming the industries number one development platform for many types of projects and if you ask me with the addition of UnityPark Suite it's a complete MMO development platform.
Now with Linux support for unity servers, prices will be much lower and server management will be much easier on a single platform. We'll soon publish a document on Unity's asset store for free which tries to help different people to choose the write networking middleware for their projects.

Friday, September 9, 2011

version control

I don't know weather you heard the word version control before or not but I am sure that most of you used it never before. I don't know why no one don't teaches using source control (version control) in first semester in university. I read a great article on reasons for which I forgot the link and name and ... completely (shame on me). Version control software allows you to keep the history of all changes to your project and its files. It also allows multiple people to work on the same project and merge their changes with ease. It works on most network protocols on LAN and on the Internet so working remotely is highly possible. To use version control you don't need experience or anything close to that. Just download an SVN server like visual SVN server and install it on a computer in your LAN or on a machine with static IP on the net, even you can use one of the many free alternatives like sliksvn.com. If the project is open source there are dozens of sites that would be more than happy to lend you some space. A project's container on the server is called a repository and all users and members of the project will connect to it using their clients in order to put their changes on the server (commit) or update their projects (working copies) with the changes other maed to the project (update). As you might noticed we use subversion (svn) as our version control system. There are other systems available with pros and cons which I'll not describe cause you can find much info simply by googling their names. As subversion client, you can use the main/original command line client but there are many clients available for most IDEs. There is a great client for windows explorer called tortoiseSVN that we ourselves use. Before using SVN if someone would ask us: what do you need on your system to make a game we would say, well Unity and visual C# express but now surely we would say: Unity, visual C# express and subversion surely with tortoiseSVN client. The speed would become more than doubled even when only 2 or 3 people are working on the project. Unity users should know that it's better to don't use the SVN clients of IDEs cause there are files that they should version but they are not available on the projects of their ides (i.e models and scenes and prefabs and ...). you can use visual studio's SVN client but don't forget to commit your other changes. We highly recommend tortoiseSVN for windows users. Lucas meijer of unity himself recommended this to us. Unity has a version control software for itself that is called asset server which is $500 for each client but they say that it handles large binary files much better than other solutions which originally created for versioning code (text files). At this time some of the unity file formats are binary and svn can not merge them so if two people change a scene when the second one commits his/her changes changes of the first one will be lost (file will be replaced and not merged). in 3.5 this will no longer be a problem cause unity will use YAML for all of it's file formats which is a popular XML serialization format. they'll also bring in a better integration for subversion and perforce too. A big thanks to robotduck for reviewing and helping me to edit the post (i did not manage to find the time to do all of what he said).

Thursday, September 8, 2011

version control

i don't know weather you heard the word version control before or not but i am sure that most of you used it never before. i don't know why no one don't teaches using source control (version control) in first semester in university. i read a great article on reasons for which i forgot the link and name and ... completely (shame on me). version control software allows you to keep the history of all changes to your project and it's files. it also allows multiple people to work on the same project and merge their changes with ease. it works on most network protocols on LAN and on the Internet so working remotely is highly possible. to use version control you don't need experience or anything close to that. just download a svn server like visual svn server and install it on a computer in your LAN or on a machine with static IP on the net, even you can use one of the many free alternatives like sliksvn.com. if the project is open source there are dozens of sites that would be more than happy to lend you some space. a project's container on the server is called a repository and all users and members of the project will connect to it using their clients in order to put their changes on the server (commit) or update their projects (working copies) with the changes other maed to the project (update). as you might noticed we use subversion (svn) as our version control system. there are other systems available with pros and cons which I'll not describe cause you can find much info simply by googling their names. as subversion client, you can use the main/original command line client but there are many clients available for most IDEs. there is a great client for windows explorer called tortoiseSVN that we ourselves use. before using svn if someone would ask us: what do you need on your system to make a game we would say, well Unity and visual C# express but now surely we would say: Unity, visual C# express and subversion surely with tortoiseSVN client. the speed would become more than doubled even when only 2 or 3 people are working on the project. unity users should know that it's better to don't use the svn clients of IDEs cause there are files that they should version but they are not available on the projects of their ides (i.e models and scenes and prefabs and ...). you can use visual studio's svn client but don't forget to commit your other changes. we highly recommend tortoiseSVN for windows users. Lucas meijer of unity himself recommended this to us. unity has a version control software for itself that is called asset store which is $500 for each client but they say that it handles large binary files much better than other solutions which originally created for versioning code (text files). at this time some of the unity file formats are binary and svn can not merge them so if two people change a scene when the second one commits his/her changes changes of the first one will be lost (file will be replaced and not merged). in 3.5 this will no longer be a problem cause unity will use YAML for all of it's file formats which is a popular XML serialization format. they'll also bring in a better integration for subversion and perforce too.

Tuesday, December 14, 2010

We.Update () {} :)

Fellow developers and friends! After months of silence I decided to do a post here to update you all about our status.
Unfortunately my closest friend and my best workmate, Sina immigrated to another city to study in the university that he qualified for going. Fortunately we are always in contact but it was better if he was here. He will come to Tehran today and we will go to a fun session together soon. In these last months we did some good jobs and said good bye to those small phone projects. Doing mobile phone projects is not bad but we needed some more challenging things in a more creative manner than what we had before. So we said good bye to those guys to focus on our own big project and doing other contract works.
We are doing some web player based project for a well known brand in our country called "Golrang" games are fun to make because they are targeted at dial up users and using different features like streaming and creating content procedurally is what I love much. Hopefully the first game will be released in next week. Their staffs are cool guys and working with them is much easier than many other people that we worked with before. They are much busier than what you can imagine but it's easy to work with them because they allowed us to do what we love and just showed us some outlines. In this way we can let our creativity to go wild and create good games.
We also talked to some other big names here and the results are good. Hopefully we will have some work to do after this project. We might divide our team's power to multiple projects too. From a general point of view things are not go as well as we expected about some projects but some others are going well. So let me to be clear I am happy with the result of our contract works but our big project is not going well because of some technical restrictions. We are changing it to become something more doable with our time and budget. The project is a social multiplayer game that might become a social MMO. I can not tell more now but soon we will start writing development blogs about the project.

Monday, June 7, 2010

happy birthday unity! i am happier than what you can imagine. unity is a great engine and i described before what is my story with unity and how i found it and ...
unity staff are cool guys and humanitarians. they made the engine free to remove everything from anyone's path to become a game developer. from any country. it might be USA or south Africa, anyone with Internet access or even without it can have it and make money out of it. doing Good always will result in Good. it's a rule in our world. in my beliefs it's God's tradition. unity has many technical advantages over other engines but i think the most important advantage is it's cool staff and their strategy and vision. because of their love and great strategy unity's community is more than a technical community and you can easily see it everywhere from forums to answers.
surely we will be amazed by told and untold features of the unity 3 but real great thing there, is unity's vision from gamification to democratization. with help of this free product i am creating my game development team and we even started doing jobs for others. it wass not possible without a free unity. i would do other jobs like programming normal windows/web apps to make the money to buy unity but now i can use it and make money to buy it. it's great! every good work that users do with it will be their and also a big share will be for UT. users in this community will be effected by the vision of UT founders and surely will do works for charity or any other good job with it and it's shares will go to UT too. making money in a correct way is a good job and UT made it possible with the free edition.
i don't have to make a happy birthday demo but if someone has time please create a room full of unity logo boxes and some paths to it. then people are running toward it from other rooms (other engines) and you should make their path clean and remove all sort of things from their way.. :) when a developer comes to the room, he will not wait much so drag a logo and box toward it to make it a UT developer.
hope and a great year for all unity developers. i would be happier if the logo was green :)