Design a "2D in 3D" sprite system using Visual Basic 6 and the DirectX8 Type Library for Visual Basic 6. The goal is to write a library of high level routines (that hide the low level stuff) that allow the graphic manipulation of graphic surfaces, sprites, etc. in DirectX8. The goal is NOT to write a game engine. Just the basic inits, surface creation, blitting, sprite drawing, etc.
Buyer is very familiar with DirectX7 2D coding but wants to make the move to DirectX8 for 2D projects. You will be required to develop a suite of general purpose routines similar to the following:
1) Setup and configure DirectX8 (screen res, bitdepth, etc..)
2) Setup and configure graphic surfaces (empty, .bmp's, etc..)
3) Blitting from surface to surface.
4) Camera angle for doing standard 2D style games. Most of the time the camera will be static for a standard 2D game. But there may be times for different angles so support for that will be needed.
5) Design 2D sprite draw systems that support alpha, rotation, scaling, etc. (Getting graphic data from a surface, etc..)
Note: 3D models will NOT be used. Just 2D rectangles!!
6) Routines ofcourse to RELEASE any resources used at program end.
7) You will also be required to code a demo *shell putting all of these features together.
Basically the buyer wants a 2D system similar to how DirectX7 works but with expanded features like alpha, rotation, scaling, etc.
You will not be creating a game engine, just the basic routines that could be used to do all of the basic 2D blits, sprite manipulations, etc that are possible in DirectX8.
* The finished demo shell should be a complete template that could be used to initialize a project. The demo shell should basically initialize DX8, have a main loop with dozens of alpha, rotated, scaling sprites zomming around OVER A BACKGROUND, each sprite with their own image data. Page flipping, fps reporting, etc. Also routines to RELEASE any resources used is a must.
Basically all the LOW level stuff will be invisible and handled by the functions. The buyer is interested in high level routines that will allow them to focus on the project, not the low level code. Routines should also return an error code if possible errors can arise.
EVERYTHING done in VB6. EVERYTHING HEAVILY documented, that is a must. Some of you game coders may be able to make a quick buck if you already have something similar done! :)
Tech Notes: Coding for compatibility on older graphics card is a must. So please research and understand any limitations on graphic surfaces used. I believe there may be size limits of 256x256 for textures and eveything needs to be a power of 2? (16x16, 16x32, etc)
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Windows 98, Windows 98SE, Windows XP