|

|
General
Documentation
SDK
Community
The GI is part of the open source community:
|
NEWS
[Wednesday 14 November 2007] [03:47]New SDK Available in the SDK>Download section with a lot of changes, so what's new this time?
[!] Bug Fix
[*] Change
[+] Add
[-] Remove
-----
[+] New GISample to show how to use the GIXML
[+] Small utility class GI::LOCK to use with an already initialised critical section to protect multi threaded access with a lock object on the stack
GIFILE
[+] Addition of an IRESOURCEMANAGER to have a common interface to get resources, whether it's from the hard drive or from a pak file
[+] Added possibility to enumerate resources in a PAK file with void EnumerateResources(IPAKENUMERTION *enumerate)
[+] Added possibility to get an ISTREAMWRITE from HD with static ISTREAMWRITE *__cdecl CreateFromHardDrive(IMEMORY *allocator, IREPORT *reporter, const char *filename);
[*] Changed void * into const void * for unsigned int Write(const void *source, unsigned int size) in ISTREAMWRITE
[*] For resource allocation, display name of the file (for easier leak detection)
GIXML
[+] Need to provide an IRESOURCEMANAGER at creation (see GIFile) -> this allows for PAK and files to be used transparently
[!] Fix errors that kept poping up despite the user clicking on ignore in the GIReport box
[*] Enumerate functions in XMLSECTION now returns bool (return false if the user callback returns false, if enumeration completed without interruption, then returns true)
GICallStack
[!] Stop EnumMemoryBlock when overloaded function returned false
[*] Rename callback EnumFunctions
GIFramework
[+] GIScreenSizeX and GIScreenSizeY can now have value of 0, the GI will then use the desktop size instead
[+] You can retrieve the command line argument now through GIApplication (SetCommandLine/GetCommandLine), the GIFramework set the command line at start
[+] Possibility to boostrap (make a copy of the executable in the temp directory before running it, allow you to replace the original executbale while running, usually to update it)
[+] Added a global IRESOURCEMANAGER to add paths and pak for the application: GIResourceManager
GINetwork
[!] Now disconnects from server when TCP client returns false in OnReceive
[!] Fixed a wrong OnConnected event when reconnecting (the state should be onconnecting)
[!] Fixed a OnConnected then an OnDiconnected being called one after another if no server was contacted
[+] Added the OnFailToConnect event for client that doesn't connect properly instead of OnDisconnect that is now reserved for when OnConnected event previsouly occured
[+] Added capability to subscribe to Multicast feed
[+] Report an error if a client tries to connect to a NULL address
[+] Possibility for clients to disconnect a connection by calling Disconnect on the INETWORK object
[*] CheckForEvents function changed into Process and return code changed to return a bool (returns false when connection is invalid and usually needs a Reconnect call for TCP sockets)
GIDisplay
[!] Fix AlphaTest that was broken after the move to HLSL
[!] GIFont, fixed right align when using multi line texts (e.g. "Line 1nLine2")
[!] GIFont, fixed blurred on letters that sometimes happens depending of position on screen
[!] GIFont, fixed multiline right aligned
[+] GIFont, new function: GetNumberOfLines allows you to know how many lines will be displayed
[+] Added Video sprites, use it the same way as sprite, just mention a .avi or .mpg filename
At the moment work only from file (no GIFILE supported) and only with certain compression
[+] GIFont, Added param 'bool usesplit' to function DrawInside to allow sentences to be split properly on spaces and -
[+] Need to provide an IRESOURCEMANAGER at creation (see GIFile)
[*] Rename GetTextureName into GetResourceName for SPRITE (and now return a const char *)
[*] Load on Texture now takes a const char * instead of a char *
[*] Changed the way sprite hold a resource (can now be a texture or a video)
[*] SetTime and GetTime on sprite set and get the time in ms for a video sprite
[-] Remove GetTexture function on sprite as it's now a resource that can either be a texture or a video
[-] Removed AddPak and AddMediaPath, use the IRESOURCEMANAGER passed at the creation instead
GISound
[+] Need to provide an IRESOURCEMANAGER at creation (see GIFile)
[+] Addition of mixers to control the volume of a group of sounds. All sounds require a new param for mixer at creation. This can be NULL to use the default mixer
GIMemory
[+] Allocate can take a NULL pointer for the context
[-] Remove virtual void Dump(IMEMORYOUTPUT *output), you can achieve the same result with virtual void Dump(IMEMORYNOTIFICATION *notification), so no points in polluting the interface
GIReport
[+] Added __FUNCTION__ parameter in the macro, so we always have at least the current function name in the callstack view
GITextLibrary
[!] Fixed a report box that kept poping up despite ignore & continue choice when you didn't have a text library loaded
[*] You know need to pass an IRESOURCEMANAGER at creation (you can use GIResourceManager global if you use the GIFramework, or simply pass NULL if you don't want to use the resource manager)
[-] Remove bool LoadLanguageFromStream(ISTREAMREAD *stream, char **enumchar, unsigned short maxentries, ISTREAMREAD *enumindexstream = NULL) function definition, pak ar deduced from resource manager usage
GIPOINT3D
[+] Added possibility to divide a point3d by a float
GITEXTLIBRARY
[!] Remove extra end of line character at the end of each string
|
|
[Sunday 15 April 2007] [21:33]New SDK Available in the SDK>Download section.
It's a lot of changes and there are 2 things I will need to address for the next SDK:
1. Moving away from cg for HLSL (shaders) means it will work on video card supporting pixel shaders 2.0 and more. I will need to do another version that allow for lower 3D cards to run as well
2. I had to quickly fix the 3D animation when moving to HLSL, so some improvements are needed
Ok, so what's new in this SDK?
[!] Bug Fix
[*] Change
[+] Add
[-] Remove
-----
[*] Use DirectX libs from DirectX9 February 2007 SDK now, please make sure you update your SDK or use the include folder I provided with the GI
This also means users may need to upgrade their DirectX version as well.
[+] New lib: GIFile, allows you to package multiple files into one and read from it (so you can have just one big data file)
Integrated with GIDisplay & GISound (Textures, Scenes, Sound... can be read from a Pak file)
[+] New GISample to show how to build GIFiles using the new lib
[+] New UnitTest to test GIFiles
[+] New lib: GIIM, allows you to use Instant messaging API. Only implements MSN protocol at the moment
(Still work in progress and no message can be sent or received yet, but connection (the hard bit) is done)
[+] New GISample to use GIIM, the new lib
[+] New GISample to show how to use GISound
[+] Source code for the revamp of the 3D viewer (G3O)
GIMemory & IReport & GIScript
[+] Destroy() now checks no handles are remaining (and GIMemory calls memory leak checks if handles remains),
this catch objects calling addref without decref, avoiding the destructor to be called
GIMemory
[!] Fixed GetAllocatedSize returning a wrong number when memory object had additional memory pages allocated
[+] Added an allocation number to each block allocation in debug to help tracing memory leaks
GIScript
[!] Fix DecRef on IMemory and IReport
GIDisplay
[!] Fix crash when blank texture was created and display invalidated (by a resize or a switch between full screen and window mode)
[!] Fix a random wrong rotation on sprite displayed in 3d due to uninitialised data
[*] I deprecated all the CG code to replace it with HLSH. No need to include the CG Dlls aynmore but you will need to convert the cg files to HLSL if you created some (conversion is easy, check the samples, the language is the same)
The other point is that HLSL fx files only supports 3D cards with minimum vertex shader 2.0, so you may still want to use the CG #define to keep using CG if you need to support other video cards
[*] Now load FX files for shaders, merging pixel and vertex shaders in one call/file so:
LoadVertexShader & LoadPixelShader have been removed from SHADER class
Load added to SHADER class to load an FX file containing both vertex and pixel shader
SetDefaultVertexShader/GetDefaultVertexShader & SetDefaultPixelShader/GetDefaultPixelShader have been removed from GIDISPLAY class, use SetDefaultShader/GetDefaultShader instead
[*] SetMediaPath was renamed into AddMediaPath since you can call it multiple time with many paths
[*] ForceReload renamed into ReloadTextures
[+] Possibility to add pak files for transparent usage of GIFile in GIDisplay:
virtual void AddPakFile(const char *pakfilename) = 0;
(does not work on FX shader files yet)
[*] Octree: GetAltitude now returns a bool to know if the altitude could be found (maybe outside of the mesh) and takes the altitude as a parametter
[*] CreatePixelShader & CreateVertexShader merged in CreateShaders in the SHADERS class
[+] Added possibility to draw sprite in 3D that aren't facing the camera
[+] New function on GIDisplay: unsigned int GetAvailableTextureMemory()
[+] New function on GILight: POINT3D GetTarget()
[+] Added DUMMY base type in SCENE to allow for retrieving dummy points in the model (to point some location on the model)
[+] New function to set the color of the fog (and set it back once devise is resetted) SetFogColor(COLOR3 color)
[+] Moved vertex shader declaration in Object 3D (now the object owns the format declaration)
[-] No more GetVertexSize and GetVertexFormat on Shaders
GINetwork
[!] Fix a memory leak ith list of clients connected when server socket was destroyed
[!] Fix a memory leak in ICOMMUNICATION when the client leaves instead of being disconnected first by server
[!] Fix SendText called with a client connection over the INETWORKCONNECTION of the server
[!] Fix SendTextFormatted called with a client connection over the INETWORKCONNECTION of the server
[!] Fix errors that kept poping up despite the user clicking on ignore in the GIReport box
[!] Fix virtual destructor in ICOMMUNICATE & ICOMMUNICATIONUSER
[*] Change the notification interface to have
OnConnecting() // this means that the TCP connection is trying to contact the server
and
OnConnected() // this means that the TCP connection was established with the server
instead of OnConnect. This allows you to catch the event you are interested in
[+] Allow to have faster TCP by using TCP_NODELAY at the expanse of more bandwidth if needed (set creation param: SpeedOverBandwidth)
[+] Enumeration of ICOMMUNICATIONUSER clients on ICOMMUNICATION server
GITextLibrary
[!] Fix Memory unallocation issue
[!] Fix AddRef & DecRef on IMemory and IReport
[+] Allow usage of STREAMREAD interface to load from GIFiles
GIIRC
[!] Fixed DecRef instead of AddRef on IMemory in the Destroy function
[!] Fixed one connectivity issue
GISound
[!] Fix a bug of Stream sounds not being processed properly
[!] Fix a bug of Stream sounds sometimes going out of sync
[!] Fix a warning and memory leak when creating a stream from a non existing file and then destroying the sound
[!] Fix bug with Stream sounds when sound was smaller than allocated buffer causing out of sync after looping a few times (in case of a small sound played as stream)
[*] Avoid Set3DListener to call Direct Sound when new position and direction is the same as previous call
[+] Added AddMediaPath function (you can provide various paths for the GISound to look into when loading a sound)
[+] Possbility to tweak distance or fade out for 3D Sounds: void SetDefaultDistance(float min, float max)
[+] Possibility to alter the Pitch of a sound
[+] Possibility to add pak files for transparent usage of GIFile in GISound:
virtual void AddPakFile(const char *pakfilename) = 0;
GITList
[+] void AddSorted(T* data);
[*] Add functions in TLIST now returns the node they were added to
[*] Changed memory context information to know what type of list is leaking on report memory leak
GIFramework
[+] void GIRegisterWindowsCallback(GI::IWindowsEvent *handle); // to handle the ESC key if you want to avoid exiting application
[*] Mouse no more centered when application starts
[+] Now call Set3DListener automatically on GISound with camera position each frame
GIMouse [*] Setting the mousestate to processed now means that future queries the
same gameloop on mousebutton states will return false (avoiding to treat more and one click per gameloop)
GIXML [-] Remove for good the function returning an std::vector (this was a design flaw as it exposed the implementation details inside the interface)
I left the code commented in case some people where using it but I will remove it in the next SDK (to let you the time to migrate over)
|
|
[Monday 19 March 2007] [12:50]Me and my big mouth...
I also decided to start the support for HLSL FX files hence why it takes longer to release than originally though.
There is also the suport for GIFile to carry on (in GISound this time) allowing you to pak your data into single big files and allowing patch mechanism...
Anyway, check What's new in the menu to see how big this new release is :) |
|
[Thursday 22 February 2007] [15:15]The next SDK is almost ready with plenty of new things.
I need to fix one bug on Windows XP 64 bits for the sound and then I'll make a release.
Since I don't own Windows XP 64 bits myself, this may be a bit tricky to debug but I have good faith :) |
|
[Saturday 25 November 2006] [13:18]The December 2006 SDK is now available in the download section.
What's new:
(Some modifications come from Christophe Kohler (CK) - Thanks to him)
Allow programs using the GIFramework.lib to be compiled with __fastcall
* New lib: GIRandom that allow you to have a predictable random number.
* Tree structure changed, now all the GI are under a common directory called Sources (at last!)
* GIReport: coloured icon are back on the report box (green for warning, yellow for errors and red for fatal errors)
* GIDisplay
possibility to set display as wireframe on or off
virtual void SetWireframe(bool wireframe = true) = 0;
Fixed the report error that didn't listen for the ignore option
Fixed a bug with region sprite, when a region was used on the fly instead of predefined regions
CK: possibility to set filtering on sprites (to give a blurred effect)
CK: create a #define for right hand systems (e.g. Maya)
CK: possibility to run without pixel shaders for older video cards
CK: possibility to set a different texture on 3d objects (careful as SCENE destroy textures it used, so don't do it too!)
CK: possibility to set clamp or tiled mode on texture class for 3d objects
CK: reenabled simple mipmapping for 3d texture models
Can now call GetName() on Object3D
BOUNDINGBOX can be constructed from SubMesh
SetHide available on Object3D now
Octree: GetAltitude allows you to retrieve the altitude of a position (y) in space (x,z)
* GINetwork now contains an ICOMMUNICATION interface that allow you to handle packets and ease commmunication
between server and client.
fix small bug on reconnect of TCP clients (OnConnection was not called)
* GIMemory
added 2 functions to help debugging
virtual unsigned int GetFreeMemorySize() = 0;
virtual unsigned int GetAllocatedSize() = 0;
remove the need to specify the type of the objet in the unalloc macro
* GITList
Fixed AddBefore function
* GIXML
Allow enumeration of sections and key via an enumerate interface
|
|
[Monday 17 April 2006] [10:47]The April 2006 SDK is now available in the download section.
What's new:
* GIDebugMenu refactor in progress.
* Addition of a 3D base sample
* GIReport now provides some macros to allow "..." usage. E.g: GIREPORT_ERRORF(GIReport, true, ("error number %d, errnumber));
* GIXML
Fixed a crash bug at loading and bad memory allocation
Fixed addref/decref problem
Fixed new/delete allocation to be properly using the allocator provided
* GIDisplay
Fixed IsLoaded function on Sprite
Provided a callback interface for knowing textures used by a scene object
Added a GetState to SCENE to help with multithreaded background loading of SCENE
|
|
[Thursday 02 February 2006] [20:53]Sorry, still no SDK. Main reason is (beside having too many projects as usual) that I'm also doing a prototype with the game incubator and some videos to demo how it's working.
I'll keep you posted in the near future, so stay tuned :) |
|
[Sunday 04 December 2005] [19:25]No new SDK this month.
Next SDK planned for february 2006 if all go smoothly.
Latest version of GIXML contain a crash bug, any one willing the fix can email me or get the latest version from sourgeforge CVS |
|
[Wednesday 19 October 2005] [11:25]I put in place the new Forum for English speaking.
Many ideas are still in the air for the next SDK, but I primarly think of those 2:
- GIFile (so you can have just one big file containing all your asset or download them from the internet while playing)
- An exporter for XSI|Softimage |
|
[Sunday 09 October 2005] [18:03]The October 2005 SDK is finally available in the download section.
Here are what's new in this version: (plenty)
Global: All GI objects are now under the namespace GI. (Except GIDebugMenu and GIProfiler)
* New UnitTests: GICallStackUnitTest, GIReportUnitTest and GISoundUnitTest
* GIDisplay
Fix rotation center on region sprites
* GITemplateList is declared deprecated, GI::TLIST replaces it
* GICallStack
This is a new lib to help you querying the callstack at any moment. This will be used in GIMemory to give
you full report of where leaks are coming from and for GIReport to give you full information when poping up
error reports.
* GIReport
Complete rewrite of the GIReport so that it's now an interface like GI::IMEMORY.
That now decouples the GIReport from the other GI libs. All GI were impacted by this change.
Added a AddRef/DecRef mechanism so that it isn't deleted while other still use it.
(only relevant for people not using the framework, those that want just to use a few GI libs)
Resources are included in the lib, so it's no more a DLL!!!
* GIMemory
Added a AddRef/DecRef mechanism so that it isn't deleted while other still use it.
(only relevant for people not using the framework, those that want just to use a few GI libs)
Possibility to list all the allocations
virtual void Dump(IMEMORYNOTIFICATION *notification) {};
* GITList
Remplacant de GITemplateList. It's requesting an allocateur (IMemory) and a reporter (IReport)
* GINetwork
API changed slightly (Notification is now inside the parameter object sent for init).
* GIPath
No more extern, it now uses an interface for display function. Proper Create/Destroy API
* GISound
Sounds are now created via the SoundManager object. The Framework provides you with one already if you are using it.
Set3DHear becomes Set3DListener
Flag and control becomes enums instead of defines
* GIApplication
IsFullScreen and IsPseudoFullScreen disappear and are replaced by one function:
virtual APPLICATIONPARAM::ENUM_WINDOWTYPE GetWindowType() = 0;
SetPseudoFullScreen & IsPseudoFullScreen disappeared as well and are done through WindowType in init function
extern bool GIFullscreen; is no more used and is replaced by
APPLICATIONPARAM::ENUM_WINDOWTYPE GIApplicationType
Application will have to declare this line:
GI::APPLICATIONPARAM::ENUM_WINDOWTYPE GIApplicationType = GI::APPLICATIONPARAM::eWINDOWED; |
|
[Sunday 07 August 2005] [17:12]The August 2005 SDK is finally available in the download section.
This release is supported for .NET 2005 beta 2 and .NET Express Beta 2 (great products btw)
Here are what's new in this version:
* GIDisplay
GISprite now accepts rotation in radian (0-2PI = 0.0f up to 3.14*2)
void Draw(float screenx, float screeny, float rotation);
void DrawRegion(unsigned long index, float screenx, float screeny, float rotation);
void DrawRegion(const GIREGION2D ®ion, float screenx, float screeny, float rotation);
Multithreaded load of GIScene3D (first version, will be improved later)
* GIMemory
Module that provides an allocator, now needed to initialised most mudules as all allocation are now controlled via it.
(Stl allocator not done yet)
* Due to GIMemory, most of the GI's Destructor now are protected, you will need to call Destroy() on the objects
intead of delete.
For example, you may meet this error if you don't:
error C2248: 'GISPRITE::~GISPRITE' : cannot access protected member declared in class 'GISPRITE'
use this instead: mysprite->Destroy();
Happy coding! |
|
[Tuesday 07 June 2005] [09:00]For the next SDK, GIMemory will be available.
Basically, it will allow a better visibility on the memory we use.
It will enable us to know where is the memory going, to fix memory leak more easily, knowing what wasn't freed...
Impact on user is minimal except an extra parametter to pass at some object creation. That will allow you to pass your own memory module.
I plan to do the same for the GIReport in long term.
Right now, 2 modules benefit from the new GIMemory, I plan on convertir the entire GI to be using the GIMemory for the next release. |
|
[Monday 30 May 2005] [23:52]The June 2005 SDK is finally available in the download section.
It would have taken some time but this version is quite good and should allow most of you to try it as it's been done with Express 2005 Beta 2 that is available for download freely on Microsoft website (see the Readme in the release for instructions).
For the news:
* GIFramework: added possibility to receive drag n dropped files, with a callback on it
* GIIRC
Enables you to connect to an IRC channel and send/receive text messages
* GISound uses const char * instead of char * for string inputs
* GINetwork uses const char * instead of char * for string inputs
Now has OnConnected callback when a connection has been established
IsConnected also returns true when the client is in a connecting mode (so you can check properly IsConnected for doing a ReConnect)
Uses of a class for Notification instead of crap callbacks
new function on GIConnection:
virtual bool Send(void *data, int len) = 0;
virtual bool SendText(const char *text) = 0; // do NOT add any carriage return (rn)
virtual bool SendTextFormatted(const char *text, ...) = 0; // do NOT add any carriage return (rn)
virtual GINETWORK *GetNetwork() = 0; // receive the network that holds this connection
* GIDisplay:
New function to specify uv coordinates when drawing textures 3D lines:
void Draw3DLine(GITEXTURE *texture, GIPOINT3D start_position, float u, float v, GIPOINT3D end_position, float u, float v) = 0;
* GIPOINT3D
Optimized constructors
|
|
[Sunday 30 January 2005] [19:13]February SDK is now available.
This is more of a minor release unlike what I was hopeing for.
Support for Vc6 has been dropped. Project is now .NET 2005 only (or .NET 2003 with a minor file manipulation as specified in the readme.txt along with the SDK).
No more light version (lib+headers), is you'd rather this version, let me know and we will see if I do that for next package.
PS: If you would like to see a feature for next version, don't hesitate and post it here.
See you in April if things are going well. |
|
[Saturday 04 December 2004] [22:39]Because I spent most of my time job hunting, I couldn't make the progress I wanted on the Game Incubator.
The good news is that I started working for Electronic Arts this month and the other good news is that I resumed my work on the Game Incubator, so we should expect a new SDK in early February! |
|
[Thursday 30 September 2004] [09:07]The lack of time and the very few changes make that the October SDK will not be released.
See you for the next SDK. |
|
[Monday 09 August 2004] [03:07]The August SDK is now available.
A few things:
- Projects are now made for .NET 2005 (you can download the very stable beta for free HERE). This is the last SDK with VC6 support. If this is causing you trouble, send me an email, but .NET 2005 is AT LAST as good and better than VC6 to work with.
- Next SDK will be released bi-monthly now instead of monthly. As the SDK goes stronger, fewer changes are needed.
- I'll be adding a "Roadmap" section just under the "What's new" link so you know what is planned for the GI.
- The GI is born 2 years ago and I didn't know I would be so pleased to share my sources with everyone else. Thanks for the support and kind emails!
You can find the SDK in the download section.
Here is what's new in this SDK:
* Support for .NET 2005!
* GINetwork
Fix a bug on server socket (they didn't close the connection with a client when returning false on receive function)
virtual unsigned short GetPort() = 0; // get the port you specified at the Init of a GINETWORK
Small speed optimisation on closing sockets
Remove the annoying WSAECONNRESET error message that simply stands the fact that the network link broke
Added a timer (5 seconds default) as a timeout to connection with a server
virtual bool Reconnect() = 0; // only for client, servers always return false
* GIDisplay
Stop changing values of passed 3d points in Draw3DLine functions
Fix a bug with display of Region (in X), thanks to Dark-Nemo
* GIReport
Open and close the GIReport.log file every time an error is displayed, so if you kill the game, the file is not empty anymore
* GITemplateList
AddIfNotInList now returns a boolean (true: node added; false: node not added as it was in the list already)
|
|
[Sunday 27 June 2004] [01:31]Because of an increase of work on Catwoman for Electronic Arts at work, I didn't have much time to carry on working on the GI this month. As a result, there will be no July SDK available. However, I should be able to produce one for August as I will have a month off soon. Nice :) |
|
[Sunday 30 May 2004] [14:54]There you go. I didn't know if I would have the time but it's done, the June SDK is now available and I'm happy to annouce that I now fully support the 3D section of it :)
I also did 2 workshop that I will need to upload them at some point (GIScript and GITextLibrary)
As usual, you can find the SDK in the download section
Here is what's new in this SDK:
* PlugIns
The plug ins are now compiled for 3DStudio Max 6
* GIDisplay
Fix color problem in Draw3DLine that happen in some 3d scenes
Possibility to retrieve the default shaders you set with SetDefaultVertexShader & SetDefaultPixelShader
virtual GISHADER *GetDefaultVertexShader() = 0;
virtual GISHADER *GetDefaultPixelShader() = 0;
virtual void SetMediaPath(const char *relativepath); // e.g: "Data", "Data/Textures", ...
* GISprite
Better support to SetSize/GetSize for region sprite:
virtual float GetCurrentSizeX(unsigned long regionindex) = 0;
virtual float GetCurrentSizeY(unsigned long regionindex) = 0;
virtual void SetCurrentSizeX(unsigned long regionindex, float sizex) = 0;
virtual void SetCurrentSizeY(unsigned long regionindex, float sizey) = 0;
virtual void SetCurrentSizeXY(unsigned long regionindex, float sizex, float sizey) = 0;
virtual void ResetCurrentSize() = 0; // Set back the size X and Y to match the real size
* GIScene
virtual const char *GetFilename() = 0; // retrieve the complete filename
virtual void Merge(GISCENE *scene) = 0;
virtual GIOBJECT3D *AddObject3D(GIOBJECT3D *obj3d, bool includingsubobj = true) = 0; // return the new GIOBJECT3D created in this GISCENE
virtual void SetAlphaTest(bool test) = 0;
virtual void SetAlphaTestValue(unsigned char value) = 0;
virtual void UseTransparency(bool use) = 0;
* GIObject3D
Enables you to choose the matrix to render for this frame
void SetMatrixToUseThisFrame(const GIMATRIX &matrix);
virtual GISUBOBJECT3D *AddSubObject3D(GISUBOBJECT3D *subobj3d) = 0; // return the new GISUBOBJECT3D created in this GIOBJECT3D
* GISubObject3D
virtual void SetHide(bool hide = true) = 0;
virtual bool IsHidden() = 0;
virtual const char *GetName() = 0;
* GIVolume
virtual GIFACE *GetFaceArray() = 0; // retrieve a pointer on an array of face for this volume
* GITexture
virtual const char *GetFilename() = 0;
virtual GISPRITE *CreateSpriteFromThis() = 0; // user is responsible for deleting the object retrieved
* GIShader
// on pixel shader, set it to false if you want to disable to use a blank texture (mainly for debugging purpose)
virtual void SetUseTexture(bool usenormaltexture) = 0;
* GIScript
Fix bug with .NET 2003 for registering functions via GISCRIPT_REGISTER_FUNCTION
|
|
[Wednesday 12 May 2004] [00:32]The 3D part is progressing fairly well and I implemented a few bunch of interesting manipulation on 3D meshes you may like. I'll tell you more on this before the next SDK comes out (no date planned yet).
I'm also planning to open a new section either this month or the next one called Workshop. Basically each GIModule will have it's own workshop. That is basically source code that demonstrate how to use a GI component. This way I hope this will be easier for new beginners as most of them are missing great features :) |
|
[Saturday 24 April 2004] [03:04]The new SDK is already here. Earlier than I though.
I'll probably focus on the 3D exporter/interface for the next SDK, and/or the GIPhysique.
Let me know if there is any problem or if you would like to see things in the next SDK.
Here is what's new in this SDK:
-------------------------------
* GIFont
bool Draw(float screenx, float screeny, const char *text, long numberofcharacters = -1);
bool Draw3D(GIPOINT3D point3d, const char *text, long numberofcharacters = -1);
Added an optional character at the end to only display a certain amount of character
long GetNumberOfChar(float sizex, const char *text);
Return the number of character that you can draw in this string so it fits in sizex
bool DrawInside(float screenx, float screeny, const char *text, float maxsizex);
Constrain/Reduce the draw of the string inside maxsizex
* GIReport
Changed the error line into a multiline box, so we can format error message a bit better You can specify another line by adding \n in your text
eg:
GIREPORT_ERROR(true, "Line1\nLine2\nLine3");
There is an option for your user to hit the button "Send Error by Email", but so far, you could not set your email address. Now you can with this new function:
static void SetEmail(const char *email = "youremail@domain.com");
call it this way in GIInit (before an error may pops up basically):
GIREPORT::SetEmail("myemail@happy.com");
* GIXML
New Util to read and write basic xml files very quickly and easily (but the syntax to read is not that great yet)
* GIScript
Adding Lua. The GIScript is great to work with in this SDK.
* GIPath
Draw function now available (to show the path with 3d lines)
* GIStater
Allow NULL function for State that have no function to call
* GIFramework
GIGetSDKVersion to retrieve the date of the build for the Light version of the GI (eg: Mar 4 2004)
* GIMouse
SetVisible(false); now, still display the mouse on windows title (so we can see where we click for drag n drop)
Check for double-click
bool IsAnyButtonDoubleClicking();
bool IsLeftButtonDoubleClicking();
bool IsRightButtonDoubleClicking();
bool IsMiddleButtonDoubleClicking();
* GIFont
GIFONT_CENTER now works properly with multiline text (/n)
Enjoy! |
|
[Thursday 22 April 2004] [01:41]The next SDK is coming very soon and should be available next Sunday if everything is fine.
This new SDK will contain a brand new version of a module (GIScript) and a new util (GIXML).
GIScript enables you to run scripts with the Lua syntax. I'll tell you more about this later but it's really cool and quite good for a first version.
GIXML enables you to read and write basic XML files quickly. I'm not fully happy about the way it's returning a std::vector when you read an xml as it's not quite intuitive to use. I'll probably change that in the future but it's working.
Many other changes like GIReport that now displays error inside a multi-line box (just add n in your error text to add an extra line) and the GIMouse now checks for double-clicks.
Anyway, have a look in the "What's new" link for more information. |
|
[Sunday 11 April 2004] [14:06]New project added in the Projects section: DNA (by Christophe Kohler)
It's a sweet little platform game in 2D very well done.
It's already playable so feel free to try it! |
|
[Friday 09 April 2004] [20:41]Here you go, you can now find the source of Genetic. |
|
[Thursday 01 April 2004] [22:53]Hop, here is a little demo made with the GI: Genetic
Source code will follow, I just need to clean a few warnings first :) |
|
[Saturday 20 March 2004] [06:56]There will be no April SDK this year due to some extra work I had to do recently. Plus I'm going at the GDC this year as well :)
Let me know if you still would like to have one of the very few changes provided this month (have a look in the General > What's new link).
|
|
[Wednesday 10 March 2004] [07:45]The 'Genetic' demo is progressing well, 1 minute 30 sec is still left to do. Here are 2 screenshots before I release the demo:

|
|
[Thursday 04 March 2004] [01:01]For support or chat about the GI, feel free to come and talk with us on IRC:
Server: Undernet
Channel: #Kamron |
|
[Wednesday 03 March 2004] [00:51]The March SDK is now available. You can find it in the SDK > Download section.
Here is what is new in this SDK:
* GIHelp.chm
Start of the help file for the GameIncubator
* GIFont
Allow font to be loaded with constructor parameters
* GIMouse
Typo: uniformity of function name
GetPosX becomes GetPositionX
GetPosY becomes GetPositionY
SetMouseX becomes SetPositionX
SetMouseY becomes SetPositionY
* GIApplication
Typo: uniformity of function name
GetPosX becomes GetPositionX
GetPosY becomes GetPositionY
void SetTitle(const char *windowtitle); // to change the window title
* GIKeyboard
void PushStringToTheQueue(const char *sentence, ...); // send a string to the buffer (as a nice complement of PushCharToTheQueue)
* GIPath
Sources added
* GIDisplay
RegionInSprite: enable you to have a sprite that is holding many sprite or to do sprite animation
By default, sprites are now stretched and not tiled
Handle properly windows change in size now (changes in GIApplication too)
void UpdateSize(); // to be called if Application change of size (GIFramework will call it automatically)
Shaders are not loaded by default, use SetDefaultVertexShader and SetDefaultPixelShader to specify the default shaders before loading a 3D Scene
* New module GIScript
GIScript is still very much work in progress.
It uses VisualBasic Script or Java script independently.
As usual, dead easy to work with (GI powered ;))
It's very much function oriented, you can declare function in your application and your script can call those function (no custom type yet).
The idea is toward having scripts that runs your gamelogic:
eg. you have doors in your game, your attach a script to them and run the script each gameloop.
The script can be: if someone is close enough, call OpenGate. So the door will open if someone is close enough. Nice heh?
Future version of the GIScript will support Lua 5.0 (http://www.Lua.org)
|
|
[Wednesday 18 February 2004] [00:43]Here is a post on the forum you may want to monitor as I'll put my progress on the GIHelp, which is the documentation of the GI in a nice chm (windows help) format.
Feel free to download it. I'll do a proper news when it's done... |
|
[Saturday 07 February 2004] [18:02]A new link the the General section has been create: What's New
It directly links on a CVS file on sourceforge that I'll update regulary from now on so you can see what's coming up for the next SDK.
PS: files in sourceforge are usually not reflecting the current file (up to 48 hours delay in general) |
|
[Tuesday 03 February 2004] [18:22]There we go, the February SDK is now available. You can find it in the SDK > Download section.
Here is what is new in this SDK:
* Temporary: 3 externs need to be defined to setup the Screensize and if the application is fullscreen or not:
extern long GIScreenSizeX;
extern long GIScreenSizeY;
extern bool GIFullscreen;
please declare them in your application like this:
long GIScreenSizeX = 800; // for 800*600 display screen
long GIScreenSizeY = 600;
bool GIFullscreen = true; // will launch the application in fullscreen
* Enable a define for fast typing of long types such as GIPOINT3D that can by types V3 (for vector 3 dimension)
list of current fast types:
GIPOINT3D -> V3
GICOLOR3 -> COL3
GICOLOR4 -> COL4
GIMATRIX -> M34 (because it's a 3 by 4 matrix)
* GIDisplay:
bool IsNextFrameReady(); // used by the GIFramework, check for MaxFrameRatePerSec limitation
void SetMaxFrameRatePerSec(long framepersecond = 0) = 0; // 0 means no frame limitation
long GetMaxFrameRatePerSec() = 0; // 0 means no frame limitation
* GISPRITE
Sprite can be displayed in 3D: using void Draw(GIPOINT3D pos)
// effects on sprites
void SetSourceBlend(ENUM_GISPRITE_BLEND sourceblend);
void SetDestinationBlend(ENUM_GISPRITE_BLEND destinationblend);
void SetMultiplyColor(ENUM_GIMULTIPLY_COLOR multiply); // also on normal sprites
* GIMouse:
void SetVisible(bool visible = true);
bool IsVisible();
|
|
[Friday 23 January 2004] [01:50]February is coming soon...
I plan on releasin a new SDK that is quite similar to the one of January mainly because the version is becoming quite stable.
I'll start using a change log file from now on that will contain changes like new features (like the addition of 3D Sprites).
I'll post the new SDK (one with the full sources and one 'easy start' without the sources) on sourceforge as people keeps on getting the SDK of October...
In the same time, I'm working on a little demo called 'Genetic', in order to demonstrate that we can have fun with the GI (at least me :)).
Here are 2 work in progress screenshots of it:

|
|
[Monday 05 January 2004] [00:53]No more bad news.
A few friends of mine kindly remind me that I forgot to add the support for VC6...
So I kindly rebuilt the whole project with VC6 in order to produce a lib compatible with VC6.
You can find the new package in the Download section.
GILab-January2004b now contains a .sln for .NET and a .dsw for VC6
If you notice anything strange, please let me know :)
Enjoy! |
|
[Saturday 03 January 2004] [18:48]New year, new SDK. The January 2004 SDK is now available.
Good news: the new SDK is dead easy to work with. As easy as the Dll version was.
Bad news: it only compiles with .NET from now on. You can retrieve the latest sources from SourceForge and compile under VC6 though, but you won't be able to use the .lib from the latest SDK.
If this is causing you a problem, please let me know. |
|
[Tuesday 30 December 2003] [21:39]I cleaned a bit the english side of the GI website. It's quite quiet recently and only a few modifications are made to the source. This is a good sign and show that the sources are becomming pretty stable now.
I still need to add the GIPath and the 3DSMax Exporter as open source.
Of course, a happy new year to everyone! |
|
[Monday 13 October 2003] [14:58]A bit earlier than I expected, but there you go. I did a first SDK containing almost all the GI sources (appart from the GIPath and the GIMaxExporter).
You can download the thing HERE |
|
[Thursday 02 October 2003] [00:17]Almost all of the GI has gone opensource on sourceforge this month. So feel free to grab them all. I agree that it isn't very pleasant to retrieve sources this way, so I'm gonna do a downloadable package containing all the sources ready to be compiled for next month. |
|
[Monday 01 September 2003] [01:33]The sources of the GIDebugMenu are now available |
|
[Wednesday 06 August 2003] [14:54]The GI is converting slowly and the new 3D engine just appeared. Other parts will be added in the following months.
For the sources, it's always the same address: Sourceforge
These are core sources, no SDK are available yet. |
|
[Thursday 03 July 2003] [01:36]The Game Incubator is going to be Open Source.
The license will be the one of Zlib (that means very flexible).
The project is being converted so it doesn't use DLL any more, but libs in order to have something easier to use for people willing to use the source code. GILabs Releases (with a .lib and headers as it use to be will not stop).
Here is the sourceforge project page although gi.kamron.net remains the official URL of this project.
Sourceforge |
|
[Saturday 31 May 2003] [18:15]No June SDK, but the GI may become open source in the next few months.
Just send me an email and if enough people are interested in this, I will put the sources on the website.
|
|
[Sunday 04 May 2003] [03:31]The May SDK is now available. A lot of new functions are done, however the complete SDK didn't had the opportunity to be fully tested.
The main reason of the sudden addition of those new function are because of the integration of the GI in Kyrne a role playing game.
3D is then now partially available but please allow one or two SDK releases before it actually become strong enough to work with.
Enjoy coding! |
|
[Monday 07 April 2003] [21:55]A few projects using the GI start to appear.
Fabrice Cambounet kindly offer us the source code of 3 projects he is working on. You can find them in the following section: Community > Projects.
It's crazy to see what people can do with the GI without any real 3D support for now. |
|
[Monday 31 March 2003] [01:26]The April SDK is now available.
The first version of the GISound is included. You can trigger sound fx or use it to stream music.
The use is very similar to GIDisplay for sprites (= very simple).
However, only wav files are supported right now. Ogg format support will be added next. |
|
[Saturday 01 March 2003] [13:32]Sorry, no March SDK. The GISound is started but not good enough to be shared yet. Next month should be fine especially as I won't have to prepare my talk for the Game Developers Conference anymore! |
|
[Tuesday 04 February 2003] [23:25]If you want it, you can download the source code of the beginning of GrumpfOnline, a Zelda/Gauntlet like using the GI.
You can find it in the Community/Projects section. |
|
[Saturday 01 February 2003] [13:15]Due to a lot of extra work I could not spend time on the GI this month, so no February SDK. |
|
[Sunday 01 December 2002] [21:30]The december SDK is now available. |
|
[Monday 28 October 2002] [15:04]Here is a very simple and easy to understand demo sample to illustrate how to use PointSprites (sprites located in a 3D space).
Here |
|
[Monday 30 September 2002] [03:20]A bug database has been open to report bugs, problems or features you need.
Follow the link: Mantis |
|
[Saturday 28 September 2002] [22:19]New version available. You will find the GIPath that enable you to use Bezier Lines in a very easy manner (for camera mouvement in 3D, but can be used for 2D games as well).
Also, GIProfiler has been changed and can now be displayed on screen (same way than GIDebugMenu). |
|
[Saturday 28 September 2002] [00:53]Here is the first mailling list for the GI. By joining, you will also be informed whenever a new version is posted.
Click on the following link: Mailling List |
|
[Friday 20 September 2002] [23:21]New version. It includes a first attempt (though fully working) of the GINetwork as well as some small changes.
Also, it includes the start of the GIKeyboard (no really for fast pace action game based on key stroke but more to retrieve chaines like a login name). |
|
[Wednesday 11 September 2002] [00:41]Two new files (templates) has been added for download although it is definitly not for beginners. |
|
[Sunday 04 August 2002] [22:40]New version available for download
This version includes the GI Config that let you define the parameters of the GI with an Excel spreadsheet
How to configure: open Excel (always accept macro), edit the values in the different sheets then press CTRL+S, this will save your spreadsheet and export your data for the game. The other possibility is to edit by hand the GIConfig.ini
If you don't have any GIConfig.ini, download the latest version |
|
[Sunday 04 August 2002] [00:49]Pre-version of the Game Incubator available to download |
|
[Friday 02 August 2002] [22:46]Start GI Profiler |
|
[Thursday 27 June 2002] [03:39]GI Report v1.0 done |
|
[Wednesday 26 June 2002] [00:34]Beginning of the project |
|
|