Pages

Friday, April 30, 2021

How to Unclog My Shower Room Drain

A few weeks ago the floor drain in my shower room started to have trouble draining properly. Unclogging it was quite the experience so I tweeted about it. I didn't post pictures because twitter.com is cursed enough already, but more than one sicko has asked to see them, so here you go, the full story in detail. It's gross, you've been warned. Hopefully this helps at least one other person out there make sense of the drainage system in Japanese apartment bathrooms and avoid a similar surprise.

In the past whenever my drain showed signs of getting stopped up, I poured pipe cleaner (or "pipeman") or fizzy cleaner tablets down the problem area, rinsed it after a while, and that did the trick. This time, dumping tablets and cleaner in the sink, shower, and floor drains wasn't enough. I had to go deeper.

Pipeman couldn't save me this time.

Here's what the drains look like, with some residual grossness from drain water that overflowed while I was experimenting.

Raw and unfiltered.

The floor drain trap (circle on the lower right) holds standing water. There's a grate over it, which is supposed to keep stuff from getting into the inner part with the water, which has a cylindrical plastic piece you can remove for cleaning. It's icky, but I'd pulled bits of hair and gunk out of there during routine cleanings in the past. I could see two holes on the "north" and "west" sides of the inside of the trap after taking the center cylindrical  piece out, so I got a long wire brush at the 100 yen store to poke inside them. I figured the arrangement was something like this:


I tried swishing the wire brush through both holes, but it came back clean. There was no blockage there!

I felt around the inside of the drain trap some more, confident that I'd disassembled it as much as I could. I could feel an edge around the inner "ring" of the trap, but no way to get my fingers any further.

Then, while fishing around randomly with the brush, I found another opening. A third hole, beyond the inner ring.

After pulling back the wirebrush from this hidden opening, it had some hair and soap gunk on it. Bingo. I pulled at the hair, which peeled off from around the whole ring. After a few more passes of the wirebrush, I had pulled out the following monstrosity.










Gross, but fulfilling to remove. Like clipping off a big toenail.










It actually didn't smell much, maybe due to all the pipe cleaner and orangey fresh tablets I'd put in earlier. I threw it away and ran the faucet to check.

But the drain still clogged almost just as fast as before!

I put the brush down the hidden opening again, as far as it would go, fishing out sometimes a few hairs, but not much. I jammed it in there repeatedly, trying to dig out something, anything besides frustration.

Then I landed the big one. Another big wad of scummy hair strands. They must have been plastered against the piping this whole time, dodging all past jabs of the wire brush. I kept pulling at them, getting more and more horrified as the mess kept going. This was the final boss, I could feel it. The final pile of ropey soapy slimy grimy gunkberg hair is pictured below.













Hard to tell with it all coiled up like that, but this thing had the mass of a small household pet.










It was basically a full head of hair. I could have sold this thing to a wig shop.

With the exorcism complete, I ran the faucet for a minute to verify (for real this time), threw away the demon, and went to go tell the long-haired human I live with that they're on dish duty for the next month.



TL;DR the drain arrangement is actually like this:







Sunday, April 11, 2021

Want to work at Atlus? Part 2: Job Postings


Disclaimer: I have no connection to Atlus, just taking a look as a curious surfer of the web. All pictures are from the linked recruiting pages, screenshotted early April 2021.

Job Postings

In Part 1, we looked at Atlus's recruiting site and general terms of employment for the company. So what actual skills do you need to get a job there as a programmer? A graphic designer? A planner? Let's see some job postings from the mid-career category page.



There are some application requirements common across positions:
  1. A personal CV with your photo and contact details (履歴書)
  2. A resume with your working history (職務経歴書). (Note: some places in the world just use the general term "resume", but Japanese companies separate into these two documents.)
  3. A filled out questionnaire which Atlus provides for download on the position page
  4. Certain development positions request some kind of work sample, depending on the role (see below for examples).
