5 Mart 2020 Perşembe

WW1 Naval Campaign - Heligoland Bight


Well it's time for our second Battle Report from our ongoing WW1 Naval Campaign, check out the latest copy of T'Yarkshire Ferret Newspaper above with all the gossip and tittle tattle around the goings on off the table.

If you missed game one, the link is below -

https://yarkshiregamer.blogspot.com/2019/04/ww1-naval-campaign-war-is-declared.html

As with the first report, the AAR below is how our game developed, the scenarios in the Campaign have a number of tactical events along the way meaning that games can be radically different depending on how those tactical events play out or how the game has been affected by previous Political events.

Game 2 - Heligoland Bight 


3rd British Destroyer Flottila
Following the first act ion, the Chase of the Könign Luise there was a lull of several weeks with no action. The British however noticed during this patrol phase that German Light Forces regularly sailed out in broad day light around Heligoland.

The British planned to push their own light force inside the German patrol line and bring them to Battle.

German Destroyers quickly under heavy fire 
The game starts at 6.00 am, Visiblity is restricted to 7500 yards. The 3rd British Destroyer Flottila consisting of the Light Cruiser Royalist and the Destroyers Liberty, Lydiard, Landrail, Contest, Garland, Spitfire and Sparrowhawk are steaming South with 2 German Torpedo Boats V2 and V4 7,000 yards West of the closest British ship, line astern, sailing South East. (nb.  Some ship names are different to those present in real life, this is because I don't have models of every ship in the Royal Navy in 1914, yet 😉)

HMS Royalist
Unknown by the British Player the powerful German Battlecruiser Sqn the 1st Scouting Group consisting of Seydlitz, Moltke, Goeben, Von der Tann and Blucher is at sea.

06.23 German 3rd Scouting Group consisting of the Light Cruisers Frauenlob, Stettin and Dresden, appear, 7500 yards South of the Southern most ship, sailing North West.

German 3rd Scouting Group
06.30 Additional German Torpedo Boats arrive from the 1st Half Flottila of the 1st TB Flot, 7000 yards from the western most ship sailing East.

Frauenlob scores a direct hit on the Bridge of HMS Royalist but fails to do any damage, the same turn Stettin lands a shell on the Bridge of the Destroyer HMS Contest but again the British escape with no major damage, the tide of the game could have definitely changed at that point.

1st Half Flottila (German)
The British were under a bit of pressure at the point, outnumbered 3 to 1 in Light Cruisers and on par with Destroyer, the initial aggressive tactics of the Royal Navy had got them in a spot of trouble.


So it was a relief when at 06.37 the 1st British Destroyer Flottila led by the Scout Cruiser HMS Active (with Destroyers Attack, Acheron, Hydra, Badger, Ariel and the Yarkshires very own Ferret) arrived 7500 yards to the east of HMS Landrail.

1st British Destroyer Flottila
The following turn (06.45) saw HMS Lydiard in real trouble, she was hit hard by the German Light Cruiser Frauenlob, sustaining a bridge hit and a serious fire.

HMS Lydiard in trouble
It was an action packed phase with the British player chucking torpedoes at the German ships to no avail.

Bags of action
0700 saw the Britsh Light Cruiser Sqn arrive, HMS Southampton, Birmingham, Falmouth, Nottingham, Lowestoft and Gloucester. Six Light Cruisers with six inch guns was making the German Commanders think seriously about their options.

British 1st Light Cruiser Sqn
But for now the action was all down at the other end of the table, HMS Lydiard despite the best efforts of her crew sank due to the cumulative effect of the fires on board. On the same turn HMS Landrail also suffered a bridge hit and fire from an engagement with SMS Dresden.

The end of HMS Landrail
Both sides had become a little more cagey than the initial gung no charge into contact with the initial forces on table. Lots of shell's were being exchanged but the British Destroyers had withdrawn towards the cover of the Light Cruisers, whilst the Germans were no keen to get too close in fear of the approaching 6 inch guns of the Town Class Light Cruisers.


More German Light Cruisers started to arrive but these were some distance away from the action.


The British finally got some decent hits on two German Torpedo Boats who had got themselves a bit isolated. A rudder hit and a couple of fires made things a bit more interesting for V2 and V4.

German Ships taking proper damage at last
But it wasn't all fluttering White Ensigns and renditions of "Rule Britannia" as HMS Landrail also failed to deal with its fire, this time the ship exploded in close proximity to the Light Cruiser HMS Royalist setting a minor fire on the deck off that ship.

HMS Royalist is now alight
By 07.37 it was like the 1812 Overture as explosions were going off all over the table, V2 exploded having failed to put outs it's fire. It was the day for it and the British players were sweating as the Royalist kept failing to put it's own fire out, which for a Light Cruiser should have been straight forward.


The British Light Cruisers were now starting go get the range of the Germans who had been keeping their distance. Information concerning a possible smoke plume seen to the south was despatched to the British player who sent HMS Gloucester to investigate.

V2 sinks 
The Germans lost one of their Destroyers as they withdrew but the decision to pull back had been made, the remaining German Torpedo Boats making smoke to begin to cover the retiring Light Cruisers, the British didn't really push the pursuit and at 08.30 HMS Gloucester spotted the German Battlecruisers in the distance.


And that was the game over the British player realised that his nearest support, a Sqn of aging Armoured Cruisers were no match for the likes of Moltke and withdrew. The Germans who had already started to pull back couldn't take advantage of the potential help from the Battlecruiser Sqn as they were too far away from the British to keep them engaged.

HMS Royalist is saved.
That just left us with the post game phase, Royalist had one chance left to extinguish it's now raging fire, 16 or more on 3d6. Easy 😉

A further German Destroyer V4 sank due to flooding on its way back to port meaning that the losses in the game were even, 2 Destroyers a piece.


Which just leaves me time to show off my new cool dice shaker !

A evenly matched game which ended in a cautious stand off. There are so many variations in the Campaign book that this could have gone a number of ways, even splitting into two seperate battles. In my first grumble about the book, the instructions for this scenario are dreadfully confusing but I managed to get there after reading it hundreds of times.

There will be a short break in the Campaign whilst I catch up on some painting, I didn't notice initially, but Scenario 3 contains some older vessels I don't own. Who needs an excuse to buy more ! I got the missing ships from Tumbling Dice so look out for a review / comparison post on them soon.

SQL & Database Design A-Z™: Learn MS SQL Server + PostgreSQL - ScanLibs

SQL & Database Design A-Z™: Learn MS SQL Server + PostgreSQL

Tech Book Face Off: Programming Massively Parallel Processors Vs. Professional CUDA C Programming

After getting an introduction to GPU programming with CUDA by Example, I wanted to dig in deeper and get to know the real ins and outs of CUDA programming. That desire quickly lead to the selection of books for this Tech Book Face Off. The first book is definitely geared to be a college textbook, and as I spent years learning from books like this, I felt comfortable taking a look at Programming Massively Parallel Processors: A Hands-on Approach by David B. Kirk and Wen-mei W. Hwu. The second book is targeted more at the working professional, as the title suggests: Professional CUDA C Programming by John Cheng, Max Grossman, and Ty McKercher. I was surprised by both books, and not in the same way. Let's see how they do at teaching CUDA programming.

Programming Massively Parallel Multiprocessors front coverVS.Professional CUDA C Programming front cover

Programming Massively Parallel Processors

The polite way to critique this book is to say, it's somewhat verbose and repetitive, but if you can get past that, it has a lot to offer in the way of example CUDA programs that show how to optimize code for the GPU architecture. A slightly less polite way to say that would be that while this book does offer some good code examples, the writing leaves much to be desired, and much better books are out there that cover the same material. The honest assessment is that this book is just a mess. Half the book could be cut and the other half rewritten to better explain things with clearer, non-circular definitions. The only good thing about the book is the code examples, and many of those examples are also redundant, filling the pages of the book with lines of code that the reader has seen multiple times before. This book could have been a third the length and covered the same amount of material.

Even though that last bit was a pretty harsh review, we should still explore what's in the book, if only to see how the breadth of material compares to Professional CUDA C Programming. The first chapter is the normal introduction to the book's material, describing the architecture of a GPU and discussing how parallel programming with this architecture is so different than programming on a CPU. The verbosity of this chapter alone should have been a clue that this book would drag on and on, but I was willing to give it a chance. The next chapter introduces our first real CUDA program with a vector addition kernel. We're still getting started with CUDA C at this point, so I chalk up the authors' overly detailed explanations to taking extra care with novice readers. We end up walking through all of the parts of a working CUDA program, explaining everything in excruciating detail.

The third chapter covers how to work more efficiently with threads and loading data into GPU memory from the CPU with a more complex example of calculating image blur. We also get our first exposure to thread synchronization, something that must be thoroughly understood to program GPUs effectively. This chapter is also where I start to realize how nutty some of the explanations are getting. Here's just one example of them describing how arrays are laid out in memory:
A two-dimensional array can be linearized in at least two ways. One way is to place all elements of the same row into consecutive locations. The rows are then placed one after another into the memory space. This arrangement, called row-major layout, is depicted in Fig. 3.3. To improve readability, we will use Mj,i to denote the M element at the jth row and the ith column. Pj,i is equivalent to the C expression M[j][i] but is slightly more readable. Fig. 3.3 illustrates how a 4×4 matrix M is linearized into a 16-element one-dimensional array, with all elements of row 0 first, followed by the four elements of row 1, and so on. Therefore, the one-dimensional equivalent index for M in row j and column i is j*4 +i. The j*4 term skips all elements of the rows before row j. The i term then selects the right element within the section for row j. The one-dimensional index for M2,1 is 2*4 +1 =9, as shown in Fig. 3.3, where M9 is the one-dimensional equivalent to M2,1. This process shows the way C compilers linearize two-dimensional arrays.
Wow. I'm not sure how a reader that needs this level of detail for understanding how a matrix is arranged in memory is going to understand the memory hierarchy and synchronization issues of GPU programming. This explanation is just too much for a book like this. Readers should already have some knowledge of standard C programming, including multi-dimensional array memory layout, before attempting CUDA programming. I can't imagine learning both at the same time going very well. As for readers who already know how all of this stuff works, they could easily skip every other paragraph and skim the rest to make trudging through these explanations more tolerable.

The next chapter is on how to manage memory and arrange data access to optimize memory usage and bandwidth. We find that memory management is just as, if not more important than thread management for making optimal use of the GPU computing resources, and the book solidifies this understanding through an extended optimization example of a matrix multiplication kernel.

At this point we've learned the fundamentals of GPU programming, so the next chapter moves into more advanced topics in performance optimization with the memory hierarchy and the compute core architecture. Then, chapter six covers number format considerations between integers and single- and double-precision floating point representations. The authors' definition of representable numbers struck me as exceptionally cringe-worthy here:
The representable numbers of a representation format are the numbers that can be exactly represented in the format.
This is but one example of their impenetrable and useless definitions. More often than not, I found that if I hadn't already known what they were talking about, their discussions would provide no further illumination.

Now we get into the halfway decent part of the book, the extended example chapters on parallel patterns. Each of these chapters works through a different example kernel of a particular problem that comes up often in parallel programming, and they introduce additional features of GPU programming that can assist in solving these problems in a more optimal way. The contents of these chapters are as follows:
  • Chapter 7: Convolution
  • Chapter 8: Prefix Sum (Accumulator)
  • Chapter 9: Parallel Histogram Calculation
  • Chapter 10: Sparse Matrix Computation
  • Chapter 11: Merge Sort
  • Chapter 12: Graph Search
As long as you skim the descriptions of the problems and solutions, and focus on understanding the code yourself, these chapters are quite useful examples of how to write performant parallel programs with CUDA. However, the authors continue to suffer from what seems to be a mis-interpretation of the phrase, "a picture is worth a thousand words." For every diagram they use, they also include a thousand words or more of explanation, describing the diagrams ad nauseam. 

The next chapter covers how to kick off kernels from within other kernels in order to enable dynamic parallelism. Up until this point, all kernels have been launched from the host (CPU) code, but it is possible to have kernels launch other kernels to take advantage of additional parallelism while the code is executing on the GPU, an effective feature for some algorithms. Then, the next three chapters are fairly useful application case studies. Like the parallel pattern example chapters, these chapters use CUDA code to show how to take advantage of more advanced features of the GPU, and how to put together everything we've learned so far to optimize some example parallel programs. The applications described are for non-Cartesian MRI, molecular visualization and analysis, and machine learning neural networks, so nice, interesting topics for GPU programming.

The last five chapters were either more drudgery or topics I wasn't interested in, so I skipped them and called it quits for this long and tedious book. For completeness, those chapters are on how to think when parallel programming (so a pep talk on what to think about from authors that couldn't clearly describe much else in the book), multi-GPU programming, OpenACC (another GPU programming framework, like CUDA), still more performance considerations, and a summary chapter. 

