2005-Apr-28: Beta1 Released!
UGENE's Beta1 release represents a major milestone. We've greatly improved the program's functionality and stability.
In order to demonstrate the advances in this new release, we created a game called Five Thousand. This is a real dice game that has many different versions (and names) across different cultures. The particular rule-set we implemented for the Beta1 release is the one played by my French-speaking family in Jonquiere, Quebec, Canada. Their version of Five Thousand may very well be a completely informal and oral tradition, and hence we've probably codified this game and its rules for the first time ever.
This version of Five Thousand is a very fun, balanced and fast-paced game. As the game progresses, the tension involved in every throw of the dice becomes greater and greater. On behalf of the UGENE development team, I'm happy to offer you the chance to try it out for yourself (assuming you have a Windows machine available). Simply download the game, unzip it, read the rules, and play.
The major changes since the last release include:
- Completely rebuilt the User-Interface Widget architecture (the previous one was unstable)
- Re-implemented the TEXTURED_QUAD class, allowing multiple animation frames to be placed in a single graphics file.
- Re-implemented the BUTTON class. Engineered it so that buttons can overlap, and the mouseover effects will still work properly. Believe it or not, we accomplished this with a mouseover mutex. Who ever said mutexes are only for multi-threading? The BUTTON class can now also simulate normal and toggle buttons (e.g. check boxes).
- Panel Configuration Files can now accept comments, and can be configured for arbitrary keyboard commands, and can load arbitrary sound files.
- Fixed a long-standing aspect-ratio bug. Now square images look square on the screen, rather than like rectangles. Now the screen spans 400 units in the X direction, and 300 units in the Y (rather than 100 in both).
- Created a simple INPUT widget for inputting text
- Fixed the KEYBOARD class so that key press delays are more intuitive. This required some reverse engineering of how Windows sends key press messages to the application.
- Created the Five Thousand dice game as a demonstration of UGENE's abilities.
2004-Oct-01: Progress Continues at a Slower Pace
The summer is over and school is starting again for all of the developers, which means that progress has necessarily slowed down. Tremendous advances were made during the summer, as the widget architecture was rebuilt from the ground up, and the horrible crash bugs present in Alpha3 were eliminated. More recently, the capability for 3D clicking of widgets has been added.
We are currently very close to releasing Alpha4, which will be our release candidate for Beta1. All that is required now is that we meet the remaining high-priority requirements (found in the Requirements Document) by finishing a few more user-interface widgets.
After Beta1's release, we will temporarily forego further development in order to write a demo game using UGENE, make sure that our documentation is sufficient and up-to-date, and improve UGENE's cross-platform capabilities.
The demo game will be a simple dice game called Five Thousand. There are many variations of this game (and many alternate names), but we will use the version originating from the Northern reaches of the province of Quebec.
We want any programmers, and not just UGENE developers, to be able to use UGENE to rapidly develop 2D/3D applications. In order to accomplish this goal, we will make sure that there is plentiful, clear documentation to aid users in understanding and using UGENE to its fullest. We will generate the documentation as we use UGENE ourselves to create the demo game.
Ideally, we want the development and deployment of UGENE to be cross-platform. Consequently, we are looking into various IDEs and low-level libraries that will help us achieve these goals. The cross-platform release of UGENE will be labeled Beta2, and then further releases will once again include new functionality.
2004-Jun-01: Alpha3 Released!
It's official! Alpha3 is now available for download (see the update below for more information).
2004-Jun-01: Update on Alpha3
I'm going to be releasing our Alpha3 demo later today. Unfortunately, it won't be noticeably different from Alpha2. Most of the code changes are totally internal. Also, we've introduced some sort of instability into the code, so don't be surprised if it crashes when you're switching between Panels.
Our modifications since the last release include:
- Improvements to the TEXTBOX widget.
- New widget: LABEL (a TEXTBOX with a different default configuration).
- New widget: SPINNER (two buttons that work together).
- The PROGRESS widget has been debugged and improved.
- A panel change bug, where widgets were not being correctly updated (e.g. buttons would not show a mouse-over effect even with the mouse over them), has been fixed.
- The SPRITE widget has been improved, it has an improved internal timer and better animation functions.
- Basic logging has been introduced.
- Overall architecture coupling has been reduced, cohesion increased (that's a very good thing).
- DISPLAY_LIST is now much more flexible, and better mimics OpenGL display lists. It can create 3D textured cubes in addition to 2D textured quads.
- The OpenGL depth buffer is now optional for 2D widgets.
- The VIEW no longer has any Windows-specific code. It used to quit the application by sending a Windows WM_QUIT message, but now it sends the Controller a High-Level Command.
- Panel Configuration Files now have a version number, which will make growth and backward-compatibility easier to manage.
- The SINGLETON class, based on Loki library ideas, has been created. This has cleared up some memory leaks.
- Last but not least, we've added the SDL_mixer, which means that UGENE can now play sound (though the SDL is not yet integrated into the architecture).
Our next release after this one may very well be Beta1. We're planning on totally restructuring the way we manage widgets. This will seem at first like a step backward, but it will allow us to proceed in making and improving all of our widgets much more rapidly. Implementing the basic widgets is all that's left in our requirements before we can officially label our release as a Beta.
Also, we've revised the Requirements Document once again. Ah, the developer's quest of perfection is never complete!
2004-May-18: Documentation Updated
All of UGENE's developer documentation has been revised. There's a new version of the Requirements Document. The Architecture Document, previously called the Design Document, has been baselined (meaning that it is now complete). Finally, an incomplete Implementation Document has been drafted.
2004-May-12: Restructuring Complete
We've restructured the Documentation section to make it more friendly and relevant to casual visitors. We've also completed a whole slew of new documentation, but that update will need to wait, because the webmaster and the documentation are inaccessible to each other until the end of May.
The release of Alpha3 has been slightly delayed. Improvements thus far over the last release include better stability, a greatly improved architecture, and some fancy new widgets. Alpha3 will probably be available by the end of May.
2004-Apr-23: Requirements Baselined
The silence on the website for the last month has not meant that the UGENE team has been idle. On the contrary, we've been working as hard as possible, given each programmer's other engagements. In fact, we should be ready to release Alpha3 in a few weeks. Stay tuned!
In the news today, UGENE's Requirements Document has now been baselined. This means that the document is no longer an unofficial draft--it is now an accurate depiction of UGENE's basic obligations to the user. This doesn't mean that the requirements are now static either. In fact, we expect that they will continue to change as our understanding improves. It means that the requirements will only change slowly, and under careful control.
2004-Mar-27: Alpha2 Screenshots Available
Screenshots of UGENE's Alpha2 release are now available.
2004-Mar-16: Alpha2 Released!
The much anticipated second alpha release of UGENE is now available for download. The Alpha2 release includes an executable demo, as well as all of the project's source code.
The main improvements and additions in this release are:
- PNG file loading, using libpng.
- Transparency (which allows for non-rectangular images).
- The OpenGL depth buffer has been enabled. This allows for prettier, more sophisticated 3D graphics, and can help 2D graphics as well.
- The user may now switch between different screen views (called Panels). Each Panel is a unique view of the application's Model (i.e. fictional world).
- Initialization scripts may now run at Panel load.
- Two new user-interface widgets: the SPRITE and the PROGRESS bar.
- On-screen widgets may now communicate with each other, in addition to communicating with the Model.
- New, more intuitive, Panel configuration file format.
Alpha2 screenshots coming soon!
2004-Mar-12: Major Breakthrough
We have just made our biggest breakthrough yet, and overcome our project's greatest risk. We now have the libpng library compiling (and working) under CodeWarrior 7.0! See the results for yourself in the Screenshots section.
2004-Feb-27: Code Review
The first draft of the Code Review Guidelines have been posted.
A description of UGENE's software engineering process has been added to the Documentation section. This process description brings to light two key characteristics: UGENE's emphasis on system-testing (whereby the system is tested as a whole whenever changes are made), and the need for code review. To help with the latter characteristic, I will be posting Code Review Guidelines.
Today I also added a Lessons Learned heading to the documentation section. This will bring to light some of the lessons we've learned and mistakes we've made throughout the writing of UGENE. It is our hope that you'll learn from our mistakes and not repeat them.
That leaves one more thing that I'd like to add to the website, and that's the Acknowledgments section.
2004-Feb-25: New Section Added
The UGENE website now has a License section, which describes the terms under which UGENE can be downloaded, modified and distributed.
In addition, I changed the website's design a bit in order to make it more compatible with the Windows XP version of Internet Explorer. This way people that use Windows XP and don't keep it up to date (I'm assuming that's a lot of people) will now be able to view the website. The problem was that the page content backgrounds would bleed into each other, making reading the text both difficult and annoying.
2004-Feb-24: Download Problem Fixed
The file release problem has been fixed, and UGENE's Alpha1 release is now officially online. It can be accessed from our Downloads section, or from the Project Page.
2004-Feb-19: Screenshots Section Added
The UGENE website is now blessed with a section for showing off how pretty our prototype looks. Of course, beauty is in the eye of the beholder, and we're certainly biased. The Screenshots section is unassuming at the moment, but over time it will become both an extravaganza of provocative imagery, and a museum of sorts (since it will hold a time line of UGENE's visible changes).
2004-Feb-17: Short Update
Work is proceeding smoothly. Lately, we've added several new functionalities, including:
- The Progress widget, which can (among other things) show a progress bar on the screen.
- A partially functional Sprite widget, which can show 2D animation on the screen.
- We've finally added the functionality for multiple views, so you can switch back and forth to different views of the Model at the touch of a button.
If progress continues at this rate, we will be ready for the Alpha2 release in a few weeks.
2004-Feb-14: It's Valentine's Day...
Indeed, it's Valentine's Day... and we LOVE requirements! Our first draft of the Requirements document has been added to the Documentation section.
One thing we'll be adding to the site, which I forgot to mention in the last update, is a list of acknowledgments to all of the people whose work we borrowed or referred to in order to make UGENE a reality.
2004-Feb-05: Minor Additions, Major Plans
There have been some additions to the Documentation page. Specifically, we've discussed what's needed in a Requirements Document, and we've posted our preliminary Task List (which doubles as a schedule).
Our near future plans for this website include:
- Adding a Screenshots section
- Adding a License section
- Documenting the software engineering process we're using to create UGENE
- Documenting some of the lessons we're learning, and some of the things we'd like to try out the next time to make our lives easier
2004-Jan-27: Website Contents Up-To-Date
The UGENE website is now completely up-to-date. At the moment it doesn't contain a lot of information, but as the project progresses this website will steadily expand.
We are currently at the Alpha stage of our project, which means that we have a working demo, but that its functionality is very limited. As work continues, we will move on to the Beta stage (mostly complete functionality), and then to the Stable stage (complete). We expect to reach Beta by the end of May, 2004.
Our first Alpha release is now available in the Downloads section.
2004-Jan-20: Helpful Introduction
The Help and Introduction sections have been added. In particular, there is now a tutorial for helping UGENE developers access the CVS repository, which can be found here.
Soon we will make the first source code and demo releases. These will be available from the SourceForge Project Page and from the soon-to-be Download page.
The march of progress continues. At this point in time, the Documentation section, and the Site Map are online. The site map indicates all of the pages on this website, and since it's automatically updated, it's always up to date and correct.
2004-Jan-15: Design Complete
The UGENE website design is now complete! The developers and I, Jonathan Benn, bid you welcome. The site has no content at the moment, but this will change. If you get a "Not Found" message after clicking on a link, don't worry about it. Check back in a week or two and the odds are that the missing page will have been created. Slowly but surely, we will add content to the site until it's very complete.
If you're wondering what UGENE is, it's a programming library that offers novice and expert programmers alike the ability to create games and high-fidelity usability prototypes. It will offer graphics, sound, mouse, keyboard and peer-to-peer multi-player support. Our goal is to make it so easy to use that somebody having thoroughly read an introductory C++ programming book will be able to use UGENE to create a meaningful program.
Designing this site was fun, but it was also a big challenge. I was greatly inspired by the art of CSS Zen Garden. Unfortunately, I ran into the same sort of problem they did: Internet Explorer. I originally designed the site with the help of Mozilla, and then it took me considerable extra work to get the site to look good in IE. Internet Explorer can't deal with PNGs with transparent backgrounds. Therefore, I had to either transform all of my transparent PNG images into GIFs, or give them the same background as the website, which makes the design a little less flexible. I had to sacrifice maintainability for portability, unfortunately. IE also has a weird bug related to the footer (which reads "Website handcrafted..." and is found at the bottom of every page). In Internet Explorer, the footer sometimes moves of its own accord when the mouse pointer is moved over links... it's really bizarre.
In conclusion, I hope you like the website, as a lot of work went into it. Please come back again soon!