Let's look at specifics for a few common development positions: Programmer, Designer, and Planner.

Programmer

Responsibilities include programming the actual game software, as well as creating and upgrading various development tools, company-internal libraries, scripts and plugins for DCC tools (refers to Digital Content Creation tools, like 3ds Max, Maya, Blender).

The listing also notes that programmers at Atlus aren't limited to just programming, they're also welcome to contribute ideas and proposals in order to make the game even better.

Essential skills:

  • Programming in C, C++

Other desired skills/experience in any the following areas:

  • Work experience developing consumer RPGs/games is highly desired
  • Experience with platforms like PS4, Xbox One, Switch, Steam
  • Plugins/exporters for DCC tools
  • Shader programming (like HLSL)
  • Development experience using game engines like Unreal or Unity
  • Using middleware (like physics engines)
  • Graphics programming using OpenGL, Direct3D, etc.
  • Socket programming
  • IO programming (audio, file management, dealing with different devices, etc)

Work sample for optional submission:

A program you've created in the past. For example, an executable file and the source code, the file/code for some tool you created, some documentation or technical writing to reference, etc.

Designer

(at Atlus, this seems to be an umbrella position for many visual-related roles that might be listed separately at other companies. Looks like they call game design roles "planners", see the next section.)

Includes all aspects of visual design.
More concretely: Concept art, 3DCG (3D computer graphic) design of characters, 3DCG environments, motion design, event scenes (movies, cutscenes), effect design (like explosions, magic, rain), interface and UI design, technical designer (efficient workflows and development pipelines for HD graphics and video), riggers (technical animation, scripting, plugins).

Like the programmer posting, they note that designers at Atlus aren't limited to just graphic design work, and are encouraged to cross boundaries and share ideas to make the game even better.

Essential skills:

  • Overall:
    • Ideas and art skills necessary to clearly convey images to many other people
    • Flexible communication skills for working with many other development staff
  • 3DCG designer: Practical experience using Maya or 3ds Max
  • Motion designer: Practical experience developing motions in Maya, 3ds Max, or MotionBuilder
  • Technical designer: Experience as a 3DCG designer or motion designer, technical designer experience, and experience creating tools using scripts in various applications.
  • Interface designer: Work experience designing interfaces for games, or graphic design experience on the Web or DTP (means "Desktop Publishing", like Adobe design suite tools).

Desirable skills:

  • Overall:
    • Experience in game production
    • Experience in animation, or video direction
    • Leadership experience in the roles included in this posting
    • Experience managing the work quality and schedules of outsourcing companies
    • The ability to propose and create the production assets that are necessary for a given scenario or based on the game information that needs to be conveyed
  • Motion designer: 
    • 3DCG tool expertise, knowledge of scripting
    • Ability to create animation control rigs
  • Event scene creator: Experience creating game data using Maya or 3ds Max
  • Effect design: Ability to create hand-drawn 2D effects
  • Technical design: 
    • Specialized knowledge and technical ability related to shaders and shader programming languages
    • Knowledge and technical ability to optimize workflows and improve development.

Work sample for submission:

A portfolio (can be sketches, illustrations, 3DCG, video, anything that showcases your ability). If the submitted material is not your personal work, then please write concretely about the work you were responsible for. If it's some work that's already been published or sold, please include something that will help with understanding the content, if at all possible.

Planner

Game planners at Atlus are split into two categories: System planners mainly do things like create the game's rules, mechanics (systems) and do balance adjustments, and Scenario planners mainly draw up scenarios ("scenes" in the game, more like script or screenplay writing work).

There's a posting for system planners, one for scenario planners (experienced), and one for scenario planners (inexperienced) that's specifically for the Persona team.

The system planner posting is comparatively light on details, but that last scenario planner one sounds interesting. 


Scenario planner (no experience), for the Persona team

This role involves creating (writing) game scenarios, as well as creating the game data for things like event scenes and dialogue lines.