I couldn't bring myself to keep reading chapters that wouldn't amount to anything, so I put down the book after finishing the last chapter on application case studies. I found that chapters seven through sixteen contained most of the useful information in the book, but the introduction to CUDA programming was too verbose and confusing. There are much better books out there for learning that part of CUDA programming. Case in point: CUDA by Example or the next book in this review.

Professional CUDA C Programming

Unlike the last book, I was surprised by how readable this book was. The authors did an excellent job of presenting concepts in CUDA programming in a clear, direct, and succinct manner. They also did this without resorting to humor, which can sometimes work if the author is an excellent writer, but it often feels forced and lame when done poorly. It's better to stick to clear descriptions and tight writing, as these authors did quite well. I was actually disappointed that I didn't read this book first, instead saving it until last, because it did the best job of explaining all of the CUDA programming concepts while covering essentially the same material as Programming Massively Parallel Processors and certainly more than CUDA by Example

The first chapter is the obligatory introduction to CUDA with the requisite Hello, World program showing how to run code on the GPU. Right away, we can see how well-written the descriptions are with this discussion of how parallel programming is different than sequential programming:

When implementing a sequential algorithm, you may not need to understand the details of the computer architecture to write a correct program. However, when implementing algorithms for multicore machines, it is much more important for programmers to be aware of the characteristics of the underlying computer architecture. Writing both correct and efficient parallel programs requires a fundamental knowledge of multicore architectures.
We need to be prepared to think differently about problems when parallel programming, and we're going to have to learn the architecture of the underlying hardware to make full use of it. That leads us right into chapter 2, where we learn about the CUDA programming model and how to organize threads on the device, but it doesn't end there. Throughout the book we're learning more and more about the nVidia GPU architecture (specifically the older Fermi and Kepler architectures, since those were available at the time of the book's writing) in order to take full advantage of its compute power. I like how the authors grounded their discussions in specific GPU architectures and showed how the architecture was evolving from one generation to the next. I'm sure the newer Pascal, Volta, and Turing architectures provide more advanced and flexible features, but the book builds a great foundation. Chapter 2 also contains the clearest definition of a kernel that I've seen, yet:
A kernel function is the code to be executed on the device side. In a kernel function, you define the computation for a single thread, and the data access for that thread. When the kernel is called, many different CUDA threads perform the same computation in parallel.
This explanation is the essence of the paradigm shift from sequential to parallel programming, and it's important to understand the effect it has on the code that you write and how it runs on the hardware. In addition to the excellent writing, each chapter has some nice exercises at the end. That's not normally something you find in programming books like this. Exercises seem to be left to textbooks, like Programming Massively Parallel Processors, which had them as well, but in Professional CUDA C Programming they're more well-conceived and more relevant.

