This is the history of the technical failure and success of five years, the fight of engineers who supported the success of GREE is now revealed



"I've been offering social games since 2007GREEThrough examples of failure and success in the technical aspect, I will explain its know-how and necessary technology. In addition, I will also introduce about the GREE Technology Stack, a framework to provide from GREE based on those experiences "GREE Social game 5 years technical failure and history of success ~ Introduction of GREE Technology Stack ~"Has become quite dark content, Mr. Masaki Fujimoto who is Director of Corporate Vice President of CTO Development Headquarters of Gree's Development Headquarters and Mr. Daisuke Kajiwara of Infrastructure Administration Department of Infrastructure Management Division of Gree's Development Headquarters also develops one after another It was done.

The degree of attention is also very high, full of people.



This time I tried collecting it together with presentation materials of the day so that I could read this lecture as if it was in the place of presentation.


Fujimoto:
Well then, I hope to start a session. First of all, thank you for your kindness during the busy schedule. 60 minutes We will talk about our story. I'd like to talk about "GREE social game 5 years technical failure and history of success". As for something, before we really came out a name called social game, since no one said such a thing, we have been doing what we call what we call now social games now. So, when you do that kind of things, there are really many kinds of failures. It is natural, but I've been doing it for 5 years so I have it in various ways.


By the way it is still so, I misunderstood this morning, even now, 1000 emails in the morning and e-mails arrive on my cell phone or something like that. I am glad that there was no service damage. Because there are many such things, there are such things and so many things There are a lot of things like that, let me share the places I like and tell stories about something that will help anyone when you do something like this I wish I could. Since Kajiwara here has been watching the back end of the GREE server all the time, I wonder if you can have various stories to be a culmination of five years.


The second half is like a bonus, but we are thinking about sharing know-how like "I'm doing" like these sessions and various study sessions as much as possible, and I have made various stories It was. Since we are in June, we have started the period from July 2011 to June 2012. However, as a goal for this year, not just such intangible sessions and something like ourselves made It may be a library of various softwares like such as document or document, but release such kind of thing like this is open to the public ... ... Here is written as GREE Technology Stack, but somewhat naming it and publishing it We are sharing technical information with you, the first thing is "GREE PlatformI hope I can make things exciting. In addition to doing various services in the future from now on, I really have to compete with companies all over the world. I think that we should be able to speak lightly even in the sense that we should press on to share it with you and put pressure on ourselves. So I think it would be nice to have a friend for about 60 minutes.


I will introduce myself briefly, and I will revise it to Mr. Fujimoto. Thank you very much. I am doing something like GREE development manager. So, I thought that I should not do it forever, but recently I'm doing netoge only recently. Although that is okay, I was doing such a thing, and I had these sessions last year. At that time I talked with people in the server and online games, but it's not like that, it's a person who talks like a client who ordinarily made a client etc. in the past year Becoming a company, it is getting really interesting.


So, I think I will be talking about server side today, but I hope you will enjoy it. Since Kajiwara talks about 30 minutes and 40 minutes from now, I think that I am glad that you can grasp something interesting. Thank you in that place.


Kajiwara:
Hello. It is called Kajiwara. I am, the reason for starting programming was that my father was making horse race anticipation software, and it was influenced by that and began programming. I entered GREE in February 2007, and since then I have been watching the back end of GREE, which is the main task.


I entered the main theme quickly "History of GREE and social games", but at the beginning, I did not call it social game at the time, but in May 2007 "Fishing stationsService has come out. From there, I feel like I'm out of game with in-house products as far as six products. From me, I would like to introduce about failures I met during the 5 year social game operation and how I responded to that failure.


Although I looked back over the past five years as I was making this material, there are many embarrassing obstacles and so on and there are lots of embarrassing people to talk about, but I will talk about it. Although I came along with categories, first, "networkIt is a case example of failure on the part.


At first, there are dozens of servers in the rack, but there was that "the switch traffic on the rack ceased". There is a limit to what the wire speed of the switch seems to have a fairly limit and what kind of thing will happen is somewhat unknown, but the response of the server gotten quite late and investigated what is wrong Even though the imagination does not work to the point that the network is bad, it seems that the application is bad for a long time, when it is investigating whether the database is delayed, in realityMRTGLooking at the graph like something like that, I discovered that the traffic was scrambling like this, which is a failure that something like that happens as well.