This listing is specifically for people with no experience producing scenarios. If you do have experience in commercial scenario creation (not limited to the gaming industry), please apply for the other "scenario planner" posting.
After joining the company, responsibilities for system and scenario planning work may change depending on your abilities and the actual situation at that time.
Also, this posting is only for the Persona team.

Essential:

  • Someone who can construct detailed worlds, characters, and scenarios (for use in a game)
  • Someone who has completed and released some kind of creative work into the world, for commercial purposes or otherwise.

Desirable:

  • Someone who can take initiative and be proactive about sharing ideas day-to-day, in order to make the game being developed more interesting.
  • Someone who has experience playing the Persona series numbered titles.

Work sample for submission:

  • 1 or 2 things you've made in the past
  • Homework task: Create a scenario starring characters from the Persona series that could be used in a game.
    • The outline/theme (1-2 pages A4 size)
    • The plot (summary) (1-5 pages, A4 size)
    • A specific scene or scenes (some key scene, like the climax or a highlight) that takes place in the work (minimum one scene)




All of the pay ranges listed for these development positions are the same as mentioned in Part 1, 213,000~440,000 yen per month, though the Director listing is a bit higher at 230,000~526,000. The two non-development positions currently listed are also higher: Project Manager is 238,000~456,000 and Music Licensing Lead (音楽ライセンス担当) is 238,000~545,000. These are just ballpark estimates though. Each listing says the range is an example, and salary will be decided based on company guidelines, taking into account the applicant's skills and experience.

They also note for all positions that everyone joins the company as contract employees, then they have the opportunity to convert to regular, full-time employees later, 0.5 ~ 3 years after joining.

At the bottom of each posting is a link to apply.



「PROJECT Re FANTASY - A Fool's Journey Begins」

Finally, the main recruiting site also has a banner linking to a separate site where they're doing "large-scale recruiting" for a new RPG, "PROJECT Re FANTASY."
 
http://rpg.jp/recruit/

Atlus's internal "Studio Zero" team is working on this totally new project, led by Persona series veterans (who've written messages on this site). There's some concept videos and artwork hinting at their vision for this new fantasy RPG. 

There's also a half-hour "Golden Recruiting Special Program" video (uploaded August 31, 2017). It's aimed at recruiting staff from the gaming industry, and has an intro and outro by Midnight Venus, from the Golden Theater (Catherine series).



The video features conversations with lead creators Katsura Hashino, Shigenori Soejima, and Shoji Meguro about this new venture, as well as some words from other Atlus staff about what it's like to work there.

As for the actual jobs on this site, they list positions for programmers, designers, and planners (and part-time designers).

*Actively* recruiting for programmers!

 Mobile game development (iOS and Android) is listed as a desired skill for programmers, so it seems this new title is coming to smartphones? The other job descriptions are mostly the same as the ones on the main site above, but aside from the part-time designer position, these postings seem geared towards more experienced applicants. The pay range for these positions is also slightly higher: all have (estimated) salary 3,250,000~6,700,000 yen yearly (so 270,833~558,333 monthly). Working conditions, terms, and other details about these employment opportunities are also mostly the same as on the main recruiting site.

There's a few other snippets of text and news on the new project site, but I'll let you discover those for yourself. If you do decide to apply, good luck!

Saturday, April 10, 2021

Want to work at Atlus? Part 1: Recruiting Site Info

Last time we looked at a translation from the Sega Tech Blog, which ended with a note that Atlus is hiring, and interested readers should check out their careers page.

What if we did that? What would it take to get a job at Atlus?

This won't be a full translation since this kind of information is very subject to change, but it will provide a snapshot of what to expect if you ever want to navigate a Japanese company's careers site and apply for a job. Enjoy it!

Disclaimer: I have no connection to Atlus, I'm just taking a look as a curious surfer of the web. All pictures are from the linked recruiting pages, screenshotted early April 2021.

https://www.atlus.co.jp/recruit/