The next chapter covers the CUDA execution model, or how the code runs on the real hardware. Here is where we learn how to optimize CUDA programs to take advantage of all of those independent compute cores on the GPU, and this chapter even gets into dynamic parallelism earlier in the book rather than waiting and treating it as a special topic like the last book did.

Chapter 4 covers global memory and chapter 5 looks at shared and constant memory. Understanding the trade-offs of each of these memories is important to getting the maximum performance out of the GPU because most often these programs are memory-bound, not compute-bound. Like everything else, the authors do an excellent job explaining the memory hierarchy and how those trade-offs affect CUDA programs. The examples used throughout the book are simple so that the reader doesn't get bogged down trying to understand unrelated algorithm details. The more complex examples may be thought-provoking, but simple examples do a good job of showcasing the specifics of the topic at hand.

Chapter 6 addresses streams and events, which are used to overlap computation with data transfer. Using streams can partially, or in some cases completely hide the time it takes to get the data into the GPU memory. Chapter 7 explains more optimization techniques by using CUDA instruction-level primitives to directly control how computations are performed on the GPU. These instructions trade some accuracy for speed, and they should be used only if the accuracy is not critical to the application. The authors do a good job of explaining all of the implications here.

The last three chapters weren't as interesting to me, not because I was tired of the book this time, but because they were about the same topics that I skipped in the other CUDA books: OpenACC, multi-GPU programming, and the CUDA development process. The rest of the book was excellent, and far better than the other two CUDA books I read. The writing is clear with plenty of diagrams for better understanding of each topic, and the book organization is done well. If you're interested in GPU programming and want to read one book, this one is it.


