Official Fulqrum Publishing forum

Official Fulqrum Publishing forum (http://forum.fulqrumpublishing.com/index.php)
-   Controls threads (http://forum.fulqrumpublishing.com/forumdisplay.php?f=194)
-   -   Head Tracking with Cliffs of Dover (http://forum.fulqrumpublishing.com/showthread.php?t=18648)

Wolf_Rider 02-16-2011 07:03 AM

Quote:

Originally Posted by Vasilj_Mitu (Post 224687)

sorry mate, I can't. just quoting "the source", that's all.

fair enough


Quote:

Originally Posted by Vasilj_Mitu (Post 224687)

personally I'm using the stuff for playing (IL2 1946 atm only), not for loosing sleep over the fact how it works.


there are some steps which must be followed in order for it work though... surely you could give a bit of a run down on that part? surely?

Blackdog_kt 02-16-2011 11:26 AM

I had a talk about the .ddl and legal issues with that buddy of mine who coded his own linux head tracker. Since a big part of linux in general is how distribution and lincenses work out, apparently all it takes is a few questions in the relevant forums before a bunch of lawyers will flock to answer your questions. He was worried about possible legal implications too so he did some preliminary research at the start of his project.

So, first of all you don't need the naturalpoint dll file, you can code your own dll with your own formulas and calculations to give your headtracking software the spatial awareness it needs to function. That's what my buddy did, he didn't use any naturalpoint files, he didn't reverse engineer anything, he just sat down and coded his own set of calculations.

Now, each game with headtracking support expects to see a key in your registry that tells it where the headtracking dll is. This is a simple "make a call and wait for the reply" request, the game just wants to find a set of instructions that translate movement of dots on a camera into 3d positional data.
It doesn't have to be a specific type of camera, neither does it have to be a naturalpoint file or a specific set of calculations or way of doing them. You could code it in XYZ coordinates or polar coordinates if you wanted to and it would make no difference to the game, as long as it knows that it has to look in a specific folder to receive 3d positional data.
So, you just point it to your own dll instead of a naturalpoint dll, that's all there is to it. You do this by editing your registry to point at your dll instead of the trackIR dll. This happens automatically when you install freetrack or another alternative.

It's obvious this does not qualify as hacking anything that belongs to naturalpoint, it's actually your own PC that you are hacking.



So, legally speaking, there is only one point of dispute remaining but that also seems covered by certain laws.

It seems the only copyrighted parts of the code are the IDs of the games: whenever you run a game, trackIR checks to see if it's natively supported (which is required for 6DoF and this is why people go this route instead of mouselook emulation).
The way it happens is that there's a specific numerical ID that each game with native trackIR support transmits to the trackIR software. The software sees for example 0101 and thinks "ah ok, this is IL2 sturmovik", so it proceeds to load the profile you have set up for this game, etc.
If you want to have 6DoF with an alternative headtracker and the game doesn't have a generix 6-axes interface like ArmA2, you need to incorporate these IDs into your dll. Even if your dll is fully capable of 6DoF, unless the game supports 3rd party alternatives it will only work in 6DoF if it does the "transmit/receive ID" thing with the dll. So, that's the one part of copyrighted naturalpoint stuff, which you need for 6DoF support only, a list of the game IDs with 6DoF capability.

However, there seems to be a legal clause under the US copyright law that prevents this from being legally enforceable. It goes along the lines of "if a piece of software code is the only possible way for a certain function to work even with alternative hardware, then that code cannot be copyrighted" and it's an obvious case of legislation against monopoly.

I think naturalpoint knows that keeping other dll files from using the published game ID list is legally non enforceable, they know all this better than we do for sure, and that's why they encrypted their new software instead of trying to fight a legal battle that can't be won.
Encrypting their API is perfectly within their rights and it means that whenever a new game that supports headtracking is released, it's game ID will remain secret and not get published: with the old API, you would run an update on your trackIR software (which you can download for free anyway) to get the updated list of supported games, open the dll and get the game ID from the list, with the new API you can't browse it to get the new IDs.

However, keeping the ID list a secret is still against the US copyright law apparently (the legal way seems to be to encrypt the software but publish the game ID list), but instead of naturalpoint having to sue the 3rd party developers for using the IDs and trying to go against what the law states, by encrypting the API they have thrown the glove back to them: now, if 3rd party developers want to know the game IDs it's them who have to take the case to court. They might very well win if they did so (after all, it's supposed to be part of US copyright law), but no hobbyist programmer will spare the expenses to do it.

So, a stalemate has been forced and both NP and developers of 3rd party alternatives have settled into a situation where NP can legally do nothing about alternative headtracking in older games, while 3rd party headtracking groups can do nothing about newer games unless the game developers provide a generic interface. :-P

norulz 02-16-2011 11:49 AM

So... why don't developers publish that ID number for their game?

Anyway... I didn't got the idea completely... I guess I need a drawing or something.

You have:

Game
Interface
Registry
HT Software

Why is the dll in the game folder? Why is it still looking for dll location in registries? Why then people replace that NP dll with own dll's that just have the same name?

Isn't the same thing with Joystick interfaces? Why is that open and anyone can build a joystick that is universally compatible?

Joystick interfaces are included I think in DirectImput from DirectX... right? Why... no DirectImput for 6DoF headtracking?

Wolf_Rider 02-16-2011 02:53 PM

Quote:

Originally Posted by Blackdog_kt (Post 224751)

I had a talk about the .ddl and legal issues with that buddy of mine who coded his own linux head tracker. Since a big part of linux in general is how distribution and lincenses work out, apparently all it takes is a few questions in the relevant forums before a bunch of lawyers will flock to answer your questions. He was worried about possible legal implications too so he did some preliminary research at the start of his project.

So, first of all you don't need the naturalpoint dll file, you can code your own dll with your own formulas and calculations to give your headtracking software the spatial awareness it needs to function. That's what my buddy did, he didn't use any naturalpoint files, he didn't reverse engineer anything, he just sat down and coded his own set of calculations.

excellent, and I bet he's chuffed at his achievement

Quote:

Originally Posted by Blackdog_kt (Post 224751)


Now, each game with headtracking support expects to see a key in your registry that tells it where the headtracking dll is. This is a simple "make a call and wait for the reply" request, the game just wants to find a set of instructions that translate movement of dots on a camera into 3d positional data.
It doesn't have to be a specific type of camera, neither does it have to be a naturalpoint file or a specific set of calculations or way of doing them. You could code it in XYZ coordinates or polar coordinates if you wanted to and it would make no difference to the game, as long as it knows that it has to look in a specific folder to receive 3d positional data.
So, you just point it to your own dll instead of a naturalpoint dll, that's all there is to it. You do this by editing your registry to point at your dll instead of the trackIR dll.

More good news, and I'm sure if this is the approach to and method of having alternative tracker go about their business, there should be no call from any entity to kick up any complaint. This is the way it should be done, though it does come back to the sort after inclusion. Put the hand up, get in contact with game developer and make the pitch, ask for inclusion and do it with a product that relies on its own bits and pieces... no fixers/ no swapping files around and no infringements.

Quote:

Originally Posted by Blackdog_kt (Post 224751)


This happens automatically when you install freetrack or another alternative.

It's obvious this does not qualify as hacking anything that belongs to naturalpoint, it's actually your own PC that you are hacking.

not necessarily, because others files are required to apply a "fix" first

Quote:

Originally Posted by Blackdog_kt (Post 224751)

So, legally speaking, there is only one point of dispute remaining but that also seems covered by certain laws.

It seems the only copyrighted parts of the code are the IDs of the games: whenever you run a game, trackIR checks to see if it's natively supported (which is required for 6DoF and this is why people go this route instead of mouselook emulation).

so, they know about Mouse look but find the TIR software route easier?

as you know, Mouse Look gives the 6DoF

Quote:

Originally Posted by Blackdog_kt (Post 224751)

The way it happens is that there's a specific numerical ID that each game with native trackIR support transmits to the trackIR software. The software sees for example 0101 and thinks "ah ok, this is IL2 sturmovik", so it proceeds to load the profile you have set up for this game, etc.
If you want to have 6DoF with an alternative headtracker and the game doesn't have a generix 6-axes interface like ArmA2, you need to incorporate these IDs into your dll. Even if your dll is fully capable of 6DoF, unless the game supports 3rd party alternatives it will only work in 6DoF if it does the "transmit/receive ID" thing with the dll. So, that's the one part of copyrighted naturalpoint stuff, which you need for 6DoF support only, a list of the game IDs with 6DoF capability.



Quote:

Originally Posted by Blackdog_kt (Post 224751)

However, there seems to be a legal clause under the US copyright law that prevents this from being legally enforceable. It goes along the lines of "if a piece of software code is the only possible way for a certain function to work even with alternative hardware, then that code cannot be copyrighted" and it's an obvious case of legislation against monopoly.

Use Mouse Look or PPJoy (as some already do), etc... the "alternatives" are there. Cachya hooked in through Mouse Look successfully, iiuc.


Quote:

Originally Posted by Blackdog_kt (Post 224751)

I think naturalpoint knows that keeping other dll files from using the published game ID list is legally non enforceable, they know all this better than we do for sure, and that's why they encrypted their new software instead of trying to fight a legal battle that can't be won.

That then is probably something which should be done... trouble is, it would probably send all parties broke and push developers away from tracking altogether

Quote:

Originally Posted by Blackdog_kt (Post 224751)

Encrypting their API is perfectly within their rights and it means that whenever a new game that supports headtracking is released, it's game ID will remain secret and not get published: with the old API, you would run an update on your trackIR software (which you can download for free anyway) to get the updated list of supported games, open the dll and get the game ID from the list, with the new API you can't browse it to get the new IDs.

However, keeping the ID list a secret is still against the US copyright law apparently (the legal way seems to be to encrypt the software but publish the game ID list), but instead of naturalpoint having to sue the 3rd party developers for using the IDs and trying to go against what the law states, by encrypting the API they have thrown the glove back to them: now, if 3rd party developers want to know the game IDs it's them who have to take the case to court. They might very well win if they did so (after all, it's supposed to be part of US copyright law), but no hobbyist programmer will spare the expenses to do it.

There is no need to, when there is already an alternative method of access and would it be so hard for FT (as the example) to create it's own game ID list?), thereby showing good faith.

If it is 6DoF which the cry, there are 6DoF available with Mouse Look, that being Yaw, Pitch, Zoom, strafe, lean, jump and crouch. So all the posturing, vrtually, is rendered moot. Now it is understood that not all games offer the full 6Dof but then some sims, aren't set up 3D modelling wise for the full 6DoF themselves.

Quote:

Originally Posted by Blackdog_kt (Post 224751)

So, a stalemate has been forced and both NP and developers of 3rd party alternatives have settled into a situation where NP can legally do nothing about alternative headtracking in older games, while 3rd party headtracking groups can do nothing about newer games unless the game developers provide a generic interface. :-P

well until it actually does go to court (if it does), as with anything legal before that goes to court, all you have is only an opinion. :-p

You also have NP acting on what they obviously have as legal advice and what FT, etc obviously have as legal advice. As to whether all parties are relying on genuine legal advice or that of knowledgable sounding mates, is a matter for the courts.

Wolf_Rider 02-16-2011 03:12 PM

Quote:

Originally Posted by norulz (Post 224759)

So... why don't developers publish that ID number for their game?

Why is the dll in the game folder? Why is it still looking for dll location in registries? Why then people replace that NP dll with own dll's that just have the same name?

Isn't the same thing with Joystick interfaces? Why is that open and anyone can build a joystick that is universally compatible?

Joystick interfaces are included I think in DirectImput from DirectX... right? Why... no DirectImput for 6DoF headtracking?

they're all very good questions..


why can't the alternatives developer's create their game lists/ ID's etc?

anyone can build a joystick, yes, anyone can also hook up a camera through the PPJoy ap., apparently

has anyone actually approached Microsoft about it?

MadBlaster 02-16-2011 05:03 PM

Quote:

Originally Posted by Blackdog_kt (Post 224751)
I had a talk about the .ddl and legal issues with that buddy of mine who coded his own linux head tracker. Since a big part of linux in general is how distribution and lincenses work out, apparently all it takes is a few questions in the relevant forums before a bunch of lawyers will flock to answer your questions. He was worried about possible legal implications too so he did some preliminary research at the start of his project.

So, first of all you don't need the naturalpoint dll file, you can code your own dll with your own formulas and calculations to give your headtracking software the spatial awareness it needs to function. That's what my buddy did, he didn't use any naturalpoint files, he didn't reverse engineer anything, he just sat down and coded his own set of calculations.

Now, each game with headtracking support expects to see a key in your registry that tells it where the headtracking dll is. This is a simple "make a call and wait for the reply" request, the game just wants to find a set of instructions that translate movement of dots on a camera into 3d positional data.
It doesn't have to be a specific type of camera, neither does it have to be a naturalpoint file or a specific set of calculations or way of doing them. You could code it in XYZ coordinates or polar coordinates if you wanted to and it would make no difference to the game, as long as it knows that it has to look in a specific folder to receive 3d positional data.
So, you just point it to your own dll instead of a naturalpoint dll, that's all there is to it. You do this by editing your registry to point at your dll instead of the trackIR dll. This happens automatically when you install freetrack or another alternative.

It's obvious this does not qualify as hacking anything that belongs to naturalpoint, it's actually your own PC that you are hacking.



So, legally speaking, there is only one point of dispute remaining but that also seems covered by certain laws.

It seems the only copyrighted parts of the code are the IDs of the games: whenever you run a game, trackIR checks to see if it's natively supported (which is required for 6DoF and this is why people go this route instead of mouselook emulation).
The way it happens is that there's a specific numerical ID that each game with native trackIR support transmits to the trackIR software. The software sees for example 0101 and thinks "ah ok, this is IL2 sturmovik", so it proceeds to load the profile you have set up for this game, etc.
If you want to have 6DoF with an alternative headtracker and the game doesn't have a generix 6-axes interface like ArmA2, you need to incorporate these IDs into your dll. Even if your dll is fully capable of 6DoF, unless the game supports 3rd party alternatives it will only work in 6DoF if it does the "transmit/receive ID" thing with the dll. So, that's the one part of copyrighted naturalpoint stuff, which you need for 6DoF support only, a list of the game IDs with 6DoF capability.

However, there seems to be a legal clause under the US copyright law that prevents this from being legally enforceable. It goes along the lines of "if a piece of software code is the only possible way for a certain function to work even with alternative hardware, then that code cannot be copyrighted" and it's an obvious case of legislation against monopoly.

I think naturalpoint knows that keeping other dll files from using the published game ID list is legally non enforceable, they know all this better than we do for sure, and that's why they encrypted their new software instead of trying to fight a legal battle that can't be won.
Encrypting their API is perfectly within their rights and it means that whenever a new game that supports headtracking is released, it's game ID will remain secret and not get published: with the old API, you would run an update on your trackIR software (which you can download for free anyway) to get the updated list of supported games, open the dll and get the game ID from the list, with the new API you can't browse it to get the new IDs.

However, keeping the ID list a secret is still against the US copyright law apparently (the legal way seems to be to encrypt the software but publish the game ID list), but instead of naturalpoint having to sue the 3rd party developers for using the IDs and trying to go against what the law states, by encrypting the API they have thrown the glove back to them: now, if 3rd party developers want to know the game IDs it's them who have to take the case to court. They might very well win if they did so (after all, it's supposed to be part of US copyright law), but no hobbyist programmer will spare the expenses to do it.

So, a stalemate has been forced and both NP and developers of 3rd party alternatives have settled into a situation where NP can legally do nothing about alternative headtracking in older games, while 3rd party headtracking groups can do nothing about newer games unless the game developers provide a generic interface. :-P

Nice post. Makes perfect sense.

Wolf_Rider 02-16-2011 05:24 PM

until it is looked at and the missing bits and inaccuracies are pointed out;)

SEE 02-16-2011 05:37 PM

I suppose that any premium or high profile software developer would expect the inclusion of alternative interfaces to have support and continual improvements. NP are a professional manufacturer and support their products/software through continued updates, improvements and also manufacture the hardware for a total solution. FT relies on donations, there have been no further updates since V2 and FT requires the user to mod/adapt and manufacture the hardware (with very mixed performance results for some). I would prefer to use FT in any software that supports Headtracking but it would also be understandable if a developer were to limit headtracking to NP given its support and continual developments as a bespoke product guaranteed to function.

MadBlaster 02-16-2011 05:39 PM

Quote:

Originally Posted by Wolf_Rider (Post 224893)
until it is looked at and the missing bits and inaccuracies are pointed out;)

Okay, for a moment I allow you to exist.

Do you realize that your two years of posting on this board on this subject has brought it to the forefront and likely aided in getting the NaturalPoint business model flushed down the toilet? So, W-R, you are not the enemy. You are our friend. Freetrack users worldwide thank you for your services. Ah, I gotta go. Run out of time again as I am very busy. But before I do, I recommend you change your virtual name at some point. NP guys might come looking for you. Good day. :)

Wolf_Rider 02-16-2011 05:46 PM

Quote:

Originally Posted by MadBlaster (Post 224901)

Okay, for a moment I allow you to exist.

Do you realize that your two years of posting on this board on this subject has brought it to the forefront and likely aided in getting the NaturalPoint business model flushed down the toilet? So, W-R, you are not the enemy. You are our friend. Freetrack users worldwide thank you for your services. Ah, I gotta go. Run out of time again as I am very busy. But before I do, I recommend you change your virtual name at some point. NP guys might come looking for you. Good day. :)

thank you for allowing me to exist but what has your permission, let alone your statement, got to do with the topic?

at least now, we see a clear picture of what really is going on behind FT. Why should any legitimate developer support a product which appears to have that kind of intent?



That's a very, very good comment you've made there on current or continued support, See


All times are GMT. The time now is 11:02 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.