Catherine: Full Body on the wall, Morgana to the side, but front and center under the company logo is... Jack Frost Decarabia!

Here on the home page there's a slideshow of company images, as well as a slick promo video [3.9 MB webm], [105 MB mp4].

At the top, there's a few headers which are common to most recruiting sites. The MESSAGE page has messages to potential applicants from directors and executives about the company and its goals. The ABOUT page has basic facts (name, address, date founded) about the company, and a breakdown of their different departments. Atlus's also has some neat statistics, like the number of titles they've developed and sold, the gender and age distributions of employees, average company tenure, and average amount of overtime work per month (20 hours, which is pretty low for a Japanese company, that's probably why they publish it here.)

Atlus by numbers: over 200 million total copies sold, across 239 titles released (as of October 2019).

There's also a timeline chronicling the company's history.

The History of Atlus. 1989's "Puzzle Boy" ("Kwirk" in North America) was their first title under the Atlus brand.

The PEOPLE page has links to employee profiles (no names, just job titles) introducing what their role is like. There's 13 in total, for both development positions (like designer, programmer, sound composer) and non-development positions (like corporate, sales, licensing). The profiles have interviews, games the person has worked on, example workday schedules, and short Q&A sessions.

This project manager joined Atlus in 2008. His favorite character is Aigis (from Persona 3).

Most companies have some form of the pages mentioned above on their recruiting (or リクルート、or キャリアー、or 採用) site. Atlus's SPECIAL section links to a nice photo gallery of the office space they moved to in September 2018, and to "働くパパママ座談会", a roundtable talk session between "working Mamas and Papas" about what it's like being both parents and company employees.

One of the company meeting rooms

Finally we get to the RECRUIT section, which links to a 待遇・条件 page, giving more detailed information about working conditions and terms of employment, and a Q&A page with frequently asked questions related to hiring. Let's look at the conditions page first.

https://www.atlus.co.jp/recruit/information/treatment/ on April 6, 2021

The first section notes that applicants are welcome to apply even if they don't have experience working in the game industry, but if you're not a native Japanese speaker, you need to have Japanese skills at JLPT N1 level (or equivalent). This is the same for nearly all Japanese game companies. Some companies say N2, some say N1, and some (Platinum Games) do also say "we will consider hiring highly experienced and skilled applicants who can communicate in English". But look at what else they say around that:

A couple more from other companies:

I don't think the JLPT is a very good measure of your ability to function in a native Japanese working environment, but that's a topic for a later post. The point is, if you don't know Japanese and you want to work at a Japanese company, you need to learn Japanese (many books have been written on how to do this).

Continuing down the 待遇・条件 page, there's more general employment information for mid-career and contract hires. Trial period for new employees is 6 months, base monthly salary for development positions is in the range of 213,000円~440,000円 (in USD, currently about $1927.62 ~ $3981.94), but for non-development positions the range is slightly higher. They also pay special allowances for late night overtime work, working on holidays, and commuting costs. Raises happen once a year (in April), bonuses are twice a year (June and December) and they've got some kind of "title incentive system" (maybe if the title you worked on does well you get a bigger bonus?). There's no specifics here, but as a general note, Japanese bonuses can be misleading. Sometimes it's unclear if the "bonus" is included in your estimated yearly compensation, or in addition to it. At some places, the company divides your yearly salary into 14 pieces, gives you one each month, then twice a year you get the last two pieces (depending on performance conditions), so it's not really anything extra on top of your expected yearly salary. This depends on the company, so read the fine print if possible.

Anyway, at Atlus, standard work days are 7.5 hours with 1 hour break, though exact hours can vary by position, everyone gets certain days off as well as annual paid vacation days... these kinds of details continue down the page.

Moving on to the Q&A page, which has 23 questions and answers about the application process and the working environment. 

If you aren't selected for a position, please wait at least one year before applying again to the same position. This applies for new graduate positions as well (and please refrain from applying for mid-career positions after you already applied for a new graduate position within the same year).