Between these two CUDA books, the choice is obvious. Programming Massively Parallel Processors was a bloated dud. It may be worth it just for the large set of example programs it contains, but there are other options coming down the pipeline for that kind of cookbook that may be better. Professional CUDA C Programming was better in every way, and really the book to get for learning CUDA programming. The authors did a great job of explaining complex topics in GPU architecture with concise, understandable writing, relevant diagrams, and appropriate exercises for practice. It's exactly the kind of book I want for learning a new programming language, or in this case, programming paradigm. If you're at all interested in CUDA programming, it's worth checking out.

4 Mart 2020 Çarşamba

Genestealer Cult Photos 1

Cult of the Four Armed Emperor





Magus and Iconward Acolyte done.











Sanctus completed


Purestrain Genestealers. I messed up on them a bit but they work. 


Here's To Lookin' At You, Bugs!


Image used for criticism under "Fair Use." All rights belong to Warner Brothers.


"What's up, Doc?"

Bugs Bunny was one of the great idols of my childhood. Looney Tunes used to regularly come on Cartoon Network, and Bugs was the one I always wanted most to see. In fact, Cartoon Network used to dedicate the entire month of June to playing Bugs Bunny cartoons nonstop. Such a bold move could hardly be imagined today. Even more inconceivable were his appearances at that time beside Michael Jordan in Space Jam, and Mickey Mouse in Who Framed Roger Rabbit. The latter more productive than the former.



