Fenix Project
Encyclopedia
Fenix Project is the codename for a GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

 project to create a free compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 for a scripting language
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...

 derived from the one created by Hammer Technologies for the game development
Game development
Game development is the software development process by which a video game is developed. Development is undertaken by a game developer, which may range from a single person to a large business. Mainstream games are normally funded by a publisher and take several years to develop. Indie games can...

 suite, DIV Games Studio. However, several features have been added which make it incompatible with most games programmed with DIV.

Features

Fenix is an interpreted language focused on 2D video game
2D computer graphics
2D computer graphics is the computer-based generation of digital images—mostly from two-dimensional models and by techniques specific to them...

 development. Its main feature, inherited from DIV, is the pseudo-parallel programming similar to Coroutines, i.e. it gives the developer the chance of programming different processes (enemies, characters, etc.) separately, and the engine will synchronize them. This makes video game developing much easier.
Most of its features are now based on Simple DirectMedia Layer
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

 (SDL) which makes Fenix a very portable project.
Other features include full 2D support (scaling
Image scaling
In computer graphics, image scaling is the process of resizing a digital image. Scaling is a non-trivial process that involves a trade-off between efficiency, smoothness and sharpness. As the size of an image is increased, so the pixels which comprise the image become increasingly visible, making...

, transparencies, blend ops...), 16 bpp color, sound (.ogg
Ogg
Ogg is a free, open container format maintained by the Xiph.Org Foundation. The creators of the Ogg format state that it is unrestricted by software patents and is designed to provide for efficient streaming and manipulation of high quality digital multimedia.The Ogg container format can multiplex...

, .mod
MOD (file format)
MOD is a computer file format used primarily to represent music, and was the first module file format. MOD files use the “.MOD” file extension, except on the Amiga where the original trackers instead use a “mod.” prefix scheme, e.g. “mod.echoing”...

, .it, .s3m, .wav
WAV
Waveform Audio File Format , is a Microsoft and IBM audio file format standard for storing an audio bitstream on PCs...

), joystick support, mode7 and extensions via libraries.

Supported platforms

Official: Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

, BSD, BeOS
BeOS
BeOS is an operating system for personal computers which began development by Be Inc. in 1991. It was first written to run on BeBox hardware. BeOS was optimized for digital media work and was written to take advantage of modern hardware facilities such as symmetric multiprocessing by utilizing...



Unofficial: GP32
GP32
The GP32 is a handheld game console developed by the Korean company Game Park. It was released on November 23, 2001, in South Korea only.- Overview :The GP32 is based on a 133 MHz ARM CPU and 8 MB of RAM...

, GP2X
GP2X
The GP2X is an open-source, Linux-based handheld video game console and portable media player developed by South Korean company GamePark Holdings. It was released on November 10, 2005, in South Korea only....

, GP2X Wiz
GP2X Wiz
The GP2X Wiz is an open-source, Linux-based handheld video game console and portable media player developed by South Korean company GamePark Holdings. It was released on May 12, 2009, and was also the first console from both Game Park and Game Park Holdings to be also released outside South Korea...

, Dreamcast, PS2

Status

Its current version is 0.92a (beta) and no project maintainer is currently taking care of updating it. The old 0.84 branch — which happened to be quite unstable — was retaken by SplinterGU, a developer from Argentina
Argentina
Argentina , officially the Argentine Republic , is the second largest country in South America by land area, after Brazil. It is constituted as a federation of 23 provinces and an autonomous city, Buenos Aires...

 who cleaned of all known bugs
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

. Also a GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

 default Automaker
Automaker
The automotive industry designs, develops, manufactures, markets, and sells motor vehicles, and is one of the world's most important economic sectors by revenue....

/Autoconf
Autoconf
GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available....

 build system, which increases portability, has been implemented, making it very easy to add support for BSD systems in Fenix.

Although SplinterGU mainly focused on stabilizing the 0.84 branch, he has also added some new capabilities to Fenix, like a better control of the debug
Debugging
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...

 console (also making it display more information).

Some of the Fenix 0.8 developers have started a Fenix 2 branch, which should feature a completely rewritten core, on top of which users (game developers
Video game developer
A video game developer is a software developer that creates video games. A developer may specialize in a certain video game console, such as Nintendo's Wii, Microsoft's Xbox 360, Sony's PlayStation 3, or may develop for a variety of systems, including personal computers.Most developers also...

) may plug the required libraries, thus increasing flexibility and modularity. However, this second effort seems to be taking a long time, and no ETA
Estimated time of arrival
The estimated time of arrival or ETA is a measure of when a ship, vehicle, aircraft, cargo, emergency service or computer file is expected to arrive at a certain place...

 or further news about the project has been given by its developers, so it might not be made public soon.
SplinterGU, after publicly showing interest in separating the Fenix core from the rest of the interpreter, and some disagreements with some members of the community, decided to fork Fenix into BennuGD
BennuGD
BennuGD is a high-level open source video game development suite, originally created as a Fenix Project fork by Argentinian hacker SpliterGU...

 and continued working on this.

BennuGD has come a long way and is currently in a much more advanced and stabilized state than the current version of Fenix (0.92a). The program has been separated into a core and multiple modules. The core has been much improved, for example by optimizing the process handling, the modules have been tidied up and many bugfixes have been done. In addition to these improvements, the language itself has been expanded with more functionality, like error handling and goto. The Bennu Forum is quite active and the Bennu Wiki is a good source of documentation.

Running Fenix

Fenix comes as a console program. There are several IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

s around, being the most popular FBTwo Project. Many other general-purpose IDEs can be easily adapted to it.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK