Pages

Friday, December 7, 2012

Last post

I'll create personal blog in the google account which i'm using these days and i'll connect it to g+
It's much time that i'm not using this account anymore. Name of the blog also do not reflect its purpose much.

Writing again

It's a while that i wasn't writing anything. I did not have the time or maybe i did not feel the need. I do hardly at the moment and from weeks ago.
I'm listening to metallica's master of popits and its stil awesome. I'm out from MindHammerGames. I could not work with the other members anymore so i tried fixing and when i could not and saw the problems deeper than that, i choosed to continue my journey without MHG and it's projects and plans.
It caused me to have lots of additional work to have but having work to do is a great thing for many reasons. One of them is that the mind  will freze and you have much to do so you don't think much. Sometimes it's the most valuable thing in the world. Thinking is a great thing and great tool but sometimes it becomes problematic, specially when your sub consious is trying to complicate things and make them look bad.
ok so what i'm doing. Creating a new team and a new name and website for the team that i should lead and move forward. People's amount of revenue and the final quality of some products will be under my responsibility so it's not a joke. I should do it as good as i can. Many friends are helpful to me these days. Many family members as well. I don't feel good at all when someone is doing something for me because i think it's my own duty to do all of that or hire someone for it. I feel very ok about doing things for others but not the other way. I can not understand fully, what is the reason.
Things are going forward, my emotions are being touched once in a while and generally i became sensetive these days. For now don't feel much power inside and this is one of the times that i think that i'm not capable of doing much. I think people generally in one of the two states (i'm talking on those people who sometimes do some stuff good). Either you think that you are capable and will do some stuff or feel that u are a piece of garbage. It the second most of the times for me when it comes to anything other than work.

Friday, February 3, 2012

New experiences can be ...

For the first year we had a gamejam in Tehran. We in co operation with our friends at proshot hosted the event and only one other team joined us due to multiple reasons. Some of them are cultural and due to the fact that we did not announce it on many places and the fact that game development is new in our country and to some extent because it doesn't happen in weekends in Iran.
We thought that we can create a demo which could amaze people with a clean code base and great technical abilities and hopefully a creative idea. Different things caused us to fail in our first gamejam. I just want to describe the experience in the hope of being helpful.
We previously did this. We've made demos in less than 10 hours to show them to people or to show our coding speed and technical abilities multiple times. We were good friends with the highly stressful nature of game development in short time slices but we've made them playful and joyful for ourselves. But GGJ was not successful. Why? The week before GGJ was a hard week for me and I was suffering from sleeping less than (well much less than) enough all days in the past week so I was tired in the second day. We treated the theme much serious, much more than needed and spent the whole first day in talking. Also we've never worked with the whole team in a project like this.
All of those demos which were built in short time spans were built either single handedly by Sina or me or in cooperation between us. Due to eight years of working together and being long time friends it's much easier to have a flat structure and creating a hierarchy for two developers is just stupid. This time the flat structure was not the answer at all. We did not choose a leader and worse did not choose a game designer. Getting into something that all four of us agree on it wasn't that easy and at the end the idea was complex enough that we could not manage to create it so uLink saved us and we've just turned our game into a multiplayer shooter with a little philosophy behind it.
The game is called personal trap and is about selfishness or other self related concepts. Every warrior sees himself/herself as a good personal but others are all daemons which should be destroyed. Wow! What a known concept to the history of human beings. At first the idea was about self sacrifice for the greater good. And yes we are highly engaged by Ninjas, Samurais and heroes and those ordinary heroes which are the best ones which no one knows but they are affecting the life around them in one way or another by bringing pain to themselves or sacrificing themselves for a greater goal or achievement.
To honor the unknown, an idea born! Mehdi and Hussein were the modelers at Proshot which we worked with before and we were creating the game with them. The problem of our flat structure was that we had different tastes and little time and also in all last projects either they were the owner or us and never we worked this much flat. We had a project which we all had equal shares which were the Ninja game which again had an idea when we started and the guys worked at it before we start together. So the main shape of the game was there when we started talking about it. We just adjusted the game play and in many ways it was a copycat. In contrast in gamejam we all wanted something original. The theme was not easy and we were limiting ourselves much by it. As a result we ended up in an idea in last minutes of the first day. A game which 3 protagonists want to grab their own diamonds from the other side of the world and should kill enemies to be able to go there and pick up the diamonds and come back and put themselves and their diamonds in a fire which then would cause the creation of a Phoenix which will kill a similar bird in antagonist side and then will die himself and again lots of those small creatures will appear (those small creatures which we started playing with). It was a game to show the infinite loop of the war between good and evil and the value of self sacrifice and a game with single player and multiplayer involved. Players all should go and pick their diamonds but could help others a little in war (however their paths were different in the map). At the end 3 could see each other when dropping themselves and diamonds in fire. Is this original? :)
We ended up not being able to do this cause we had few hours and thought we could not able to do this all in that small  amount of time (4-5 hours). We wanted a good AI but even the navmesh couldn't be generated well due to design problems in the world. The game needed at least a hand scripted cut scene and two more models which could not become ready.
We also had technical problems due to unity servers being down and a subversion server which didn't work well. Guys told me that we should prepare everything before jam but I failed to listen to them. Actually most of the failures of the team are on my shoulders in many ways. I was the sleepy man unlike most days at work. At the end I found a good set of shurikens to fight with but it was late (No one but me can save myself but it's too late).
Well so we've ended with a multiplayer shooter which now can be downloaded at GGJ's website if you search for personal trap or MindHammerGames. We fixed it's bugs and it will be online there soon.
Back to the gamejam, at the second day I was too sleepy because I had a hard week and also was handling an important business deal during the jam. I was sleepy at the second day and because all of us were not using our own computers during the jam we needed an additional unity and as said before servers were not available so we ended up in a form of pair programming which was not bad but not suited for a gamejam. At the end of the night we went home to finish it all. We slept and woke up at 3AM and worked till 14:00 - 14:30 and then we understood that we could continue for a few more hours too. We gave up before it actually but after knowing it started working again. At 20:00-21:00 we ended it but we choose to don't upload cause the code was the worst which we wrote in our whole life due to mentioned factors and constant changes and low amount of energy even for thinking.
GGJ was a battle between me and myself and the whole week for me. For the team was a battle to learn how to manage stuff better. Actually I told fellows at first day to choose a leader when it was early yet but for the fear of being responsible or failing due to bad leadership from their side or something else which I don't know and cannot judge on the team did not agree on it and I agreed on being not agree with them. Due to talks with GGJ organizers and after knowing that we can fix it later, I uploaded the game on 3AM next morning. Yes I was awake and was doing my work. Actually after the gamejam and the failure I had much of my energy back (strange but true).
We could be much more successful if we had computers ready and working before jam days and if we would choose a leader and a game designer and if I could sleep enough before GGJ. Couldn't wait for the next gamejam. We might actually do an experimental gamejam again soon.

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 :)

