Hot answers tagged

63

I think Dummynet is what you are looking for. Dummynet is a network emulation tool which can simulate bandwidth limitations, delays, packet losses, and many more. You can easily choose which traffic you want to intercept and configure the limitations, e.g. to limit all incoming TCP traffic to 2Mbit/s you do ipfw add pipe 2 in proto tcp ipfw pipe 2 config bw ...


34

Network Link Conditioner If you're on a Mac, you can use Network Link Conditioner. You can simulate various cases of bad internet connections, including Edge and 3G. In addition, you can create your own profiles with your own settings: It is a free download in Xcode (go to Xcode → Open Developer Tool → More Developer Tools… and download the Hardware IO ...


18

It can also be very useful when your map generation algorithm is deterministic and repeatable based on an initial seed value. So when you enter the same seed value, you get the same map. This might be easier to implement than you think. Most random number generation APIs can be initialized with a seed value and then always generate the same sequence of ...


15

If you are on linux you can use netem to simulate all of the possible problems with network like high latency, low bandwidth, packet losses and many others. There is an option for windows called NetLimiter but I haven't used it so can't vouch for it. Just found a Mac App called SlowlyApp.


11

Clumsy, for Windows Vista & 7.


10

The problem with this approach is in this statement - "Add some more random chars, emulating new players" The task of randomly generating every permutation of character builds is trivial compared to making the AI that would actually use that build appropriately. It would be extremely difficult to tell the difference between a poor build and a poor AI in ...


10

One major strategy that helps is something we call level design metrics. Here you work out what kinds of level design arrangements are navigable, by testing them out in isolation. We'll often build a "gym" level, with things like passages of varying widths, corners of varying sharpness, pits of varying lengths, etc. We can try each setup on its own, or in ...


8

I wrote a tip/trick on CodeProject that discusses this very problem. Samsung are essentially providing free access to actual devices via the web over here, I'm not sure if the same thing is provided by any other vendors though.


8

First some background... There are two flavours of "null" in Unity: Actual null "Pseudo-Null" - this is a non-null Unity object (usually a GameObject or MonoBehaviour) that has been removed from the scene using Destroy or unloading a scene. (In-editor, this is also used for reference fields in an Inspector that have been left blank) The reason this is ...


7

How can I simulate a bad internet connection with high latency, low bandwidth, jitter and occasional packet loss when in a local environment? If you're on Windows, you can try SoftPerfect Connection Emulator. It's basically a driver that injects itself between your application and the network layer (similar to Wireshark/WinPCAP) for the selected NIC and can ...


6

No simulators that I know of give reasonable expectations of on-device performance. The iOS simulator, in particular, is very bad. And I think the Android one is an emulator.


6

Get as many as you can reasonably manage. The more prepared and organized you are for testers, the more you'll be able to manage. If you have an automated system set up for collecting data and deploying your game for testing, you'll be able to manage more testers than if you were attempting to manage them manually. It's also important to get the correct ...


6

This approach would only work out when your gameplay consists only of character customization and leaves players little or no tactical choices during actual combat. Many game-breakers require not just having a specific character build, but also require that the player plays it in an unconventional way the developers did not expect. It depends on your actual ...


6

My experience with Automated Testing during the development of Crysis 2 is available here: http://yetanothergameprogrammingblog.blogspot.com/2010/06/aaa-automated-testing.html Summary: Automated testing improved deliverables stability, increasing productivity for both content creators' and engineers Automated testing is an effective tool to improve code ...


6

Use the unit test framework 'Unit Test Tools' provided by Unity. You're right you can't create new MonoBehaviours on their own, but why not use an empty GameObject and use AddComponent<MyMonoBehaviour>() and then run your tests? Alternatively you can create the bulk of your logic inside your own classes. Then your MonoBehaviour scripts will just use ...


5

The only real thing that is different is the amount of devices, Apple just sell 1-2-3 new product each year, Android offers 1 new product every day/week. The emulator it's not buggy, it's just not intended for profiling, if you want to profile an Android application you have to do the same thing that you have done for iOS: consider the lowest profile device ...


5

I haven't used it in a while, but I've used Charles for testing this. It is an application with various network diagnostics tools, including simulating the problems you mentioned: "a bad internet connection with high latency, low bandwidth, jitter and occasional packet loss"


5

If console only, you have far less hardware related issues, since your pool of supported devices is minimal. With a PC, every last component can be made by someone else. So the list of potential compatibility issues is near endless. The newer Windows platforms have tried to standardize drivers a bit, but that doesn't really change the overall idea I'm trying ...


5

There is literally no good option other than testing on a range of target hardware. Simply testing on slower hardware isn't enough. Older cards are often on different driver series, meaning that they support a lower version of Direct3D or OpenGL. Cards of similar speeds but from different manufacturers will have different behavior. The behavior can differ ...


4

You could use virtual machines. With a virtualization software like VirtualBox or VMWare you can simulate a computer inside a computer. You can install any operating system in them and you can artificially restrict the amount of hardware and CPU power the virtual machines have available. This is of course not nearly as conclusive as testing on real ...


4

I understand you are dealing with both box obstacles and gaps. The way it was described, I can see three possible situations. Correct me if the game is designed differently. With the first, there are no obstacles before the gap, at least no obstacles that the player can jump atop. In this case, you would need only a fix max width for the gap. In the second,...


4

Having a good understanding of your game mechanics is essential to balancing a game properly. Modeling your game as a set of equations and graphs is a great way to obtain that understanding. Regarding randomness: Many random events balance out over time (law of large numbers), so when there is a 50% chance that X happens and a 50% chance that Y happens, ...


4

They have console commands. There is a reason skyrim has all the commands in it. That game was very extensibly tested. And because it has couple hundred hours of content with every cave and guild, and some of this content is bound to a level, there is no way to make everyone play through everything. Do the same, create some commands whivh put you on an ...


4

If your goal is to use a separate environment for isolation of libraries, dependencies, etc. then yes, you can use either VMs or containers for this purpose. However, they're not without their caveats. Virtual Machines add the overhead of an entire additional operating system, but it much closer mimics what a user would see on their own environment. So, you ...


4

First of all, I would challenge the assumption that TDD and game development don't mix. While there are some things in game development which are hard to unit-test (How do you write a proper unit test for a graphic effect where the only formal requirement is "looks cool"?) there are several other areas where it does make sense. Your core game rules, for ...


3

Google Play allows you to upload an alpha or beta version of your app and lets you choose a group of testers. The group can be a Google Group or Google+ Community. I highly recommend using social media to spread the word and involving (or hiring) interested people in beta testing. You can also hire people for few bucks on websites like Fiverr.com. ...


3

As ultrahuman pointed out AI for this would be very hard to do. In addition your algorithm would balance the game for the AI players. :-) What I mean is that human players will often behave quite unexpectedly and will tend to exploit weaknesses etc. However, you are somewhat on the right track. Except you should use real players instead of AI. :-) Or in ...


Only top voted, non community-wiki answers of a minimum length are eligible