Jump to content
MattScott

Tracking the Engine Upgrade

Recommended Posts

Hi everyone,

 

This week was a mixture of success and frustration.

 

We made a lot of progress knocking out bugs, and the only thing blocking the release of the Beta are some inconsistent crashes with RTX and higher end cards. At this point, we're starting to get more specific issues reported. These are things like "The stairs in this part of Asylum cause a jitter as I go up them" or "This object needs to allow shots through it." I'm not sure how much longer I will hold the Beta while we fix some of these smaller issues, but until the last of the major crash bugs is fixed, I have no choice but to hold this back.

 

Lighting is getting very very close, but this continues to be one of the more frustrating areas.

 

The main issue right now is color balance using Color Look Up Tables (Color LUTs). These are images that modify how specific color ranges are displayed.

 

Here is an example of what a ColorLUT image looks like. We use this one for color grading Financial at noon.

WeatherLUT_Sunny_1200.png

 

Here are some references from Live (if you look closely you'll notice some flawed lighting with foliage).

All of these shots accomplish giving the game a moody look and feel while also keeping the character lit enough to see where he is.

 

Midnight

Live_Midnight.png

 

Noon

Live_12.png

 

5pm

Live_17.png

 

 

Here are some shots from APB 2.1 as it stands right now.

All of these shots have much better lighting consistency (ie. foliage doesn't glow).

However the scenes don't have the same punchy color as Live, and the character is far too muddy while standing in shadow.

This gives the overall scene a very flat feel.

 

Midnight

Beta_Midnight.png

 

Noon

Beta_12.png

 

5pm

Beta_17.png

 

This is all very correctable with ColorLUTs, because we punch up the contrast on specific colors.

Except.. that system isn't doing what it is supposed to do.

 

Here are some pretty awful examples of what we see right now when the team tries to enable some pretty basic ColorLUTs.

This system works fine right now on console, so somewhere along the way it broke.

 

Noon

Beta_LUT_Noon.png

 

5pm

Beta_LUT_17.png

 

Thanks,

Matt

  • Like 32
  • Thanks 14
  • Confused 1

Share this post


Link to post
Share on other sites

Hi everyone,

 

This was another productive week.


We fixed the blown out ColorLUT issue that I posted pictures of last week.

We are knee deep in fixing an in-game browser issue that causes a crash when opening up ARMAS.

We are also working through more collision and game-play issues in Asylum.

 

And lastly, that's right, we are working on lighting issues in the districts.

 

I know this is something that has been taking forever, and several players suggested that we release the Beta with unfinished lighting.

However, just to show you some of what we are fixing, I pulled some images that went back and forth between the team this week.

 

Building lighting in Unreal is actually 2 different processes: (1) Baking lightmaps and (2) building indirect lighting

 

1. Baking lightmaps

 

This is an ancient technique for generating fast lighting that doesn't require very powerful graphics cards.

The primary downside to lightmaps is resolution. Lighting is baked to a texture and then wrapped around objects just like normal textures, but if your lightmap is too small, then you'll end up with very jagged results. Conversely, if your lightmaps are too big, then you'll eat up a lot of texture space. Also, you can only build lightmaps for objects that are static - meaning they don't move. So it's not a technique you can apply to everything in the scene. Ultimately, even though this technique is very old, lightmapping works well if you blend it with several other techniques.

 

In our case, we don't build lightmaps, we build shadow maps.

This enables us to change their color and how much they influence the scene at different times of day.

We can only build shadowmaps for static objects that don't move, and those objects require a separate UV channel to map that generated texture into.

Buildings are the best example of objects that we bake lighting for.

 

However, Unreal is very finicky about the UVs it maps into. For those that don't know, UVs are a 2D position on a texture that is assigned to each vertex in a mesh. This defines how textures map onto the mesh. Lightmaps require "unique" UVs. That means each vertex maps to a unique spot in the texture, which makes sense because the lighting generated into the lightmap would be unique for each part of the building. If any of those UVs are slightly overlapping or touching the edge of the texture, then Unreal errors and aborts lighting that object.

 

We run lighting with error color coding turned on to see which objects have issues. This looks something like:

image.png

 

The orange area indicates that part of the lighthouse entrance doesn't have correct UVs. 

This specific case likely wouldn't be a big deal for Beta.

 

However, this next case is, because every ceiling in this part of the district has no lighting and looks terrible.

image (3).png

 

 

As you imagine some districts have thousands of individual meshes that require lightmap UVs, so we have been going through by hand to fix all the areas that aren't building correctly.

Corrected lighting ends up looking like this:

image (1).png

 

 

2. Building indirect lighting

 

This is a new system that was introduced in Unreal 3.5.

 

I'm sure Reloaded felt this would be the biggest visual upgrade for players, and they aren't wrong. However, the new lighting engine in Unreal 3.5 also costs quite a bit more to render, so all of our initial performance tests were terrible. We have spent a lot of time optimizing so that players will get the benefits of better lighting, but not take a huge performance hit.

 

Indirect lighting is built into a 3D grid and it samples the various lights in the scene at that location, so that when a moving or dynamic object is in that area, it is quick to apply the lights.

 

This next image shows off some of the better lighting which is a combination of overhead dynamic lights, dynamic shadows, baked shadowmaps, ambient occlusion, and built indirect lighting on the player).

It also shows off one of the big flaws in how indirect lighting is built.

image (2).png

 

The indirect lighting in this shot is the orange light casting on the player.

The flaw in the shot is that there is no obvious source of that lighting. In fact, that orange light is coming from just inside that building.

This only happens if they get too close to the wall because the 3D grid is 4ft x 4ft, which doesn't have the resolution to sample lighting from both inside and outside the building.

 

To fix this, it requires us to build lighting volumes that "trap" the light inside the volume by inserting extra cells in the 3D grid for indirect lighting to emulate where walls would prevent light from leaking outside. The art team has been building lighting volumes for these cases.

 

Lastly, we had a couple players mention that we needed to turn on ambient occlusion.

It's there, it just has problems.

 

Here is what ambient occlusion looks like right now in Asylum.

MPSE1 (10.73 ms) [10.36, 24.54] _ (98 channels) 31_03_20 15_36_16 VB_ 0214163456 NO_VERSION Inst_1 DX11 3_31_2020 3_36_53 PM.png

 

It's very faint, and it's being calculated on a very dark frame buffer in the pipeline.

That's also being looked at.

 

Thanks,

Matt

  • Like 43
  • Thanks 19
  • Confused 1

Share this post


Link to post
Share on other sites

Hi everyone,

 

There isn't an Engine Update this week.

 

Instead we are announcing the first Live stream of the Beta on Friday, April 17, 2020 at 11am PST.

 

You can get more details here: 

 

Thanks,
Matt

  • Like 10
  • Thanks 6

Share this post


Link to post
Share on other sites

Hi everyone,

 

I hope you are enjoying your respective holidays this weekend and connecting with family and friends either virtually or in real life.

 

Several players reached out to me asking if/how we managed to fix the problems I discussed in the last update, and one even sent some ideas on how to fix the issues. After responding to them individually, I realized that I had nearly written a blog. So I thought I would share those answers here, since I didn't post an Engine Update yesterday.

 

First, a little bit of history.

 

When the upgrade to Unreal 3.5 was started at Reloaded Productions, they were faced with the difficult task of exporting all the geometry for the districts from Unreal 3 to Unreal 3.5. You might think this is easy, but Unreal 3 has very limited export formats. The final solution was to write a commandlet in Unreal 3 that exported meshes through the OBJ format as pieces along with some extra data. Then they wrote a commandlet in Unreal 3.5 that reconstructed all those individual files and imported everything, and when they were done, they exported a single FBX file for each mesh. This is a pretty impressive bit of code, because now we have a decent starting place for all the basic buildings (like that lighthouse entrance from last week).

 

It's important to know that APB was the result of a different project at RTW which was focused on procedural world building. As good as that tech was, it was also somewhat messy. So a lot of manual 3D art work had to be done to clean things up. Since the RTW days everything has been done in 3DS Max. So that's what we used.

 

When we hit issues like last week for a specific building, we often have to fix it in the original FBX and then re-import it back into Unreal.

 

But that leads to 5 basic problems:

 

1) There are unwelded verts all over the place that leave stray polygons (polygon soup) detached from each other. The easy fix for this is to select all the verts in 3DS Max and then weld everything within a specific tolerance back together. But you have to find the right weld tolerance. APB is modeled in centimeters. When we welded verts within 1cm of each other, we ended up welding verts that needed to remain distinct, and some texturing got ruined. The best tolerance ended up being 0.5cm. Here is an example of what unwelded verts look like when the lightmapping tools try to bake lighting.

 