As a countermeasure, the server which traffic easily goes out has been decided to a certain extent, and it was decided to divide the rack as much as possible and to put the service. After that we put traffic monitoring properly and we monitored to skip the mail if the threshold is exceeded.

Next time, "The NAT table overflowsIt is a case called.


This is it, when communicating with the outside from GREE 's web server, the web server is not only private IP, now there is also an absolute NAT server, but at that time I did not have the URL or anything yet Although it is a server of GREE, there are many things that it communicates in the program, so we first decided that we should do something elsewhere. Then change internal communication to private IP. And we used the forward proxy to communicate with the outside and changed the application to communicate using it. Even so, when the number of forward proxy connections got too much to stop functioning, we set the server to have global IP and keep global communication as it is.

Next is "DNS query became overhead"When.


This is also an early stage, of course it's not just an outward domain, but the server inside the GREE service inside has also had a local domain and went out of its way to draw it. Failure like DNS lookup failure seems to be occurring quite a lot, and failures like name can not be subtracted have come to quite occur. In contrast to this, I changed everything so that I can subtract IP without using names. However, there are places that can not be changed to IP, for example, on an external server, there are also servers that are internally routed by DNS round robin, and IP can not be written about that, So that it overcame overhead by caching for a certain period of time.


So far is the case on "network". The next most is "MySQL". GREE is database storage, so MySQL is mainly done, there are a lot of things that I have been using for the most because I use it.

This is the main configuration of MySQL, but it is a configuration that is often well-formed by the configuration of Master-Slave. There is a Master, there is a Slave to replicate, from the Application server, Write is going to Master, Read is only throwing SELECT to Slave is a prerequisite. It operated by this.


First of all, it is the first case, but after all "Delay of replicationI just got up.


It is the simplest way to reduce the load on this as it is the most likely replication delay that this update gets bigger and SQL thread processing can not catch up. One thing that tends to forget is one session, or when I wrote an application that writes data to the same record and references that data in the process of seeing a single page, as soon as it is updated As I refer to it, there was a lot of things that I had a difficult time keeping up with replication and there was no data. It can be prevented by design, about this.

So, what kind of correspondence did you have is that having the cache in the session is the easiest. It is an effective method when using it in that session. Some time later when data is about to change, we are also forced to skip reference to the master.


Also, in the development environment of GREE, I have deliberately delayed 1 second in order to prevent such delay, and I have taken a system that I notice as much as possible during development, so I have not seen it recently.

Next is "MySQL Master Host Down".


This is also quite occasionally Master host down, I think that there is something like how to switch, I think that it is the fate of using the web industry or MySQL. Switching the host down and switching the master is quite tough, check Slave 's binlog (binary log) and find out which one is the best and promote the completed server as Master I decided to reset and I have to reset the existing binlog in that Master. Often this is optimized, you optimize it at the moment when you switch back to Master, and it gets locked again, so it will happen again, and then switch to another Master with a new Slave to CHANGE MASTER TO.

Also, if there is a file that manages the MySQL server, it will also distribute the file to the web server and change the write destination, but it is quite difficult, so as an approach to this, we have MySQL We developed a proxy that was doing something that proxy switches arbitrarily. This nameG2proxyI mean, I detect the host down and switch the master of Slave. So, this host down detection is pretty severe, and there was something like something to fail occasionally, but I managed to get through it somehow.


About g2proxy, it is one function that Master switching is not the main task, multiple slaves can be set, g2proxy will do load balancing for that Slave, When.


Since we can also weight it, for example, I think that you have not survived the memory yet when you think about putting in a server when you add it. At that time, starting with a small weight at the beginning, gradually putting it in the memory, it finally became possible to operate like weighting to other servers. It is a place to do connection pooling, and to do master switching that said earlier.

next,"Delete MySQL records"What kind of case was there is to say that cases like DELETE occur frequently occurs during the game, consuming items , I had to erase the item, so it was quite frequent to issue DELETE for deletion of records, and there was something that gaps and delays were likely to occur.


