29

Your question can be summarized as "I got a Luck stat in my combat system, please tell me why". Ask yourself: What game-design goal does the Luck stat fulfill? Do you have an immediate answer? If you don't then I would recommend you to just throw it out. Now you are just down to two stats: Strength and Constitution. This doesn't seem like much. But you ...


16

PHP has the advantage that it is very widely supported by cheap webhosters. You can rent some shared-hosting LAMP (Linux, Apache, MySQL, PHP) webspace for peanuts. And that webspace can also host your website and the game client. The setup of most PHP applications is equally easy. Just copy the files to the webserver and you are done. This makes it very easy ...


12

Generally, when you start without experience you should go with the existing solution instead of inventing something new. However, your situation is different. Neither FATE nor GURPS are frameworks that are designed for browser based RPGs. So the question is about adapting them, not about using them. Adapting an existing tabletop system for an online RPG is ...


9

You essentially want your crit to scale from 0% to 100% with diminishing returns. Here is a formula that is 0% at luck=0 and approaches 100% as luck goes to infinity. f = 2.71; // you can mess with this factor to change how quickly it diminishes crit = Math.random() > Math.pow(f, -luck); // assuming random is in the range [0.0, 1.0] Then use a ...


8

Just ignore any actors which are far away from the player(s). Don't update them and don't allow active actors to interact with them. Most games divide the game world into zones, and only update the actors in the zones the player is in and the adjacent zones. Many even despawn the actors and respawn them at their initial positions when the zone becomes ...


6

This is too broad, you need to work out some things. What do you call a high-performance server. You can get some very powerful servers with 4 CPU sockets and such. But it is likely 4 servers with a single socket may be cheaper. Real time (meaning each game instance must be processed all the time at some frequency) or turn based (meaning you just need to ...


6

I know your question is specifically asking about cron jobs, but I think a lot of web-based mmos are written using "completeTime" logic as opposed to lots of crons. When you start a long-running action, like building a granary that takes 5 hours to complete. The server will just mark the granary's completion time as start time + 5 hours and store that in ...


6

A rule of thumb is that you use different classes when objects require different code and instances of the same class when the objects only require different values. So when ShortBow, HuntingBow, CompositeBow, ElvenBow etc. all behave identical except for having different stats, then they would all be instances of the same class. When bows have different ...


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

Introduction There are pros and cons to each method of synchronization you gave that depend on a couple of factors. First, is your game singleplayer or multiplayer, second, how real-time is your game? If your game is only single player, you may want to consider having a client side only game which would make things simpler. However, assuming you need a ...


5

The other answers are correct, but there's a historical factor that hasn't been mentioned. When I started to search for do and donts and tips I realized that a lot of projects use PHP and I have actually not found any PBBG using C# which I find really strange. Until a couple years ago, there was a PBBG development community that mostly existed on two ...


4

Google has announced its Google Play game services which offer Achievements Leaderboards Cloud Save Matchmaking across Android, iOS, and web (via RESTful apis).


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


4

You could also do something similar to MineCraft so only the active blocks are loaded. For doing that, you could store each part (e. g. 32x32 tiles) in its own file and load always only the part the player is in and the surrounding. When the player enters another part, save the parts the player is two far away and load the new ones. If you use procedural ...


4

There is one thing that bothered me about your question: "..But the only programming language I know is Java." So learn another one! Anyway, Java as a client in the browser fails on many, many fronts. For one, Java 7 (and most likely Java 8) doesn't even work in Chrome on Mac OS X because the Java people decided to stop supporting 32-bit, and Chrome is ...


4

Instead of completely refilling all players action points at a fixed time, you could instead give them a small amount of action points every few minutes and allow them to safe up action points up to one or a couple days worth of points. A player who wants to do something big will have to safe their action points for about a day. Afterwards they will be ...


4

Websockets are a very elegant and fast way to implement asynchronous communication between client and server. But they are far from the only. When low latency isn't that important for you, you can substitute it with XmlHttpRequest (aka "AJAX"). But for a real-time action-oriented game, WebSockets are usually the superior solution.


4

ajax / html request Slowpoke. Good for loading pages without navigating to another url. No good for action games but should be fine for turn based games I imagine. That is unless it's a very fast paced turn based game (think roguelike fast). The good thing is that the server only needs to handle one request at a time. So the server code is serial and not ...


4

Do I have to use flash to be accepted on these sites? Flash is dead. The browser vendors killed it and put HTML5+JavaScript in its place. Even Adobe admits that. All the web game portals are moving to HTML5+Javascript games. I know these games would have ads run on them, which I assume was profitable for the developer. Advertisement is one way to ...


4

D'oh! This is covered in the WebGL troubleshooting documentation (which did not come up in my web search results for 'Unity IndexedDB'). Unity does not flush changes to IndexedDB immediately when you save a file. They don't explain when they do a flush, but clearly a scene change is one event that triggers a flush. To immediately flush the changes, we have ...


3

As everyone has already stated, Spatial Partitioning! I think a bare minimal 2D Grid vs. Bounding Sphere will cut it for most browser games. Since nearly everyone has multiple processors, your game might benefit greatly from Web Workers. This way you can let the main browser thread focus on providing a perfectly responsive interface at all times. Further, ...


3

That's actually not that much game related, as general programming related. It all depends on your language and environment, but the theory relies in http://en.wikipedia.org/wiki/Background_process and http://en.wikipedia.org/wiki/Asynchronous_I/O. There are multiple ways, some of them: Easiest, and most friendly, easy to set up would be AJAX - you'd ...


3

If you're smart with it, it won't be too resource intensive - but I definitely wouldn't try to run it every second (plus the shortest time interval for a cron is 1 minute). Because you mention actions occurring for a user when offline, a cron is probably your only option for that. For online actions, I recommend not having that in a cron, that way you can ...


3

Disclaimer: I am a co-founder of Clay.io (mentioned in question). Since January we've added search and made the site a bit less cluttered, here are some useful links to look through. Developer Info Page Documentation Achievements Documentation I hope this helps. You hit the nail on the head for the platforms we're emulating, only for HTML5 games. One more ...


3

You might want to look at internet Diplomacy, which takes the simultaneous moves approach. Diplomacy assumes you will be discussing moves with other players, so you have some idea of what is going on even though you can't see actual moves (and other players may be lying to you about their plans). I'm not sure whether this helps, but it's at least an ...


3

What does Luck mean? Luck could increase the chance of some combination of: Hitting Evading Blocking Crit-ing (also potentially crit damage) Getting an item (if there are items) Having that item be a good item Success of any action you attempt Any random (unambiguously) good thing happening Any random (unambiguously) bad thing not happening I'd suggest not ...


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