Photon’s Wordpress install is now online, over the next day or two there will be quite a bit of material put online. Just to clarify (as I’ve gotten more than one email from people who came here from ZEngine) photon is similar to ZEngine in purpose, but not so much in design. Photon currently can do almost everything that ZEngine could, and by 0.1 will contain all the features of the 0.8 series of ZEngine releases. I apologize for the long wait for Photon, but I am preparing a new release system/schedule so that once 0.1 is released subsequent releases will be much more regular.
Please stay tuned (subscribe to the RSS feed!) for more details.
Posted by James as General News at 12:26 PM EDT
No Comments »
I am almost prepared to make the first public release of Photon, the entire core system is complete, as are the essential Texture and Image classes. I have to write a few more examples/tests, and hopefully a full-featured example application that shows off some of the basic features. At the moment I am preparing to implement a font system, once I have a little more of it done I will decide if it will be in the 0.1 release or if it will have to be bumped.
After careful consideration I’ve made the decision to most likely bump the audio portion of Photon until the next major release. It is a large undertaking, and I feel it may unneccesarily delay the initial release.
The backbone of the audio system exists, but some design decisions must be made before I can proceed with the resource-management portion of the audio system.
Posted by James as 0.0 (Alpha) Series at 7:37 PM EDT
1 Comment »
After stumbling around from one font solution to another I decided to settle on writing my own. After using some code from an existing solution (see ‘another’ linked gpwiki article) I had a system that was the three things I wanted: simple, easy, fast.
I’ve decided to put up a small page for GLFT\_Font. Feel free to use it, although I’ll be adding a resource managed version to Photon before the 0.1 release. (I’d add resource management to GLFT\_Font but I’d rather keep it simple and free of unnecessary dependencies.)
PS. GLFT\_Font version 0.2 is also going to be released soon, it has a better example and the ability to write text via the stream operators.
Posted by James as General News, 0.0 (Alpha) Series at 1:26 AM EDT
No Comments »
I am looking for someone with C++ experience (nothing else required) who is interested in working on a simple 2D project. Basically I want to get an idea of what other people think of the API, and also try to find any lingering bugs. I’d want someone to do most of the coding that references the API directly but I’d be willing to help out on any other parts. Whatever you want to work on with Photon will be fine with me as long as it’s something that is somewhat finishable in a reasonable amount of time.
I also made this announcement on the gamedev forums. Get in contact with me (email, IM, comment here) if you’re interested in a small fun project.
Posted by James as General News, Other Projects at 12:57 AM EDT
1 Comment »
The feature list for the initial release of Photon has been finalized. 0.1 will most likely be released very soon, the code is currently undergoing a clean-up and a test or two has to be written as well. The major scheduled features for 0.1 (Massachusetts) are:
- Kernel/Task design that allows easy creation of graphical games/applications without sacrificing control
- Extensive Log system that allows full control over logging including various log levels and three built in forms of output, with the ability to add custom output formats.
- A wide variety of helper utilities for tasks such as filesystem navigation, FileBuffer capable of reading from archives, random number generation, versioning, and timing
- Resource Management system including the ability to load resources from specified directories or archives.
- Variety of math classes including Circle, Rectangle, and Vector classes convinient for game use
- ConfigFile class for reading/writing INI-style files for game settings
- OpenGL management including ability to set video mode, and easy management of multiple viewports
- Resource-managed Texture class allowing for loading of textures for use in OpenGL
- Image class that extends Texture class, allowing for hardware accellerated drawing, rotation, scaling, and blending of images for use in 2D environments
- Resource-managed Font class allowing for the rendering of text using TrueType fonts
- Primitive-drawing ‘Pen’ class allowing for drawing of various geometric shapes
- OpenAL based sound system*
- Entire library is built in a highly-modular fashion with extensibility in mind. Use of modern programming techniques like templates and exceptions contributes to ease of use and ease of development.
*Sound system currently only allows playback of WAV files, streaming/Ogg support to be integrated by 0.2 release. There is a small (<5%) chance that sound system will support Ogg playback by 0.1, but it is not scheduled.
Posted by James as 0.0 (Alpha) Series at 12:21 AM EDT
No Comments »
The bad news: In a slight change of plans, a 0.0.1 release will be made before 0.1, this is mainly to test the release system and ensure that a clean build will succeed on all platforms. Hopefully 0.1 will follow 0.0.1 unless showstopping problems appear on any of the test platforms.
The good news: 0.0.1 is to be released within 48 hours.
By the way GLFT_Font 0.2 has been released and is now available via the Photon CVS here on Sourceforge (see sidebar).
Posted by James as 0.0 (Alpha) Series at 2:56 AM EDT
No Comments »
After a long wait, the initial release of Photon has been uploaded to Sourceforge. The initial release of photon features:
- State-based design that allows easy creation of applications by simply deriving from a basic ‘State’ class.
- Kernel/Task system allowing full control over game loop.
- Extensive Log system that allows full control over logging including various log levels and three built in forms of output, with the ability to add custom output formats.
- A wide variety of helper utilities for tasks such as filesystem navigation, FileBuffer capable of reading from archives, random number generation, versioning, and timing
- Powerful input system allowing for direct access to keyboard/mouse status or passive listeners which are notified of events when they occur.
- Resource Management system including the ability to load resources from specified directories or archives.
- Variety of math classes including Circle, Rectangle, and Vector classes convinient for game use
- ConfigFile class for reading/writing INI-style files for game settings
- OpenGL management including ability to set video mode, and easy management of multiple viewports
- Resource-managed Texture class allowing for loading of textures for use in OpenGL
- Image class that extends Texture class, allowing for hardware accellerated drawing, rotation, scaling, and blending of images for use in 2D environments
- Resource-managed Font class allowing for the rendering of text using TrueType fonts
- Primitive-drawing ‘Pen’ class allowing for drawing of various geometric shapes, lines, and vectors.
- OpenAL based sound system
- Entire library is built in a highly-modular fashion with extensibility in mind. Use of modern programming techniques like templates and exceptions contributes to ease of use and ease of development.
- 12 demo programs showing features and ease of use of various components.
If you want to check it out the API Reference has been updated to 0.0.1.
As of 0.0.1 only a source release is available, if you are interested in a build for a specific platform get in touch with me (reply to this release announcement) and I’ll make sure the next release has prebuilt binaries for your platform of choice.
Since this is the first release feedback is especially important, if you download it I’d ask that you drop me a quick line so I can keep track of who is interested in it and if you’re thinking of using it or not.
0.1.0 should be available very soon and will mainly consist of bugfixes and code cleanup.
Posted by James as 0.0 (Alpha) Series, Release Announcements at 7:08 PM EDT
3 Comments »
The first release really helped to get some of the bigger kinks out and so now I’m proud to present the second release of photon.
Several major changes were made between 0.0.1 and 0.0.2 including changing the Kernel system to a more versatile TaskManager system and the integration of InputListeners and States. 0.0.2 also brings a few new features including refined timing code that allows for timeDelta smoothing and fixed-interval updates (great for physics) and a new State stack that makes using the State system more suited to games. Those of you who tried out 0.0.1 may have noticed a few bugs, such as the X11 fullscreen bug and the failure to unpause sometimes when the application recieved focus after losing it, these bugs and several others have been fixed.
Of course one of the big things in 0.0.2 is the fact that the distribution now contains project files for Code::Blocks, Dev-C++, and for the brave, untested project files for Microsoft Visual C++ 2003. Also as of 0.0.2 there will be binary releases which contain a prebuilt library for those of you who request such a thing. As of 0.0.2 two such releases (linux-gcc and win32-mingw) are available, but I’m always looking for more people to help out with prebuilt binaries. If you get photon to compile on systems/compilers/IDEs that don’t currently have full support I’d really appreciate hearing from you (especially if you’re a MSVC or OSX user, as I’d really like to be able to support you guys).
To address the question of API stability, I’d like to say that very few major changes are going to be made between now and 0.1.0, features may be moved but not removed entirely, so at the worst it will be a slight refactoring. The 0.0.x series of photon is to be considered alpha software, and I can make no promises as far as API compatibility, however if you are working/planning on a project in photon, it would be in both of our best interests if we touched base so that I could avoid breaking what works. I do promise however that once 0.1 is released I won’t change the public API in 0.1.x versions.
PS. Photon is actively seeking an OSX porter, an MSVC porter, and a developer who is willing to work on a small game project in photon (with my assistance).
Posted by James as 0.0 (Alpha) Series, Release Announcements at 4:00 AM EDT
1 Comment »
I’m still here and getting some work in, development has slowed down for two main reasons, mainly I started back at school and have been fairly busy between classes and working, but also my todo list for 0.1.0 is getting pretty short.
Read my lips.. no new features in 0.1, if there are I’ll hand the project over to Michael Dukakis*.
If you have FreeMind you can follow along with what is left for 0.1.0 by checking out the photon.mm file I use to organize the planning. For those of you who aren’t so cool, I’ll explain what is keeping you from a shiny new 0.1.0.
- Testing
- Documentation cleanup/review - I want the docs looking nice and being accurate for the first major release
- Online Docs - some stuff on the site has to be ready for the 0.1 release, some brief HOWTO guides and maybe even a short tutorial or two
- More testing.
- Full-featured example - either an extensive demo or a small game
- Did I mention testing?
If you’re using or thinking of using Photon, I’d really like to hear from you.
Also I’d like to mention that the site moved to the new Sourceforge MySQL4 server, so if you made a comment and it didn’t show up let me know.
Posted by James as General News, 0.1 (Massachusetts) Series at 5:36 PM EDT
No Comments »
Wow, apparently I’m still alive, which is probably news to everyone who has been checking this site and most of the people who have been sending me email.
I’ve been recieving a lot of emails lately, I actually had to start forwarding all of my email to my gmail account so that my school mailbox wouldn’t fill up with all of the code, etc. that people were sending. I’ve tried to reply to the emails in under a week (which is still way too long) but some were very in depth and I haven’t been able to reply yet. I’m working through a stack of Photon/ZEngine related email, and if you don’t get a reply soon, feel free to resend your email.
For those of you new to following Photon/ZEngine, the reason that development slows down so drastically from time to time is that I get very busy. I’m not going to turn this into a personal blog and explain what I’ve been doing, but between school, work, and the management of a club here on campus, I’ve been inclined to use the little free time I’ve had to relax. Well, I have some time off, and I’ll be starting a new quarter, this means I’ll probably get a little bit of development in. Especially since I’m actually working on something exciting right now in the world of Photon.
So here’s the deal, I’ll make a release of Photon 0.1.0 with or without a complete sample game (that’s all that’s left) when I get around to it, but that’s not a high priority at the moment. I know that very little differentiates Photon 0.1 from other options that are out there, so that was never where I intended to focus a lot of the time. I am researching and planning providing a Python interface to Photon, and this interface will be the real focus of 0.2. Photon will hopefully (someday) provide an alternative to PyGame for those wishing to use Python for game development.
One other thing: By far the most common question I get is about providing a comprehensive package for Dev-C++ and Code::Blocks users with all dependencies. This isn’t as easy as it sounds, but ZEngine had something like this that worked for a lot of people, and I’d like to do it for Photon. If I do it though, I’ll probably have to abandon MSVC++ users even more than I have, unless/until someone wants to start helping with that.
Posted by James as General News, 0.1 (Massachusetts) Series at 6:12 PM EST
No Comments »