We decide the rule, add the deletion flag, manage it, decide the rule · operation to decide later. As an advantage, you can delete it slowly, so you can run it at midnight and erase the flagged record slowly. After that, there is a great merit of being able to refer to deleted data, and it was impossible to check that the actual record was disappeared when I got inquiries. Were you actually writing in the past binlog? There was quite a lot to have to investigate, but I think that if you add a deletion flag it will be beneficial to be able to look it up later.

later,"When adding a server".


In GREE, there is a server replicating a dedicated standby server once a day at midnightTarAlthough I'm only consolidating with tar, I bring a guy that is solidifying with tar, unfold it and restart replication. Since there are a lot of days during work mainly, the binlog written from midnight until the middle of the day can not be read, of course, you can not read it, and when you do it suddenly like Start Slave, the Master gently goes to read the binlog Charmingly, disk i / o is increasing, memory was overflowing and different data came and the master dropped.

In response to this, we changed the size of binlog, which was 1 GB in the past, to 200 MB. Even so it did not work so easily, so I created a tool to load binlog little by little, so I read it step by step and gradually read it as a stack and use it when configuring the server.

About 80% of MySQL's bottleneck is "writingWhat is it? For those that are intensely written, for example, it is quite a lot of information that fetch information and friends' new arrival information are fairly writable, and normal MySQL can not respond to it.


As a response to that,FlareIt is common to use the key-value-store engine developed by GREE.


We also do database partitioning or table partitioning which is often called sharding. For this, the library of access data corresponds to sharding, saying that the table division is 100 divisions, assuming that key is the user ID, take the last two digits of that user ID and take the 0 th to 99 th Let's say. By preparing tables 0 to 99 in advance, if the guest of that user ID comes, which table is automatically computed in the library and skipped as Select and Insert to that table There is a library, and there is a library that you can easily deal with sharding by using it.

After that I wrote about it by hardware such as SSD, but recently I entered SSD Fusion - io somewhat well, so I have responded to it almost by the above two things so far, It is troubling problem to say, it is OK to divide, but if it is said that it can be merged from there, it is quite difficult, so it is a problem that there is actually no use of SSD. And if you say table partitioning, you can divide the table that loads seem to be high beforehand into 100 pieces, put them in one database, then let's split the database when the load becomes high, so that it can be distributed Design from the beginning in advance.


It flies a bit and is an explanation of Flare, but I'm using this Flare recently because it is quite intense. Flare is middleware of key-value-store under development at GREE, and I used memcached as a feature, but it is persistence of data not like it, clustered data replication, If you partitioned in the cluster and cluster repartitioning, clusters can have 40 GB and 20 GB of data each, or such partitioning. After that I can dynamically rebuild it, Flare's backend or data storageTokyo CabinetIf you are using and adding data to the Tokyo Cabinet and deleting it, fragmentation will happen. It's necessary to dynamically rebuild it to defragment it, its capacity so much that the capacity of Flare will get bigger, it will be used. Dynamic reconstruction is necessary to make it compact, I use it quite a bit. After that there is node monitoring and failover, even when the node goes down, it fails over and there is a characteristic that human beings can continue the service without working. Also, I write the request proxy anywhere, so if I set get set to one server in the cluster, in fact it will proxy that request and retrieve the data even if there is no data on that server It will be. In terms of performance, writing performance is quite good with MySQL and so I think this is the best in that respect.

I think that middle-ware of such key-value-store has own company of social game industry after all. Flare also opens once in open source, but there are things that it can not reach the itch without having to make it by themselves, so in different ways to make it on our own and different companies alsoTokyo TyrantThere are some things, but I guess they are going to make themselves because they do not reach it easily after all. Flare is still expanding its functions and various functions have been added. A function which throws it close to IP like recently was added.

Also, in the data storage "MemcachedI'm using what I mean. The problem that happens when using memcached is "problem where key is not distributed".


If it says something, it is a case where reference to a specific key concentrates like master data. Master data pulled from the database, such as boss information or item information like information, stuck in memcached. The boss' s data, for example, the id_ 1 of the boss is information that the early people who started the game frequently refer to, and items that have items or items are frequently referred to Because it was something to do, it was quite biased that requests flew to the same server a lot. On the other hand, it is suitable for user data such as tens of millions of items and tens of millions of user IDs. If it's a key it's like a key that has tens of millions of user ID's. In that case it can be distributed pretty well, so the request is not so biased and there is no problem with this.