MPSE1 _ (92 channels) 07_04_20 20_34_10 NO_VERSION Inst_1 DX11 4_7_2020 8_34_29 PM.png

 

2) Since these FBX files were programmatically exported, they have no smoothing group data. Bad smoothing groups is another place where lighting will bake extra seams and edges that you don’t want. There are thousands of building pieces in APB and many of them have LOD variants, so we needed an approach that could be run automatically across a number of files. We tried automating "autosmooth" in 3DS Max and generated disastrous results. In the end, since the majority of buildings have squared off edges, we wrote a maxscript that was able to sample faces for 30 different vectors (angles) to rebuild the smoothing group data. From there everything else had to be hand tweaked.

 

Here is an example of a more complex dock building after we applied autosmoothing. I have selected the faces from a specific smoothing group. You can see how some faces on the same side of that building are not highlighted. This means they aren't in the same smoothing group and can cause problems when we bake lighting.

 

autosmooth.PNG

 

Here is the same smoothing group after using our custom script. All of the faces on the side facing the camera are in the same smoothing group. This will insure they will all be lit more uniformly together.

 

faces.PNG

 

3) After those two issues, then we get to the uvs. In many cases, the original set of lightmap UVs can simply be repacked to use the texture space better. But if you had stray polygons to begin with, then chances are those will still be messed up in the UV channels. So in about 20-30% of cases, we had to create all new unique UVs required for lightmapping to work. Again, the automated uvmapping tools failed us because they all use a single angle to determine where to unwrap the mesh. So this had to be hand tweaked by artists mostly selecting chunks of contiguous walls where we wanted uniform lighting, then planar mapping those selections as a single set of uv faces, and then repacking the whole uv channel to fit 0,0 to 1,1 with no overlapping faces.

 