Thursday, May 27, 2010

NaCL, advantage or disadvantage

recently Google announced a technology called native client or simply NaCL.. we can run native code through it in a secure manner. it has it's own compilers and the hole machine code will be checked for security problems. your code has no access to drivers and operating system calls. it's multi platform and it's code will be compiled before running from an intermediate language. NaCL exposes some useful APIs for it's developers to use in their apps. one of those APIs is OpenGL ES 2 so game engines can be ported to NaCL. as most of you know unity works closely with Google to port it's engine and in Google IO they showed Lego star wars running on Linux using NaCL.
NaCL will fill the gap between games and users and removes the need for plug ins completely for it's users. if other browsers follow it we should forget the plug in word at all. some features will be covered by HTML 5 and some others by NaCL. two questions will come up. 1 what will happen to platforms like flash and silverlight? 2 is it an advantage for unity or not? surely the second question just will come up in our minds (unity developers).
Microsoft and Adobe invested much in RIA platforms and they don't want to lose their market. hey NaCL is not their enemy or competitor! you can write any app for your desktop using C++. oh you can write it using assembly! you don't do that always. people even use flash and silverlight for desktop applications. so they remain great platforms for creating apps fast and easy. flash will harm from this because silverlight now has great features and flash's main advantage it's wider platform support and plug in install base. the first will be killed by moonlight and the second by NaCL. Microsoft added much to it's silverlight and continue and i think this competition will result in 2 great platforms. maybe silverlight kill flash just like unity that killed director. so middle wares will not be killed by Nacl, adobe might use it for creating a web based premier or video conversion software and many other CPU bound applications but middle ware will remain important. it just will become easier for middle wares to come and say hello to users.
now the second question and my answer! it means that torque, shiva, dx studio, unreal, unigine, cryengine can be all on the web just like unity. yes it means! is it bad for unity? no no no! why and how?
1 UT guys showed that they are creative guys with correct vision. they choose write add ons and write great code. it's the only engine that uses mono for it's scripting. why? because DHL and other UT guys have the correct vision.
2 even now unity's plug in penetration is not too much and the competition is open for others. 30M is much but it's not like flash available everywhere. do you want that much! let's donate UT to show world cup games with unity player for free and anyone will install it. it's what Microsoft did on Olympic with silverlight :) just kidding. let's make great games and users will have to install it. when it's not the main power of unity we should not afraid. it might just make unity a better engine because it should compete.
3 it will remove the player size limitation of unity because each game will have parts of the runtime that it uses in itself. it's good and bad. it's good because they can add features without even thinking about size. it's bad because all game's size will become bigger than before. we might find work around but unity's engine is about 4MB now and this will be added to every game. maybe unity exposes it's engine as APIs for NaCL users using unity and Google might be kind enough to preinstall it on chromium. :) in this way we can have best of both worlds but someone might say it's just like having a plug in another might say Google will not do it but Google will ship flash with it's browser so why should not ship unity? from the other hand each game should carry parts of the engine that it really uses. some parts like rendering and input and physics are needed for all games both all parts of the physics are not. for example cloth simulation can be added to unity in a seporate module and just games using it will carry it with themselves.
4 unity has other features for web games that other engines don't have because either they don't want to be in this market or they are not mature enough yet. for example WWW class or mono's abilities to work with databases or web services are not available in those other engines. server side middle wares has clients for making MMOs and virtual worlds using unity because it uses mono and but they don't have clients for other engines. for example netdog, photon and smartfox server all have unity clients and C++ clients or flash clients. using them in unity is easy but try integrate them with torque's source code and use them. how much will it take to integrate?
there is much more to say but i have much work to do these days.