Eviction The problem is to put it, the correspondence to this is not really cool, but I tried to add a random value to the key. For example, if id is 1, you can add _ 1 or try adding 10. If I thought it would work out, there was something that was not scattered at all because it caught on a bug that did not see the last letter of the old memcached. I am sorry but I have taken such countermeasures.


Since GREE uses PHP,APCThere is a cache extension called "Cache extension" which usually does not have been recompiled to the PHP source, but since it looks like another local cache, you can use key-value and get set can be used, so get The set is like an APC store, but you can save it so that you will put that data in one web server there. The lower one is using the main.

So, we skipped ahead of timeEviction problemFujimoto says something like this, since the size of the data is memcached as it is, the size of the memory is the size of memory, so there are restrictions on dozens of GB, 10 or 20 GB . When it overflowed, it was recognition to erase from the one not recently referenced in LRU, but in reality memcached has a memory space corresponding to the value of Slabs and an error in that Slabs The view was occurring. So if that memory is full and you go to set the key and the value of that key is a Slab that has not yet been assigned, only a few Slabs can be allocated, using fewer Slabs, and that value When a set that matches to it comes, as soon as we have just entered the key we just added, such a thing happens quite well. I saw something like Memcached's community that seems to make something that will automatically adjust, but I have not been able to grasp what's going on recently, which means that I really have to restart it. It is not so cool.

Go ahead and "MonitoringWhat is it, but first one "Monitoring alertsAlthough it is monitoring of logs, I will do something. this isNagiosI used it, forever. Using Nagios, Nagios' stress limit came and I tried to divide Nagios, but I can not keep up with the increase in the number of servers, even though I'm watching the whole server of GREE Because it is a tool. As we can not tolerate the increase of servers, we created a new way to catch up with the messaging queue as a response to the overflow of the supervisory queue called "Awacs", pulling it and throwing mail through error filtering It was. This is also a product made with GREE.


Next, I will do surveillance, but I usually do it every 5 minutes to watch.


As I do every 5 minutes, the surveillance works at 5 minute intervals. I will monitor it in 0 minutes and I will monitor it in 5 minutes, but when a fault has occurred in the meantime, I notice a fault for about 5 minutes There is something that does not happen. That is why there is a lack of monitoring. It is better to do it as soon as 5 minutes. Another reason to watch every 5 minutes thereafter is that if the monitoring request comes flying every 5 minutes it will take time on the surveillance server, so it seems like to sleep for 5 minutes sleeping for a while , It is an expected value, but it is structured to be able to monitor evenly. Also, it is designed to check every minute for severe places. For example, we are doing a delay check of replication, which has critics flying if the position is not advanced, this is skipping in one minute. I feel that such things are changing as necessary.

As for monitoring, the battle that continues to increase the number of items to be monitored every time a failure occurs continues for a long time. Initially we did not monitor the usage of inodes.


The reason why we use such inodes so much is that the mail magazine is sent to all users first, but I have been to the user after touching the flag management file, but it is quick to overflow, the inode has increased I did not check the usage properly, so I could not touch at all and I could not send mail, so I tried to check it properly.

After that we also monitor by replication check, but it also does the automatic restart. I'm not quite sure whether MySQL is buggy, but if the network is broken, the status will be OK as a result of show slot status. However, when setting the contents, it is happening that binlog does not flow at all, this is not well understood, since we do not set the naming slave like reconnection, we respond by shortening it as short as possible . It seems that MySQL table data size will not increase and check the data size twice a week. And server time is easy to shift. It is quite likely that the hardware clock and the system clock are out of sync, so I will put it in the unit. When I say what happened,ClinoppeIt will be said that my birthday will be misaligned.

next"Monitor resources"is not it. Monitoring resources monitors CPU utilization and disk usage rate. As the number of servers increased, at the time I was usingCactiIt is called a fellow who also crawls and goes to see the server. At first I split, but as servers increase, crawling does not end at all and I have to think about the next one.


Following its previous history, I was doing MRTG at the beginning. Next from MRTGMuninI went to the guy, but Munin 's agent was said to be heavy, becoming agent phobia. Next isGangliaWhat is it, is Ganglia 's agent okay? There is something like it.

