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


20

This is a common area of confusion amongst both game developers and players. Like many such confusions, its root cause is sloppy thinking. Video game worlds do not, in fact, attempt to mirror reality. Instead, they present their own limited worlds which are loosely based upon some facet of the reality with which you and I are familiar. When people talk ...


18

Short answer: Yes. Long answer: You almost certainly aren't ready for that, and a sole developer would be folly to undertake such an enormous project anyway. Connecting to a common server is not too big of an issue. All the devices you mention communicate with common servers on a regular basis (via HTTP anyway). The server doesn't have to know anything ...


16

I am going to approach this from a high-level discussion and then work towards your questions. For the sake of disclosure, I have no personal experiencing using socket.io but a lot of exposure to the problem space with regards to MMORPGs. The design of an MMORPGs engine's network architecture and/or the selection of a middle-ware or open source project to ...


16

Yes, somebody (in fact, multiple somebodies) on the team that develops any multiplayer game, regardless of scale, should have a strong working knowledge of networking security concepts at both the hardware and software level. This is especially true for games that will involve a lot of persistence of agency, since that constitutes investment on the part of ...


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


14

To do this effectively without 'generating all possible options,' you're going to want to use a layering approach... at least in theory, even if in practice you eventually collapse the layered textures to a single sprite for draw-call reduction, which I think you should and will detail later. The layering approach involves having a sprite set for all your ...


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


11

Knowing something about security is a good idea before trying to write a multiplayer game, but things like port scanning and router hacking, or even cryptography, are not what you should be looking into at this stage. Rather, the things you should learn about are trust, validation and robustness. Knowing a little bit about psychology, especially about ...


11

1) Lack of knowledge. Developing for Canvas might be well beyond some web developers who are very accustomed to manipulating DOM. 2) Lack of a scene graph. The DOM is (in game engine terms) a scene graph, permitting strong querying and manipulation of DOM nodes. Writing a game using Canvas requires the developer to "reinvent" that part of the wheel. 3) ...


10

I have in mind a traditional MMORPG like World of Warcraft. Save after every command from each player and autonomous thing (e.g. NPC) Constant backup. The server could go down at any moment, and the state of the game is saved up to that moment (or as recent as possible, anyway). Impact to server performance; even if it's non-blocking (i.e. on another ...


10

All multiplayer games that respect themselves takes all important decisions server side. All as in All. Never trust the client if there is something in an action that might give an advantage for the player. World of Warcraft creates all loot, checks transactions etc server side but due to lag it lets the client control how the player moves (to check that ...


9

People opt for HTML 5 because it's new and flashy. As you mention in your question "...using the new HTML5 technology." It's desirable to be producing something that's using the latest technology, and it's desirable for people to play games that are on the cutting edge. HTML5 fulfills those desires. I would use HTML5 or simply "web games" "browser games".


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

I assume since you're students, you are building this as a class project. Please let me first suggest that you scale back your ambitions. Making games is hard, making good games is harder still. I HIGHLY recommend that you and your team Greatly reduce your design. If you have a short timeframe and have to learn everything as you go, you will run into ...


8

Best advice I could give is to put what you have up, making it clear that it is still a beta and that you want people to play test it and link to it everywhere. This includes every game site you can think of include gamedev.net, moddb, here, facebook, twitter. There is nothing wrong with advertising mate. How else are you going to get people to play your ...


8

Personally, I wouldn't worry about hackers yet. The rationale is simple: you won't get hackers/cheaters until you're a fairly popular game; i.e. worth the time to hack/cheat. Wait until you have a game established first and revenue coming in to fund those kinds of things. You can spend a lot (I mean, a lot) of time trying to fool proof your code to it can'...


8

Is there a point where the complexity of a game is enough for people to say "ok, I'm going to download and play that"? No. The logic of what you are suggesting is that people see simple games which are uninteresting, and then as they see progressively more complex games, they eventually think, "aha! This is complex enough for my interests - I shall download ...


8

Inform (read this for how-to) TADS (read this blog entry) Quest Choicescript Undum Inform and TADS are the weapons of choice for most experienced IF authors. Quest seems to be catching up in terms of functionality. ChoiceScript is perfect for simple choice-based games, but hard to extend beyond that. Undum (and its popular extension Vorple) is based on ...


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


8

The server should maintain all the positions to "make sure" anyway -- this is how you prevent trivial cheating. Most browsers have a "debug mode" they can be put into. It's trivial for me to hit F12 on my copy of IE, for example, and have access to a JS debugger I can use to halt execution, inspect variables, and change them. So you should be aware that a ...


7

Instead of realism, think immersion. The game must feel real to the player, but feeling real is not the same thing as being realistic. What's meant is that the game world and it's setup must be plausable (or at least semi-plausable), internally self-consistent, and deducable. Take an old classic for example - let's say Doom. Everybody knows Doom. OK, we'...


7

I am going to play the devil's advocate here: but you should really be doing this on the server - even with this method you still need to have logic on the server which is arguably more complicated. One way to is calculate metrics based on what the user has done. For example (e.g. let's say we were writing Diablo 1): In the last 10 minutes he has opened 2 ...


6

Check out crafty.js, it has a lot of the features you're looking for and is in active development.


6

Here is a list of lots of javascript game engines. Out of those, I like crafty, Hydra and LimeJS


6

There's an important distinction to make between in the psychology of the player between free games and paid games. With a paid game, people are already invested in the product by the time they get around to installing it. Clients are willing to go through more rigmarole to get your product working because they've already made the decision to use it and ...


6

Using characters, ideas or other assets from another game is illegal if you do not have permission. As @Kylotan said: whether or not the game is non-profit does not change anything, either way you would be breaking laws around copyright and possibly patents too. That being said, there are games and other media based around Valve titles that have been created ...


6

I think the most effective way would be just to fake it. Rendering to some target element using your own built in sprite font as if you're rendering a normal 2D screen. This approach makes sure no strange stuff happens when people are missing fonts, or are using a very different language (Chinese, Russian). Fonts and texts are one of the most difficult ...


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


5

You can do it all in JavaScript. For server side, use node.js. That's basically a JS interpreter outside of the browser, so you can run it just like you run Python or other great scripting languages. Not just that, it gives you support for many networking features, mainly you'll be serving the actual content with it. For communication you'll want to use ...


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