PDA

View Full Version : Necro3D Game Engine Public Alpha release!



NecroDOME
01-11-2006, 12:30 PM
So we released our engine as an alpha.

You can check out the SDK here:
http://necrodome.homeftp.net/MainNecro3D.nss

The editor still needs documentation.

I'm awaiting feedback...

UPDATE:
Necro3D Game Engine Alpha 2 is released!

UPDATE:
Necro3D Game Engine Alpha 3 is released!

UPDATE:
Necro3D Game Engine Alpha 4 is released!

bigsofty
02-11-2006, 12:00 AM
Very impressive indeed.

I really like the scripting language and the Sandbox editor.

It needs a full pure oject pascal working example though but I am sure you realise this.

Good job,

NecroDOME
02-11-2006, 09:37 AM
Yeah, I need to make more tutorials/examples... I already scripted a full pong-game.

Thanx for liking my engine/editor

NecroDOME
02-11-2006, 03:25 PM
Tutorial 1 project files: http://necrodome.homeftp.net/Projects/App_Necro3D/Project/Tutorial1.zip


I still working on some callbacks to let the user know the intro has ended. After this I will release a simple pong-game.

As for the scripting engine, you can press ctrl-space and a list of procedures and objects can be found. Some simple code completion.

NecroDOME
02-11-2006, 04:42 PM
Added 2nd tutorial: A simple game of pong.
http://necrodome.homeftp.net/MainNecro3D.nss?tutorial=tutorial2.txt

Update: added some information about the Editor (sandbox)
http://necrodome.homeftp.net/Projects/App_Necro3D/Project/Sandbox.html

bigsofty
04-11-2006, 01:16 AM
Again, very impressive, seems fast and very little code needed to initialise the engine.

It would be nice to see an example that actually manually loads a few things and sets up cameras, lights etc. in objects pascal.

But again, one of the more promising 3D Engines I've seen in a long time.

Well done.

NecroDOME
07-11-2006, 09:36 PM
Your wish is my command.

I created an pong version in Delphi with the use of the engine. See tutorial 3 for details!
I also updated the DLL a bit!
http://necrodome.homeftp.net/MainNecro3D.nss

I Still need to implement physics 'n' stuff... :(

bigsofty
09-11-2006, 01:41 AM
Your wish is my command.

I created an pong version in Delphi with the use of the engine. See tutorial 3 for details!
I also updated the DLL a bit!
http://necrodome.homeftp.net/MainNecro3D.nss

I Still need to implement physics 'n' stuff... :(

Cool, thank you :)

One last request, a forum on your site for questions, tips et. ...or should this be towards the PGD team ;)

NecroDOME
09-11-2006, 04:17 PM
I don't have time to build a forum for my server... (I don't use php or asp, but pascal script to make websites :P ). So I think PGD would be a nice place!

UPDATE: Sorry, server currently offline :(
UPDATE: Server back online :)

bigsofty
17-11-2006, 01:28 AM
Any chance of documenting the Landscape API commands plz?

NecroDOME
17-11-2006, 08:38 AM
You can create landscapes (terrains) in the editor. Under Brush -> Terrain. The API does not include any terrain functions as well as geometry functions.

NecroDOME
21-11-2006, 03:58 PM
Necro3D Game Engine Alpha 3

Alpha 3 updates:
- Lots of bug fixes in the editor and engine
- New user interface on some editor components
- Added fog (look in map properties)
- Sound support in dll
- Multiple joystick support

You can find it here:
http://necrodome.homeftp.net/MainNecro3D.nss?tutorial=Download.txt

(Please let me know what you think of it, give me some feedback!)

NecroDOME
03-01-2007, 05:20 PM
Necro3D Game Engine Alpha 4 is released!

Alpha 4 updates:
- GUI
- Basic physics
- Some bugfixes

You can find it here:
http://necrodome.homeftp.net/MainNecro3D.nss?tutorial=Download.txt

chronozphere
03-01-2007, 06:54 PM
Nice.. good job :)

Maybe it's an idea to make a GUI tutorial.
No complex stuff, just a few dragable forms with some controls would suffice. ;)

NecroDOME
03-01-2007, 09:50 PM
Here is some code from my own test program. I will make a GUI tutorial soon.

It was just form my own testing purpose, it plays a sound and shows a window with 1 button.


unit MainForm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XpMan, OmegaTimer,

EngineImport, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
Timer : TOmegaTimer;
public
{ Public declarations }
procedure StartGame;
end;


var
Form1: TForm1;

implementation

{$R *.dfm}

procedure MyClick(Sender: Pointer); stdcall;
begin
Necro3DLog('MyClick - Set font');
// Necro3DGUISetFont('MyWindow', 'MyButton', 'Chess.nft', 3, 1);
end;

procedure ConsoleCallback(Cmd, Arg: ShortString); stdcall;
begin
Necro3DLog('Console> CMD> '+cmd+' ARG> '+Arg);
end;

procedure IntroEndCallback; stdcall;
begin
// ShowMessage('StartGame');
Necro3DSoundPlay('Sounds\Cannon.wav', False);
// Necro3DGUIAddWindow('MyWindow', 'Texture_256.jpg', 20, 20, 60, 60, True);
Necro3DGUIAddButton('MyButton', 'MyWindow', 'Texture_256.jpg', 'Test.jpg', 'Texture_256.jpg', 10, 10, 10, 10, @MyClick);
Necro3DGUISetFont('MyWindow', 'MyButton', 'Chess.nft', 3, 1);
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// Necro3DUnInit;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Dir : ShortString;
begin
Dir := ExtractFileDir(Application.ExeName)+'\';
Necro3DInit(Dir, 'Test Game', 800, 600, 32);
Necro3DSetIntroEndCallback(@IntroEndCallback);
Timer.Enabled := True;



Necro3DShowLog;
Necro3DSetConsoleCallback(@ConsoleCallback);
Necro3DRegisterConsoleEvent('test', 'Hielfe ofzow');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i : integer;
begin
Caption := IntToStr(Timer.FPS);
Necro3DRender(Timer.Delta);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer.Enabled := False;
Necro3DUnInit;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Timer := TOmegaTimer.Create(Self);
Timer.MaxFPS := 1000;
Timer.Enabled := False;
Timer.OnTimer := Timer1Timer;
end;

procedure TForm1.StartGame;
begin
ShowMessage('Yeah!');
end;

end.