Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Squido
May 21, 2005
Ask me about being a paedophile.

Danbo Daxter! posted:

If the camera is fairly static, have you considered having a 2D game with pre-rendered sprites (taken from 3D models) or is that not possible? It could save you a lot of trouble in the long run, but if that's not possible you could look into XNA.

It's certainly possible, we havn't got solid ideas down that need to be adhered to at the moment. Thinking about it however I think we'd probably prefer to do it in 3d as it would give us more options in terms of the camera and I think you could make it look alot nicer, i.e. in terms of lighting effects and perspective changes.

XNA looks pretty good from what i've seen of it and definitely something we're considering, especially with the 360 compatability.

Adbot
ADBOT LOVES YOU

Oae Ui
Oct 7, 2003

Let's be friends.

Ugg boots posted:

Pygame, then, is pretty much exactly what you want.

To throw yet another option out I'd recommend Pyglet. It lacks some features that PyGame has, like joystick input, but it's all OpenGL based and is much faster than PyGame. It also has no external dependencies which makes distribution a little bit easier. It's also easier to setup on a Mac because of that. Last I checked PyGame didn't have a Leopard compatible version. I've built some prototypes using it and it's been very easy to build binaries for Windows/Linux/Mac.

It also works very well with the Pymunk binding for the Chipmunk physics engine if you want to incorporate physics into your game.

Sivart13
May 18, 2003
I have neglected to come up with a clever title

Oae Ui posted:

To throw yet another option out I'd recommend Pyglet.
Pyglet is definitely better than Pygame with regards to performance if you want to do something that updates large portions of the screen at once. If you want to interface with GL directly and actually be able to distribute your program as a binary without a pile of headaches, Pyglet is your only real choice.

Both libraries have their strengths and weaknesses, but given how slow Pygame develops and how its featureset is locked to that of the SDL I think Pyglet is going to keep skyrocketing forward.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice
I've been using pygame for a roguelike I've started to develop and notice a little flickering everytime I update the screen. I might take a look at pyglet.

As for windows binaries, py2exe has been my best friend for showing off my work to my brother. All you have to do is write a small 10ish line setup.py file and then go to console with: "python setup.py py2exe"

It builds a distribution folder with all dependencies taken care of. My brother unzips the folder I send him and double click my .exe

more falafel please
Feb 26, 2005

forums poster

poemdexter posted:

I've been using pygame for a roguelike I've started to develop and notice a little flickering everytime I update the screen. I might take a look at pyglet.

Either you're running that on a 386 or the problem is not with PyGame, it's with your code.

StickGuy
Dec 9, 2000

We are on an expedicion. Find the moon is our mission.
It sounds almost like you're using a single-buffered mode.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

more falafel please posted:

Either you're running that on a 386 or the problem is not with PyGame, it's with your code.

Could be the code, but seriously, it's like 150 lines of code max. All I'm doing is placing strings on a surface, blit, and flip. Am I missing something to cut down on the flicker?

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

poemdexter posted:

Could be the code, but seriously, it's like 150 lines of code max. All I'm doing is placing strings on a surface, blit, and flip. Am I missing something to cut down on the flicker?

Figured it out. I was creating a new Surface everytime I wanted to print something to the screen. I moved my Surface initialization to my __init__ and reuse it to print to screen. Flicker gone.

quote != edit

more falafel please
Feb 26, 2005

forums poster

poemdexter posted:

Could be the code, but seriously, it's like 150 lines of code max. All I'm doing is placing strings on a surface, blit, and flip. Am I missing something to cut down on the flicker?

I have some Python code that prints "hello world" 10 times but it's really slow, Python must be really slow.
code:
for i in range(1,10):
    print "hello world"
    for j in range(1,1000000000):
        pass
It's only 4 lines, it can't be the code.

I think this is a lot of the reason why people tend to think languages like Python and Ruby are so slow -- when complicated algorithms (regular expression matching, any string processing crap, etc) are hidden behind a really nice layer of abstraction, you don't realize when you're doing (for instance) n^2 operations n^2 times.

Here's a data point: the vast majority of gameplay code for Gears of War is either written in UnrealScript, expressed as data, or in Kismet, which is UE3's graphical scripting environment. You don't write AI in savagely optimized C.

