Domain: wittyrpg.com
Stories and comments across the archive that link to wittyrpg.com.
Comments · 73
-
Re:1000+ a day isn't very much
I agree that 1000 unique visitors is peanuts, but as for how to do HA, it really depends a lot on your situation. For example, the primary server for Game! started acting up about 2 weeks ago, but it mattered little as I was able to flip over to the backup server and came out with barely any downtime and no data loss. In the mean time, I was able to diagnose and fix the primary server, then point the traffic back at it. In my case, all the dynamic data is in MySQL, which is replicated to the backup server, so when I switched over I simply swapped the slave and the master and redirected traffic at the backup server. You also have to consider the code, which you presumably make semi-frequent updates to. In my case, the code is stored in SVN and updated automagically on both the master and the slave simultaneously.
Having said all that, there's more to consider than just your own hardware when it comes to HA. What happens if your network connection goes down? In most cases, there's nothing you can do about it except twiddle your thumbs while you wait on hold with customer service. Redundant Internet connections are expensive due to the fact that you basically need to be in a big (and expensive) colocation facility to get it.
Also, how easy it is to have HA depends largely on how important writes are to your database (or filesystem). Does it matter if this comment doesn't make it to the live page for a couple seconds after I hit submit? No, not really. Does it matter if I change my equipment in Game! but don't see the changes immediately? Yes, definitely. Indeed, if your content is 100% static, you can just keep a dozen complete copies and put a load balancer in front that pulls dead machines out of the loop automagically and be done with it.
-
Re:Twitter Developer Alex Payne on Rails performan
They have tons to do with the real world. It means that, as a baseline, the machine in that benchmark will never run a CakePHP application faster than ~37 requests/s, which is pretty bloody slow.
Will a full fledged PHP app be slower than a hello world CakePHP app? Not even close, at least in my experience. For example, Game! runs in excess of 100 requests/s on the very modest hardware I mentioned above, and would likely be well over 300 requests/s on the 3 GHz machine in the benchmark I linked (assuming it's a single core, double that for a dual core), and it is most certainly more than hello world. It is, of course, written in stock PHP, not CakePHP.
The point of my post is that comparing to CakePHP is a lousy comparison, because a) CakePHP is a pretty minor player in the PHP world, and b) CakePHP is hideously slow. Honestly, I don't know how they managed to make CakePHP so slow, it's not even hard to write fast PHP code.
Oh, and here's the benchmark I was looking for earlier. Here we see CakePHP more than an order of magnitude slower than CodeIgniter, though IMO they're all too slow to consider. CakePHP in particular serves a dismal 7 requests/s, which (at least to me) isn't even acceptable for a single user.
The topic of framework vs no framework is another flamewar altogether, which I won't go into here.
-
Re:No way in hell!
Of course the gated community would be broken into... then imagine the party that the (anonymous) phishers will throw as they harvest everyone's information!
Besides, Internet v1 still has Game!
-
Re:Wrong battle?
In the mean time, you could just play games without any DRM, like Game!
-
Re:VM hacking?
x86 on x86 emulation was pretty slow before we had svm/vmx, although with it it's basically native speed now (except for anything graphical). I think QEMU can emulate x86 on PPC, but expect it to be slow, as there'll be no hardware acceleration (svm/vmx), and you can't use kqemu either. Really, you should just avoid the hassle and play Game! instead.
-
Game! doesn't need your personal information
I find it really irritating when a site requires you to give them (made up) personal information when it clearly doesn't need it. That's why Game! doesn't ask for any personal information whatsoever. Of course, that's probably a drop in the bucket compared to everybody pouring their life into Facebook...
-
Re:PNG/GIF i'll forgive
The PNG hack for IE6 has some rather fatal drawbacks, particularly if you want to use it to replace background images instead of just regular <img>s. The most obvious issue is the z-index one, in that the PNG hacked PNG is rendered on a layer on top of the canvas, for which no events (including clicks) will pass through, unless you throw in a lot more hacks and you're really lucky. The other more insidious problem is that any element with a PNG hacked PNG must have layout, meaning it's almost guaranteed to have nasty side effects on any non-trivial page. I don't really care about IE6, but out of curiosity I tried applying the PNG hack to the gameboxes in Game!, and quickly scrapped the idea after finding several major issues due to the required hasLayout hack.
PNG8 is an interesting aside, but only marginally better than just serving GIFs to IE6.
-
Re:Multi-player text adventures?
You could always give Game! a shot instead. It should be snappy, even on dialup.
-
Independent development is a good way to go
I put Game! together in my free time, and initially it had exactly zero art. A couple artists came upon it and liked it enough to start contributing art, and thus it actually has quite a lot of art now.
Web based games allow for very rapid evolution, and also means you can start putting it in front of users way earlier than usual. It doesn't take a lot of code to make something useful either, I'm still the only coder on Game! and that's just in my spare time. In comparison to game studios with several hundred people all working on a game compared to a few people working part time, it's amazing what you can still get done.
-
Re:Layoffs
That's a great example of sample bias. The answer to FAQ #15 states that Game! doesn't work well in IE.
That it does, but I'm only counting unique hits to the front page. So an IE user that looks once and never returns counts the same as a Firefox user that plays every day for a year.
I'm not saying the results aren't biased (though it's not as simple as you make it out to be), but rather to take them (and the article's) with a grain of salt.
-
Re:Layoffs
That's a great example of sample bias. The answer to FAQ #15 states that Game! doesn't work well in IE.
-
Re:Layoffs
Well, Microsoft would be delighted to hear about the browser stats for Game!, then...
Based on unique hits to the front page:
- Firefox: 69.41%
- IE: 11.01%
- Safari: 7.53%
- Opera: 6.19%
- Chrome: 4.11%
- Konqueror: 1.67%
-
Re:Now What...
I have a similar site that I wrote (pre-audioscrobbler). Granted it's crap, but I have mountains of data also. Closer to 1 tb than hundreds of tb. The question is, how do you monetize the data?
If you could (accurately) answer that question, then you'd act upon the answer...
Why do you think Google ads are Google's bread and butter as far as cashflow goes? The reason is that Google has a treasure trove of user data, probably more than anyone else, so they can really make contextual ads work. Anyone can write an ad engine, but not everyone has access to mountains and mountains of user data.
You might be surprised at how important context is when you're trying to promote something. Say you're trying to promote an online RPG like Game!, if you took a random collection of people, probably less than 5% of them would be interested in playing, but if you can target gamers specifically, that number might jump to 50%. If you're paying for every impression, that makes a world of difference.
So not only do you need to understand your audience, you also need to effectively target them. Now, how do you do that? Data mining of course, and the more data the better.
Pretty much all data has value, figuring out how to turn that data into money is extremely subjective and might involve some black magic, and definitely requires luck too.
-
Game!
Browser based games are always a good option. My favorite being http://wittyrpg.com/ of course.
-
Game!
Technically you wouldn't put it on the laptop per se, but you could add a link or desktop shortcut to Game!. It'll play on anything with a browser.
-
Re:College AI Project
Games of perfect knowledge versus an opponent are pretty simple to solve. You'll find they all basically boil down to minimax applied to game trees plus an evaluation function (which gives you a fitness value). There's also alpha-beta pruning and things like Negascout which are just optimizations for Minimax. The trickiest part of this is writing an effective (and fast) evaluation function.
Freecell is a bit different because it's a single player game, but ultimately you can apply a similar method as above.
Real time decision making in games is often quite different. One problem is that you don't necessarily always want to make the "best" move. In Game! for example, each monster has a regular attack and may have one or more special attacks. Using simple AI to pick one (such as, pick the attack that does the most raw damage) each time wouldn't be as interesting as picking randomly. Say one of the special attacks for the monster is to steal some gold from the player, why would the AI ever pick that? It doesn't benefit the AI at all, but it does make the monster more interesting to fight for the player. Similarly, if one monster has an absolutely devastating attack, a "smart" AI would always use it. But if the AI always uses the devastating attack then either that monster will be impossible to kill, or the regular attacks must be really boring. But, if the monster with the devastating attack only uses it occasionally, it keeps the player on their toes, perhaps they'll heal more often, or use more powerful attacks to try and dispatch the monster faster.
Having said all of that, random picking isn't always the best way to go (although it's quite efficient with CPU time). The main problem with game trees is their branching factor. Chess is a fairly CPU intensive game for AI to play, as it has an average branching factor of ~36. For real time games, it's likely that you can use domain knowledge to substantially prune the branching factor, which makes the problem much simpler. For example instead of considering to, say, turn left 1 degree, or 2 degrees, or 3 degrees or... you could just consider turning left 90 degrees or 180 degrees. If you only end up with a dozen options left to pick from, you can fairly quickly expand several levels of the game tree and then make an informed decision.
However, some games are not games of perfect knowledge (Backgammon, for example), often they rely on chance. In this case, the value of deeper game tree expansion rapidly diminishes, and you simply need to temper your fitness values based on the expected probability of that move being possible. The other problem with games of chance is that the branching factor is usually very high, which typically makes it unfeasible to expand too many levels in the game tree anyways.
Of course you can precook a number of situations, most good Chess AIs have a large collection of book openings that they use. It's really just an application of domain knowledge again, then you can reuse your game tree expansion with evaluation function on each of the book openings to find the most appropriate one instead of doing an exhausive search of all possible moves.
-
Make your own
You could start your own game to put in your portfolio like the author of http://wittyrpg.com/ did.
-
games with limits
That's why I like browser games like http://www.wittyrpg.com./ It's browser based so I can feed my game addiction from anywhere(work) but it has a limit on how much you can play in a day so I'm not wasting my entire day with games.
-
Absolutely
If you've never made a game yourself, you'd be amazed at how much work it is to create content. Speaking as someone who has made a game (see Game! - The Witty Online RPG), I'll tell you it's way way more work to create content than it is to create game engines or anything else code related. Try looking at the credits for most any game created in the last 10 years and you'll probably find at least 5 content creators (artist, story editor, copy writer, map/model creator, etc) for every 1 programmer, if not more.
So, absolutely, procedural content generation is a huge boon if you do it correctly, much like the "social" aspect of Web 2.0 was a boon for the web, when done correctly. Of course, it's also tricky to do correctly, very few games are there at the moment, and it'll probably take awhile until we have lots of good examples.
-
DRM? No sir, not around these parts
You could always try sending a message to the gaming industry by playing Game! - The Witty Online RPG. It's DRM free and you don't need to pirate it.
-
Re:This is why mages in D&D are stronger than
As someone who's actually made a game (Game! - The Witty Online RPG) I'd say that balance is very tricky to maintain, probably even the hardest aspect of designing a game, but yet extremely central to having a fun and challenging game. You can plan out a scale of progression initially, but unless you plan out everything in advance (which is basically impossible), you'll still end up with things that are tricky to effectively balance later on.
You mentioned the idea of giving particular classes more abilities than others, and just by chance at least some of those will be overpowered, making the character overpowered. That's true, but you also have to consider the interaction between different abilities, and with more abilities, the number of combinations grows exponentially.
Starcraft is a great example of balance done correctly, and I think that's the main reason it's still popular today. Speaking of Starcraft, I doubt Blizzard anticipated that people would become so adept at microing just about everything (try watching a game between two good players these days!), and that changes the balance of the game a lot too.
-
Re:You should have asked this a year before.
Interships are probably a good option. I did a CS degree with Co-op (four 4 month work terms integrated with regular classes, but the degree only takes 1 extra semester, as you don't get summers off), and I had no trouble at all finding a job after graduating (above entry level even, or at least well above entry level pay scale). For me, the already existing relevant job experience was pretty valuable.
Though, job experience isn't the end of the story, if you don't have job experience, you can still work on related stuff in your spare time. When I was applying for my one of my Co-op positions, I was able to show off Game! as something substantial that'd I'd already done, and that pretty much clinched the job offer. Game! wasn't something I created with the intention of putting on my resume, I just wanted to make a game, but it certainly turned out pretty well.
So, code something you like in your spare time. If there's nothing that interests you that you want to develop, perhaps a programming job isn't actually what you want to be doing.
-
I'm on the fence...
Even though I've created a purely browser based online game (Game! - The Witty Online RPG), I'm on the fence on this matter.
On one hand, many people put a lot of real life time into earning said virtual property, and in many cases it clearly holds actual monetary value in the real world.
On the other hand, should I be liable if I accidentally delete a player's data in Game!? I don't think that's realistic, especially when you keep in mind that Game! is completely free of cost. So does that mean they really own the things they've earned, or no? I'm not sure.
Do I own this Slashdot comment? Slashdot says I do, and they don't claim any responsibility for it, but what happens if Slashdot deletes it on me? I've lost something I own, and there's nothing I can do about it. That doesn't seem right.
Ultimately, I think we'll see that virtual property is legally blessed to have real life monetary value, in much the same way that software is.