Friday, March 19, 2010

happy new year with a new demo

what? new year?
march 21th is the norouz day and it's the first day of year in Iranian calender.
we would love to create a game for norouz just what others make for western new year and christmas but we did not have the time to do so. so just a small demo that has some information for you and also is beautiful.
to know more about norouz see this
http://en.wikipedia.org/wiki/Nowruz
to see my demo go to this page

http://gcsoft.persiangig.com/zzzzzzzzzzzzzzzzzz.html
technically the code for the demo is simple and the code without function and class definitions is less than what i want to write here :) the modeler guys did their job well but i did not have the time to make something good out of it. it's small app that shows you and introduce 7sin to you.
what i learned
even in this small project that took less than an hour to complete i learned important things about unity.
1 remove every component and code that you don't need or use. unity will choose used assets (meshes and textures and materials and ...) for you but it compiles all of your scripts so remove what you don't want if you are publishing for the web. remove all components that you don't need too. i decided to play music on this demo and made the code for it but later it changed and when i removed all the stuff the size decreased 7 k. you might Say "hey it's not much". let's say you have 10,000 visitors and 7000k is about 7MB of your bandwidth and it can be important for you and if you remove 50k from one project you will buy 3 or 4 seconds for low speed connection users and some bandwidth for yourself. so always do this
2 always use mesh compression for web games. it compress your meshes well. my game was 1.56MB and now it's 992K so use that even if it takes time to change all mesh settings. if you have unity pro, you can create editor scripts for this too.
3 always write editor scripts for things that you do more than one time. i wrote a small 3 line script after doing something 5 times and saved myself from doing 30 more times this night and much more in other days.
i'll go to vacation so i'll not be here to answer you but email me any feeedback at ashkan_gc@yahoo.com
here also i want to thank sobhan and hossein for their great job. i will create something better with their models this summer.
hopefully the next year would be a better one. god willing!

Monday, March 8, 2010

interactive destructible objects and meshes

did you think about them before? what are they good for? can they add value to your game's gameplay? are they good design tools? are they bad rocks that designers of AAA games hide themselves behind them?
I can not stop my creativity when i think about them. my imaginations go wild and i can not get it. you saw many destructible meshes in games developed with UE 3 but when i think about destructible meshes i don't think about rocks and wholes in them or braking stones and ... i don't think about war or anything action. did you think about a cooking game that you can cut onions in any way you like? i thought much about it. it's not completely possible but for many foods it's possible to use really random destructible parts. for some of them you should create meshes of complete grocery and also create pieces yourself.
however there are some problems in your way. texturing of destructed mesh in the way that you want is not always easy. think of a potato and an onion. if you try to cut them, texturing the internal parts of the potato is rather easy but what about the onion? is there any possible solution?
what about game performance? physx tries to do it's best for you and you'll not have any problem in a normal cooking simulator but a vegetable cutting machine with 5000 tomatoes is a different story. i think performance will not be a big issue because in most cases you don't need many rigid bodies.
there is another important factor. did you think of gameplay of your game? isn't it too hard to cut the onion freely? can you make a casual game with free destruction of meshes. a very casual game, i don't think so.
i think there are endless possibilities. using destructible meshes with project natal or wiimote adds much more to it. a cake cutting game? lumbering? oh maybe! tell me what you think. i added a feature request to feedback site of unity and want to invite you to vote for it.
http://feedback.unity3d.com/forums/15792-unity/suggestions/536687-destructible-meshes

Thursday, February 25, 2010

the biggest problem against unity

