Thursday, July 24, 2008

Watermark for TGE

Sometimes you dont want your engine used by other, so why dont use watermark ?

add this snippet to your engine/gui/core/guicanvas.cc on void GuiCanvas::renderFrame(bool preRenderOnly, bool bufferSwap /* = true */) exactly after




if (cursorON && mouseCursor && mShowCursor)
{
Point2I pos((S32)cursorPt.x, (S32)cursorPt.y);
Point2I spot = mouseCursor->getHotSpot();

pos -= spot;
mouseCursor->render(pos);
}




This is the code, and after adding this you should rebuild the engine.




// enable/disable watermark ?
bool WT = true;

if(WT)
{
// get the default profile for text
GuiControlProfile *mtProfile;
mtProfile = NULL;

// Ok lets check to see if that worked
if( !mtProfile ) {
SimObject *obj = Sim::findObject( "GuiDefaultProfile" );

if( obj )
mtProfile = dynamic_cast(obj);
else
return;
}

if(mtProfile)
{
// changed the text into your watermark text
const char* wtText = "TGE Licenced HD";

ColorF mForegroundColor;
mForegroundColor.set( 1, 1, 1, 1 );
ColorI mFillColor;

//Vars used:
//Screensize (for position check)
//Offset to get position of cursor
//textBounds for text extent.
Point2I offset;
Point2I textBounds;
S32 textWidth = mtProfile->mFont->getStrWidth(renderTip);

//Create text bounds.
textBounds.x = textWidth+8;
textBounds.y = mtProfile->mFont->getHeight() + 4;

//Offset below cursor image
offset.y = size.y - textBounds.y - 10;
offset.x = size.x - textBounds.x - 10;

// Set rectangle for the box, and set the clip rectangle.
RectI rect(offset, textBounds);
dglSetClipRect(rect);

mFillColor.set(0,0,0,255);
dglDrawRectFill(rect, mFillColor);

mFillColor.set(255,255,255,255);
dglDrawRect( rect, mFillColor );

// Draw the text centered in the tool tip box
dglSetBitmapModulation( mForegroundColor );
Point2I start;
start.set( ( textBounds.x - textWidth) / 2, ( textBounds.y - mtProfile->mFont->getHeight() ) / 2 );
dglDrawText( mtProfile->mFont, start + offset, wtText, mtProfile->mFontColors );
dglClearBitmapModulation();

// end hd watermark
}

// free the pointer ?
mtProfile = NULL;
}

Wednesday, July 16, 2008

Intel Laptop Gaming TDK API Implementation on your game

Well after browsing for mods @ GG site, I found this interesting engine modification about adding this Intel Laptop Gaming TDK API. With this API we can get the current status of the hardware running our game, is it running on a PC or Laptop. and we also can extract the battery and wireless signal strength of our laptop/PC.

Of course we can use this API on other game engines or maybe our self made game engine. This API is available for free from Intel, you can donwload it here http://softwarecommunity.intel.com/articles/eng/1017.htm and install it on your PC. You can see the methods you can call from this API in the IntelLaptopGamingTDK.h

This is a sample source code I've made just to try the features.




#include "StdAfx.h"
#include "Testing.h"
#include "IntelGamingTDKAPI.h"

#define _CRTDBG_MAP_ALLOC
#include
#include

#include
#include

using namespace std;

#ifdef _DEBUG
#define SET_CRT_DEBUG_FIELD(a) \
_CrtSetDbgFlag((a) _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))
#define CLEAR_CRT_DEBUG_FIELD(a) \
_CrtSetDbgFlag(~(a) & _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))
#else
#define SET_CRT_DEBUG_FIELD(a) ((void) 0)
#define CLEAR_CRT_DEBUG_FIELD(a) ((void) 0)
#endif

Testing::Testing(void)
{
Feature();
}

void Testing::Feature()
{
IntelLaptopGamingTDKInterface *IGT = IntelLaptopGamingTDKInterface::GetTDKInterface();

if(!IGT)
return;

/**
* Is this a laptop ??
*/
cout << "\nIS LAPTOP ? " <<>IsLaptop();

/**
* Get number of core on per physical processor
*/
cout << "\nCPU CORE ? " <<>GetNumCoresPerProcessor();

/**
* Get total number of processors as seen by OS
*/
cout << "\nCPU COUNT ? " <GetNumProcessors();

// and just try the other methods..

// Memory leaks checking
// 6 mem leaks because pointers on heap aren't deleted till function
// exits. We call this function before the pointers go out of scope.
_CrtDumpMemoryLeaks();
}

Testing::~Testing(void)
{
}


I use VC 2005 for the compiler.

Following are the steps to compile your code using this API.

  1. Go to project properties
  2. In the configuration properties > C++ @ the additional include directory, point to your directory where u put the headers and IntelLaptopGaming.lib
  3. In the configuration properties > Linker @ the additional include directory, point to your directory where u put the headers and IntelLaptopGaming.lib
  4. In the configuration properties > Linker > Input @ the additional dependency type IntelLaptopGaming.lib
  5. Copy your IntelLaptopGaming.dll to your exe output directory (the dll depends on your OS if u use vista copy dll for vista, if u use xp copy dll for xp)
  6. Compile, build, and RUN.

Have fun and cheers.

Monday, July 7, 2008

My second resource @ GG for Torque Game Engine :: Grow and Shrink GUI

The resource is about GUI animation which can grow and shrink.

Here's the link to the complete resource and comments
http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=15018

And this is the result when applying the resource

Cheers!

Sunday, July 6, 2008

Multiplayer Gaming and Engine Coding for the Torque Game Engine


Yes, after waiting about 3 weeks the book finally arrived :D.

Well the book contents is quite easy to understand and makin a few things more clear to me. And after a few hours reading it, I soon realized that it's already chapter 4 of 14.

Saturday, June 28, 2008

My 3D Office Day 4-5



Added 3d sound emitter, particle emitter for sound notes, and snow precipitation.

Hey the TGE Elf dancing on the set by diana krall song lets fall in love,
Enjoy!

Thursday, June 26, 2008

my 3d office day 3

Added new objects as u can see there i got myself a frog and GPGT books :D

Wednesday, June 25, 2008

My 3D Office day 1 & 2


day 1: 24-06-08
Day 1 of makin my 3d office using torque constructor for the first time! its kinda fun hehe.. then adding some objects that i've created using milkshape (tables, cpu, and lcd). thx to FRP again for the wall textures. I love rabbids so there they are ^^.

Day 2: 25-05-08

Day 2 changed lcd to crt monitors :D added some IFL(Image File Lists) animation for the screens. added chairs and put some pc's on the tables. and make the scene more toonish using outline mod.

Hehe cant wait till tomorrow !!

Monday, June 23, 2008

my newest 3d simple model + skinned by FRP


Hup-hup and awaaaayy!!!!





Stop or my mom will shot!!



3D art made by a programmer @.@
Modelling using Milkshape 3d
Texture using Photoshop cs3

Model Statistics:

  • Vertices: 90
  • Triangles: 156

Veeery low poly !!!

Wednesday, June 4, 2008

SCRATCH : Even kids can make game now !

This morning i read my mail from gamesandeducation mailinglist and i got an interesting info about this SCRATCH software. SCRATCH is developed by MIT and it's free a.k.a gratis, u can find more info about it here http://scratch.mit.edu/. SCRATCH is a software to make simulation or games without any coding, but u have to know about the basics of algorithm. It's so fun, u only have to click and drag the blocks of code chunks like conditionals, loops, and events, etc.

Here i'll show u the blocks


The learning curve is quite fast and easy if u know basics of algorithm or how it works, it looks very similiar to pseudocode ^^ for makin a program. I managed to learn and create a simple game in an hour. Here's some screenshot


The game is really simple, the cat is movin up and down (randomly) and we must save the mouse ?? hehe by pressing the space button at the right time !

u should try it !! because even a kid can make a game using SCRATCH ^^

next post i'll give you direction about how to use this software ^^.




Tuesday, February 5, 2008

Character Building (CB112) Course in a Game ?

Maybe it'll be nice if we learn this course in adventure game.

It'll be look like this.. (maybe)

FYI : before giving comment to the arts, this is programmer's art (i made it myself). please note that hahaha..