Jump to page: 1 2 3
Thread overview
Nonagon, a DirectX9-based engine written in D (download link)
Mar 29, 2005
clayasaurus
Mar 29, 2005
Derek Parnell
Mar 29, 2005
Derek Parnell
Mar 29, 2005
Joey Peters
Mar 29, 2005
J C Calvarese
Re: Nonagon, a DirectX9-based engine written in D - Release 2
Mar 29, 2005
Derek Parnell
Mar 30, 2005
Tom S
Mar 30, 2005
Tom S
Mar 30, 2005
Georg Wrede
Mar 30, 2005
Tom S
Mar 30, 2005
clayasaurus
Apr 01, 2005
Paul Bonser
Mar 31, 2005
Tom S
March 29, 2005
Well here it is!  The fruit of almost two and a half years of labor, most of which wasn't spent working on this.  So it's more like maybe three months of labor.

In any case, this is why I was trying so hard to get DirectX (or rather, D3DX) to work correctly in D.

This is a small engine that was started in C++ with DirectX 8 as a very small, crappy learning project, and has progressed to this, and I'm pretty proud of it.  There are still some features which have yet to make the transision from C++ to D, but for the moment, here is a small list of features:

- Very simple to use - nowhere near as complex as some engines (like
Irrlicht.. bleagh)
- Uses DirectX9.. I know some people think this is a downside, but honestly,
move onwards and upwards and download the 20MB update if you haven't
already.  This allows for some very nice features, such as HLSL shaders
(implemented in the C++ nonagon, but not ported yet), and it's so much nicer
to program in the DX9 SDK than DX8 (and I wouldn't even touch DX7).
- Able to load meshes in the .X format (supported by many modeling programs
now), with materials and textures
- Fairly fine control over the visual properties of objects through brushes
- Able to load textures in a variety of formats.. 2D and cubic environment
maps are supported (cube maps need a little work though)
- Simple-to-use text drawing commands
- Fairly complete input functionality, including keyboard, mouse, and
joysticks
- Extensible rendering engine
- Very useful scene hierarchy system - parent one object to another and have
it move and turn with the parent
- Mesh, camera, and hardware light scene node types implemented
- Fairly complete and comprehensive docs (all in a pretty CHM bundle)

Here are some features that I have programmed in C++, but haven't yet ported over:

- Entire 2D-in-3D sprite library for 2D games - lots of features
- Support for HLSL shader effect files - very cool
- Rudimentary audio support
- Support for rendering to textures

Features which I have yet to program:

- Mesh animation.  I think it'll be big but it's probably one of those
things you end up being able to program in an hour
- The rest of the audio support
- Fix the problem with global position/rotation which currently makes
cameras and lights not work correctly when the child of another node
- Dynamic creation/modification of meshes
- Portaling system?  (quadtree/octree, BSP, proprietary?)


Please download it and try it out!  Be sure to read the readme.txt in the archive, as it has instructions for unpacking the files to the correct locations.  The prog folder in the archive contains a simple sample program which shows the general structure of a nonagon-using program.  And be sure to read the docs - they will help you.

You must have DirectX9 installed on your computer to use this.  If you don't know what version you have, go to Start>Run, and type 'dxdiag' in the run box.  In the window that comes up, look near the bottom where it says "DirectX version."  If it's not 9 point something, you have to upgrade.  You can do that at www.microsoft.com/directx.

This also obviously won't work on anything but Windows (unless some adventurous nerd wishes to try to with a windows emulator or something).

Here is the download link.  It's only 2.6MB.

http://www.mtwirefree.net/kbilling/nonagon.zip

Please try this and let me know if there are any problems, questions, comments etc.

Thanks!


March 29, 2005
Is there an exe to run?

Jarrett Billingsley wrote:
> Well here it is!  The fruit of almost two and a half years of labor, most of which wasn't spent working on this.  So it's more like maybe three months of labor.
> 
> In any case, this is why I was trying so hard to get DirectX (or rather, D3DX) to work correctly in D.
> 
> This is a small engine that was started in C++ with DirectX 8 as a very small, crappy learning project, and has progressed to this, and I'm pretty proud of it.  There are still some features which have yet to make the transision from C++ to D, but for the moment, here is a small list of features:
> 
> - Very simple to use - nowhere near as complex as some engines (like Irrlicht.. bleagh)
> - Uses DirectX9.. I know some people think this is a downside, but honestly, move onwards and upwards and download the 20MB update if you haven't already.  This allows for some very nice features, such as HLSL shaders (implemented in the C++ nonagon, but not ported yet), and it's so much nicer to program in the DX9 SDK than DX8 (and I wouldn't even touch DX7).
> - Able to load meshes in the .X format (supported by many modeling programs now), with materials and textures
> - Fairly fine control over the visual properties of objects through brushes
> - Able to load textures in a variety of formats.. 2D and cubic environment maps are supported (cube maps need a little work though)
> - Simple-to-use text drawing commands
> - Fairly complete input functionality, including keyboard, mouse, and joysticks
> - Extensible rendering engine
> - Very useful scene hierarchy system - parent one object to another and have it move and turn with the parent
> - Mesh, camera, and hardware light scene node types implemented
> - Fairly complete and comprehensive docs (all in a pretty CHM bundle)
> 
> Here are some features that I have programmed in C++, but haven't yet ported over:
> 
> - Entire 2D-in-3D sprite library for 2D games - lots of features
> - Support for HLSL shader effect files - very cool
> - Rudimentary audio support
> - Support for rendering to textures
> 
> Features which I have yet to program:
> 
> - Mesh animation.  I think it'll be big but it's probably one of those things you end up being able to program in an hour
> - The rest of the audio support
> - Fix the problem with global position/rotation which currently makes cameras and lights not work correctly when the child of another node
> - Dynamic creation/modification of meshes
> - Portaling system?  (quadtree/octree, BSP, proprietary?)
> 
> 
> Please download it and try it out!  Be sure to read the readme.txt in the archive, as it has instructions for unpacking the files to the correct locations.  The prog folder in the archive contains a simple sample program which shows the general structure of a nonagon-using program.  And be sure to read the docs - they will help you.
> 
> You must have DirectX9 installed on your computer to use this.  If you don't know what version you have, go to Start>Run, and type 'dxdiag' in the run box.  In the window that comes up, look near the bottom where it says "DirectX version."  If it's not 9 point something, you have to upgrade.  You can do that at www.microsoft.com/directx.
> 
> This also obviously won't work on anything but Windows (unless some adventurous nerd wishes to try to with a windows emulator or something).
> 
> Here is the download link.  It's only 2.6MB.
> 
> http://www.mtwirefree.net/kbilling/nonagon.zip
> 
> Please try this and let me know if there are any problems, questions, comments etc.
> 
> Thanks! 
> 
> 
March 29, 2005
"clayasaurus" <clayasaurus@gmail.com> wrote in message news:d2ag0o$df8$1@digitaldaemon.com...
> Is there an exe to run?

No, but there is source that compiles.

I suppose if you'd like, I could change the archive to include the compiled EXE.

In fact, it's done.  Redownload the archive, and you'll find the compiled EXE in the prog folder.  :)


March 29, 2005
On Mon, 28 Mar 2005 21:17:15 -0500, Jarrett Billingsley wrote:

> Well here it is!  The fruit of almost two and a half years of labor, most of which wasn't spent working on this.  So it's more like maybe three months of labor.
> 
> In any case, this is why I was trying so hard to get DirectX (or rather, D3DX) to work correctly in D.
> 
> This is a small engine that was started in C++ with DirectX 8 as a very small, crappy learning project, and has progressed to this, and I'm pretty proud of it.  There are still some features which have yet to make the transision from C++ to D, but for the moment, here is a small list of features:
> 
> - Very simple to use - nowhere near as complex as some engines (like
> Irrlicht.. bleagh)
> - Uses DirectX9.. I know some people think this is a downside, but honestly,
> move onwards and upwards and download the 20MB update if you haven't
> already.  This allows for some very nice features, such as HLSL shaders
> (implemented in the C++ nonagon, but not ported yet), and it's so much nicer
> to program in the DX9 SDK than DX8 (and I wouldn't even touch DX7).
> - Able to load meshes in the .X format (supported by many modeling programs
> now), with materials and textures
> - Fairly fine control over the visual properties of objects through brushes
> - Able to load textures in a variety of formats.. 2D and cubic environment
> maps are supported (cube maps need a little work though)
> - Simple-to-use text drawing commands
> - Fairly complete input functionality, including keyboard, mouse, and
> joysticks
> - Extensible rendering engine
> - Very useful scene hierarchy system - parent one object to another and have
> it move and turn with the parent
> - Mesh, camera, and hardware light scene node types implemented
> - Fairly complete and comprehensive docs (all in a pretty CHM bundle)
> 
> Here are some features that I have programmed in C++, but haven't yet ported over:
> 
> - Entire 2D-in-3D sprite library for 2D games - lots of features
> - Support for HLSL shader effect files - very cool
> - Rudimentary audio support
> - Support for rendering to textures
> 
> Features which I have yet to program:
> 
> - Mesh animation.  I think it'll be big but it's probably one of those
> things you end up being able to program in an hour
> - The rest of the audio support
> - Fix the problem with global position/rotation which currently makes
> cameras and lights not work correctly when the child of another node
> - Dynamic creation/modification of meshes
> - Portaling system?  (quadtree/octree, BSP, proprietary?)
> 
> Please download it and try it out!  Be sure to read the readme.txt in the archive, as it has instructions for unpacking the files to the correct locations.  The prog folder in the archive contains a simple sample program which shows the general structure of a nonagon-using program.  And be sure to read the docs - they will help you.
> 
> You must have DirectX9 installed on your computer to use this.  If you don't know what version you have, go to Start>Run, and type 'dxdiag' in the run box.  In the window that comes up, look near the bottom where it says "DirectX version."  If it's not 9 point something, you have to upgrade.  You can do that at www.microsoft.com/directx.
> 
> This also obviously won't work on anything but Windows (unless some adventurous nerd wishes to try to with a windows emulator or something).
> 
> Here is the download link.  It's only 2.6MB.
> 
> http://www.mtwirefree.net/kbilling/nonagon.zip
> 
> Please try this and let me know if there are any problems, questions, comments etc.

I downloaded the ZIP file and copied the contents of the downloaded 'lib' fodler to the dmd\lib folder, and copied the contents of the downloaded 'phobos' folder to the dmd\phobos folder. Then I used the 'compile.bat' file to compile the 'main' example and got these errors from the linker ...

d3d9.lib
 Warning 2: File Not Found d3d9.lib
d3dx9.lib
 Warning 2: File Not Found d3dx9.lib
dxerr9.lib
 Warning 2: File Not Found dxerr9.lib
dinput8.lib
 Warning 2: File Not Found dinput8.lib
c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
 Error 42: Symbol Undefined _c_dfDIJoystick
c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
 Error 42: Symbol Undefined _c_dfDIMouse2
c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
 Error 42: Symbol Undefined _c_dfDIKeyboard
--- errorlevel 3



And just to help me test the Build utility some more, I created a source file called nonagon_build.d ...

module nonagon_build;
import nonagon;
version(build) {
    pragma(link, "win32a.lib", "nonagon.lib");
    pragma(build_def, "IMPORTS");
    pragma(build_def,
"_D3DXMatrixRotationYawPitchRoll@16=d3dx9.D3DXMatrixRotationYawPitchRoll");
    pragma(build_def, "_D3DXVec4Transform@12=d3dx9.D3DXVec4Transform");
    pragma(build_def, "_D3DXCreateSprite@8=d3dx9.D3DXCreateSprite");
    pragma(build_def, "_D3DXCreateFontA@48=d3dx9.D3DXCreateFontA");
    pragma(build_def, "_Direct3DCreate9@4=d3d9.Direct3DCreate9");
    pragma(build_def, "_DirectInput8Create@20=dinput8.DirectInput8Create");
    pragma(build_def,
"_DXGetErrorDescription9A@4=dxerr9.DXGetErrorDescription9A");
    pragma(build_def, "_D3DXMatrixRotationZ@8=d3dx9.D3DXMatrixRotationZ");
    pragma(build_def, "_D3DXMatrixScaling@16=d3dx9.D3DXMatrixScaling");
    pragma(build_def, "_D3DXMatrixMultiply@12=d3dx9.D3DXMatrixMultiply");
    pragma(build_def, "_D3DXCreateBox@24=d3dx9.D3DXCreateBox");
    pragma(build_def, "_D3DXCreateSphere@24=d3dx9.D3DXCreateSphere");
    pragma(build_def, "_D3DXCreateCylinder@32=d3dx9.D3DXCreateCylinder");
    pragma(build_def, "_D3DXSimplifyMesh@28=d3dx9.D3DXSimplifyMesh");
    pragma(build_def, "_D3DXCreateTorus@28=d3dx9.D3DXCreateTorus");
    pragma(build_def, "_D3DXCreatePolygon@20=d3dx9.D3DXCreatePolygon");
    pragma(build_def, "_D3DXCreateTeapot@12=d3dx9.D3DXCreateTeapot");
    pragma(build_def,
"_D3DXMatrixTranslation@16=d3dx9.D3DXMatrixTranslation");
    pragma(build_def, "_D3DXVec3Transform@12=d3dx9.D3DXVec3Transform");
    pragma(build_def, "_D3DXLoadMeshFromXA@32=d3dx9.D3DXLoadMeshFromXA");
    pragma(build_def, "_D3DXMatrixInverse@12=d3dx9.D3DXMatrixInverse");
    pragma(build_def,
"_D3DXMatrixPerspectiveFovLH@20=d3dx9.D3DXMatrixPerspectiveFovLH");
    pragma(build_def, "_D3DXCreateTexture@32=d3dx9.D3DXCreateTexture");
    pragma(build_def,
"_D3DXCreateCubeTexture@28=d3dx9.D3DXCreateCubeTexture");
    pragma(build_def,
"_D3DXCreateTextureFromFileExA@56=d3dx9.D3DXCreateTextureFromFileExA");
    pragma(build_def,
"_D3DXCreateCubeTextureFromFileExA@52=d3dx9.D3DXCreateCubeTextureFromFileExA");

}

Then changed your main.d by replacing "import nonagon;" with "import nonagon_build;". I then ran ...

  build main

and it compiled just fine. However I still got the same linker messages as above.

-- 
Derek
Melbourne, Australia
29/03/2005 2:14:07 PM
March 29, 2005
> - Very simple to use - nowhere near as complex as some engines (like Irrlicht.. bleagh)

What? Irrlicht is great and easy to use. I don't find your engine a lot better API wise (judging from what's there). Anyway, I tried your engine and it's a good start for an engine implemented in D, probably the best you can currently get. Keep up the good work.


March 29, 2005
"Derek Parnell" <derek@psych.ward> wrote in message news:47d6x69j2js1$.1vlrydhctw52$.dlg@40tude.net...
> d3d9.lib
> Warning 2: File Not Found d3d9.lib
> d3dx9.lib
> Warning 2: File Not Found d3dx9.lib
> dxerr9.lib
> Warning 2: File Not Found dxerr9.lib
> dinput8.lib
> Warning 2: File Not Found dinput8.lib
> c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
> Error 42: Symbol Undefined _c_dfDIJoystick
> c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
> Error 42: Symbol Undefined _c_dfDIMouse2
> c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
> Error 42: Symbol Undefined _c_dfDIKeyboard
> --- errorlevel 3

Oh crap, apparently it does depend on those libs.  I thought I removed them from my lib folder to test whether or not it needed them, and it seemed to compile fine, but..

Attached is a zip containing those 4 libs.  I'll have to put them all into the main archive but I don't have time right now.


begin 666 directx libs.zip
M4$L#!!0``@`(`(UQCBZ(J6VW[P`````$```*````9'AE<G(Y+FQI8OO R\#
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
M\&;8>9\PDF96HQ=RPO&/\$;8^&J3FE/=1AJSNF;+[+"+YQ-2?JH'T5F/.N?
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
M!8*3<PQ2ZT=8/N(]"_ :G!=5/[SW71GU]A0W/URL'Y*%[X%?AW/I_HT?Y>Q
M.,=;KA7W;ZB14"] Z@8XA^E?O/K2G-:S[DRFV4QE"_@NN5JQOG .1&<&ZKP!
M?U3G`W)XOE8L;V+CJ6_"V5'/![N,8&_">0!]N-C?JV:^Y-^"LTA_XN7'+@#O
MVB[H*\3\6#;Q^=_;<*:<;[M!0=NX4.$%)L(K(>\=.$/.;^0@]Q3=6>+XS-@)
M^3@D;X0_<._?*P]><W6KQTD@K%3R;G%]C/4@&E>CQKMP.CU?4HZNZ\Y]+;87
MR<*?L/DOG$;/EY2CO)G:?F+_H5CY<P?OP>_#WN=6)C1EI?TQT<#OC[T/IZKG
M@<IA_GSH#K'^JF;^/4,?P"G\>E,9$-34#K%^,':BD$"%_\'ON/W9<KR85.TD
MC@>\"U$9B2H?0DE^?E,-QEY:RK?"G/A\ZR-8$_Y^*14E)B.?B/M/T:[\F/HQ
MG"SOWY4AB;1AY4:*_2.Q\4]%?0*KH_([@;&\J+>/#>$[-OX]+Y_"25'K983A
MO'8DUUL</S@'HO0%*GT&)ZKK\^7P5M.I-G'GA9C/\_V/X,&_I_%S.('V/RW.
MJW.<[1SG5(7TOFW)PK\M[ LX/N#UA2T=GT1#O+W]EM)HEU/^A,1?@O%?PBHU
MOM8LG"?'URI/D)^$\5_!<?1]'(F&NA5ZNL;,&DVISJZ"]+X)8N/?-_$U'!M5
MGY!1Z[Y9QR[RXU5^8"/\+/*_@6.B]D<)0T^[EWJ=V)_P+D3M0E3[%GXKGQ_
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
K```@`("!EB<``&1I;G!U=#@N;&EB4$L%!@`````$``0`W@```$TT````````
`
end

March 29, 2005
"Joey Peters" <squirrel@nidhogg.com> wrote in message news:d2bc53$15co$1@digitaldaemon.com...
> What? Irrlicht is great and easy to use. I don't find your engine a lot better API wise (judging from what's there).

Well perhaps you've had better luck with it, but it kinda blew me away.

> Anyway, I tried your engine and it's a good start for an engine implemented in D, probably the best you can currently get. Keep up the good work.

I'm not real sure how to take that comment..


March 29, 2005
I managed to find some time this morning to fix the lib problem Derek had. The archive (see original post for link) was missing some libs necessary for compilation.  In addition, the prog folder now contains a compiled version of the source, so you don't have to install everything to try it out.

A small update, but it's better than waiting a month to fix a load of problems.


March 29, 2005
Jarrett Billingsley wrote:
> In addition, the prog folder now contains a compiled version of the source, so you don't have to install everything to try it out.
> 

I ran the program (main.exe) and I get a dialog box saying: "NG3D.InitD3D() - Could not create device! Invalid call", and then another that says: "NGInput.unInit() - NGInput not initialized!". Running WinXP Pro SP2, DirectX 9.0c.

_______________________
Carlos Santander Bernal
March 29, 2005
On Tue, 29 Mar 2005 07:30:12 -0500, Jarrett Billingsley wrote:

> "Derek Parnell" <derek@psych.ward> wrote in message news:47d6x69j2js1$.1vlrydhctw52$.dlg@40tude.net...
>> d3d9.lib
>> Warning 2: File Not Found d3d9.lib
>> d3dx9.lib
>> Warning 2: File Not Found d3dx9.lib
>> dxerr9.lib
>> Warning 2: File Not Found dxerr9.lib
>> dinput8.lib
>> Warning 2: File Not Found dinput8.lib
>> c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
>> Error 42: Symbol Undefined _c_dfDIJoystick
>> c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
>> Error 42: Symbol Undefined _c_dfDIMouse2
>> c:\dparnell\dmd\bin\..\lib\nonagon.lib(nginput)
>> Error 42: Symbol Undefined _c_dfDIKeyboard
>> --- errorlevel 3
> 
> Oh crap, apparently it does depend on those libs.  I thought I removed them from my lib folder to test whether or not it needed them, and it seemed to compile fine, but..
> 
> Attached is a zip containing those 4 libs.  I'll have to put them all into the main archive but I don't have time right now.

Thanks. It compiles and links nicely now. I just run "build main" and it works! But, it crashes when run :-(

Messages:
 NG3D.InitD3D() - Could not create device! Invalid call
 NGInput.unInit() - NGInput not initialized!

Environment:
 Windows XP SP2
 DirectX 9.0c

-- 
Derek Parnell
Melbourne, Australia
http://www.dsource.org/projects/build/
http://www.prowiki.org/wiki4d/wiki.cgi?FrontPage
30/03/2005 9:31:22 AM
« First   ‹ Prev
1 2 3