People who code: we want your input. Take the Survey

Hot answers tagged

28

I think I can offer a few solutions. Set a minimum level to trade. This would essentially prevent players from making accounts just to collect the free stuff, as players will have to put in effort into the account to trade. I'm not sure how your game is set up, but this can be implemented though setting a level cap to build the "trading market building&...


19

The canonical solution to handling the type of cheating you describe (which I mostly hear called ‘account farming’ in the context of other games) is to de-incentivize having multiple accounts. Obviously make sure your ToS calls it out as bannable, but you also need other things to make it less attractive to do this. Possible approaches I’ve actually seen ...


8

You might think it's hard, but the way you came up with is the way to do it: send not the points, but e.g. all the moves of the game, and then the server recomputes the game and calculates the gained points (this is just one of a million reasons why developing multiplayer online games is harder than developing single-player games)


8

Equal value trade system Every item (pet) has a value. Each trade needs both parties to offer similar value. Let's say we have three items: A (worth atm 500), B (worth atm 400) and C (worth atm 60). And let's say that trades are allowed up to a 100 'value mismatch' (this could also be a percentage). This means that A can be traded for B, but C can not be ...


7

Looks like you have a "nice problem", one that comes with a game getting fame. The solution I've been considering would be implementing a currency, say gold, that you get periodically for logging in and "being active" on the site. If you're currently having issues with users creating "fake" accounts just to get more loot, the ...


6

There are four kinds of games I could imagine where human players wouldn't get outpaced by bots. Embrace the bots. Make a game about bot programming. Let the best bot-writer win. It's not cheating when it's the point of the game :) (Ok, this is kind of a cop-out) Create a very complex strategy game with large numbers of units to control, a large number of ...


5

Emscripten can be used to port C++ applications to javascript. It was able to succesfully make the Unreal 3 engine run in a web browser. It works best in browsers which support asm.js, an optimization-friendly subset of the Javascript language which can reach performance comparable to native code.


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


4

It's simple arithmetic and requires no loops or periodic DB updates. The player has a rate of resource gain. This is fixed until some external stimulus happens like the player buying an item to change speed. You need only know the current speed and resource counts for this to work. Take the current time. Take the last time the resource counts were ...


4

No browser supports an unlimited amount of storage space (or anywhere close to your 800MB) for arbitrary web apps out of the box, and most are limited to 5MB to 10MB. The easiest way to explicitly cache data is to use the Application Cache (manifest). You can also use LocalStorage if you want to programmatically download levels in advance rather than ...


4

pepper.js allows you to write C++ code and then deploy directly as: Machine code via PNaCl for higher performance, currently only supported by Chrome. Javascript via Emscripten for maximum reach. From the project page: pepper.js is a JavaScript library that enables the compilation of native Pepper applications into JavaScript using Emscripten. This ...


3

WASD is viable because for the best player experience the client (the browser) should be simulating actions based on inputs at the same time the server is verifying inputs as valid and sends you appropriate data back. To put it in perspective, if you are playing a game and we figure on average it takes 100ms (arbitrarily picked this number - no real ...


3

What you need is a priority queue with the time of event as priority. If you create an event that will happen in 5 hours, you add it to the priority queue; it will probably be inserted somewhere in the back as in 5 hours has a low priority. Your main event-loop will constantly work on your priority queue and will check if the priority of first even is now. ...


3

Looks like we need to clarify a few things : Changing your IDE is pretty unlikely to change anything to your problem. An IDE is just a tool to help you work, once you have your final application it does not matter which IDE you used. Making your game an applet is also very unlikely to improve your performance problems as well as missing assets. Imho it will ...


3

General rule: YES. You have the copyrights of the game you made? Then you can distribute anywhere you want. Exception: if you made a contract that gives any publisher/platform the copyright or exclusivity. As of today, none of these platforms (Steam, GOG, Itch) ask for exclusivity. But publishers, if you distribute your game through one of them, usually ask ...


3

@KI has a lot of good suggestions. To add a couple more: You could have a time cool down after an item is received before you can trade it, steam market does something similar. You've unlocked a new item, you can trade it in two weeks time. You could also give items out more slowly over time. Instead of of giving a "pack" of items right at the ...


3

A common solution is not to reward this kind of behavior in the first place. For example in Runescape there used to be drops like this, but then they swapped to having you complete challenges. You can complete them as many times as you like, thus gaining more drops. There's no advantages to using multiple accounts to do them, so people don't. In World of ...


2

Depending on what you have in your game you might end up using both, and connecting them through the models in your game. For example player could and should be in RDB (login info) but player inventory/variable storage could go to noSQL , so your player module could login() using RDB and fetchInventory() using noSQL by the primary key. Maps for example ...


2

Risk has too many potential moves and too many potential outcomes per move to have a Chess-like AI be effective. You don't need to consider every possible move, and you don't need to do look-ahead. I would suggest you get some playtesters, or at least one or two smart gamers to help. If you're really just taking the Risk rules, or some sub-set of them, then ...


2

Emscripten is the best way to do this as of today. It can compile pure C++ code into a subset of JavaScript called asm.js which is very efficient and can be even further optimized. As of today only Firefox has explicit optimizations for asm.js, but the compiled code will run (quite well) on every major up-to-date browser (even IE!) and can be used in the ...


2

If you already have a website you should look at your analytic s and see the browser distribution of your users. The news website that I work for averages 1.8 million visits a day, of which about 65% is from browsers that wouldn't support many HTML5 APIs that I'd use in a quality game. See what your users use, then make a decision based on that. Obviously we'...


2

I've done things like this before using delta timing. Here is an example: int millisecondsThatPast = 0; int numberOfPowerUpsToGive = 0; int timeForEachPowerUp = 0; public void setTimeForEachPowerUp(int timeInMilliseconds) { timeforeachPowerUp = timeInMilliseconds; } public void onGameUpdate(int delta) { millisecondsThatPast += delta; int n = ...


2

You really should tell us how this is being constructed as different technologies can have different advantages to your situation. Is it in Flash? PHP? HTML5? JavaSript? Java? The "web" tag doesn't give us much to go off. That being said: One of the most secure ways to transmit points score is to not let the client side decide what those points are. What ...


2

Use Application.absoluteURL. http://docs.unity3d.com/Documentation/ScriptReference/Application-absoluteURL.html If navigating to the game from another page, they can pass arguments via a ?query-string that the server can ignore, and that you can parse via string manipulation. If you need to transition to your game without navigating to a new page, you can ...


2

I would just go for it and use all the HTML 5 that I can. I think that if the website is designed as a gaming site, people that come to the site with a browser that doesn't run your games would have no problem coming back with a compatible browser if they have to.


2

You've confused the assets with client-side data storage. You can load assets using normal HTTP requests that the browser makes. These are subject to normal HTTP rules about caching, expiring and conditional requests. If you have 800M of asset data, you definitely need to do this. There is no limit to how many assets you can load in the "normal" way (these ...


2

Unity Web Player, as you probably know, is a browser plugin so it is allowed to run anyway it likes. Unity 5 will export to WebGL, and the article you linked says they worked with Mozilla to bring that technology, so they are most likely using Emscripten which is a LLVM to Javascript compiler. Several languages can be compiled to LLVM (including C# and ...


2

Problem Solved - Add a folder into the build folder and put all the files you want to be opened in there Change the Open URL script to say public void relativeURL(string url) Now put 'dirname/filename' in the URL field Hey presto - it now works!


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