I speak of Bugs since he just turned seventy-five this year. In the few moments I've spent with him, eyes glued to the TV set, so many are fond. Who wouldn't adore his arguments with Daffy over whether it was "Rabbit Season" or "Duck Season"? We all know the routine. Bugs would concede that it's "Rabbit Season", but Daffy, not one to agree with Bugs, thoughtlessly insists that its "Duck Season", only to get his bill shot off by Elmer. Though Bugs hardly ever got on Elmer's good side, either. As much as he tried to be very, very quiet in his hunting for rabbits, Bugs usually got the upper-hand. Sometimes he did it by cross-dressing as a woman, most famously in What's Opera, Doc? Now remembered as one of Bugs and Elmer's finest, What's Opera, Doc? is a fanciful adaptation of Wagner's Der Ring des Nibelungen, with the "Tannhauser Chorus" and "Ride of the Valkyries" included. The short was produced in the 1950's, when the Chuck Jones cartoons acquired a more modernist art style. We see this on point when Elmer's fury to command the weather gets the background into more clashing hues and greys. What stands out about this particular episode is that Elmer actually succeeds in killing Bugs, to which he weeps. I was shocked upon first seeing this. Tom never caught Jerry. Sylvester never caught Tweety. Wile E. Coyote never caught Road Runner. Yet here we were. Though Bugs slipped in a final comment to berate my surprise, "What did you expect from an opera, a happy ending?"

Even when Bugs was shamelessly ripping off Tom and Jerry's Cat Concerto in Rhapsody Rabbit, he managed to get a good laugh or two in. I mean hell, he literally pulls out a gun to shoot a coughing audience member. I suppose a bullet does better to silence than cough drops.

Bugs had wit. I'd argue that's part of his draw. With so many one-liners, Bugs comes across as an animated Groucho Marx. (Bugs has even put on a Groucho disguise). The rabbit always used his brains to get the upper-hand over his opponents, and being a cartoon, he resolves matters in ways that may surprise the viewer. Compare this to Popeye the Sailor, whom while being entertaining in his own right, always ended his conflicts in the same way: with spinach and muscle. Though the type of character Bugs is comes from the Trickster archetype. NPR compared him favorably to Puck, Anansi, and the Monkey King. Further, the radio station quoted Robert Thompson, who directs a pop-culture studies program at Syracuse University. Thompson remarked of Bugs that, "He defies authority. He goes against the rules. But he does it in a way that's often lovable, and that often results in good things for the culture at large," (Sutherland). Chuck Jones, always made sure that Bugs only acted when provoked. His trickery was a matter of defending his dignity.

And to my recollection, he always won.


Image used for criticism under "Fair Use." All rights belong to Warner Bros.


Bibliography

Sutherland, J.J. "Bugs Bunny: The Trickster, American Style." NPR, January 6, 2008. Web. http://www.npr.org/templates/story/story.php?storyId=17874931

24 Şubat 2020 Pazartesi

Final Fantasy 6 Review

From Guest blogger Helen Davis

Final Fantasy 6, or known as 3 in North America, is one of the greatest RPGs of all time. It  certainly ranks high on the nostalgia factor, and many iconic moments in Final Fantasy history are portrayed in this game. An unforgettable cast of characters, top-notch graphics for the time, a stunning soundtrack and an intriguing storyline keep the player hooked till the very end.  How does it hold up from a Christian perspective?



Very well, actually.  Though there are some moments that are questionable, mainly that one of the final bosses is based on the Virgin Mary, the plot throughout the game more than makes up for it.  Unlike FF9, which views souls as recyclable and life as meaningless, FF6 seems to incorporate more of the biblical worldview, or at least, not anti-biblical. Many of the characters face losses but deal with them in ways that are more consistent with Scripture—Locke feels remorse over the death of his first love, Rachel, believing he couldn't protect her.   He resolves his guilt at the end and decides to move onto his new love. Cyan loses his wife and child and is nearly destroyed, but receives his courage back, believing he must move on and leave the past in the past.  He later becomes a powerful asset to the party, although the Dreamscape sequence in the World of Ruin with Cyan is somewhat creepy. Celes tries to commit suicide after the loss of her only family member, but regains her courage and gathers the party back together.  Though the reason why she should not commit suicide is not addressed, the fact that she is able to recover, move on, and reunite the party shows why we should not. 


The star of the show, though, I feel is Terra. Terra is, in many ways, quite similar to Christ. First of all, her Japanese name, Tina, is actually a shortening of Christina, a feminine form of Christ's name. She is also half human and half esper, and bridges the gap between them, much like Jesus bridges the gap between God and man.  Terra also desires to learn what love is, and finds it not in a carnal way, but in protecting the children in Mobliz. Terra is also unjustly accused and persecuted during the course of the game. At the end, Terra even offers to sacrifice herelf for the party, but remains on earth as a human, in a somewhat interesting parallel to Christ's resurrection. 

Those who begrudge Final Fantasy females such as Aeris and Rinoa should look to Terra and Celes. Both women are strong female protagonists that overcome personal and exterior difficulties to emerge as leaders, Terra in the first half and Celes in the second.  Both are amazing women that complement each other and even form a friendship.

Kefka is also an interesting counterpart to Satan. Saying he wants to destroy all and create a monument to nonexistence is exactly what Satan wishes to do—in Jesus's words 'the thief comes but to steal, kill and destroy.' What words better sum up Kefka Palazzo?  The first scene of him shows him 'destroying' Terra's innocence and ordering her to 'kill kill kill!' The second scene has Kefka 'stealing' General Leo's authority over the Doman mission, killing many with poision, and 'destroying' Cyan's life. His horrors do not end here, as in the interlude on the Floating Continent, Kefka commands the warring triad to strike down Emperor Gestahl so Kefka can rule- an allegory to Satan trying to usurp God. Kefka is later known as destruction and seems to be completely evil with no redeeming qualities, unlike villians such as Golbez or Sephiroth, who at least showed remorse or motive.

The end of the game shows the cast finding joy in spite of the fact the world is nearly dead. Terra has found love. Locke and Celes have found each other. Cyan carries his family inside of him. Gau has his friends. Sabin and Edgar have each other. Setzer has his dream After threatening to destroy  all their dreams and hopes, Terra counters that life continues and that it's not the end result of life that matters, but the day to day joys of life and love. 

Is FF6 perfect? No. But in comparison to the poison of FF7's recyclable souls and FF9's 'our memories live on', it's a breath of fresh air. Highly recommended.

23 Şubat 2020 Pazar

Top 5 Reasons Why Your PUBG Is Lagging And How To Solve It?

It has become a common thing to lag in big games like PUBG, Apex legends etc. Especially, if we are in a serious situation 
and at that moment PUBG lags then our frustration and angriness go beyond the limit. This has become a serious problem even for a pro player. So if you are looking for the solution to this problem then you have visited the right place. This post will mention the reasons for which PUBG lags and the solution to it.


pubg lag
Why PUBG lags?

Reasons and solutions to PUBG lag :


1. Running of unnecessary apps in the background:

           Believe it or not but just running unnecessary apps or installing any app or updating an app in the background decreases your internet speed which finally results in PUBG lagging

Solution:   So, if you want to keep a distance from lagging make sure that there are no online apps running in the background. And avoid updating or installing any app at that time.

2. Bandwidth limits set by your ISP(Internet Service Provider):

         If your internet speed is good but still your PUBG lags whereas you can run other online apps such as Youtube etc easily then there is a high chance that your ISP might have set limits in that particular game.
For example- Sometimes the ISP set 25% bandwidth only for games and the rest 75% for other online apps. This is done to distribute the internet equally otherwise it would become difficult for normal people to surf the internet.

Solution: In that case, you can change your ISP or simply use a VPN. There are many free gaming VPNs present on the internet. You can use one to increase your internet speed. This can decrease PUBG lagging to a great extent.

3. Excess heating of PC or mobile:


pubg lag
Excess heating of Smartphone


         While playing any game, you must ensure that your CPU or phone should not heat too much. In case of excess heating, your game will surely lag because heat is the biggest enemy of the processor and hence the processor is unable to work properly. For such reasons, gaming PCs are specially designed for proper cooling.

Solution: Ensure the proper cooling of the laptop or computer and in case of mobile you should let it rest for some time to attain normal temperature. 

Note: You should never play games on a mobile while it's charging. This not only makes your phone hot but also it is unhealthy for your battery and sometimes if the battery is a low-quality battery, the battery can even burst. 

You can visit this article for more information on overheating of phones.
You can visit this website to know how to cool down your android phone.
You can visit this website to know how to cool down your PC.

4. Your PC or mobile does not meet the recommended requirements of the game:


Why my pubg lags
Requirements don't meet


      This is a well-known problem. Sometimes PUBG can lag because your device can lack many components including processor or graphics card or GPU or RAM or Memory or any other component. In that case, though your ping may be okay still the PUBG will lag.

Solution: If you are highly addicted to this game and want to play the game anyhow without lagging you can change the components of the PC while in case of mobile you need to buy a new mobile.

To know the minimum and recommended requirements of PUBG PC click here.

5.  Playing in the farthest server:

       Another reason for which your PUBG is lagging is that you are playing in a server far away from you. In PUBG there is an option to select servers like Asia, Europe etc. If you belong to Asia and playing in Europe server then your PUBG may lag since it takes time to communicate and get a response from them. 

Solution: You should play at the nearest server. For example, if you live in the Asian continent you should play at Asia server while if you live in America you should play the South or North America server. You can notice less PUBG lag if you play in your nearest server.


Note: The above reasons are also applicable to the whole internet services. You might have noticed that sometimes though your internet speed is very high but still many websites or pages take too much time to reload. This is because their server is very far and takes too much time to communicate with them.

If you are suffering excess lagging of PUBG, you can complain at the official PUBG support page by clicking here