Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Dave Hunt

Member Since 30 Dec 2002
Offline Last Active Today, 10:27 AM

#5231579 what is the best way to design ai for games like x-o or chess

Posted by Dave Hunt on Yesterday, 06:36 PM


i want to know what can be best choice to implement ai for these kinds of games.

The best choice is whatever makes your game work the way you want it to. There is no "best" way to do AI.

 

Check out the links provided in the previous posts and make use of Google to add to your research. Gather the ideas together and see what best fits the needs of your game.




#5231405 Why does this code work? (Drawing in screen space)

Posted by Dave Hunt on 27 May 2015 - 11:22 PM


Also I read that I have to account for the pixel center/cell center and subtract 0.5f from everything, but my textured quad is displayed correctly as it is? Why?

This was changed in DX10. Texels are now pixel centered, so you don't have to make the adjustment manually.




#5231320 Create many factory methods

Posted by Dave Hunt on 27 May 2015 - 01:16 PM

Upcasting from a base class to a derived class is a warning sign of a potentially bad design. Normally, the interface methods would make calls to any additional methods to provide extra functionality, but would not require the user of the API to call those methods directly.

 

If you are set on using the this particular library, then you're pretty much stuck creating factory methods for whatever derived classes you plan to use.

 

I'm sorry if you didn't find my first answer helpful. I though you were interfacing with your own C++ code, as you stated in your first post. In that case, my answer was intended to give you an opportunity to rethink the design of the C++ API and possibly eliminate the need for upcasting.




#5231175 Create many factory methods

Posted by Dave Hunt on 26 May 2015 - 08:53 PM

You should be coding to an interface, not an implementation. Your java code shouldn't care whether it's a "A", "B", or a "Z", only that it is a Letter.




#5226618 Game testing - debug vs release configuration

Posted by Dave Hunt on 30 April 2015 - 07:10 PM

You really should retest everything. Often, bugs show up in release builds that didn't show up in debug builds.




#5226146 Why Does Everyone Tell Newbies To Make Games?

Posted by Dave Hunt on 28 April 2015 - 02:16 PM

The last time I checked, this was gamedev.net. What else would we recommend a newbie to create? ;-)

 

As for someone totally new to development, many early programming assignments are text-based games like word guess, hang-man, etc. They're great tools for introducing new concepts.




#5226075 Why would a mesh appear to be stretched out?

Posted by Dave Hunt on 28 April 2015 - 09:05 AM

In simple terms, X, Y, Z represent the rotational axis and W represents the amount of rotation around that axis.

 

As you found, you can't just assign an arbitrary value to W.




#5225852 Basic C program what am I doing wrong?

Posted by Dave Hunt on 27 April 2015 - 08:38 AM

v = p*1+r doesn't give you what you think it does. If you want to multiply p by 1 + r, then you need some parentheses: v = p * (1 + r)

 

BTW, I hope this isn't a homework assignment...




#5223963 XNA Ghost Attack Behaviour

Posted by Dave Hunt on 17 April 2015 - 07:57 AM


Also, you shouldn't use floating point variables for storing time values, since most of the system functions return time values as an unsigned integer. If you convert the system's time values to float, aside from that extra conversion, you're also just throwing away bits of precision, and forcing floating point operations where integer operations would be sufficient (and faster).

XNA's GameTime class uses TimeSpan structures, which return seconds as doubles.

 


And if that's not it, then it's most definitely because your "float time" variable is not static or global, so it gets set to 0 every frame (or every time you call the Attack() function), and then to the elapsed frame time, instead of accumulating the time since the collision was detected.

This.




#5215732 What IDEs are recommended for Lua and/or Python?

Posted by Dave Hunt on 10 March 2015 - 05:59 PM

I use PyCharm Community Edition for python.




#5214262 Directx11 Sprite class

Posted by Dave Hunt on 03 March 2015 - 12:24 PM

Unless you're set on implementing your own sprite API, I would recommend the SpriteBatch class in the DirectX Tool Kit.




#5211086 What are the recommended places to store save data?

Posted by Dave Hunt on 16 February 2015 - 06:24 PM


Personally I would consider saving within the application's directory to be incorrect on Windows.

In fact, with a "proper" Windows installation, your application's directory will be read-only.




#5211084 WM_INPUT Keys Not Registering

Posted by Dave Hunt on 16 February 2015 - 06:21 PM

See Keyboards are Evil.

 

Basically, it's a hardware problem.




#5210547 Making an XNA game that can adapt between HiDef and Reach profiles

Posted by Dave Hunt on 13 February 2015 - 02:42 PM

Read the comments from Shawn Hargreaves at the end of this article. He answers this question there. Basically, you would isolate the Reach vs HiDef content into separate library projects, so they can be pipelined with the appropriate profile. Your startup code would check for which profile was supported and set the GraphicsDevice accordingly. You would also (obviously) need separate code paths for any features not supported in both profiles.

 

Also, the belief that Reach is for Windows Phone and HiDef is for PCs is a common misconception. Shawn has pointed out many times (see this article and associated comments) that it's not about Phone VS Other, it's about commonly available device capabilities, regardless of platform. Reach happens to fit Windows Phone quite nicely, but it is also appropriate for many of the older generation video cards. This is because, even though many of those cards supported higher-end features, they all did that in a non-standard way that didn't always produce consistent results across cards. The two-profile mechanism provided a way to guarantee consistent functionality.




#5173964 C# While Statement

Posted by Dave Hunt on 15 August 2014 - 01:17 PM


or will it run the random selection again?

Why would it? randomChoice won't change unless you have code inside the while loop that changes it.

 

But, the best way to determine that for yourself would be for you to actually try the code and see.






PARTNERS