Welcome, Guest. Please login or register.

Author Topic: BOUNTY for AmiDARK Engine source code release.  (Read 5617 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline AmiDARKTopic starter

BOUNTY for AmiDARK Engine source code release.
« on: May 28, 2014, 06:47:16 PM »
A new bounty is setup concerning the AmiDARK Engine.
Here are the details concerning this bounty :

Description
This project aims to collect sufficient funds (at least 2000 Euro) to release the source code of the AmiDARK Engine (Current 2D build 0.9 with partial 3D support, AmigaOS4 & MorphOS) for free use under the MPL licence, the Mozilla Public Licence.
 

About The AmiDARK Engine

AmiDARK Engine is a Game Development Kit for Amiga computers and compatible systems. It is released as a .a library containing .o objects with all functions.
It currently runs on AmigaOS4 & MorphOS but, if the bounty is completed successfully, there are plans to try to make it become compatible with AROS & AmigaOS 3.x as well.
Initially, the AmiDARK Engine was developed to bring a game development kit to Amiga systems that is compatible with the DarkGDK product from TheGameCreators (and later, with Dark Basic Professional with an integrated development environment (IDE) to be set up after the completion of the GDK).
 

Current Development State

-Basic2D Command set, which covers various 2D operations like dots, lines, triangle, box, circle, elipses.
-Basic3D command set, which provides custom 3D model loading and display in a 3D environment
-Bitmap command set, which implements virtual (hidden) bitmaps to precalculate graphics
-Camera3D command set, which handles the camera movements in the 3D world.
-Core command set, which handles system commands
-FileIO Command set, which handles file reading/writing
-Image2D command set, which handles 2D image loading and displaying on screen.
-Input command set, which handles mouse and joystick handling
-Light3D command set, which provides mechanisms to control lighting in the 3D world.
-Matrix3D command set, which is used to create some sort of 3D terrains (not started)
-Memblock command set, which deals with memory block handling.
-Music command set, which handles the use of music in various file formats (currently .mod)
-Setup command set, which handles basic display controls
-Sound command set, which enables the loading and playback of sounds.
-Particles3D command set, which is used to create 3D particles (not started)
-Sprite2D command set, which is used to create sprites (developed to add compatibility with DarkGDK)
-System command set, which provides system and memory functions
-Text command set, which handles the output of on-screen text in an AmiDARK Engine application
-Vector3D command set, which contains various mathemativs functions.

The current build contains a total of 705 commands / functions out of 1137 that had originally been planned. The 2D engine itself (without 3D) contains 476 commands and functions out of 484 that had been originally planned.


Technical Information

-The engine was rebuilt and the main "render system" is now able to handle priorities for the various rendering methods (Basic2D, Image, Sprites, 3D, Plugins).
-An additional plugin can be added in a "slot" like AmosPRO did or as an "unlinked" plugin.
-An additional plugin can add its own render function to display what is needed (FX2D plugin shows how this works).
-The engine has been developed in a way to make porting between Amiga-compatible platforms easier. All system/ OS functions are wrapped in specific files. Support for a new OS will have to be added there.
-The engine contains a partial HTML documentation explaining how the commands / functions work (632 commands / functions done)
-The engine contains an easy-to-use method to allow specific plugins or commands to access to functions / commands from other functions set.


Project Requirements

-The source code of the AmiDARK Engine is developed under AmiDevCPP (PC) so everything has been set up to work directly without any changes under AmiDevCPP
-Compiling for AmigaOS4 will require the AmigaOS 4 Release 53.20 Software Development Kit from Hyperion Entertainment.
Compiling for MorphOS will require the latest MorphOS Software Development Kit from the MorphOS website.
-With relatively few changes, the AmiDARK Engine can be compiled directly under AmigaOS4 (via CodeBench and the AmigaOS4 Software Development Kit Release 53.20 from Hyperion Entertainment).
-With few changes, the AmiDARK Engine should also compile directly on a MorphOS system although this has never been tested due to a lack of access to a sufficiently fast MorphOS-compatible computer.
-Sub-libraries, such as ptplay.library, ptreplay.library, freetype, and FTGL, are out of the scopie of this bounty project as they are not my property and can be obtained easily on the internet for various Amiga and Amiga-like platforms.


Optional

-If this project is successfully funded (by raising a minimum of 2000 Euro), and as long as the resulting ports stay true to the original version of the AmiDARK Engine in terms of user experience and command sets, Frédéric Cordier plans to share all source code that he will develop himself for future versions of the AmiDARK Engine for free
-If the funding level reaches an amount of 2200 Euro, The author, Frédéric Cordier plans to acquire a MorphOS computer with a valid MorphOS licence to help maintain the compatibility and port of the AmiDARK Engine for MorphOS.
-If the funding level reaches an amount of 4600 Euro, the author, Frédéric Cordier plans to acquire an X1000 or a succeeding model with a valid AmigaOS4 licence to help optimize the software for use with A-Eon's hardware products.

You can contribute to this project directly here :
http://www.power2people.org/projects/amidark/
 

Offline AmiDARKTopic starter

Re: BOUNTY for AmiDARK Engine source code release.
« Reply #1 on: May 29, 2014, 12:10:46 AM »
Hello,

Technically you need 3D hardware because the engine handle 3D.
That mean you need "at least" a BlizzardPPC + Bvision (or other 3D video card) + Mesa (OpenGL) to be able to use the engine on classics if, it is ported to AmigaOS 3.x .

Regards,
 

Offline AmiDARKTopic starter

Re: BOUNTY for AmiDARK Engine source code release.
« Reply #2 on: May 29, 2014, 08:30:44 AM »
Hello,

The AmiDARK Engine uses OpenGL for 2D and 3D rendering.
It (then) also uses Z-Buffer and, you can choose the OpenGL filtering (linear/mipmap/nearest/etc.) methods to render 2D and 3D.

If you want to learn more about the AmiDARK Engine,
Feel free to jump at : http://www.amidark-engine.com

There are two videos on youtube showing the AmiDARK Engine : https://www.youtube.com/playlist?list=PL6Q17EL65z6HFt3HfZ_C_6Cb9bPGb7RDS

Kindest Regards,
AmiDARK
 

Offline AmiDARKTopic starter

Re: BOUNTY for AmiDARK Engine source code release.
« Reply #3 on: May 29, 2014, 01:01:01 PM »
Biggun :
You're right.

As I did not find some library I use on 3.x, the AmiDARK Engine is currently "not" compatible with AmigaOS 3.x
What I think is best should be to remove FreeType & FTGL to use directly intuitions/graphics for text output in the AmiDARK Engine
But doing this will require to remove the GLUT extension and create display directly with Graphics library.
Removing GLUT will also require to rewrite Mouse/keyboard input because it currently uses the GLUT system.

Here is what I think, that must be done to makes it compatible with 3.x
Excepted if we find a GCC compatible with 3.x and not too old, and FreeType / FTGL for 3.x..

@Wawrzon :
1. The AmiDARK Engine is further easier than MESA and any other language available :
For example, to open a display, you only have to do this :
deSetDisplayMode( 640, 480, 32 );

If you want to load an image :
deLoadImage( ImageIndex, FileName$ );

Display an image on screen :
dePasteImage( ImageIndex, X, Y, FilterMode );

It's really "easy like basic languages" but ... directly with the power of C/C++ languages!

2. Concerning Hardware :
You're wrong concerning Warp3D driver.
if I remind correctly, StormMesa contain OpenGL Commands so I don't have to rewrite the engine for this, simply include the StormMesa includes instead of the MiniGL ones. The OpenGL commands/functions used in the AmiDARK Engine will be automatically be mapped by the compiler (when compiling the .o/.a files) to StormMesa/OpenGL.
When I write 3D/2D for the AmiDARK Engine, I directly uses OpenGL 2.0 specifications commands/functions.
It's automatically compatible with all 3D environments compatible OpenGL 2.0
For example, I have modified NOTHING to makes the AmiDARK Engine compatible to MorphOS excepted including the TinyGL (MorphOS) headers instead of the MiniGL ones (AmigaOS4).
Concerning 2D/3D it will be the same concerning AROS & Amiga OS 3.x
I will only have to include the correct headers, check that all the OpenGL commands/functions exists in that OpenGL implementation and it should be ok.
There will maybe be only minor changes to do but the functions names should globally be the same. If not There will be "os selection" pre-compiler stuffs to add for these functions... Not too long to do I think.

The only things that really need to be tweaked up, are the "OS" functions like the Graphics/Intuition/Dos, etc... Some commands/functions that exists under AmigaOS4 are not available on AmigaOS3 & AROS or, don't have the same arguments needs.
But all these functions are "wrapped" in specific files so, the port will only concern "Os Specific Files" ... not the engine itself . (for example on some Amiga OS, dos library requires APTR when on others it requires INT/LONG)...

I hope I have answered your questions in the way you wanted to know.
« Last Edit: May 29, 2014, 01:03:25 PM by AmiDARK »
 

Offline AmiDARKTopic starter

Re: BOUNTY for AmiDARK Engine source code release.
« Reply #4 on: June 01, 2014, 01:06:03 PM »
Wawrzon :
When I code the AmiDARK Engine, I don't use the MiniGL documentation.
I only use official OpenGL 2.1 documentation available here : http://www.opengl.org/sdk/docs/man2/
I use directly gl......, glu...... & glut....... functions.

That mean that if Storm Mesa is 100% compatible with the official OpenGL 2.1 specifications, the AmiDARK Engine should be compatible with Storm Mesa without any changes concerning the 3D part.

I've checked with the StormMesa developer files available at aminet : http://aminet.net/package/util/libs/StormMesa_Dev

and StormMesa available at aminet : http://aminet.net/package/util/libs/StormMesa_LibsPPC
There is written in the amigaguide file : The GL 1.2 API is supported

We should check which commands/functions that exist under OpenGL2.1 API are not available under OpenGL 1.2 API...
Does someone have the informations concerning OpenGL 1.2 API ?
 

Offline AmiDARKTopic starter

Re: BOUNTY for AmiDARK Engine source code release.
« Reply #5 on: June 07, 2014, 12:48:17 PM »
@BSZili & Others :
To show that the AmiDARK Engine can be ported to AROS, I tried to make the changes in the current build of the AmiDARK Engine to make it compatible with AROS i386 (because the SDK Pack available for AmiDevCPP own both FreeType & FTGL).
All the objects (Basic3D, Camera, Core/Render, Images compiles correctly for the AROS i386 version.
I have already fixed the main "OS" functions (in the dedicaced files for OS compatibility using some sort of Wrapping method).
I have some more changes to do to other files to make it fully compiles under AROS i386.
(I must found PTReplay library for AROS i386 or I'll put the ProTracker support "away" for these tests)
After this, I'll release a compiled technical demo of the AmiDARK Engine compiled for AROS i386 and I hope people will try it (and I hope it will work on AROS i386).

I know it was one of the objectived of the bounty to help port AmiDARK Engine to AROS but, due to the answer of some peoples on various forums, I think that making an exemple should help reassure people on this project.

Regards,
AmiDARK
 

Offline AmiDARKTopic starter

Re: BOUNTY for AmiDARK Engine source code release.
« Reply #6 on: January 11, 2015, 12:30:07 AM »
Thank you all for your support.
Effectively, I also think that hans words helped a lot ! :p

Now, the source code must be reviewed to see if it meet the bounty requirements.

Regards,
AmiDARK