161

This is the type of game where the same move performed twice reverses the board to its previous state. So to ensure a board is solvable, generate it by playing in reverse. Start with a solved (blank) board, then start programmatically "clicking" randomly either a certain number of times, or until the board has the desired number of white squares. One ...


92

While the above answers are clever (and probably how I would do it anyway), this particular game is very well known. It's called Lights Out, and has been mathematically solved. There is a solution if and only if two sums of various elements (given on the wikipedia page) add to zero mod 2 (i.e. an even number). In general a little linear algebra should give ...


19

It certainly depends on the type of game, and as always, there are no foolproof ways to increase difficulty, but in my experience, I have found that making difficult games/levels is much, much more difficult than making easy games/levels. Some reasons that come to mind are: It is very easy to cross the line between difficult and plain impossible. I really ...


13

Go the other way around when generating your puzzle. Instead of randomly selecting the tiles and turning them from white to black, start from a blank slate, then select the tiles but instead of turning that tile to black, make it as if the user selected it, resulting in flipping all of the other tiles around it. This way you'll be guaranteed to have at ...


8

In my experience, such integrated cutscenes (that is, using the in-game renderer) tend to use camera angles & perspectives that differ from the game play. For instance, if the game is played in 1st person mode, the camera shifts to a 3rd person view for the cut-scene. You could adjust the display to use letterboxing, pillarboxing or windowboxing during ...


8

Go to where your audience is. You have a chess app, so I would recommend to find some online communities of chess players. Read their community guidelines, FAQs and a bit of their content to make sure that discussing your app is on-topic in the community. Read it carefully: unwelcome advertising is annoying and creates more damage than value. For example, ...


7

Ed and Alexandre have the right of it. But if you do want to know if every solution is possible, there are ways. There are a finite number of possible puzzles Clicking on the same square twice produces the same result as not clicking on it at all, no matter how many clicks were made between them. That means that every solution can be described by giving ...


6

Sign in to your Google Play Developer Console. Select an app. On the left menu, select APK > Beta testing. If you see Choose a testing method, select the drop-down arrow. Select Set up Closed Beta Testing > Create list. Type a name to identify your list of testers ... ?. PROFIT This way only invited people will be able to install and test your game :3 ...


6

Is it possible for your cut scenes to end at a place/time in which the player feels a sense of urgency or need to move, shoot/block/defend? One of the things I liked about the Last of Us is that it was really good at integrating cut scenes pretty seamlessly into the game. Generally they would all end at a time when you needed to run, shoot, duck, or ...


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 ...


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

You could ask them to record their play sessions with a video capture software like Fraps or GameCam. Additionally, you could also ask them to wear a headset with microphone and comment verbally on their game experience (the results would be similar to a "Let's play" video). The advantage of verbal commenting is that it is more spontaneous and honest than ...


5

Seeing as javamonk has already linked some good technical articles, I'll try to approach this from more of a theoretical angle. Arcade game difficulty... From my own personal experience (not sure there are many or even any articles to back this up but I'll keep looking), arcade games are almost always consistently incremental. Every level the enemies get a ...


5

There's a lot of ways to do that. Change the title so that it gently says BETA Put a nice popup or message at the very start saying that this isn't the final version and will be changed, or anything like that. Watermark a corner of the window with the message "beta version"


5

Why worry about piracy at all in this case? If it is a beta version, then it will give players an idea how the finished game is going to look and play, but it would be buggy and incomplete. The game experience will be suboptimal, and the player will understand that this is because they are playing an incomplete version of the game. If they like the game, ...


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

A modern example of generating infinite maps is the Mario AI contest. See http://www.marioai.org/LevelGeneration A good approach to take for generating levels/maps would be a markov chain, http://en.wikipedia.org/wiki/Markov_chain. You can create a model for the kind of level you are looking for, then generate much larger ones (possibly infinite) using ...


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 ...


4

Generalized answer: Create a matrix of size (# moves) x (# lights). Put a 1 in a cell if making the move corresponding to that row toggles that light corresponding to that column, 0 otherwise. Perform Gauss-Jordan elimination (modulo 2) on the matrix. If the matrix that results has a single 1 in each column, and every row has at most a single 1, then every ...


4

At a very high level, a possible cycle for finding users goes something like this: Identify your target audience. (Note this step is not trivial & can be much more difficult to do than it sounds). List places &/or communication channels where you expect a worthwhile amount of your target audience to be. Look for options that either have a high % of ...


3

If your cutscenes are skippable, have the key to do so on-screen during the cutscene. Then, remove the key (and option!) to do so several seconds before the cutscene ends. The prompt disappearing is the cue for the cutscene nearly ending.


3

On Steam you do it by creating a branch in SteamWorks (under SteamPipe) which you set a password for. You then upload your build and push it live in that branch (again it's under SteamPipe). Anybody who has access to that branch (you've generated a key for + has the password) can opt in to the beta and will be given that build.


3

Platformer difficulty is about perfect timing of player actions. I would use 3 main approaches: Playtesting Let you level be played by players and adjust the difficulty appropriately. Simulating That will work for simple levels and parts of levels. Make a simulation with all the moves required to pass the level part and see how much they are allowed to ...


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

It's always a good time to get feedback. Earlier feedback can help avoid spending a lot of time developing something you end up not using or changing later on. It's particularly good in your case to discover things that you as the lone developer may not notice. Maybe the game doesn't run well on other platforms. Maybe you hadn't considered how to build? ...


3

Fail Faster! Game development is an iterative process. Playtest early, playtest often. Playtest with many different people. Never be afraid of feedback. Test stuff before you polish it, so you don't waste as much work when you throw it away and rebuild it from scratch. I made that mistake before. I once spent months building a game around a specific ...


2

Those are quite different things and it's hard to give a definite percentage. QA (≈ hunting bugs) is usually the job of a entire QA department, this can include several employees, and even several companies or locations. This is a day-to-day task: the earlier bugs get spotted, the earlier they get fixed, so the bug hunt is really running continuously. ...


2

I find the other answers odd, not because they are necessarily wrong, but that they ignore that any developer is (or at least should be) playtesting their own game far more than they would ever have the time or resources to find testers. Clearly, finding individuals completely unfamiliar with the game is necessary, and should never be overlooked. However, ...


2

I could list some websites where you could announce your game, but the process to find non-paying players is pretty much the same as the one to find paying players. That means I would just be duplicating the answers to "How can I promote my game?" and similar questions. The problem with public beta tests is that they easily escalate to a PR event for the ...


2

It depends on what you want to test. When you want to test user acceptance and behaviour, you should of course test within your desired demographic. People from a different demographic might give you different results and mislead you about the strengths and weaknesses of your product. But when you want to test for bugs, you need professional testers who ...


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