with Satheesh Subramanian and Paul LindbergTranscript Log for Intel® Laptop Gaming TDK Live ChatOctober 19th, 2006 10:00 A.M. PDTSatheesh Ganapathi Subramanian:
Thanks for joining us on the Live Chat for the Laptop Gaming TDK. I hope by this time you have had a chance to play with the TDK. For those that do not know what the TDK is, here is a short description: The Laptop Gaming TDK (Technology Development Kit) is a set of easy-to-use APIs to access platform information in a performance-conscious way. | |
 |
|
The TDK package also includes a white paper about how gaming on laptops is different from on desktops and how you can use the TDK to address some of these differences. In this Chat, the Intel engineering team hopes to provide answers to various questions that you might have regarding possible uses of the TDK. We also seek to discover new usage models and feedback on possible feature enhancements to the TDK. |
(Q) mobile_gamer
Is the Laptop Gaming TDK free?
(A) Satheesh
Yes. The laptop gaming TDK is royalty-free source and sample code. Game developers can include it in their games (it would be really nice if you let us know that you are using it to boost our egos a bit).
(Q) LESKE
Hi there
(A) Satheesh
Chris, Glad you could make it to the chat today. Do post any questions that you might have on the TDK and probably share some of your experiences on what you are doing with the TDK.
(Q) LESKE
I'd like how the TDK has been coded in regards to other platforms (cough, cough, reg. chipsets of the "Other" company...) :-)
(A) Satheesh
The TDK is primarily using Windows Platform SDK APIs. So it should be fairly cross-platform, meaning should work with any chipset. If you know of any particular chipsets/processors that it does not work on, please do let us know and we will make sure it is included in our testing.
(Q) ronnyx_brauer99
Hello this is Ronny Brauer (IEM) from Germany. Could you tell us what TDK includes?
 | | (A) Paul Lindberg