I am using Ganglia now and customizing it. As for the monitoring items, we take whatever data we can take, and look at it later when a failure occurs, we will see what kind of graph it is hanging at the time of failure. I often check items to check, such as disk i / o, load avarage, what comes from the OS, and something like the number of MySQL queries. I think that this can be done without Ganglia, but I also take such things. And since that also takes that, Flare, so I'm also wondering if there are sudden increases in get.

after"Cheat countermeasures"is not it. Everyone seriously seriously because it is a game. I am serious about cheat countermeasures, right?


It fairly felt that direct entry of the URL was quite large. This embedded a hash value in the URL of the avatar's image. I do not want it when the URL gets longer, so I thought about 8 characters or so, I thought it would be fine, but the user also fiddled with me by myself and skipped the request. This will not give up already with 8 letters, so maybe that timeSHAAbout 40 bytes, I changed this as well. After that, I was quite done to have serial numbers of images. It is easy to read images of items, images of cards, images of monsters, etc. 1.gif or 2.gif. There are some monsters on the capture wiki when you notice it. So, recently I've been making hash of file names properly. Let's be careful.

later"applicationIs it? How to write an application is how to define and throw SQL, but there are libraries that dynamically generate SQL queries, so when MySQL's slow log is followed, It is quite painful to see while searching for what this query is coming from.


Corresponding to this is easy, it is our answer to write queries as solid.


Well, truly that SELECT, stack log is something like a table name something later, I wrote this in a solid stroke later, and when I do this, when I later go out of the slow log, it is best to say that it is doubtful as it is I am thinking. I do not use the O / R mapper as a basis, but I use some things that use queries dynamically, such as analysis. As this is quite handy for developers, there are some people who are still dissatisfied with the developers, some of them from Rails say sort of things like "Why are you writing stuff!" Or you like to be like an O / R mapper Because it is made to be made, there is also a task to stop there.

After that, quite a few queries which differ only in the same query or parameter are issued, and so many are quite a lot, correspondence to this is "Visualize queryIt is a guy who will try to make it look like it. In fact it is only possible to find it automatically, but if you do not get there, visualize it and put together the query ... .... "WHERE ~ IN clause" or insert inserts and use bulk inserts to make it more efficient .


Query visualization is done like this and cascade comes out afterwards, but it is a database or MySQL or a KVS library, so integrate there and consolidate it beforehand as a variable and leave it to the end It is a kind of guy who will put out the contents of that variable when displaying the page in a way.


As I do this, it seems that it is easy to understand, because quite a truly throwing fellow who really throws out will come out as invisible. Also, writing elapsed knows the processing time and also knows that it will take time to see this.

After that the source code has been managed one by one at GREE, and when doing this it did not work well for deployment and merging work well enough for everyone to compete and it was not so good.


So I wanted to do something like loose coupling, so I made it into an API, so I could write it in a different language as I did this, and I wonder if it is OK. I thought so, finally its loosely coupled recently has progressed, even though it is an in - house game, you can finally create a game that uses GREE 's Platform API to take user information and replace with friends. Recently, the communication part between Android and iOS application does not use PHP after all, so we provide the implementation which can be made with web API about that part.

Then that "Image storage"is not it.


At first, I put the data of the photo for each user in the place of storage A, but as soon as storage A gets full, I have to move all the photos of user A There was a situation in which it was impossible and this movement was a bit crowded.

So I thought that if I overflow the disk I thought that I would buy a large disk but I bought it and put it in, but since the day full of overflows comes, considering a different approach, I think that this is probably a lot of other things as well , I also made middleware that decides and saves storage on an image basis or on an image basis. this isNanofsI told you that for some reason this is written in Ruby, but this is the author's intention. This means that the photos A and B or user A's photos are written in such a way that they are written to free storage each time.


next"Development environmentAlthough it is a story of it, engineers are also increasing recently, and at the beginning there was a time to share one server with a virtual host by all. When doing this, when svn up somebody svn at that time had a very heavy load, so it seems that there was a disk i / o about to interrupt work. There is a person who svn up at cron on cron, and there are many obstacles just around 7 o'clock, and that server is taken from inside the company to the gateway server and the server is switched to SSH There.