For those who are unfamiliar with what uvs are, they are best described with a picture. UVs are a 2D coordinate system for mapping textures onto a 3D object. Each face (triangle) of an object is defined by 3 vertices in 3D x,y,z coordinates. In order to texture those faces, we have to map each vertex into 2D space with just x,y which are renamed to u and v so we don't confuse them with the 3D coordinates. Each object can have multiple uv channels. For lightmapping, we need a channel where none of the faces are overlapping. The building above looks like this: 

 

uvs.PNG

 

And here is an example of the lighthouse itself when we tried to use Flatten uvmapping to generate a set of unique UVs and then tried to bake lighting. Since the lighthouse tower is round, you can't apply a technique that unwraps faces based on angle.

 

lighthouse.png 

 

4) Sometimes we simply needed to increase the lightmap resolution. When the districts were rebuilt in Unreal 3.5, part of that commandlet tried to guess the surface area and set the appropriate lightmap texture size. In some cases that estimate was way too small. Increasing the size fixed a lot of lighting artifacts. The problem with APB is that texture memory is already stretched pretty thin. So we have to be careful when increasing these.

 

Fortunately we have tools in Unreal that allow us to view the entire district with lightmapping resolution grids turned on. Larger / darker will be worse with chunky shadows or visual artifacts. Smaller / lighter is better and more defined. Here is what that looks like on the same dock building. Some of the areas that appear solid colored actually have a grid so small you can't see it in this shot.

 

texeldensity.PNG

 

5) Lastly, for hyper detailed meshes, there is an option in Unreal to use high precision UVs. I’m guessing by default they use traditional floating point values, which lose accuracy for small numbers with a lot of decimal places. Checking this option probably switches to double precision which preserves better accuracy. In any case, this also cleared up some lighting artifacts.

 

Hopefully some of this information will help you understand why the Engine Upgrade has taken so long - even from the point that we took over. It's also one of the reasons we decided to launch the Beta with only Asylum and Social, since those districts are farther along in being cleaned up.

 

Thanks,
Matt

  • Like 33
  • Thanks 19
  • Sad 1

Share this post


Link to post
Share on other sites

Hi all,

 

Missed the post yesterday here. Instead we uploaded the highlights from our Beta stream on Friday.

 

Here is the thread: 

 

Thanks,

Matt

  • Like 10
  • Thanks 2

Share this post


Link to post
Share on other sites

Hi all,

 

This week started a bit unorganized. I think the team was a bit burnt out having worked long hours to prep the streams last week, so some staff took Monday off.

The rest of us took the day to digest all the data from the streamed playtest of APB 2.1, so we could create a new dev plan to finish the Beta.

 