krysmopompas
Jan 17, 2004
hi

more falafel please posted:

You don't write AI in savagely optimized C.
Christ, I thought all this Kynapse stuff I've been staring at had something to do with AI...no wonder these bugs never get fixed.

The needs of Epic in Gears are vastly different from the needs of the general industry. Go ask someone from Midway about native vs. unrealscript performance.

krysmopompas fucked around with this message at 01:00 on Jul 22, 2008

POKEMAN SAM
Jul 8, 2004

Oae Ui posted:

It also works very well with the Pymunk binding for the Chipmunk physics engine if you want to incorporate physics into your game.

According to the internet you can use Pymunk with Pygame, too.

Edit: As far as AI goes, generally I've seen it important to use lower level languages so that we can allow more "AI frames" per second to be executed. The quicker it goes, the faster it can react.

Scaevolus
Apr 16, 2007

krysmopompas posted:

The needs of Epic in Gears are vastly different from the needs of the general industry. Go ask someone from Midway about native vs. unrealscript performance.
more falafel please works at Midway Chicago.

edit: :downs:

Scaevolus fucked around with this message at 02:58 on Jul 22, 2008

krysmopompas
Jan 17, 2004
hi

Scaevolus posted:

more falafel please works at Midway Chicago.
That was my point, he should already know this.

