The DMACS Console Interface Module

The Console Interface Module, if programmed correctly, will bring the feature-rich DMACS to any platform and any sort of target application. None of these Console Interface Modules have been created yet, but here are some possibilities that I simply refuse to explain only in words:

diagram of possible DMACS abilities

Figure A

In this situation, the developer is working on a full-screen game. Luckily, he has a two-display system, and the other monitor is used to display the Console Debugger. When I used to program with Visual C++, I was supposed to be able to debug my full-screen DirectX game with my second monitor, but I never seemed to get it to work; the debugger's displays always shifted off the side of the screen when the video mode changed, and every time the application broke, all of the game's surfaces were ``lost'' and they had to be reloaded. With DMACS, a debugger that can be expanded and adapted alongside the its target application, you can take care of these difficulties yourself. You may choose to use a Console Interface module that initializes DirectDraw on your second monitor, or you can create a Console Interface module that uses the Win32 console window to interface with the user. (By the way, the Win32 API contains several functions that make the console window very flexible, including functions that will move the window so you can see its text!)

Figure B

DMACS, although designed with the needs of game programmers in mind, will still be quite useful for other applications. You could run the DMACS console in its own window. This technique doesn't quite make the most of the power of the Console Interface module, but it works.

Figure C

Not all game developers have two monitors, but that doesn't mean they can't find a way to unobtrusively display the Console Debugger on the same screen as the game. Fitting enough info on it may be tricky, but it's a lot better than running no debugger at all. Maybe the Console Interface module could overlay the console over the game scene using alpha-blending, making it semi-transparent?

Figure D

Remote debugging with DMACS? Sure. Just make the Console Interface module act like a server, and then program an Interface client to connect to Interface servers that run the program. The Interface client would only have to send input to and receive output from the server, like on a Telnet connection.

Figure E

Sometimes it would be useful to monitor both sides of a network game. Simply run two instances of the Console client on the remote computer to connect to each one of the two instances of the game.

Please fill out the DMACS survey.

Under Construction
SourceForge Logo