After that, it is now time to grant Linux server one by one, install from CD. This was continued until recently, but when doing this, I will place the server in the server room of the office, but there is no space or why the installation CD is always gone, someone lending it There is something like that.

Recently I built a virtualization environment. This is built using the Xen cloud platform, and when you add a server to that cloud platform this will automatically allocate it and instantiate the Xen image and it will seem to start up. With this, it is possible to create development commands with just one command recently. So, I am making various images now.

It is nearly the last person. Other story about operation, but one is "Let's create an environment that makes it easy to identify the cause of the failureIs that it? This is because the server was few in the first place, loads are getting mixed up in the web server by mixing various services, and the load is still going up, but what kind of service the load is high is still unknown Is not it? In fact, even if you divide it from the one you expected, the load is high with another service, and there is something you want to share properly if possible.


Another one was the time when memcached and apache were living together, and when doing this, the cluster memory can be made as much as the web server, and it feels like "doing" However, since this is also dragged by one side and a connection error also occurs considerably, I made a dedicated memcached server. I changed this as far as the server allows.

Lastly, career, still server of Garaka is the center, so it is easy to be influenced by the specifications of the career, but I do my best not to be influenced by it.


There are quite a lot of connections refused by the smtp server, which somehow will accept if there is a global IP, so I make clusters and transfer a lot of global IPs. Also, there are carriers who keep keeping the cache, somehow, switching of DNS is slow, I have changed the DNS, but it came to see that the request came or I could not see it, We continue to operate with Virtual IP even now.

That is the first part from me. I talked about something like a failure and correspondence. In the second half, please explain GREE technology staff based on that.


Fujimoto:
Well, it changed from here, there are only 15 minutes to go while saying the first half, well Well there are many thoughts if you do it for 5 years. Although I think that it would be nice to have a story useful for everyone. There are quite a few interesting episodes, but if you talk to me in more detail you will get angry, so so so so.

Well, it is because we are only talking about the past, I would like to end with the future story of the future. As I mentioned earlier, I talked about here last year, and then at that time, "How to make a large social game" is "server side technology understood in 60 minutes" or something like that , I thought that everyone would come to me quite often, I told that kind of story with MMO games like this, but if it's out of place like that, I'm doing it like this, I'm talking about such a difference, I'm talking about concretely how to do the distribution like this.


Last year I think that it is rarity like CEDEC and such a place, and people think that I am very happy, but it seems that it usually is a normal year after a year. Or the person who spoke last year is over there. When I think about what has changed about a year or so, this has been exhausted here and there and there is what is now, but the device platform shifted from the Garakaisu, feature phones to the smartphone It is a place that I feel amazing that I am doing it. People who have only Garakae are the biggest, especially because they feel that they are almost not seen by developers. Of course last year was also normal.

So, there are plenty of platforms, and if you try to provide a service with a smartphone in the first place, there is a lot of problem saying whether it is a browser or an application in the first place, a story such as what to do this is coming, then, Even if you say hook, it's Objective-C when you try to make it on iPhone, and Java is Android. If you render seriously on Android you will not see performance as you all have experienced. After all it has to be rewritten in library like this and use ... ....


When thinking about trying these two things, Windows Phone or something like c # will be written and it would be better if this is acceptable as expected. About a week or so, Mr. Samsung is issuing a press that makes OS independently, honest I am wondering if you would like to wish, but there are places where we have to work hard.


So, whether it is a browser or not, it is quite large, and I think that this has endlessly tug of war. There are many browsers in Japan, but when it is overseas, it does not have much service offering for browsers. This is a sensitive story, but when you simply charge it, is not it 30%? High, I do not. Something like a bit high. It's said that releases are too tight and everyone else escape to the browser. A subtle tug of war begins ... I think that things like something like that will happen, and as we think we both have to think thinking about it, I will shake it.

Well I go to the game, but since the browser normally does not think about anything and it does with power play, it will only get about 10 to 15 fps, so such a game that requires fps is still tight While doing. I think that it will also rise in performance next year as well. There are really various elements, so it is OK and honestly decided if we do this, so it is honestly that we have to manage somehow.

