VDEngine (DirectX, C++, Win32)
by Varkalas D`Lonovan
(since December 2008)



TODO List:
~~~~~~~~~

* Set up a time/frame-based manipulation or synchronization in the game loop
* Basic NPC Logic
    ~ normal ones use the randomized movement, static ones don't move
    ~ implement dialogue interaction in Mystic Realms
* Game Logic
    ~ need to figure out a system for stats/attributes
* Creature Editor
* Item Editor
* Sound
* Music
    ~ find a way to make good original music
* Game Options (FINAL STEP)
* OpenGL (optional)
* NOTE:  Currently using ID3DXSprite, would IDirect3DTexture9 be a better choice???
* NOTE:  If sprites stop loading awkwardly after using Open File Box dialog, the
         default directory needs to be reset



*************
* Main Loop *
*************

(wiki)
check for user input
run AI
move enemies
resolve collisions
draw graphics
play sounds

(one version)
Get elapsed time
Handle lost/reset graphics devices
Get player input
Perform A.I. and game logic
Handle sound
Render
Synchronize display

**************
* Data Types *
**************

		signed						unsigned			size
char	-128 to 127					0 to 255			1 byte
short	-32768 to 32767				0 to 65535			2 bytes
int		-2147483648 to 2147483647	0 to 4294967295		4 bytes
long	-2147483648 to 2147483647	0 to 4294967295		4 bytes

**********************
* Important Keywords *
**********************

private:	accessed only by that class
public:		accessed by all code
protected:	accessed by that class and its subclasses
inline:		
virtual:	used to denote polymorphism (use on destructors with classes that have subclasses!! otherwise, subclass's destructors won't get called)

class A, class B : A
both have functions X
if function X is called from a B object, it still uses A's function X
unless!  we have class A make it a virtual X

*********************
* Memory Management *
*********************

What's the difference in speed and memory allocation (RAM, hard disk, etc.)
with the following two instances:

1.  Creature aCreature;
2.  Creature *aCreature = new Creature();

1.  An instance
2.  This is allocated, uses constructor/destructor, and needs to be deallocated