Sure. The TDK includes code to do power and network connectivity monitoring, along with a sample battery meter and wireless meter. This should give you the basic idea how to do these things in your in-game HUD, or do some more creative things; some games have an in-game character announce changes in your power state, etc. You might also want to notice that you're playing a single-user game but wireless is on (which can have a big power cost), and ask the user if they want to shut it off. |
(Q) LESKE
Since I have used the TDK to write an extension for a multimedia tool, I was wondering what the plans where in regards to eventual other areas.
(A) Satheesh
We are planning for the TDK primarily as a means to make it easy for moving games from the desktop to the laptop platforms. At this point, we are limiting it to laptops. One future direction we might be going towards is to extend it to other mobile platforms and include more mobility features.
(A) Paul
There was a separate question about any TDK changes; it hasn't been updated since it was released. LESKE, what did you have in mind for your multimedia extension?
(Q) mobile_gamer
What kind of games can the TDK be used for?
(A) Paul
Any kind; casual (with online and/or offline modes), FPS, RTS, RPG, MMOG clients, etc. It might be the best fit for compute-intensive games, but you can use it for any kind.
(Q) mobile_gamer
Can you give us examples of how the TDK can be used?
(A) Satheesh
A very common usage model that is to put battery/wireless meters on your game hud. For FPS games that are CPU intensive, you might want to do more. You could cap the frame rates when on battery. Other more creative ways include in some cases, characters in the game informing of platform state changes.
(Q) ronnyx_brauer99
Did you want to enable this TDK also to the new Ultra Mobli PCÂ?s(UMPC)?
(A) Satheesh
This is a direction that is in consideration. At this point, we are collecting data on playability of games with respect to user interfaces, power and performance. We would be willing to hear your ideas in this space too.
(Q) LESKE
I was wondering about additional components like the graphics adapter and/or harddisk spinning down.
(A) Paul
We have design suggestions about offsetting power costs on each of those; see the Laptop Design Guide on developer.intel.com. Both GPU and hard disk can definitely affect power, and there are separate strategies for each. For hard disk, best strategy depends on the game; background level streaming strategies can wind up having a big power cost. For GPU, best power gain can come from dropping resolution and de-tuning video features.
(Q) LESKE
What about support in terms of graphics hardware? Right now, you are only cutting power on Centrino based components if i get this right, yet much power is also consumed by the graphics adapter for instance.
(A) Satheesh
Currently, the TDK is not providing any specific graphics controls. Based on our measurements, while graphics does consume a lot of power, the power consumed by the CPU still is significant. Controlling the graphics power is not as much under our control as the CPU is. So we are currently focusing our efforts on the CPU power savings.
(Q) LESKE
PAUL: I was referring to additional components and adding more features to it. The TDK is aimed at games developers, yet many games are being done using different development environments like Director*, Flash*, Torque*, Virtools*, etc.
(A) Paul
There's nothing wrong with using it anywhere you can call into a DLL, not just in games. That said, we're not currently planning any other blobs for integrating the TDK into other environments. Should we?
(Q) LESKE
I am looking for a static lib version of the TDK in order to link against it. Is there such thing?
(A) Satheesh
As you can see the code for the TDK is all free. So building a static library from the code should not be a problem. You can build a static library version from the TDK that dynamically links the Windows* libraries (only the TDK symbols will be statically binded in the library). The TDK package does not come with a static library and since you can build it from the source code provided, we have not thought of providing a default static library with the package.
(Q) Isaac.Squires
Regarding battery life, do you know of other state changes that can be made to reduce power consumption? Is there a mechanism to monitor current power consumption?
(A) Paul
It really depends what your code does; there are many things, most with small power impacts, that can all add up to an aggregate power savings. If you have a high-framerate game, for example, you can get some power savings by capping your frame rate so the CPU can go idle periodically. The TDK does not expose a current power consumption number, you CAN monitor the expected run rate and watch for interesting trends there. In the Half-Life 2 mod that I built, I saw that shutting off wireless would give me a longer expected run rate; the run rate numbers are computed by Windows and drift up and down (they're fairly well damped) as overall power consumption changes. | |
 |
(Q) LESKE
I have written a so-called Xtra (a code extension) for Adobe Director, a multimedia creation tool. I think that much game development is happening there, including flash. What are your plans for future developments? I am pretty sure that Flash developers would love to use this as well.
(A) Satheesh
When we built the TDK, we were primarily concerned with the PC games as we felt there is maximum power savings that we can attain in those games as compared to casual games (based on flash). Hence our target was first PC games and then based on requests from users like yourself, we will look at the ROI for extending it onto other game development mediums as well.
(Q) LESKE
What kind of components can you reach via the Windows SDK APIs for monitoring power and/or power consumption and eventually adding to the TDK? What about the hard disk, CD-ROM, modem/NIC cards in general?
(A) Satheesh
The windows platform SDK does provide for various power monitoring features and have other APIs to query for harddisk, CD-ROM and other IO peripherals as well.
(Q) LESKE
PAUL: would be interesting, yes. But then, I am just a single developer. I could image that the routines and methods provided could be interesting to any application developer in order to include monitoring and/or power cutting techniques.
(A) Paul
The Laptop TDK can be used in any app development area, I see your point about it being interesting there. We do also make a very full-featured Laptop Platform SDK, that does these things and more, but the source is not available and there are some licensing costs for that. It has had good traction with enterprise client developers. The idea of the Laptop Gaming TDK was to take a slim, high-performance subset of those features, and make it available for gaming.
(Q) LESKE
Uh, yes! Could you please add a method that returns the expected run time at the current rate of the battery? I don't think that's in the TDK already, or is it?
(A) Satheesh
There is an API "GetSecBatteryLifeTimeRemaining()" that provides you the expected run-time given the current drain rate.
(Q) FRANKLINF
The code generated development language is C++, correct?
(A) Paul
Yes, C++.
(Q) LESKE
I'd like to see the addition of a profiler method which gives you feedback about potential areas/components of your system drawing how much energy, so that you can tweak those areas specifically. Can this be done?
(A) Paul
Not all areas of the system are easy to get detailed power consumption numbers for, so in some cases a full profiling run requires some exotic hardware (which we have in our lab). That said, profiling the data that we capture is an interesting idea; feel free to roll your own profiling solution in the meantime :-) but we have debated including it in future releases.
(Q) mobile_gamer
Does using the TDK automatically give me power savings?