there are some features that they are not that hard to implement but unity guys don't add them to the engine. did you think before about it? why they don't add soft body physics? why should not they add a HTML browser inside unity GUI? there is a big problem that they should think about it. i am not sure if it's a problem in their vision or not. i am not much experienced to be sure about what i say. the web player size is something important. unity's web player is not as popular as it needs to be so the size should be as small as possible. adding all physx features will add about 12 MB to the player size. there are two approaches available. they can add some features as web player add ons. this will add the problem of game size. the games will become so big. the second approach is to rely on users. you should tell them to install physx and install x and y and ... what is the best approach? maybe none of them. should they add features one by one? should we wait for the web player to penetrate more? there is another problem too. some new versions of third party libraries that unity uses are available but they are not backward compatible and adding them will break the compatibility of older games with new web player. this is not something good even for big giants like flash that most users of computers have. I would be more than happy if someone from UT put a comment on this blog post. i might email it to them.

future of unity

what do you think about the future of unity? what would be available in unity 3.0? just 2 or 3 big features that are not important to you? just %10 of what users want? should you wait your whole life for the feature that you want? no no no!!!! take a look at past years. it's what i always do when i want to predict the future. take a look at what unity 2 and 2.1 and 2.5 and 2.6 offered to us. with unity 2 they introduced DX renderer and raknet networking with 2.1 many procedurals added and in 2.5 they introduced windows editor and in 2.6 the profiler was the big feature. oh i forgot about real time shadows of 2.0. there was many small features that i think brought more value than these big ones. so if i want to guess, hmm, unity is a bigger part a much bigger part of the industry with much more money and many developers. so what i guess is: they might add many MMO features and many social features. a dynamic sky or complete weather system might be added. some new physics features and more features for in game ads are also possible. what do you think? they might add some features for making 2D games. the enigne performance surely would be much better. any or all of that might happen but unity is a great product with or without those features. i know that they'll add DX 10 or 11 renderer and update mono. mono update will happen soon so don't worry. the good thing about unity is: at first they don't wait for major releases to add features. they constantly do it. secondly they don't leave some parts of the engine untouched for ever. they always improve and optimize what they have and they are really open to ideas and really listen to us.

none technical factors

when you want to choose a game engine, you should compare many factors. the most important factors are technical ones. what physics engine does the engine use? how fast iteration time is? what about asset importing? how much customizable is the engine? these questions and many others must be answered if you want to understand if a game engine is good or not. but hey there are factors that they are not technical but they are important in development. i think you should review everything from personality of engine developers to their vision and their openness.. i can easily say guys at UT are the coolest guys in the game engine industry. i am sure that they don't sell the engine to Google and don't kill the useres ideas for more money. they always do what you want because they are passionates about what they do. the other factor is the amount of democracy. not more not less, does developers listen to you? a more important factor is community. how helpful the community is? what tools are available? for example unity answers is a unique tool for unity. all of your questions will be answered in less than 2 days and most of them will be answered in less than 10 hours. having a gallery for user created assets is a good thing too. unity don't have this. they made unify scripting wiki but there is not a place for models and textures. I think they should make a asset site for user made assets. i don't want to talk much about unity much in this post but i can not control myself. :) the number of developers is another important factor. an engine with more than 50 developers can make many features in a year. what about 3 guys? many of the engines just have 1 or 2 developers. you might say: "unity had a small number of developers at first too." yes! you can make a good product in a room smaller than a closet and with less than 3 passionate developers but 50 guys can do a 10 times bigger job if they can not make a 30 times bigger. big game studios and publishers are another factor, if EA or activision or ubisoft use something it means it's better than their own tech or they just don't see any reason to develop something that is available.

first blog post

My name is Ashkan Saeedi Mazdeh. I am a programming student in one of Iran's universities. I love game development but i still need to learn many things and have a long road to go. I write my ideas about Unity and community around it.i tried many engines and found unity the best in overall. surely other engines like torque, shiva3d and dx studio all has features that unity don't have but unity is the best for what i imagine to create. currently i work with my closest friend Sina. fortunately or not we are both programmers and we don't have a modeler friend. this prevented us to make great looking games. we previously worked with game maker for creating 2D games. then we tested many engines from dark basic to 3dgamestudio and from torque to unity. we chose unity. we did not have the money to buy the engine. in our country piracy is a common thing but we are not common people and it's more than a year that we don't use pirated software. when the cool guys at unity technologies announced that their indie license is not available anymore i could not sleep for one night.it was the first time that i was happy because something chip is not available anymore! :) i had a feeling like something i had never before. i can not describe it easily by words. i was about 5 kg and my creativity was coming out of my brain wildly. with this amount of love and also logic, I'll talk about all aspects of unity. it's good features and also problems. I'll talk about it's future and possible feature sets. why should you read this? we can talk together about it. also I'll share my experience with unity and problems in development. if you love to team up with us, we would be more than happy. at last i should say my English is terrible. sorry for that.