Problem #1: Poor frame rate

 

Initially we thought the slowdown was from all the characters in the district. In order to test that, we needed to revive some old code that allows us to run Bots in districts that can emulate players for missions. Don't get excited. These Bots are horrible. They literally move around the district firing and interacting with things randomly. SPCT has been fascinated by seeing these AI abominations running around and trying to determine where they are going.

 

After some testing, we determined the major part of the slowdown isn't tied to the number of players in the district. However, the Bots did allow us to spend some time identifying game loop areas in missions that were underperforming. We got a build out to testers by Wednesday and there was some improvement.

 

We also found that Scaleform continues to drag our framerate down, so we have decided to remove it entirely from the game play HUD. That will free us from having to constantly update that system for the couple screens that use it. We optimized the Scoreboard HUD, Actionmessage HUD, and Taskmarker HUD.

 

Problem #2: Audio issues


This is the last part of the code that we haven't touched.

 

I'm sure many players noticed how bad it was in the streams. Right before the playtest we pulled down a new version of Wwise, so this week we dove into that part of the code where we found... a mess. It looks like during the port to console (and possibly even in Live) the dev team didn't really implement sound to utilize all of the proper features. We did make progress, and we're hoping to get a build to testers soon so they can verify some of the worst sound issues are corrected. We rebuilt the PS4 and XB1 sound banks, fixed a threading issue with audio memory, and reduced some info calls to improve performance. 

 

Ongoing work:

 

We carried over a task from last week to implement a new SSAO shader to get rid of the flicker when you run. The flicker is caused by changing the Field of View which breaks the math in the shader. It's a known issue in Unreal.

 

Thanks,
Matt

  • Like 40
  • Thanks 16
  • Haha 2

Share this post


Link to post
Share on other sites

Hi all,

 

Sorry for the late post today. I try to get these out a bit earlier, so they can be read by our European player base.

 

We had another big push this week to try and clean up remaining items for the Beta.

We completed a lot of the audio re-work late on Friday, but I had an SPCT member go in, and we saw many of the issues were fixed.
Still a couple stragglers, but with the limited testing, it looks like we got about 80-85% of these bugs.

 

Next, let's deep dive frame rate issues.

 

Last week, I walked through our work on optimizing the UI during missions in Asylum.

Today, I thought I would post some of the performance statistics from several builds.

 

These all came off the same machine with the following specs:

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz with 16GB of ram and an NVIDIA GeForce RTX 2080 SUPER

 

The test is based on the average frame rate running around for 10 minutes in Asylum while actively doing objectives and missions.

 

I should make the disclaimer that we always accept these benchmarks with a grain of salt, because with an online game it is impossible to recreate the same exact testing conditions. But we use them as a general feedback mechanism to let us know if we're on the right track. I'll apologize in advance for not having any of Skay's pretty charts.

 

We started with the performance on Live with ~18-19 players in the district:

Mean Frame time = 8.08ms

Mean Frame rate = 123.75 FPS

Average Frame time = 8.125ms

Average Frame rate = 123.07 FPS

Maximum 1% Frame time = 6.95ms

Maximum 1% Frame rate = 143.8 FPS

Minimum 1% Frame time = 11.12ms (ignoring hitches)

Minimum 1% Frame rate = 89.87 FPS

UI accounted for 1.41ms on average

 

We actually pulled two logs from two different sessions during the 4/17 Beta. I'm going to share them both, because it illustrates the variance in benchmarking.

 

Session #1 during the Beta stream with ~19-24 players in the district:

Mean Frame time = 12.02ms

Mean Frame rate = 83 FPS

Average Frame time = 12.19ms

Average Frame rate = 82 FPS

Maximum 1% Frame time = 6.62ms

Maximum 1% Frame rate = 151 FPS

Minimum 1% Frame time = 18.16ms (no hitches)

Minimum 1% Frame rate = 55 FPS

UI accounted for 4.43ms on average (more than 3ms higher than Live)

 

Session #2 during the Beta stream with ~19-24 players in the district (but only half that for the last couple minutes):

Mean Frame time = 10.98ms

Mean Frame rate = 91 FPS

Average Frame time = 11.21ms

Average Frame rate = 89 FPS

Maximum 1% Frame time = 5.55ms

Maximum 1% Frame rate = 180 FPS

Minimum 1% Frame time = 16.94ms (no hitches)

