Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 17 Aug 2007
Offline Last Active Jan 12 2012 02:42 PM

Posts I've Made

In Topic: How do I/can I use SDL within the windows framework? (C++ Map Editor)

12 January 2012 - 09:51 AM

I don't have a direct answer to your question, but if you don't want to spend time designing tools (since that requires its own skillset) you could try using a general purpose map editor. For example: http://www.mapeditor.org/

In Topic: [SDL] cpu usage

09 January 2012 - 04:05 PM

My personal preference, if you really want to limit FPS, is to do so using vsync.

Well, be careful. Every monitor does not have the same refresh rate and some users may simply force v-synch to be turned off. You need to make sure your game logic isn't frame rate dependent if you want to rely on v-synch. Case in point: Super Meat Boy. Many levels in SMB become flat out broken if the game is not run at 60 Hz.

In Topic: Machine Learning with Multiplayer games

21 March 2011 - 12:09 PM

I'm prepared to be wrong, but I'm not yet convinced. Give me a scenario where a human decision can outplay a perfectly operated AI.

Your assumption is that the AI controls individual units perfectly (in some sense), but you must make more assumptions about the AI! Playing the game involves choosing which units / buildings to produce as well as when to produce them. Those decisions are critical, and therefore the AI's ability to do them is as well, so you need to make assumptions about the decision making ability of the AI. If it is nonexistent, that is if the AI does the exact same build order every game, then the AI will lose. The reason for that is that some units are designed to kill other units and there are a lot of situations that you simply can't micro against. There are many ways to hold units in place, and in a lot of cases the unit AI will control your units optimally (chasing and surrounding other units for example).

But, you just asked for any situation and then I can just say let the AI play Zerg in SC2. In the current state of the game Zerg is considered to be a very reactive race. They have very few offensive options early on, so they must play the role of the defender, but there is no universal defence strategy and in order to survive the player needs to rely on good decision making, which is why it is considered to be the hardest race to play. Their design differs a lot from the other two races in the game in that you build both workers and attacking units from the same source (larvae). That means that if you are tricked into making attacking units and the attack doesn't come, then you will be crushed by an attack a few minutes later because you had so many less workers (trust me, the difference will be greater than any micro can overcome, especially since early game Zerg units don't benefit much from micro). If you don't make enough attacking units then you can easily get crushed by an attack, and a human player will react to what you do! If you don't have a strong defence he will be prompted to attack.

The AI will need to have the ability to adapt, but then you're getting into something much less trivial than unit control, which is my point =)

In Topic: Machine Learning with Multiplayer games

16 March 2011 - 06:21 PM

To elaborate on the above, machine learning systems are good at finding local optima of a solution space, but not necessarily optima of the interesting solutions.

In other words, a learning system will quickly figure out how to mop the floor with you, and then just do that. Over and over. A machine will always have better reactions, better micro-management, better timing; even with the exact same resources and units in a strategy game (say, Starcraft II) the AI can always win, because it does not have human limitations and fallibilities.

So the AI will learn how to kill you, and then never do anything else. If it's designed to win - if that is the fitness criteria for how it is taught - then it will win, period. It won't play an interesting, creative game; it'll find that local optimum and just hammer on it until you give up in disgust.

You mention StarCraft and in the case of that game I think you're wrong. RTSes are limited information games, just like poker; you have to make a lot of decisions very quickly based on little information. Mindgames are extremely important on a high level where the players can no longer distinguish themselves with better mechanics. If you made an AI that could execute a strategy perfectly, then at least in SC:BW that wouldn't be enough to beat a pro player, because unit control only matters when the players are otherwise equal. If you let a human do the decision making and an AI the actual playing, then that pair would win, but a human could outplay an AI simply with decision making.

Here's an article on some AI research in SC:BW:

In Topic: creating a 2d scrolling shooter

29 June 2010 - 09:46 AM

I just finished one too and the way I did it was that I had a set of waves and once a given wave was killed or went offscreen the next one would spawn, so it wasn't tied to how far you'd scrolled.