Also, I'm really doing it, but when applications are smartphones I get complicated at once, it's a browser shop to write HTML, but I'm talking about HTML files seriously It is a programming content of the world which is completely different from those who was doing ordinary webs anyway when I do Canvas or something. In the first place you have to remember JS and there are machines and something you have to remember CSS 3, and if you go to native people there is a story like 3D programming and there are some middleware and so on, but also studying such things It is a place to say that I have to go.


Well Oh well, it seems to have been too easy, but generally, even if you make the same thing normally, looking at it is about 3 times as expensive as trying to do something with a smartphone compared to feature phones I think that I wonder if I should tell you recently that it is being spoken. I do not have to do middleware or something like that. Unity and others are said in the way just before, but if you use middleware it's not easy to say whether it's a bad game or something like a bridge to use it or something like a library on that middleware I wonder if I should use it a lot.


Afterwards that there are open source things in the UI library, and libraries that Facebook says are also written by themselves. If I do not do that kind of thing, I think that it is a time when everyone is doing things such as cost rising steadily. So, as far as the network is also done normally, I think that this is a market close to the ordinary net with the market of the MMO that was up to now, but if you do something like ordinary socket io, the communication environment Is not it premised that it is unstable? When it comes out, it seems to be various severe, how do you try to synchronize data? This is done well in the real game by locating each one of various actions of the game as an event locally and putting it in the server at somewhere and verifying that the order of events is correct in logic type at the server While updating master data on the server side, everyone is doing the same thing.


The cheat countermeasure is really severe when it comes out. Since I am doing it on https, I think that it will not be able to be found in most cases, but when I look at the root drive like Android, I proxy https locally and I will be doing things like http like that, It is quite https so it is not like I can not see data, I studied at a study meeting with Cyber ​​Agent during this time. This seems to be tough with this, I guess.


If you think that the servers are the same, it is not so, I am doing it even now, but as long as I normally do something to do something like this, Is it OK with the server? It will be something like that. Then it is going to be quite difficult. So I have to shift this neighborhood as well. I think that opening up is going to be difficult in any case. Well, now I heard that everyone is also realized.

When I go to another smartphone, if you are serving with Garakae you can do it only in Japan, but if you do it with a smartphone, you talk about it is not a reason to do only Japan alone, just do it overseas It's like a story like that.


Well it seemed like PC, but if you only need to catalog the message in English for the time being, it would be better to have it out. It is said that the market is wide because it is good, but since this comes from the inside and from the outside also the walls are gone, it is supposed to have to compete with developers around the world, Well, we are getting along as hard as everyday, and I will do my best. GREE also feels quite a bit on this side that I am doing my best while thinking hard.


Even one of them is a sharp point,GREE Platform. In September of last year it was still a couple of months, so it seemed like this would be what happened, but once you do it for a long time the application has become 1000 or so, and the partner is also hundreds or so I really appreciate being able to do it with. That's why we have to keep trying to provide the merits we are doing together.
As I told you at the beginning of the story at the beginning of the story, it is not just that we share know-how like this, but when we do all things like our technology base, our company will collapse It might be, but if you go out with places you can do together and make it open source depending on things, if you say what is convenient for you, if you develop together, the speed of development I want to raise something.

Really moving overseas and the fast moves will be fast and the place where the cost is low is quite low so if we manage to do something like that, if we do not really do such things seriously, of course When I start thinking about such things with my employees, I think that it is not only for employees but also for software libraries and frameworks, etc. I think that it is interesting that it is interesting if it is said that it is interesting to say to the developer that it is not exposed to the severe eyes of the partner, or this is not only done in Japan, and it is interesting if it is possible to make such an environment I am thinking.

Why did you start thinking about that? As a different idea, when I did this like 5 years and 6 years, it was also the story of Kajiwara as I said before, but everyone else is making it. For example, although there was a story about DNS a little while ago, there is a person who moves the DNS server in anything, and it is this open source so well, so if it is okay would you like to see it? She seems to have been proud of himself when he was 7 to 9 times faster than Bind.


Or making something like a console like this server.


Oh well later, what I said earlier as key-value-store.



Not only around here, when you are making games at the client, such story, tools for games, and Flash as well. When coming from Garakey, there are so many Flash lite, but because there are problems that iOS and others can not play.




Also, as I mentioned earlier, it seems like a library, and this is a data access library.