Minimum 1% Frame rate = 59 FPS

UI accounted for 3.49ms on average (only 2ms higher than Live)

 

You can see that just dropping some opponents during the stream for the last couple minutes made a significant difference in the frame rate between Session #1 and Session #2.

 

All three of these tests had real players running around firing and jumping a lot more often in concentrated areas with customizations.

The bots don't do that. There is literally no AI at all. They randomly path around the district, fire and interact with things.

They are great for us to trace code and diagnose issues, because we can start up missions in Asylum without gathering a bunch of real people.

In retrospect, I wish we had a bot run from the 4/17 Beta build.

 

We got an original benchmark today, and I had to throw it out because we didn't have enough bots running and the bots that were in the district were super far from each other.

So the stats were clearly skewed and too good.

 

We fired up more (although couldn't get 19-24 to compare), and this time they clustered up a bit near the Criminal spawn point.

But even this next benchmark wont represent an apples to apples test with the first three.

 

Here are the results from today's session in the new Beta build with 15 bots:

Mean Frame time = 6.03ms

Mean Frame rate = 165.78 FPS

Average Frame time = 6.07ms

Average Frame rate = 164.8 FPS

Maximum 1% Frame time = 4.82ms

Maximum 1% Frame rate = 207.4 FPS

Minimum 1% Frame time = 7.80ms (no hitches)

Minimum 1% Frame rate = 128.2 FPS

UI accounted for 2.56ms on average (we are still running both Unreal UI and Scaleform for now during game play in APB 2.1)

 

Based on this test, the next step will be to organize another large playtest between SPCT, the streamers, and LO staff so we can get a better benchmark.

I'll let you guys know when that will happen.

 

FOOTNOTE: Also for those that are interested, we started work on the unfinished DAM (District Allocation Management) system that was designed by Reloaded. This system dynamically collapses and expands threat by spinning down and spinning up new districts during the day. This is the first major system we will launch directly aimed at solving match making in a new way. It requires APB 2.1 to work, but I wont hold back the Beta for it. I wanted to make sure we get that feature pushed out as soon as possible.

 

Thanks,

Matt

  • Like 38
  • Thanks 19
  • Sad 2

Share this post


Link to post
Share on other sites

Hi everyone,

 

I missed yesterday's post due to some hard core number crunching that needed to be done for this update. Sorry about that. My schedule has been extremely busy lately. That also means I'm several months behind responding to messages in my forum inbox. I plan on trying to squeeze some time in this week to catch up a little.

 

With that out of the way, today marks the 2 year anniversary of Little Orbit taking over APB Reloaded in 2018. To be honest, I had hoped that the Engine Upgrade would be shipped by now. But once it was clear that many of the issues plaguing us were not going to be easily resolved, I decided to start this thread a little over 7 months ago.

 

Here is a quick recap of where we are at this point.

 

- We found a new way to multithread using an upgrade to an existing library in the game. We had avoided doing this previously, because the library was only supported on Windows. But the upgrade seems to support console now, so we took a shot. Our first test is focused on how we update lights in the game. The new system is far more efficient and has the capacity to manage more cores at higher utilization. This is still pretty experimental, but we're pretty excited about it. If this test holds up, then we'll likely implement this across the other multithreaded areas.

- The team spent last week continuing work on UI optimizations to frame rate. As I said last week, there is still a significant difference in time spent rendering the UI between Live and the Beta.

- We also found some clean up audio work that was causing an occasional crash.
- And we are exploring a persistent crash popping up for the in-game browser. There has been light weight work going on there for the last couple weeks to get it sorted before we ship the Beta.

 

That brought us to Friday and a rather quickly thrown together stress test to see how all the changes performed.

 

This time we kept it private, because we knew were pushing the envelope. The plan was for each player to first spend some time on OTW playing the Live build of Asylum for a base line benchmark. We encouraged many of the players to load up their most complex customizations, and we tried to fill the district as much as possible. Then we did the same thing in our Beta environment. Each player submitted both logs to us, so we could process the results. At the same time, we had our devs in the Beta environment running around and capturing performance profiles to determine the functions that execute the most and require optimizations.

 

In retrospect, I'm glad I kept things private, because the Beta portion of the playtest was a bit of a disaster. It appears that several of the "rare" or "occasional" crashes scaled up under more load and became "constant". I doubt anyone was able to play for more than 3-5 minutes without crashing and having to load back in.

 

However, we did accomplish most of what we wanted. We got some usable comparisons from testers. We also captured many crash logs, and the devs got quite a number of good profiles that revealed some things we knew, some thing we suspected, and some things we didn't. 

 

Based on the logs we did get, here are the results.

 

DISCLAIMER #1: This was a lot less scientific than I prefer, so please don't read too much into the results. Due to the consistent crashes, it was really hard to pull apples-to-apples comparisons, but I did my best by grabbing specific segments of time when things were more equal. At a minimum there might be some good data here for players on APB 1.20 looking to figure out how to improve their performance.

 

DISCLAIMER #2: Our logs don't capture whether the machine is overclocked, so there may be performance discrepancies.

 

I'll start with system configurations and their FPS stats for APB 1.20:

AMD Ryzen 9 3950X 16-Core Processor  + NVIDIA GeForce GTX 1080 Ti - 112 FPS average with unknown players (grapher bug processing log - but probably 3x as many as the 2.1 log)

AMD Ryzen 7 3800X 8-Core Processor + NVIDIA GeForce GTX 1070 - 112 FPS average with ~13 players

AMD Ryzen 7 2700X 8-Core Processor + NVIDIA GeForce GTX 1060 - 89 FPS average with ~14 players

AMD Ryzen 7 1800X 8-Core Processor + NVIDIA GeForce GTX 1080 Ti - 65 FPS average with ~20 players

AMD Ryzen 5 3600 6-Core Processor + NVIDIA GeForce RTX 2060 SUPER - 134 FPS average with ~8 players

Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz + NVIDIA GeForce RTX 2080 Ti - 184 FPS average with ~11 players

Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz + NVIDIA GeForce GTX 1080 Ti - 144 FPS average with ~13 players

Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz + NVIDIA GeForce GTX 1080 - 92 FPS average with ~9 players

Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (OC to 5.0GHz) + NVIDIA GeForce GTX 1070 - 151 FPS average with ~8 players

Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz (OC to 4.60GHz) + NVIDIA GeForce GTX 1080 Ti - 117 FPS with ~13 players

Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz + Radeon RX Vega - 117 FPS average with ~22 players

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (OC to 4.4GHz) + NVIDIA GeForce RTX 2070 - 111 FPS average with ~11 players

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz + NVIDIA GeForce GTX 1080 Ti - 127 FPS average with ~13 players

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz + NVIDIA GeForce GTX 970 - 61 FPS average with ~8 players

Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz + NVIDIA GeForce RTX 2060 - 96 FPS average with ~13 players

Intel(R) Core(TM) i7-4820K CPU @ 3.70GHz + NVIDIA GeForce RTX 2060 - 72 FPS average with ~14 players

Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz + NVIDIA GeForce RTX 2070 - 65 FPS average with ~8 players

Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz + NVIDIA GeForce GTX 660 Ti - 62 FPS average with ~8 players
Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz + NVIDIA GeForce GTX 1060 - 75 FPS average with unknown players (grapher bug processing log - but probably 3x as many as the 2.1 log)

 

Next, here are their FPS stats for APB 2.1:

AMD Ryzen 9 3950X 16-Core Processor  + NVIDIA GeForce GTX 1080 Ti - 177 FPS average with unknown players (grapher bug processing log - player count likely 1/3 of the 1.20 log)

AMD Ryzen 7 3800X 8-Core Processor + NVIDIA GeForce GTX 1070 - 123 FPS average with ~11 players

AMD Ryzen 7 2700X 8-Core Processor + NVIDIA GeForce GTX 1060 - 132 FPS average with unknown players (grapher bug processing log - player count likely 1/2 of the 1.20 log)

AMD Ryzen 7 1800X 8-Core Processor + NVIDIA GeForce GTX 1080 Ti - 117 FPS average with ~9 players

AMD Ryzen 5 3600 6-Core Processor + NVIDIA GeForce RTX 2060 SUPER - 140 FPS average with ~5 players

Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz + NVIDIA GeForce RTX 2080 Ti - 197 FPS average with ~11 players

Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz + NVIDIA GeForce GTX 1080 - 214 FPS average with ~11 players

Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz + NVIDIA GeForce GTX 1080 - 130 FPS average with ~9 players

Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (OC to 5.0GHz) + NVIDIA GeForce GTX 1070 - 194 FPS average with unknown players ( player count likely close to the 1.20 log)

Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz (OC to 4.60GHz) + NVIDIA GeForce GTX 1080 Ti - 169 FPS average with ~8 players

Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz + Radeon RX Vega - 147 FPS average with ~11 players

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (OC to 4.4GHz) + NVIDIA GeForce RTX 2070 - 154 FPS average with ~7 players

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz + NVIDIA GeForce GTX 1080 Ti - 134 FPS average with ~13 players

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz + NVIDIA GeForce GTX 970 - 59 FPS average with unknown players (grapher bug processing log - player count likely close to the 1.20 log)

Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz + NVIDIA GeForce RTX 2060 - 113 FPS average with unknown players (grapher bug processing log - player count likely 1/2 of the 1.20 log)

Intel(R) Core(TM) i7-4820K CPU @ 3.70GHz + NVIDIA GeForce RTX 2060 - 72 FPS average with ~13 players
Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz + NVIDIA GeForce RTX 2070 - 164 FPS average with ~6 players (don't read into this.. no idea what was happening or not)

Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz + NVIDIA GeForce GTX 660 Ti - 62 FPS average with unknown players (grapher bug processing log - player count likely close to the 1.20 log)

Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz + NVIDIA GeForce GTX 1060 - 112 FPS average with unknown players (grapher bug processing log - player count likely 1/3 of the 1.20 log)

 

Whew! That is a relatively small amount of info, but took quite a while to compile.


We are planning another play test this week, so I should have a better update on the 16th.

 

Thanks,

Matt

  • Like 35
  • Thanks 15
  • Confused 1

Share this post


Link to post
Share on other sites

Hi everyone,

 

This is going to be a shorter update with a follow up tomorrow or Monday.

 

We spent the week fixing the bugs and crashes that plagued last week's play test.

Yesterday did a new play test with ~30 players.

 

Everyone started by getting on APB 1.20 and testing Asylum for about 30 minutes. Several of the players last week didn't have their logging setup correctly, so we re-ran that portion to establish a benchmark. With people jumping in and out it looks like we had a pretty solid average of ~22 players over the entire test.

 

Next, they got back on APB 2.1 and tested Asylum for the same amount of time. Looks like we got ~22 players during this test too.

There were a few crashes, so we have some things to fix this week, but overall the stability was way better.

Unfortunately something was going on with the server. There was definitely a latency problem.

 

There are a lot more logs to go through this time, and I had other obligations this weekend, so I haven't finished collating everything 

This process involves matching up CPU/GPUs to stats for both OTW1 and OTW2, and instead of 19 like last week, there are 29.

 

However, here are the stats from the first player in my list.

 

APB 1.20:

AMD Ryzen 7 3800X 8-Core Processor + NVIDIA GeForce GTX 1070 - 102FPS with ~22 players

Highest 1% FPS = 173FPS

Lowest 1% FPS = 65FPS

 

APB 2.1:

AMD Ryzen 7 3800X 8-Core Processor + NVIDIA GeForce GTX 1070 - 125FPS with ~22 players

Highest 1% FPS = 248FPS

Lowest 1% FPS = 63FPS

 

Thanks,
Matt

  • Like 23
  • Thanks 8
  • Confused 1

Share this post


Link to post
Share on other sites

Hi everyone,

 

I didn't quite make Monday, but this was a lot to organize. I probably wont be able to post this level of detail in the future.

 

These stats are admittedly a little disappointing. I know many of the testers complained about latency issues on APB 2.1.

We're looking to what happened there, but the stats also show that OTW2 didn't perform across the board like last time.

It is also important to know that we ran the most complicated customizations that we could, and we still have hitches when new players are entering the district and their customizations are being baked.

With so many players versus the 5/8 that could be affecting the stats as well.

 

Regardless, here are the numbers:

image.png

 

5 testers performed lower on APB 2.1 than APB 1.20. And 6 testers from 5/8 weren't able to make it this time. I left their entries blank.

We do have more lower spec machines this time, and everyone is running Maximum in APB 1.20 and Very High in APB 2.1.

You can definitely see how much raw processing speed affects APB 1.20.

The biggest gains for us in APB 2.1 are tied to having more cores.

I might be missing some over clocking data for a few of these, which might explain some of the oddball discrepancies.

 

Like I mentioned on Saturday, we had about 10 crashes. They all turned out to be related to the same thing, and we believe we have a fix for that now.
We'll spend the next couple days chasing down the rest of the issues, continuing to multi thread new bits of the game, and fixing the hitch when baking customizations.

 

We plan on running another test on Friday 5/22, and this time we'll try to make sure the APB 2.1 server is running better.

 

UPDATE 5/19: I put a new listing up that had more details for overlocking by several testers. I think that helps put the numbers in better perspective.

 

Thanks,
Matt

  • Like 19
  • Thanks 9

Share this post


Link to post
Share on other sites

Hi everyone,

This update isn't going to be very long.

 

We finished a number of fixes last week, and ran another playtest.
We knew there was a potential issue with the test district server that popped up on our 5/15 test, so this time we staged a backup district server.

We were right and the same issue popped up, but switching to the backup failed because our provider didn't open up the right access, so it was useless.


Frustratingly, we still haven't gotten a decent run without crashes on APB 2.1. 
However, the devs were still able to do a few profiles and capture more areas that we can look at for optimizations.

 

Right now, the most common question I get asked is "When will the Beta launch?"

 

I can't answer that yet, but I can share the remaining tasks/bugs blocking the release:

  • A crash bug that has already been fixed (we hope)
  • A bug on the server related to performance (this has been blocking our last two play tests)
  • A bug related to the crash reporter that is stopping it from working all the time. (this is critical for getting good data from the Beta)
  • A client fix related to fixing hitches every time a new player loads into the district (this is the client taking a hit to generate the customizations for the new character)
  • A backend task related to copying the Live characters to Beta the first time the player logs in

Enjoy the Memorial Day weekend, and stay safe.

 

Thanks,
Matt

  • Like 25
  • Thanks 6
  • Dislike 2

Share this post


Link to post
Share on other sites

Hi everyone,

 

Today is my APB AMA on Reddit, so I wont be updating this thread until maybe tomorrow or Monday.

But you can get Reddit and ask me questions directly here:

 

 

Thanks,

Matt

  • Like 7
  • Thanks 1

Share this post


Link to post
Share on other sites

Hi everyone,

My schedule has been out of control for the last couple weeks. I've made it through the worst of it, but some of those commitments cut into my time interacting with the community.

All of my various inboxes are overflowing with messages from around February. I am hoping to start responding soon.

 

The last two playtests have been somewhat smaller. After reviewing the results from the 29th, there wasn't much to comment on. We did collect a number of very good crash reports, and the district server issue got fixed.


Yesterday's test was very positive, but we had less testers, so I can't do an apples to apples. I don't want to get lulled in by good numbers based on less concurrency.

 

For this update, I'm going to track progress on the few remaining items blocking the launch of the Open Beta.

I have highlighted the actual blocker bugs, so you can see how close we are.

  • The original crash bug that I listed on Memorial Day. (fixed) 
    • 3 more crashes popped up on the 29th, but our test yesterday only had a single crash. So we're making progress.
  • Still investigating the new crash from yesterday. (not yet started)
  • One of the new crashes seems to be related to exclusive fullscreen mode (in progress)
    • This is very close. We are implementing borderless windowed fullscreen that can run at different resolutions than the desktop. Nearly all modern games today have dropped exclusive fullscreen in favor of windowed fullscreen.
  • A bug related to the in-game browser (not yet complete but non-blocking)
    • We have a work around in place to force the browser to open externally for now.
  • A bug on the server related to performance (fixed)
  • A bug related to the crash reporter that is stopping it from working all the time. (fixed)
  • A client fix related to hitches every time a new player loads into the district related to baking out customizations. (partially fixed) 
    • This ended up being quite a bit of work. The partial fix was tested yesterday, and we saw some improvement. The full fix is finished now, and we're hoping to get tested internally by Tuesday. That will allow us to get another playtest organized for Wednesday and possibly a second on Friday this week if necessary.
  • A backend task related to copying the Live characters to Beta the first time the player logs in (fixed but in testing)
  • Copy new code and content from APB 1.20 to APB 2.1 (not yet started)
    • This usually takes about a week to do, and we've done it plenty of times before. It's necessary so that when characters are copied over from APB 1.20 for Open Beta they don't crash the new version with clothing or guns that don't exist.
  • There are also a lot of minor bugs, but the whole purpose of the Open Beta is to get lots more players involved, so we can fix the remaining issues.

I'm excited to get this behind us, so we can start working on more impactful things like matchmaking and phasing.

I'll be back on the 13th with another update.

 

Thanks,

Matt

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...