A lot of this page is repeat information from the previous page, or answering with policies standard for most companies, but there are a few interesting bits:
  • Overseas applicants are welcome, but they need to be able to communicate smoothly in Japanese and they will need to come to Japan for the final interview. 
  • Any information about student intern positions at Atlus will be posted on this recruiting site, or on their recruiting info Twitter account (@ATLUS_saiyo). 
  • For development-related positions, applicants can note which title or series they want to work on at the time of their application and this will be taken into consideration, but depending on suitability, they might start on a different project. Non-development positions (promotion, licensing) will work on various titles. 
  • For employee training and development, they have OJT (On-the-Job Training) for mid-career hires, and new graduates also spend a month in training with all the other new grads in Sega Group. 
  • Also, since Atlus is a part of Sega, employees can participate in other company events like SEGASAMMY College and Sega Development Conference. 


Last header: the ENTRY dropdown links to the same 4 employment categories as the recruiting homepage:
  1. 新卒採用、for new graduates (vocational school, university, graduate school). Hunting for and securing a post-graduation job is a Big Deal for Japanese university students, and this page reflects that. Usually students graduate in March, then start work in April. I'm writing this in early April, so most 2021 grads have just started work, and Atlus has already published application documents and guidelines for 2022 grads. On this page there's an example month-to-month schedule of the screening and interviewing process for different positions, and they're already accepting applications for 2022 programmer grads. There's also data from last year's new grad hires, including a monthly salary model: 2-year vocational school grads make the least (230,347円, around $2,100) and graduate school grads make the most (254,956円, around $2,325). Those numbers are for development positions (planner, designer, programmer) -- the numbers are slightly higher for non-development positions.
  2. 中途採用、for mid-career applicants (people who already have work experience). This is usually where most positions will be listed.
  3. アルバイト採用、for part-time or hourly positions. At time of writing, the only position listed here is デバッガー (debugger), basically playtesting games to find and report bugs.
  4. 障がい者採用、for people with disabilities. At time of writing, the only position listed is 一般事務アシスタント (general office assistant), an hourly position for administrative tasks.
Most Japanese companies big enough to have a dedicated recruiting website break down their employment opportunities into categories like these.

This post is getting long and we haven't even looked at any job postings yet! Those will be in Part 2 (link now updated).

Saturday, April 3, 2021

Finding Bugs Via Autoplay During Persona 5 Royal’s Development (Translation)

This is a translation from the Sega Tech Blog. In this post, Atlus programmer Takahiro Nowatari explains the system built during the development of Persona 5 Royal to automatically play through the game and find bugs. It’s interesting because he talks about things from an engineering perspective -- he goes over the problem requirements, time and resiliency constraints, result data, and the pros and cons of his approach. Enjoy it!

Note: This translation is for fan use only, and may not be accurate. Be cool, don’t repost without asking, link to this page, and credit Brando!

Original post (Japanese): https://techblog.sega.jp/entry/2020/09/25/100000





Finding Bugs Via Autoplay During Persona 5 Royal’s Development

2020-09-25

Introduction

Hi everyone, I’m Nowatari, a programmer at Atlus, and I’ll be your author for this entry of the Sega Tech Blog.

This time, I’d like to talk about how we implemented a system to automatically play and find bugs in Persona 5 Royal (P5R) while the game was still in development, and the results that it gave us. This post will be more about techniques devised for debugging work, rather than information about implementing the actual game.

That being said, I’ll be talking about the contents of P5R quite a lot, so if you haven’t played the game yet, I think it will help deepen your understanding if you’re able to do so before reading this.

[English site: https://atlus.com/p5r/ ]


The Motivation for Implementing Autoplay

When I joined the company many years ago, bug detection was done by playing the game with a video recorder hooked up to the development hardware, and when a bug appeared, writing down in detail the sequence of events leading up to it in a bug report (on paper) and submitting that as a record of what happened.

These days, video recording features are integrated into the development tools themselves, and bug reports are managed via a Web-based ticketing system, so the whole environment has changed considerably since back then.

Not just methods to report bugs, but methods to find them have also changed. Before, testers would spend hours glued to the screen, manually playtesting to uncover bugs, but now there’s been a trend towards automating the things which can be tested mechanically.

The average playtime to complete P5R is approximately 100 hours, so even if someone devoted all of their working hours to just playing through the game, it would still take close to three weeks for them to reach the end.



That being the situation, I wanted to somehow increase the amount of hours we could spend playtesting the game, even just a little bit. If possible, I wanted to create some mechanism that would allow us to validate the game all the way through to the ending. From those ideas, I decided to implement a system that would automatically play through the game and test it for us, without human intervention.

On Implementing Autoplay

There were a few problems standing in the way of implementing autoplay.
  1. No dedicated hours were allotted for this project, so we couldn’t ask others to do work for it.
  2. For the same reason, we couldn’t spend a lot of time fixing and fine-tuning the autoplay system itself.
About #1, for example, even if I wanted to ask the designers or planners to do something to help support this system, their hands were already full with tasks from their own areas of responsibility, so I couldn’t ask them to take on additional work.

For #2 as well, I myself was responsible for the game’s everyday life and dungeon parts (the parts where you control the player and move around freely), so it wasn’t like I’d have plenty of time after making the autoplay system to update it in response to specification changes from the design and planning side.


Under these circumstances, the final system:
  • Should rely on specialized data as little as possible, since there was no time to create it.
  • Should be able to handle specification changes and adjustments [to the main game], since there was no time for fine-tuning it.
I started working on it with this kind of concept in mind.

Also, as implementation objectives:
  • It should be able to play the game automatically from beginning to end, without human interaction.
  • By adding random elements, it should be able to check as many areas of the game as possible.
Aiming for something that could achieve these goals, I started creating the autoplay system.

The Implementation

Before explaining the implementation details, allow me to briefly explain some of the systems in this game.

One of the characteristic features in the Persona games is the calendar system.

The calendar system

In the game, everything takes place within a one year timespan, so as the calendar days go by, the game moves forward. In the extreme case, even if the player lazily just went straight home and slept every day, they would still get closer to the ending.

Good things come to those who wait?

...But of course, just doing that is no way to make progress. The player does have to beat dungeons and defeat bosses at fixed intervals in order to beat the game. Also, just sleeping the days away is no way to find bugs either, so I also wanted to make the autoplay system trigger various in-game events as much as possible. For that, we needed a mechanism to make the player character go not just to bed, but to all sorts of locations.

So the question here became: how do we make the player character move to target locations and progress through the game?

For the dungeon parts, progressing through the game means solving puzzles and gimmicks and arriving at the boss. For the daily life parts, it means talking to NPCs to trigger events, going to the batting center, and activities like that. By completing these kinds of events, the calendar days pass by and the player can reach the ending without getting a game over.

As for the mechanism for moving to a target location, the very first thing that came to mind was replaying someone’s actual playthrough data, or possibly designating those sorts of movements using development tools. But, implementing that wasn’t possible because of the circumstances I mentioned earlier (no time to prepare special data for autoplay purposes).

Because of that, I decided to implement a rule-based movement system which wouldn’t require any extra data to be created.

The core of this rule-based logic is a mechanism to search for and activate nearby event hits.

Here, the term “event hit” refers to a region in-game that the player can access and trigger some event from.

Examples of event hits
  • Talk Hit for talking to NPCs
  • Check Hit for checking treasure chests and doors
  • Go-to Hit for going to a different area
  • ...etc
By using these event hit regions as the target locations, we’re able to make the player character move to them and trigger the aforementioned events that move the game forward, instead of just running around blindly.

In our implementation, we randomly search for locations the player can reach by moving in a straight line, without being blocked by obstacles, focusing on the area directly in front of them (the fan-shaped area in front of the player in the following screenshot).

Searching for event hits

However, with just this, the movement system had some trouble when there weren’t any event hits nearby, so we added one more rule.

That additional rule involves the use of a heatmap, tracking where the player has already been within a certain time period (the red-outlined blocks in the following screenshot).

The heatmap

We add this time-limited wandering history to the area the player has already walked around (in this case, using 100cm cubes). By doing so, we’re able to establish this rule: places with no heatmap are places the player hasn’t walked around (at least not recently).

With this rule, if we’re not able to find any event hits, we search the surrounding space for areas with no heatmap (blocks), and by using those areas as target locations, the player character is able to seek out and walk around places they haven’t been yet.

Example movement during autoplay


We move towards these unexplored areas that have no heatmap, without getting stuck even in winding passageways, and when we find an event hit we go and examine it. The general process should be clear now, I think.

Unexplored areas have a high probability of leading to event hits we haven’t triggered yet, and when we do trigger them, we get more unexplored areas, then we move there and find more unexplored areas... It creates this loop where we’re able to explore broader areas and go further and further, moving completely automatically.

Some other, minor adjustments were also made, but overall the two movement rules mentioned above enable the player character to navigate unexplored areas, and by triggering the event hits found along the way, they’re eventually able to reach the dungeon’s boss.

The daily life parts of the game don’t have one target destination like the final area of a dungeon, but with the previous mechanisms implemented, we made the system able to trigger all sorts of events in those parts as well, by using similar rules for interacting with various NPCs and in-game facilities.

With everything so far in place, we were able to handle the other parts of the game that don’t involve player movement (like battles and dialogue choices) with random input or something like that to progress, and eventually the system was able to reach the game’s ending.

The event hits used as target locations in our autoplay system were already in the game as usable data, so we were able to implement the system so that it didn’t need (hardly) any additional data, and didn’t need fixing after changes were made to the main game.

Because of that, from the middle of development to just before mastering, we started running the autoplay system on a development machine that wasn’t in use (such as when everyone left the office at the end of the day), and even though various changes were made [to the main game], the autoplay system itself was able to keep running with almost no adjustments.

Practical Results

We tested the game using this autoplay system, mainly checking for bugs which could cause the game to hang or make it impossible for the player to progress.

As a result, out of all the bug reports for those highest priority must-fix issues, the autoplay system was able to find about 5% of them.

This number might seem a little low, but considering that it only counts recorded bug tickets, I think the percentage is a little higher if we include other issues that the system discovered midway through development but weren’t recorded as bug reports.

Also, a lot of the bugs found by automatic play involved timing or methods difficult to reproduce by hand, so the fact that it discovered bugs which we couldn’t have predicted was another big win.
  • In battle, doing an All-Out Attack at a specific timing leaves the player unable to progress
  • Loading data while the game is saving causes the game to freeze
  • Doing a persona fusion with a specific timing and procedure causes the game to freeze
  • Etc...
Starting from the middle of the game’s development, one development machine was always used for the autoplay system, and it ran pretty much 24 hours a day. As a result, when the final development deadline arrived, the system had accumulated over 2000 hours of play time (roughly 250 man-days of work!!).

Summary

We were able to implement this autoplay system in a way that required almost no additional specialized data, and almost no adjustments to address changes in the main game.

It might seem like our implementation method had a lot of merits, but of course it also had some downsides too.
  • Since we used random elements, it couldn’t check every part of the game exhaustively
  • Similarly, because we used lots of random operations, it couldn’t check things which required complex conditions to be met
  • The player character’s movement wasn’t very efficient, so each playthrough took around 300 hours to finish
These are some of the problems and areas for improvement we felt after actually using the system.

As a follow-up exercise, I’d like to think about how to solve these problems and come up with ways to check the game more efficiently, and in further detail.

At Atlus, we’re looking for people interested in tackling these kinds of challenges. If you are interested, please have a look at the page linked below.