It is a common story, but as you actually do it, you will need many things, so there are things that we can use conveniently, so there are things like this, with the framework of ordinary web applications There is also a possibility.


Also, even for web applications, it seems pretty annoying what kind of design is the best after all, recently I think that as the scale gets bigger, we know that GREE is quite like PHP In many cases I write many things, but not only that one place is written in Ruby and it works like something that I want to be able to do, thinking about something like a somewhat loosely coupled architecture It becomes necessary. I think that if it is recent server performance, I think that such a thing is permissible, so it is sort of such thing.


Today I will skip without time, but there are things such as making various things at first, and if you make various things at the console separately, it would be rather easy if you make games with smartphones Is it? I wonder if it would be better to use all this separately, whether this is the best or not, I would like to publish it using whatever you like It is.



So, for the time being, it is Flash lite that was the first thing to say that it is the first one, but here is a library like JS like to play in HTML 5, which is out for the first time and I hope to keep going on like this We think.


I'm sorry today, I'm afraid that I do not have the time and I'm challenging because I do not have time.

With that kind of feeling, we are sharing the same kind of technology as GREE with everyone, it was a story that we plan to do as many places as possible as a Platform.

Incidentally, but what is, at Toka smartphone you are doing now, I'd to talk with that smartphone this year, the Tteyuu the time being I that you are doing what has been done in the service of PC Toka or Garake until now the smartphone Toka the Tteyuu Let's do it many, after the Toka place Tteyuu of like a comparatively simple 2D of the game is the main, after Toka is anti-transplant there was a console game, Stein's gate ultra-Toka (in this case is not heard in a low voice) is what, if there is Toka such talk, this kind of still have thought that many's a now trend me, this three is the Tteyuu such a place of technology and put it the other way around month, to come become the great commodity in about half a year, equipped also Toka roughly of know-how That to, and I think that I wonder if the come out is what many also Toka library, to come steadily down is the Tteyuu cost to make, Do not unless we work hard with everyone we to go down, and I think.


Well then, after all, it seems that you know well that the technical base alone is not a constituent element of the game, so what kind of thing is it supposed to do, so that as it continues doing various things with that I think.


Well, challenging on the technical side Well, there are two things that I think is interesting if I do it next year, next year, the latter half of next year, there are MMO, various games, but after all Is not it possible to break the world, there is a story like it. Well, every smartphone will shorten the restraint time anyhow, and the communication is also unstable, so if you prepare a really serious real time it will be pretty tough, I managed to use such loose real-time nature and managed to replace 1 It would be fun to be able to make a massive online game that could make a world of 100,000 people or 1 million people, not million people.


I wonder if you can really do it around 0.1 fps? It is a challenge that I think about something like that. I guess it is quite probable that the other one like a game using a huge high-end technology will come out as the device evolves? I thought it would be nice if I could get involved in these places and make various things.

Even so, technology is becoming a differentiating factor, I think that this neighborhood can be followed as a technology store. I think that it is interesting to be able to do such things on the server side, the client side, and elsewhere.



I thought that I was going to be frightening such a story, but since time has passed so much, I'm doing it by skipping a bit, but if I thought about the last night I thought I could do it surprisingly If you want to try such a challenge, come on to GREE and advertise that I'd like to try with me ... Well, for the time being, I will talk lightly and summarily at the end I will.


The story of the first half is the story that we experienced a lot of different things, especially as I came together quite a lot, so many different hard memories revived and it was quite a hard work, but that place is useful I think that it is bad.

From that point on, the situation has been changing all at once from this year around this year. Especially if you are trying to serve with Mobage as a smartphone or else it has to do something else in the world, not only in Japan, if you do not do something like that it seems like a little futuristic, so at that kind of place We think that we want to make a lot of things, and we do not have to stick to Japan and Japan while sharing such things with everyone as much as possible, so that we can bring this whole industry to growth, I think that I would like to create an environment where I can do such things together, so thank you.


Well, it's about an hour, but thank you very much for your cooperation. So I would like to end our story. I was very rude at the end of the last minute. Thank you very much.


GREE Engineers' Blog | GREE ENGINEER BLOG
http://labs.gree.jp/blog/

in Coverage,   Software,   Web Service, Posted by darkhorse