ValhallaSmith
Aug 16, 2005
Keeping with the scripting flame war. If you guys need more performance you could stick with c++ for the majority of your program and host an instance of .NET in the program for scripting. You can use CorBindToRuntimeEx to load it and run any AI etc scripts in there. Its pretty advantageous since the scripts would be executed rather than interpreted. Plus you can use various languages (C#/Python/Lua). I was considering using it for my own game. Although I am leaning to a more complex solution now using LLVM. Actually I'm not sure what the hell I'm going to do yet. For me its quickly turning into a redesign the way games are distributed thing.

ValhallaSmith fucked around with this message at 03:12 on Jul 22, 2008

krysmopompas
Jan 17, 2004
hi

ValhallaSmith posted:

Keeping with the scripting flame war.
I'm not trying to contribute to a scripting flame war, I'm only taking issue with the assertion that "You don't write AI in savagely optimized C" since it's quite apparent that AI does in fact ship in many games in some savagely optimized low level language all the time.

krysmopompas fucked around with this message at 03:44 on Jul 22, 2008

StickGuy
Dec 9, 2000

We are on an expedicion. Find the moon is our mission.

more falafel please posted:

I have some Python code that prints "hello world" 10 times but it's really slow, Python must be really slow.
code:
for i in range(1,10):
    print "hello world"
    for j in range(1,1000000000):
        pass
It's only 4 lines, it can't be the code.

I think this is a lot of the reason why people tend to think languages like Python and Ruby are so slow -- when complicated algorithms (regular expression matching, any string processing crap, etc) are hidden behind a really nice layer of abstraction, you don't realize when you're doing (for instance) n^2 operations n^2 times.

Here's a data point: the vast majority of gameplay code for Gears of War is either written in UnrealScript, expressed as data, or in Kismet, which is UE3's graphical scripting environment. You don't write AI in savagely optimized C.
I think you missed some of the point. Your example has terrible performance because scripting languages just can't handle huge numbers of operations that are actually in the scripting language. If they are hidden away in "savagely optimized C", you won't notice it that much. Python et al. are good for games because you can let them deal with a number of game objects as individual objects and let the hidden C/C++ deal with the hundreds of thousands of individual triangles and vertices.

ahobday
Apr 19, 2007

I used Allegro to make a simple 2D platformer. I'm still hella interested in making quirky 2D games, but I'd like to be able to move up to 3D programming if I ever feel the need.

What graphical library should I be looking at if I want to make 2D games, but that will have full 3D capabilities available if I decide to dabble in that? Like, can SDL make 2D games in the same sense that Allegro can?

Also, why is OpenGL for Windows not available for download anywhere? There are a few links here or there, but they all seem to be third party links as opposed to links from whoever actually produces OpenGL for Windows.

Edit: Forgot to mention that I'm programming in Windows, with Code::Blocks.

Edit 2: I'm attempting to install SDL and use it with CodeBlocks. I've moved all the files into the correct places (lib and include), as well as put SDL.dll in System32. I make a new console project (Because I'd rather understand what's going on than use the included SDL project template). I then link libmingw32.a, libSDLmain.a and libSDL.dll.a using the linker options under Build Options.

No dice. I get all sorts of errors, and they keep on changing whenever I try to replicate a problem to find out the exact error :(

Right now it's a load of "Undefined reference to "_SDL_something" errors.

ahobday fucked around with this message at 13:24 on Jul 22, 2008

Insurrectum
Nov 1, 2005

edit: nvm

more falafel please
Feb 26, 2005

forums poster

krysmopompas posted:

Christ, I thought all this Kynapse stuff I've been staring at had something to do with AI...no wonder these bugs never get fixed.

The needs of Epic in Gears are vastly different from the needs of the general industry. Go ask someone from Midway about native vs. unrealscript performance.

Kynapse is middleware, which completely changes the discussion.

And I realize the native vs. script performance, that was my point. It works for Epic because they have lots of technical designers and gameplay programmers who can write UnrealScript. We don't really use UnrealScript for gameplay for a number of reasons, but we use gobs of Kismet and some other homebrew stuff. It isn't fast, but it doesn't have to be, it's barely even on the list of things that should be optimized/parallelized/etc. My point was that it's generally unnecessary to make gameplay code crazy fast -- it's usually much better to make it so designers and gameplay programmers can quickly iterate on it, ideally without rebuilding every time they try something.

more falafel please
Feb 26, 2005

forums poster

StickGuy posted:

I think you missed some of the point. Your example has terrible performance because scripting languages just can't handle huge numbers of operations that are actually in the scripting language. If they are hidden away in "savagely optimized C", you won't notice it that much. Python et al. are good for games because you can let them deal with a number of game objects as individual objects and let the hidden C/C++ deal with the hundreds of thousands of individual triangles and vertices.

No, my example has terrible performance because it's algorithmically horrible. My point was that a lot of times perceived performance issues in languages like Python come from the language/library obscuring the algorithmic complexity of what it's doing under an awesome interface. This was in reference to someone saying that PyGame was taking a huge and noticeable amount of time to draw each frame. It wasn't PyGame that was the problem, it was that he was essentially reinitializing the entire surface every frame.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Centipeed posted:

Also, why is OpenGL for Windows not available for download anywhere? There are a few links here or there, but they all seem to be third party links as opposed to links from whoever actually produces OpenGL for Windows.
The libraries and headers are licensed off to developers of development tools. Visual Studio comes with the OpenGL .lib files and headers, for example. You can get the latest extension headers here:
http://www.opengl.org/registry/

If you really need the main headers (i.e. GL.h), download Mesa, the headers are compatible. If you want the library, then I think Mesa includes it, if not, just use LoadLibrary, GetProcAddress, and wglGetProcAddress which you should be doing anyway.

If you mean the runtime, there is no standard one, implementations of the spec are produced and distributed by implementors of it. In other words, it comes with your video card drivers.

OneEightHundred fucked around with this message at 21:00 on Jul 22, 2008

StickGuy
Dec 9, 2000

We are on an expedicion. Find the moon is our mission.
To get the OpenGL libraries and headers for windows you have to download and install the platform SDK from Microsoft. It's free, but it's a big install.

more falafel please posted:

No, my example has terrible performance because it's algorithmically horrible. My point was that a lot of times perceived performance issues in languages like Python come from the language/library obscuring the algorithmic complexity of what it's doing under an awesome interface. This was in reference to someone saying that PyGame was taking a huge and noticeable amount of time to draw each frame. It wasn't PyGame that was the problem, it was that he was essentially reinitializing the entire surface every frame.
I guess my point is subtly different. What you say is true, but the limit at which algorithmic complexity becomes a bottleneck depends on whether it's in wrapped C/C++ code or if it's pure scripting language that can't be passed off to the underlying C/C++ code. Take the example of image processing. There's plenty of image processing libraries for Python, but most of them rely on some wrapped code to handle the actual iteration over the image pixels. To have such iterations in pure Python code would make things much slower.

StickGuy fucked around with this message at 07:53 on Jul 23, 2008

MasterSlowPoke
Oct 9, 2005

Our courage will pull us through
I'm pretty much done with my 3d model importer, so now I'm off to the next step: the levels. Can anyone recommend a format and/or editor to use? Really anything could help, it's probably far more complex than I think.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

MasterSlowPoke posted:

I'm pretty much done with my 3d model importer, so now I'm off to the next step: the levels. Can anyone recommend a format and/or editor to use? Really anything could help, it's probably far more complex than I think.
Dealing with level editing is the biggest pain in the rear end of any 3D engine. If you want something easy to start with, then Quake 3 BSP is probably your best bet. It's a straight-forward format, the stock tools are very easy to extend, and the editor is reasonably functional.

Not to say it's good, Radiant is a train wreck of code and I try to avoid dealing with it as much as I can, and adding features to it is an exercise in frustration. That's not to say you can't make it dance to your tune if you try hard enough.

The alternatives are not good. There's a reason there are hardly any good level editors out there, and that's because it's extremely time-consuming, especially if it does convex solid editing and doesn't just do what most 3D engines do now, which is import a model from Maya and just use the editor to place lights, portals, and entities.

The only alternatives I'd even consider:
- Quark, which has a generally confusing interface and is written in Delphi and Python. Last time I tried, it was also buggy, with random crashes and geometry corruption.
- Getic, which looks promising and may be going open source soon
- BSP, which has a steep learning curve and doesn't have Quake 3 support, but does have a sane code base.

Don't bother with GtkRadiant, it's bloated as hell, is frustrating to even get to compile, and even more frustrating to modify due to severe overengineering. Don't bother with q3map2 either, it's also bloated and it's slow.

Vinlaen
Feb 19, 2008

If somebody wanted to create a multiplayer tower defense game, what would the best option be?

I'm asking this because I think what I want simply doesn't exist which is a library/engine that provides collision detecion, particle effects, built-in GUI, and "automatic" networking support.

I'm mostly considering XNA but it seems like "Easy-Mode" DirectX with a handful of helper functions for managing input, etc, but it doesn't provide any kind of built-in GUI or networking support (other than allowing you to send reliable/unreliable order/unordered packets).

I'd really like some type of game library/engine that will let me create some sprites on the screen, move them around (providing collision detection) and keep everything in-sync across multiple players on the internet.

I guess nothing like this exists, huh?

What is the closest option available? I've actually purchased TGE (no idea why I did this), TGB (too difficult to do ANYTHING besides what is built-in espicially since the sourcecode is very advanced C++), and BlitzMax.

BlitzMax seems quite popular and not a bad choice (built-in windows, mac, and linux support!), but it doesn't have too many "intermediate/advance" features like using render targets or stencil buffers. It also doesn't have any sort of GUI and it forces you to use BASIC (with a tiny, tiny bit of OOP thrown in)

MasterSlowPoke
Oct 9, 2005

Our courage will pull us through

Vinlaen posted:

multiplayer stuff

I don't know of anything out-of-the-box that does that, but for an XNA networking library I've heard of a lot of people using Lidgren.

OneEightHundred posted:

level editor stuff

I'm assuming you like Getic the most? You don't have anything good to say about Quark and BSP looks like it's far too ancient (it not being updated in almost a year is a bad sign too). Have you tried DarkRadiant? I've heard some good stuff about it.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

MasterSlowPoke posted:

I'm assuming you like Getic the most? You don't have anything good to say about Quark and BSP looks like it's far too ancient (it not being updated in almost a year is a bad sign too). Have you tried DarkRadiant? I've heard some good stuff about it.
I haven't tried DarkRadiant, but it's based on GtkRadiant which means I have low hopes for it. I haven't actually tried Getic yet, but it looks stable.

Quark may have resolved the major bugs since TGE uses it for a lot of stuff. It can't hurt to try it, but it wouldn't be my first pick.

Vanilla Q3Radiant is probably the best starting point if only because it works and it compiles without a problem. The options for level editors right now are not very good, but Q3Radiant gives you convex solid, parametric curve, and polygon mesh primitives which is enough for most purposes. The only thing it's lacking are portals, and you could hack those in with brushes if you really wanted to, and the entity editor is really bare-bones.

On the tools side, q3map IS very good, particularly the severely underutilized -vlight option, which basically lets you increase your lightmap resolution for free.

OneEightHundred fucked around with this message at 17:16 on Jul 28, 2008

more falafel please
Feb 26, 2005

forums poster

Vinlaen posted:

and "automatic" networking support.

This doesn't exist, and likely never will.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

more falafel please posted:

This doesn't exist, and likely never will.
It does exist, but it has obvious drawbacks, like being forced to use only whatever effects and prediction methods (if any) the built-in client-side gamecode supports. Quake and Quake 2 would be examples of this, since any mods automatically support multiplayer as long as you don't make dumb design decisions like setting globals in per-player code.

Warcraft 3 modding does it as well, but that's a bit of a stretch. Honestly, Warcraft 3 may be one of the best choices for a tower defense type game simply because it comes with a massive audience ready to go.

OneEightHundred fucked around with this message at 20:17 on Jul 28, 2008

Vinlaen
Feb 19, 2008

Vinlaen posted:

and "automatic" networking support.

more falafel please posted:

This doesn't exist, and likely never will.
Why?

It seems to me like a basic gaming network engine/library would take care of three things:

object position, acceleration/velocity, and misc data (eg. variables/data structures).

Why can't a library exist that lets me give it an object and it will do automatic interpolation and state synchronization? (perhaps with different methods [eg. dead reckoning, etc, etc])

I'm not talking about anything fancy here. Really all I want is to have different objects (eg. players) shooting different projectiles and just keeping everything synchronized. (NOTE: I'm also talking about 2D but I don't think that would really matter).

Heck, let's suppose I want a simple 2D platformer (eg. Mario) with two players running around the level. It doesn't seem that hard in concept but I really don't know much about game programmer (espicially network game programmer) so I guess I'm not understanding something...

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!

MasterSlowPoke posted:

I don't know of anything out-of-the-box that does that, but for an XNA networking library I've heard of a lot of people using Lidgren.

Holy crap, this looks like a slick library. I'll have to play with this and possibly tear out all the networking garbage I've written.

tripwire
Nov 19, 2004

        ghost flow
Has anyone had any experience/luck combining Box2d (specifically the python bindings, pyBox2d) with pyglet? The guy who did the python bindings for box2d included a testbed that uses pygame, but since everyone keeps mentioning the various limitations with pygame I'm wondering if I should just use pyglet instead. What would I have to do differently if I wanted to package the binary for windows/osx/linux?

SheriffHippo
Jul 18, 2002
I am trying to create a FPS-like mouse input system in C#.

*(This is a 2D top-down game. I do not need to do matrix/transform stuff)

I simply wish to record mouse movement input that is not inhibited by the constraints of the screen, or window.

For every mouse movement, the program should force the mouse back to the center X/Y point of the game. Each mouse movement is measured in terms of distance from the game's center point.

C# has some mouse functions that can get/set the cursor position, but they all exist in terms of the program window. (This won't do if one is playing in a window)

Because of this, I am importing win32 functions in C#. For example:

code:
[DllImport("user32.dll")]
public static extern bool SetCursorPos(int X, int Y);
This gives me more low level access to the mouse. I am now able to get and set the mouse position in terms of screen coordinates.

However, I am experiencing various problems.

I think I want the following rules to exist:

1. For every mouse movement, record the distance and duration of movement. Set the mouse back to center X/Y.

2. Hide the cursor. The cursor should be invisible even when it leaves the program window. I am currently unable to do this. Both C#'s Cursor.Hide() and win32's ShowCursor() do not keep the cursor hidden if it leaves the game window.

3. If the cursor happens to leave the game window, clicks should not register. I am having a problem with this too.

I don't know if I should:

A. Intercept all mouse input and keep it from passing to the OS.

Or..

B. Sample the mouse input often enough to keep it inside the game window.

Ultimately, I would like to use an OnMouseMoved event as opposed to a timer loop. I am attempting to use a mouse-moved event, but I am having problems with win32's SetCursorPos() function, when this event is fired. (Perhaps there is an issue that requires a Delegate. I am lost here.)


In conclusion, this has become retardedly hard.
Should I continue blindly trying things, or can DirectInput, XNA, GLUT, SDL, or some other library make this easier?

edit: I have written a Direct3D/C++ 2D game before, so C++ is an option. I would prefer to use C# though, as it is much easier to deal with.

SheriffHippo fucked around with this message at 10:26 on Aug 3, 2008

MasterSlowPoke
Oct 9, 2005

Our courage will pull us through

SheriffHippo posted:

1. For every mouse movement, record the distance and duration of movement. Set the mouse back to center X/Y.
What API are you using? XNA? Managed DirectX? SlimDX? GDI (is there even GDI for C#)? If you're not using XNA, it would probably be best to use DirectInput for this.

SheriffHippo posted:

2. Hide the cursor. The cursor should be invisible even when it leaves the program window. I am currently unable to do this. Both C#'s Cursor.Hide() and win32's ShowCursor() do not keep the cursor hidden if it leaves the game window.
When you create a window there should be a flag to hide the mouse, I'm not quite sure as I haven't dealt with window creation in years.

SheriffHippo posted:

3. If the cursor happens to leave the game window, clicks should not register. I am having a problem with this too.
If you're sampling the mouse once a frame (1/60th of a second) this should never happen.

StickGuy
Dec 9, 2000

We are on an expedicion. Find the moon is our mission.
The Windows API provides functions to "capture" the mouse so that a window receives all mouse events, even if they're generated outside of it.

excitebike
May 18, 2003

SkankerX posted:

Fixed point is still necessary for most portables, including the iPhone (for OpenGL ES) and for the DS (for everything). Having a nice, type safe fixed point class which overloads the standard mathematical operators would go a long way in keeping other dependent code platform agnostic (typedef real numbers as float or fixed, depending).

This is from a few pages back, but I just wanted to point out that the iPhone is optimized for floating point throughout, it is not advisable to ever use fixed point on the iPhone. While this may be the case on other platforms, don't try to deal with fixed point. I'll even go so far as to say that if you are porting strictly fixed point code from other platforms, you need to rework it all to be floating point.

:science:

SheriffHippo
Jul 18, 2002

MasterSlowPoke posted:

What API are you using? XNA? Managed DirectX? SlimDX? GDI (is there even GDI for C#)? If you're not using XNA, it would probably be best to use DirectInput for this.

I am not using a gaming API. The game consists of a Flash swf embedded in the form. I tried XNA, but it doesn't seem to use forms, and input relies on a built-in game loop, something that C# programs don't seem to have exposed.

MasterSlowPoke posted:

If you're sampling the mouse once a frame (1/60th of a second) this should never happen.

I've set up a timer that runs every millisecond. The mouse still escapes the window. :(


StickGuy posted:

The Windows API provides functions to "capture" the mouse so that a window receives all mouse events, even if they're generated outside of it.

I am having terrible problems with SetCapture(). Perhaps I will keep trying that.


edit: I've also been trying to do this in C++/MFC. I am having all the same problems. It seems that if anyone has ever done this, Google has decided not to record it.

MasterSlowPoke
Oct 9, 2005

Our courage will pull us through

SheriffHippo posted:

I am not using a gaming API. The game consists of a Flash swf embedded in the form. I tried XNA, but it doesn't seem to use forms, and input relies on a built-in game loop, something that C# programs don't seem to have exposed.

Why not forgo the whole program and run your flash application in a web browser?

SheriffHippo
Jul 18, 2002
I wish to have FPS-like mouse control and UDP support.

I've just posted this question in the .NET thread. I may be fairly close to a solution.

Solved. Please see solution here: http://forums.somethingawful.com/showthread.php?threadid=2262300&pagenumber=77&perpage=40#post347255779

(I used a C# class I found on CodeProject.com which uses a system hook to trap all mouse input)
http://www.codeproject.com/KB/cs/globalhook.aspx

SheriffHippo fucked around with this message at 04:16 on Aug 5, 2008

Adbot
ADBOT LOVES YOU

Annoying Jerk
Feb 19, 2004
I want to learn a programming language and learn about game development at the same time. I know a small amount of Java, and feel I have a basic understanding about some basic programming fundamentals. On the plus side, I have a strong background in math (Up to Vector Calculus). Can anyone recommend me a book or site that would teach me a programming language and game development at the same time? From reading around a little bit, it seems as if C# is the language to learn, and something about XNA (Not sure what this is), is this correct?

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply