473,378 Members | 1,360 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

Stream stats

I've heard it's possible to extract information from a game as it's running.
For example some people extract the RPM of a car and have a real tacho
connected to their PC, or just log certain information to a file. How is
this done? I've tried google but can't find anything because I'm not sure
what search terms to use. I've posted this to vb6 and c# groups as I'm not
fussed which I use.

Thanks,
Michael
Nov 22 '06 #1
11 1466

"Michael C" <no****@nospam.comwrote in message
news:Om**************@TK2MSFTNGP02.phx.gbl...
I've heard it's possible to extract information from a game as it's
running. For example some people extract the RPM of a car and have a real
tacho connected to their PC, or just log certain information to a file.
How is this done? I've tried google but can't find anything because I'm
not sure what search terms to use. I've posted this to vb6 and c# groups
as I'm not fussed which I use.
Your question is too vague.
Nov 22 '06 #2
"Jeff Johnson" <i.***@enough.spamwrote in message
news:%2****************@TK2MSFTNGP06.phx.gbl...
Your question is too vague.
What's vague? I have a game running, GTR2, and would like to write some code
to obtain data, such as RPM. I believe there is a fairly standard method of
doing this but can't find info on it.
>

Nov 22 '06 #3
"Michael C" <no****@nospam.comwrote in message
news:eU**************@TK2MSFTNGP03.phx.gbl...
What's vague? I have a game running, GTR2, and would like to write some
code to obtain data, such as RPM. I believe there is a fairly standard
method of doing this but can't find info on it.
There is not a standard way of doing it, and for sure there's nothing in the
C# language that provides a means for doing it, nor VB.

If you want to extract runtime data from a game, you need to either reverse
engineer the game or take advantage of some public (or in some cases,
pseudo-public) API that the game author provides. Neither this newsgroup
(m.p.d.csharp) nor the VB newsgroup are appropriate places for learning
about those methods.

Pete
Nov 22 '06 #4
"Michael C" <no****@nospam.comwrote in message
news:eU**************@TK2MSFTNGP03.phx.gbl...
>Your question is too vague.

What's vague? I have a game running, GTR2, and would like to write some
code to obtain data, such as RPM. I believe there is a fairly standard
method of doing this but can't find info on it.
Well, from your original post it appeared that you were talking about a game
first and then suddenly talking about extracting information from a car. It
was not obvious to me that you were talking about a car in a game.
Regardless, Pete's reply is the definitive answer: this isn't as easy as you
think it is.
Nov 22 '06 #5
On Wed, 22 Nov 2006 16:59:55 +1100, "Michael C" <no****@nospam.com>
wrote:
>"Jeff Johnson" <i.***@enough.spamwrote in message
news:%2****************@TK2MSFTNGP06.phx.gbl...
>Your question is too vague.

What's vague? I have a game running, GTR2, and would like to write some code
to obtain data, such as RPM. I believe there is a fairly standard method of
doing this but can't find info on it.
Vague is saying "I've heard it's possible to extract information from a
game as it's running." ...with no mention of the game, platform, etc.

I've heard of this game, it has some sort of telemetry system that feeds
out to external sources for race performance analysis, but that is by no
means usual in games (even games allowing user scripting usually limit
reading variables to the scripting system itself with no external
output).

Considering it is a specific game/system you'd be better off asking in
the official game forum at
http://www.bhmotorsports.com/board/viewforum.php?f=60

I spotted a couple of threads on it in there including a beginners guide
to using the telemetry system, you may be able to extrapolate from that
how it is exposing the info and if it is in a usable form for your own
program.
--
Alfie
<http://www.delphia.co.uk/>
The third deadly sin in programming is not to write proper documentation.

Nov 22 '06 #6
"Peter Duniho" <Np*********@NnOwSlPiAnMk.comwrote in message
news:12*************@corp.supernews.com...
If you want to extract runtime data from a game, you need to either
reverse engineer the game or take advantage of some public (or in some
cases, pseudo-public) API that the game author provides.
From what I understand that is not true. Games have a standard interface
which allows any program to extract certain information from any (or most)
games while they are running. Most games are using directX which provides a
good degree of standardisation. Certainly it's possible to purchase a device
that plugs into USB and drives a standard taco and works with most games.
Neither this newsgroup (m.p.d.csharp) nor the VB newsgroup are appropriate
places for learning about those methods.
I've also been told that there are downloads for vb6 that can do exactly
what I want to do and without nuch difficulty. I'll try the gaming forum
suggested by alfie.

Michael
Nov 22 '06 #7
"Michael C" <no****@nospam.comwrote in message
news:uk**************@TK2MSFTNGP02.phx.gbl...
"Peter Duniho" <Np*********@NnOwSlPiAnMk.comwrote in message
news:12*************@corp.supernews.com...
>If you want to extract runtime data from a game, you need to either
reverse engineer the game or take advantage of some public (or in some
cases, pseudo-public) API that the game author provides.

From what I understand that is not true.
Well, no offense intended but you simply do not understand then.
Games have a standard interface which allows any program to extract
certain information from any (or most) games while they are running.
They absolutely do not. Some games publish such an API (and it appears that
in this case, the game you're interested in may well have that), but there
is no standard for such an interface, and most games have no such interface.
Most games are using directX which provides a good degree of
standardisation.
DirectX is an operating system API that presents a "degree of
standardisation" *to* the game, in order to control things like the
graphical output, sound output, user input, online player connections, music
output, video playback, and maybe a few other things I'm forgetting. It has
*zero* to do with what API the game itself exposes, if any.
Certainly it's possible to purchase a device that plugs into USB and
drives a standard taco and works with most games.
That's right. That's because most games use the DirectInput API, published
by the Windows, to obtain access to a USB controller. That has *nothing* to
do with whether a third party can extract information *from* the game
itself. It relates only to how information is provided *to* the game.
>Neither this newsgroup (m.p.d.csharp) nor the VB newsgroup are
appropriate places for learning about those methods.

I've also been told that there are downloads for vb6 that can do exactly
what I want to do and without nuch difficulty. I'll try the gaming forum
suggested by alfie.
Good...I'm glad there's an alternative forum in which you have a better
likelihood of getting the information you want. Hopefully, they will be
able to answer your questions.

Pete
Nov 22 '06 #8
"Peter Duniho" <Np*********@NnOwSlPiAnMk.comwrote in message
news:12*************@corp.supernews.com...
DirectX is an operating system API that presents a "degree of
standardisation" *to* the game, in order to control things like the
graphical output, sound output, user input, online player connections,
music output, video playback, and maybe a few other things I'm forgetting.
It has *zero* to do with what API the game itself exposes, if any.
Maybe it's possible to hook these calls.
That's right. That's because most games use the DirectInput API,
published by the Windows, to obtain access to a USB controller. That has
*nothing* to do with whether a third party can extract information *from*
the game itself. It relates only to how information is provided *to* the
game.
Um, no. The drivers for the taco apparently extract information from the
game, the game does not detect this device.

Michael
Nov 22 '06 #9
"Michael C" <no****@nospam.comwrote in message
news:%2****************@TK2MSFTNGP03.phx.gbl...
Maybe it's possible to hook these calls.
It is possible to "hook" any OS call, given sufficiently elevated privileges
and access to the computer. However, none of the DirectX calls are involved
with (for example) the tachometer output for the game. Hooking those calls
in no way helps you toward your goal of accessing the underlying game data.
>That's right. That's because most games use the DirectInput API,
published by the Windows, to obtain access to a USB controller. That has
*nothing* to do with whether a third party can extract information *from*
the game itself. It relates only to how information is provided *to* the
game.

Um, no. The drivers for the taco apparently extract information from the
game, the game does not detect this device.
Sorry, I misunderstood your original statement. I thought you were talking
about a game input device. I assume by "taco" you mean a "tachometer", and
not a folded tortilla food item...I completely glossed over that earlier.
My mistake.

Still, as far as your claim that "it's possible to purchase a device that
plugs into USB and drives a standard taco and works with most game"
goes...that may be true, but if it is, the company that makes the device has
done all of the work to reverse engineer the games it works with (or takes
advantage of published APIs, for games that do expose their internals that
way). There is no standard API.

If you want to claim that there is, simply provide a reference to the API.
Saying that it exists over and over doesn't get you any closer to solving
your problem, and the longer you keep believing that there is a standard API
to do what you want, the longer it will take you to get around to finding
out how it's *really* done.

In any case, this has zero to do with C#, and only passing relevance to
Visual Basic (assuming, of course, you can find VB libraries that do what
you want...if you can't, then it has nothing to do with VB at all either).
Since I'm here to discuss C#, at this point I will leave you to your
beliefs, correct or not.

Pete
Nov 22 '06 #10
On Thu, 23 Nov 2006 10:59:28 +1100, "Michael C" <no****@nospam.com>
wrote:
>Maybe it's possible to hook these calls.
Michael, Peter's spot on with this. Most games don't expose any public
interfaces to allow you to tap into the game internals and read them out
to another app or device.

Whilst there are methods to hook DX calls out to the hardware this is
usually used to create a layer to convert for instance DX9 calls to DX8
calls, allowing people with older hardware to run newer games.

It cannot help expose internal data if that data has no public
interface, think of it like an AX/class object, you only get to use
those methods publically exposed by the object and for most games there
is little reason for the developer to expose internal data states.

Racing and flying sim games are more likely to have such public
interfaces because of the non-typical control/output devices that can be
used with them, for instance steering wheel and dashboard kit.
>Um, no. The drivers for the taco apparently extract information from the
game, the game does not detect this device.
GTR2 specifically exposes the internal info to an external app for
real-time usage, and I'm assuming if you can find out enough about how
it's doing that you can tap it for your own purposes.
--
Alfie
<http://www.delphia.co.uk/>
Programming is an art form that fights back.

Nov 23 '06 #11
"Peter Duniho" <Np*********@NnOwSlPiAnMk.comwrote in message
news:12*************@corp.supernews.com...
Sorry, I misunderstood your original statement. I thought you were
talking about a game input device. I assume by "taco" you mean a
"tachometer", and not a folded tortilla food item...I completely glossed
over that earlier. My mistake.

Still, as far as your claim that "it's possible to purchase a device that
plugs into USB and drives a standard taco and works with most game"
goes...that may be true, but if it is, the company that makes the device
has done all of the work to reverse engineer the games it works with (or
takes advantage of published APIs, for games that do expose their
internals that way). There is no standard API.

If you want to claim that there is, simply provide a reference to the API.
Saying that it exists over and over doesn't get you any closer to solving
your problem, and the longer you keep believing that there is a standard
API to do what you want, the longer it will take you to get around to
finding out how it's *really* done.

In any case, this has zero to do with C#, and only passing relevance to
Visual Basic (assuming, of course, you can find VB libraries that do what
you want...if you can't, then it has nothing to do with VB at all either).
Since I'm here to discuss C#, at this point I will leave you to your
beliefs, correct or not.
It would have been a lot easier if you just said you didn't know how to do
it.

Michael
Nov 23 '06 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: mr_burns | last post by:
hi, i want to put some useful marketing stats onto a web site but cant really think of many. ones that i have thought of that would be useful for marketing are: - which URL did a user come...
8
by: Bob II | last post by:
Hey, I've never used PHP before. I was wondering if it is possible to use PHP to generate web stats. My web host's stats aren't very good. So I want to generate some custom stats for myself. ...
0
by: dba | last post by:
Hi I am a new MySQL dba tuning a busy Apache/MySQL installation. Here are some of the statistics for the last 24 hours: Com_admin_commands 978,760 What "Admin_Commands" does this...
1
by: Peter Sands | last post by:
Hi, I am trying to run an update stats command but keep getting a syntax error: Looking at the doco it looks like I can use: update stats <table_name>; but when I use: mysql> update stats...
5
by: Peter Jenkins | last post by:
The client for which I do this site www.safenz.org.nz wants stats tracking/a visitor counter, like the one that is there at the moment (at the bottom of the home page). However I would like one...
6
by: Yechezkal Gutfreund | last post by:
I have been using the following code (successfully) to read Xml formated text packets from a TCP stream. The output from the server stream consists of a sequence of well formed Xml documents...
1
by: MKoool | last post by:
Is there any decent library for basic stats? I am just looking for the basics, like quartiles, median, standard deviation, mean, min, max, regression, etc. I was going to use SciPy, but I use...
9
by: ankitdesai | last post by:
I would like to parse a couple of tables within an individual player's SHTML page. For example, I would like to get the "Actual Pitching Statistics" and the "Translated Pitching Statistics"...
2
by: Monu | last post by:
HI All, I am getting problem in using hotshot profiler. When I hotshot with lineevents=0, it works fine, but when I use lineevents=1, I get error in stats here is my code: import hotshot,...
10
by: John Kraft | last post by:
Hello all, I'm experiencing some, imo, strange behavior with the StreamReader object I am using in the code below. Summary is that I am downloading a file from a website and saving it to disk...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.