| | (A) Satheesh
Well, that would be really nice. Wouldn't it!! Unfortunately, that depends on how the game has been coded. What the TDK can be used for is to query changes in platform states and monitor key platform characteristics more closely and make adjustments to the game code. We are providing some sample power saving tips for the games through our sample code and you can also refer to the Mobile Game Developers' Guide whitepaper on the Intel Software Network website. The URL for the Mobile Game Developer's guide is: http://software.intel.com/en-us/articles/mobile-games-developer-guide/ |
(Q) FRANKLINF
Will C# work?
(A) Paul
Yes, but you'll have to have a clean layer where you call off to the native DLL for the TDK. There's no managed implementation of the TDK at this point.
(Q) LESKE
What are other projects you guys have been working on, comparable to the TDK? Is there a special page on the Intel site where one can see all the free SDKs Intel is offering?
(A) Paul
We do all sorts of stuff! We're learning a lot from gaming developers from this TDK, and we're rolling that out into other interesting kits. There are other application areas where this kind of feature set can be very interested. I'm excited about how this can map into ultra-mobile PCs, for example. Also Web 2.0 is very interesting to me - what do you think?
(Q) LESKE
Why is Intel providing such a TDK? Does it want to boost laptop gaming in order to sale more chips and chipsets?
(A) Paul (A)
Yes! :-) Laptops are growing fast, and as people move more and more to laptops as their primary machines, the interest in gaming on laptops has been growing fast. As somebody who has gamed for years on my IT-supported laptop, I can tell you that laptop gaming hasn't always been an excellent experience. There's no reason for that to continue. Really, this comes down to giving laptop users (and gamers) what they want. Having games adapt to a now-dominant class of machines just makes good sense.
(Q) Isaac.Squires
Have you considered implementing a managed API for the TDK? Our development is in .NET* and although we could generate our own wrapper, we would also need to maintain it as the TDK changes.
(A) Satheesh
Interesting question. Based on the feedback from our earlier interactions with the PC game developers, we found that there was a clear requirement for not having a managed API. If you are looking for managed .NET APIs for platform characteristics, you can refer to the
Intel®Mobile Platform SDK from the
http://software.intel.com/en-us/mobility/ website. At this point, we are not planning on providing a managed API for the TDK.
(P) Paul
As far as a separate page for watching all Intel-developed free SDKs, there isn't a single one. Watch developer.intel.com for general announcements, sign up for our newsletters, and then watch any focused pages like the Mobile Developer Community:
http://software.intel.com/en-us/mobility/(Q) LESKE
PAUL: How can I learn more about freely available SDKs from Intel? Is there a single URL or page which bundles all these efforts?
(A) Paul
At this point, they're specific for segments (e.g. one for manageability community, one for mobile, etc.) but there's a lot of crossover and demand between these segments, so look for linkage between these sites in the future. We have some great stuff in the works for 2007, so stay tuned.
(Q) mobile_gamer
Do we have to use the TDK to present battery and wireless meters only?
(A) Satheesh
We do not want to control how you present the data you query using the TDK, as we do not want to limit the creativity of the game developers. In fact, there has been some really creative out-of-the-box thinking from some of our users.
(Q) Lyle
Who can I contact for direct support for the TDK?
(A) Paul
You can ask in the forums or send email directly to Satheesh (of course I'll give you HIS email address!): satheesh.g.subramanian@intel.com (I hope I typed that right, Satheesh!
What kinds of other laptop state would you want to monitor and present? How else does being on a laptop affect your game?
(Q) lylej
What can I do to help the TDK development?
(A) Satheesh
You can do any of the following to help the TDK development team: - Share your experience with using the TDK (positive or negative) - Encourage your other game developer friends to use it in their games. - Send us any feedback on additional functionality that you would like to see in the TDK moving forward. - If you have used the TDK in your game, please share some screenshots of the portions that use the TDK and give us some bragging rights for the TDK's real-life usage. - If you come up with mods to the TDK itself, like Leske here, please share your experiences and if you feel like, the code for the mod. It will again give us some bragging rights and we could also present your work at the Intel Software Network site in relation to the TDK.
(A) Paul
You can see the forums (fora?) at
http://software.intel.com/en-us/forums/, you'll see the
Mobilized Software Development Forum
, among others.
(Q) LESKE
In any case, it is an interesting piece of software you wrote. Thank you very much for making it available. That's cool!
(A) Satheesh
Thank you very much for the positive feedback. We hope to provide you with the support and features that you are looking forward to.
(A) Paul
Another thing you might want to do is watch for lower-power states and do quick-saves of your game, drop the user from a multiuser game, look for offline game-enhancing modes when a user goes off the net, etc., etc. All things that you can think of that make sense in your game context, which can be enabled by monitoring system state.
(Q) LESKE
I'd like to see USB port devices enumerating and power consumption monitoring.
(A) Satheesh
Interestingly, we did consider the following scenarios for power savings: - CD spin rate, HDD spin rate - USB power consumption - wireless power consumption and USB did come out as consuming more power than we expected. But since the wireless power consumption was much more than the USB, we decided to provide the ability to control that. Hopefully, you will see more such useful controls for the other devices as well.
(A) Paul
I was quite pleased to see how easy it is to add basic monitoring features into a mod; all the interesting work left was to decide how to present it to the gamer, and then fit that into the existing code base.
(Q) LESKE
Satheesh: I have been thinking about open sourcing the code for the Xtra I wrote. I'll send it to you.
(A) Satheesh
This is really great. Thanks a lot for your contributions to increasing the availability of the TDK to the wider audience.
(A) Satheesh
To add to the question on USB power consumption, we did find a bug in the USB device that was increasing the power consumption and Intel has worked with our vendors to fix this bug.
(Q) LESKE
How about adding a dynamic throttling method when the game in question doesn't need all the components? Somewhat like the SpeedStep technology for the CPU, yet extended to the attached components of the system you can reach via the TDK.
(A) Paul
All system components are being built with power savings in mind (it IS now called EXTENDED Intel® SpeedStep Technology, after all), and they typically do all their own power throttling. That said, they all base their power saving modes on the app's usage patterns. If you want to drop the integrated graphics power consumption, you need to change the way you're using it and it will adapt its power usage (similar to dropping CPU itilization having a SpeedStep effect).
(A) Satheesh
I know that Leske and Isaac have used the TDK in their games/mods. It would be exciting to know if there are others in the audience who have used the TDK in their applications.
Isaac, do you want to share some of your experiences with using the TDK APIs and give us a brief idea of how you are using it?
(Q) LESKE
I feel like you that laptop gaming is becoming an important area for development. Funnily enough, it has so far been the hardware which has been "bent" towards the software needs (e.g. power saving CPUs and stuff), the TDK is the first conscious effort to change software to be more power friendly.
(A) Paul
...and it is a move that has been a long time coming. We actually started out to make apps "mobilized" a few years ago, but it hasn't been very relevant in games until recently. Unless we provide some guidance here, trying to get developers to think about power is somewhat unnatural. Game developers want to get every last shred of performance out of a PC; telling them to back that off a bit is a strange message to deliver, but it helps developers best deliver value to their gamers.
Any more questions out there? Any experiences to share, enhancement ideas...?
(A) Satheesh
If you are having trouble with using the TDK, please report it to us through the Intel Software Network forums. While contacting us, please provide details regarding your system configuration: Processor, Battery, Wireless adapter, Ethernet adapter. If a particular API is not working as expected, please include the details of how you are using it and what result you are getting.
(Q) LESKE
It is this "game" notion that binds you. "Gaming" is probably the reason the TDK was written, yet there are plenty of uses for such a TDK where all the methods are in one neat place...
(A) Paul
(obvious Lord of the rings "binds" joke omitted...) You're right; we picked a targeted use and set out to make that better. We're absolutely interested in generalizing any solutions from here. I do games for a living, so that's the part that *I* most care about, so you're hearing my own personal leaning on that! :-)
Thanks, all!
Moderator
Thank you for coming. You may contact our speakers directly by going to the
Mobile Software Development Forum and posting to the Laptop Gaming TDK Thread.