The first objectives for development of Allacrost were to do basic operations such as draw things to the screen and play sound and music files. I didn’t know it at the time, but I was writing a game engine from scratch. I wouldn’t even know what a “game engine” was until months down the road when we already had a primitive one in active use. The fact that Allacrost was built using a custom game engine is, in my mind, one of the most catastrophic errors that this team made in the early days. Designing and writing an engine from scratch, even for a moderately complex 2D game, requires an enormous amount of time and effort to do. Our engine is pretty nice and solid now after being worked on for so many years, but in the beginning it was pretty awful because we had no experience or idea about how a good engine design should function. A project like Allacrost should have used an existing engine from the beginning. We would be much, much further along in the game right now had we done so. The only positive benefit I feel we got out of it is that we gained a lot more software development experience than we would have otherwise. Of all of the time this team spent writing code for the first three years of this project, I’d estimate that we spent around 75-80% of it working on the engine.
One of the first steps that we needed to take to build the game engine was to select which software libraries we would use. In the very beginning, our technological goals for the game were pretty limited and we decided to use SDL  for pretty much everything. Within a couple months, however, we found ourselves disappointed when we realized the limitations of SDL, especially in terms of graphics. Although we were only making a 2D game, we wanted to harness the power that a 3D graphics library could afford us for making special effects and other nice touches. I began learning OpenGL and after a few days of study, felt that it would be a much better idea to find a graphics programmer  with the sort of experience necessary to write us a 2D graphics engine. I think that was the correct call to make, as with my limited experience and knowledge, anything I made would have been much worse.
Selecting the correct libraries to use is a very important step in creating a custom game engine. We carefully selecting each library that we chose to use, but we didn’t do enough research and ran into several problems. In the early days, we experienced a lot of grief resulting from some of our library selections. One of the first instances of this pain was with our audio engine. We switched back and forth between using SDL_Mixer (an extension of the SDL library) and OpenAL  a total of four times. Thankfully, the audio engine is relatively straightforward and didn’t take much more than a day or two to rewrite and test each time. We initially used SDL_Mixer because it was easy. We then switched to OpenAL because we wanted to use some of its more advanced features. There were some technical difficulties with that library (on Linux, at least) that eventually lead us to drop it and move back to SDL_Mixer for better reliability. We gave OpenAL another shot later and went back to the drawing board with a new engine design. We’ve had no problems with it since. It was frustrating and a poor use of our time. I’m not sure we could have avoided that hiccup though, as sometimes its hard to know whether or not a library works as good as it claims to on every supported platform. We would run into this issue with other libraries in the future. Below is one of the early UML designs I created while developing the first iteration of our audio engine. The UML of the same engine today is significantly more complex.
Needless to say, we reached the end of the summer of 2004 without much to show for it. We had the birthings of a pretty basic 2D engine, but not much in terms of game logic. There was still much, much more that remained to be done than what we had already accomplished. Reality began to set in for our team with regard to how difficult this project was going to be to pull off, and that it was going to take us much longer than we had hoped. Morale was still high and we were collectively learning and getting better every day. But by the end of August, we always felt like we were behind from where we should be. And that feeling still lingers around today.
Coming up next:
Its been a little over two months sinc this project's most recent revival. So far, I've been the only one actively working on it, although others are still around and participating in design discussions. We've agreed that we need to start growing the team again and will be looking to fill a few empty seats. With that in mind and the end of the year approaching, here's a status update on where we are and what we need to see our next release happening.
Our Roadmap has been recently updated and organized to reflect the current state of our progress toward the next release. As you can see on this page, a large number of the tasks for the next release are already completed. The remaining work that needs to be completed include creating map files, artwork, and sound files. I expect that we'll be able to procure some of the media content that we still need from sources like OpenGameArt. There's a forum thread for discussing the roadmap and direction of this project if you are interested in the details.
The primary focus right now is map creation. We still have two small maps and one huge map to complete. Map creation has, thus far, been much more difficult than it should be. The maps that we already have completed for this release and past releases were difficult to produce, largely because our map editor tool was cumbersome and difficult to use. Our sister project Valyria Tear made a great number of improvements in their map editor and map design process in their recent Episode 1 release, so we decided to follow their example. I've spent the last six weeks on a major redesign of our editor. Our editor code hasn't gotten the amount of attention and love that it needs over the history of this project because it was never a high enough priority until now. Once we have a first draft of completed for each of our maps, we'll make a development release available for others to try out and give us feedback on. Getting to this point is our most immediate goal right now and will mark the completion of a huge milestone.
Its difficult to say when we will get to this point. It depends on how soon we can get the help that we need, and how much time that help has to dedicate to Allacrost. With that in mind, here are the positions that we are looking to fill before the end of 2014.
This is the first time we've sought to recruit someone to join our team whose primary role is map development. Even with the improvements that will be made to the editor, map design is still a very challenging and time consuming process. This position includes scripting the sprites and events on the map as well, so some Lua development will be required. We'd like to get at least one artist back on our team, but we'll take as many as we can find. There's only a small amount of development related tasks required to be completed for this release, hence why we're only seeking a single developer.
That's it for this update. I'm confident that if we keep our current pace, you'll see a new release from us in the first quarter or first half of 2015.
I was filled with confidence when I wrote the first lines of code for Allacrost. Although I had no experience in game development, I had been writing code in over a dozen different languages for four years through my college coursework, as did our other primary developer. Additionally, I thought that the game we were building was rather modest in terms of its complexity. We were making a 2D single-player RPG, not a MMORPG with 3D graphics. It would be a few months before I began to realize how enormous the amount of work was to make the dream of Allacrost into a reality.
I had already familiarized myself with the technology and libraries used by Battle for Wesnoth  before work on Allacrost begin. Initially, the plan was to start from the Wesnoth codebase and make the necessary modifications to transform the turn-based strategy game into a RPG. As I began studying the Wesnoth code however, I found myself both frustrated and disappointed. The code was unorganized, difficult to understand, and there was virtually no documentation. After spending a couple days trying to make sense of it, I decided to abandon that path and began writing the code from scratch. Let me clarify that I did not regard the Wesnoth code as bad, just difficult for an outsider to comprehend at that time. I’m sure it has improved over the years, and Wesnoth has undeniably been a more successful project than Allacrost over the years.
This experience had a profound impact on both myself personally and the Allacrost project as a whole. I vowed with conviction that I never wanted anyone to look at the Allacrost code and feel as disappointed and confused as I had been with the Wesnoth code. And we’ve been very successful in that regard. I’ve lost count of the number of messages and e-mails I’ve received over the years from people who were impressed with the quality, design, and documentation of the code. The work that we’ve put in to keep the Allacrost code well understood and organized is something that I’m very proud of this team for doing.
After writing a few hundred lines of code , I began to realize just how ignorant I was about software development. I had no understanding of build systems, how to handle a large number of source files, logging and debugging, and many more critical pieces of knowledge. All of this I had to learn as I went along, as did many other programmers on the team as most of us were young students with little to no professional experience. Still, we seemed to be doing okay for ourselves. We were able to draw maps and sprites, play audio files, and navigate simple menus with a few days work. Things appeared to be coming together. I was deceived by how easy it all seemed to do, and others likely were as well.
Before work on the code had even begun, I had set out some goals  for the team to achieve over the course of the summer. I admitted that they were aggressive, but in reality they were simply impossible. The primary goal was to release the first playable module of the game on August 25th, 2004. And here we are in 2014, and that module still has not been released. Frankly speaking, highlighting that fact is rather embarrassing. Setting these types of goals at this time was a huge mistake, as there was no way to set any sort of realistic expectations with the massive collective ignorance of the team. Our goals should have been much more simplistic and aligned with gaining the necessary experience to produce a screenshot or simple demo. That summer passed with us not achieving much of anything noteworthy, although by the end of August we were definitely closer to moving ourselves and the project in the correct direction.
Coming up next:
One of the most important decisions we had to make dealt with our artistic style. We needed to figure out both the technical details, such as the size of our tiles and sprites, and what the general appearance of the artwork in the game would be. We needed to establish our musical style and influences as well, which was a bit more nebulous to define than our art style. During this phase, we employed concept artists who read the story and interpret these words into stunning visuals, some of which are still in use today.
Naturally, we turned to the artwork found in our two primary sources of inspiration to get an insight into how large our tiles and sprites should be. There were a few different options that we put on the table and discussed . We ultimately settled on 32x32 pixel tiles, 32x64 pixel sprites, and a default game resolution of 1024x768. It proved to difficult to decide on this without being able to see it, so I quickly wrote some test code that allowed us to see what the game would look like with various size tiles and resolution. While there are algorithms out there to scale pixel art , we strongly preferred the game to run at a resolution that would preserve the dimensions and quality of the art.
We need a style to match the serious and somewhat dark nature of the Allacrost narrative. It was easy for us to agree to seek a style that was realistic and slightly gritty. This meant avoiding cartoonish looking characters and soft, bright colors. In addition to the pixel art you’d find in a game like Allacrost, I suggested that we include more traditional artwork (we toss around the phrase “digital paintings” to describe this). Originally my idea was to have one or two “scene paintings” for every chapter of the game, but this feature was shot down by the rest of the early team for being too much of an interruption from the flow of the game. Still, there are plenty examples of this type of artwork found in the game today, from character portraits to location graphics and even battle backgrounds.
To determine our sprite style, we searched around for games similar to ours and started a discussion. The goal was to agree on which of these styles would best fit Allacrost, and then use that source as our inspiration. The earliest sprite made was, naturally, for the game’s main protagonist. It was well done, but as you can see below it didn’t really fit the sort of style we were looking for. In a few months we would revisit this design and go a different direction entirely.
I thought that getting high quality, original music into Allacrost was going to be the most difficult type of content for us to create. I was somewhat anxious about finding composers, as I thought there weren’t going to be very many out there interested in a project like Allacrost. Especially considering that they wouldn’t be financially compensated for their work. However, reality was entirely contrary to my expectations. Throughout the lifetime of this project, we have had to turn down several composers who wanted to join simply because we had too many. And the music that every composer on this team has produced for Allacrost has been phenomenal, and blew away my expectations for the quality of our soundtrack.
The technical standard for our music was easier to define than our artwork. We knew we wanted to use Ogg files as MP3 files require you to pay a hefty licensing fee , and we didn’t want to invite any sort of trouble. Because Allacrost targeted PCs where storage space was plentiful, we chose a compression level that left songs of a somewhat high quality and file size. Some of our composers wanted to use an even higher quality (twice what had been agreed upon), but eventually agreed upon the standard as there was little to be gained from these higher qualities and they greatly increased the file size. Our music already consumed more disk space than the rest of the game’s content combined.
Our early composed pretty much defined the musical style of Allacrost themselves. Rain and Loodwig were the core of our composition and remained so for many years, and the two together are the fathers of Allacrost’s music and musical style. They read through forum posts and after understanding what type of game we were creating and what our primary sources of inspiration were (both musically and otherwise), set to work. The first piece of music composed for the game was titled “Hopeless Desert” by StarPilot and it sounded phenomenal...but yet somehow very familiar. Eventually, I figured out that it sounded extremely similar to the piece “Sandy Badlands” from Final Fantasy VII. The composer didn’t even realize it himself, but had that tune in his head as he was creating the work (and to be fair, the music really fits in well with what he was tasked to create). After some discussion, we regretfully decided to pull it from the game due to this striking similarity .
 Artwork Technical Discussion
 Pixel Art Scaling Algorithms (Wikipedia)
 MP3 Licensing
Coming up next:
With our initial team formed, it was clear that our first objective was to define our vision. What did we want this game to become? What would make it special and stand out from others like it? The team had formed around a loose set of design ideas that I had already proposed, but we needed a more focused vision for what this game was to be.
Before we could begin that discussion, however, we needed to decide through what means we were going to communicate with one another. We initially tried a mailing list, but found it inefficient for our purposes. Ultimately, our forums became our primary communication medium. We also setup an IRC channel  for the occasional real-time meeting when necessary.
One of the first mistakes the team made was to hide several sections of our forums so that only members of the team could see and post to them. There were a few reasons for this secrecy:
It made sense to us at the time, but much later we would realize that developing a project like Allacrost behind closed doors was a big mistake. I’ll elaborate about this error in a future entry. The contents of those old private areas were made public several years ago after we realized our mistake. You can expect that I will source several of these old threads throughout this series.
With our communications decided, we were ready to begin the early design process and to expand upon the initial set of ideas that I had proposed. Many of those first ideas I had already dreamt up years ago, in 1995. I was 13 years old and had recently played through two of my favorite games of all time: Final Fantasy VI  and Chrono Trigger . As a result of experiencing these masterpieces, I became interested in pursuing a career in game development (which I later decided that I did not wish to do professionally). I dreamed of building my own RPG, with those two games as the primary source of my inspiration. I transcribed my design ideas for an RPG down in a journal, which is still in my possession to this day. The central theme to Allacrost’s story and some of its core features come directly from that journal.
Without debate, the team accepted my proposal that these two games should serve as our primary inspiration for design. I actively encouraged everyone to begin putting forth their own ideas for what Allacrost should be. I wanted the team to feel like they were owners of this project and not just contributors. I never wanted Allacrost to just be my game that others helped me to realize, but to be a truly collaborative group effort.
Naturally, we couldn’t accept every idea that was proposed as some came into conflict with one another, while others just didn’t seem that worthy of inclusion. After a period where everyone had dumped their ideas on the forums, we agreed to meet at a specific time at our IRC channel  to discuss everything that had been proposed. We chose to have this discussion in real time because the forums proved to be somewhat difficult with the large time lag between responses and interconnected nature. What happened was a rather epic three hour debate. It was at times frustrating when there were strong disagreements, but investing the time into having this talk really moved us forward in terms of defining what Allacrost was to become. It also remains one of my most enjoyable memories of this project, as it feels liberating when there is so little defined and you can move the game in any direction that you desire. We weren’t able to resolve all our differences and implementation details during the chat, so several threads were created on our forums to discuss the finer points of those ideas which were accepted , , .
Most of these ideas are now implemented. Others were later abandoned or forgotten about for various reasons. For example, we had initially approved a combination attack style similar to Chrono Trigger, where two or more characters work together to execute a maneuver. I only recalled this planned feature during the course of my studying of our history for writing this post. Some of the ideas that were cut were of my own and I was very excited and enthusiastic about them. However, I was the only one who felt this way, and it wouldn’t be fair to force my desired features into the game if everyone else disapproved of them. My features including having a third-person observer interjecting narration of the events in the story as they occurred, and having full-screen artistic stills during the game as well. I wanted the game to feel like an interactive storybook to the player, but the concept was ill received.
In hindsight, we may have spent too much time and energy on this brainstorming.
A better approach for us may have been to focus on the core gameplay and features, then save the discussion of the implementation details for when we were near ready to begin implementing them. We decided too much too soon, and many of the people who formed those early design decisions didn’t stick around the project for more than a few months.
 Allacrost IRC channel (#allacrost at irc.freenode.net)
 Final Fantasy VI (Wikipedia)
 Chrono Trigger (Wikipedia)
 Approved Game Features (Thread #1)
 Approved Game Features (Thread #2)
 Approved Game Features (Thread #3)
Coming up next:
As I mentioned in the last news update, we reached our 10th birthday here recently. I thought that it would be a good time to share the story of Allacrost, since very few people have known about our efforts for its entire existence and so much has changed from the beginning to today. It’s pretty amazing to have this kind of history with a project such as ours. Hopefully you’ll find this information both educational and entertaining.
There’s so much to this story and no way to share it all in a single news post. I’m going to break the tale up into digestible segments and publish a new post roughly every week until we are caught up to the present. So I hope that you’ll continue to check back with us and relive the past. If you’d like to ask questions or make other comments regarding this post or any other in the series, I’ve made a thread on our forums for you to share your thoughts. It is linked at the bottom of this post.
Birthing Process (June 2004)
Allacrost was born in June 2004, but this story begins a few months before that date. I was in my final semester of college and had begun using Linux exclusively for all of my computing needs. As I began looking around for games to play on Linux, I quickly discovered Battle for Wesnoth , a turn-based strategy game that was free to play and open source. I was inspired. Studying this game and the people behind it made me realize that I already had at my disposal all the tools and abilities that I needed to create a game of my own. The only thing that I was missing was time. I began pondering game development, which had long been an aspiration of mine during my childhood. But I soon pushed these thoughts aside as my studies were far more important to focus on.
In May, I graduated with my degree in computer engineering. I was committed to continue on to grad school, but classes didn’t start until August and I had nothing to do for that entire summer. I was bored out of my mind. From this boredom, I began writing a short story one day; Something that was completely out of the ordinary for me to do. I had no plan for what or who it was going to be about, and let my imagination make it all up as I went along.
When I had finished, I read it through and thought that it wasn’t half bad. So, I decided to share my story online and get feedback on it. I posted it to the AnimeSuki forums, a community that I was an active member of at the time, and I received overwhelming positive feedback on it. I decided to write a little bit more, and the story quickly grew on me. You can still find the original thread that gave birth to Allacrost on the AnimeSuki forums , though that first draft of the story is no longer available.
The success of this story caused me to recall my curiosity about game development from earlier in the year. I started brainstorming and sharing some game design ideas on the same forums in another thread . One forum member sent me a private message stating that he was interested in working together with me on the game that I had been describing. A friend and classmate of mine from college also expressed his interest after I shared my story and aspirations with him. We somehow managed to find an artist and a composer willing to lend a hand as well, and the team was born.
Roots - Team Lead, Developer, Writer
gorzuate - Developer
Balthazar - Manager, Developer, Editor
Biohazard - Artist
StarPilot - Composer
I chose a domain name URL and hosting provider, set up a (very primitive) website, and installed the phpBB forums. The forums came online on the 16th of June, 2004 and this is the day that we recognize as the birthdate for the Allacrost project. I’ve always told people that this project was the result of a series of fortunate accidents. I was never very serious about making a video game, as it was all just a group of ideas that were floating around in my head. Everything I needed to turn a dream into a reality just seemed to fall together in my lap all at once. Before I knew it, I had a story, a website, and an excited team to turn ideas into something tangible.
Coming up next:
Earlier this month, our sister project Valyria Tear hit a huge milestone with their Episode 1 release. If you're a fan of classic RPGs in the same style as Allacrost, play the game and show them your support. VT and Allacrost share a lot of the same artwork, code, and design elements so we benefit from each others progress. Some Allacrost team members (myself included) have made direct contributions to the VT project as well.
So, where does that leave Allacrost? Sadly, the project has been in yet another standstill for the past 18 months or so. Our goal remains the same: to release the first chapter of the game similar to what VT has recently accomplished. About 85% of the work that remains is in artwork, map design, and scripting. We otherwise pretty much have everything available to us that we need to make a fantastic release. It's just a matter of finding the right sources of help to complete what we can't do on our own (namely, the artwork) and finding the time to put it all together. I've recently come back to work on Allacrost after a long hiatus, and I hope to build up some momentum and encourage others to join me.
It's difficult to believe, but it's now been a little over ten years since Allacrost first got started. Of course, a significant portion of that decade have consisted of long periods where no work was being done, so we're not really as old as we look. There are very few independent game projects, open source or otherwise, that can boast of having such a long history. Thanks for continuing to support and encourage us over the years that have passed and we hope we can count on your support in the years to follow.
We have something special to share to get the new year started right. Below you'll find a link to our very first development video. This video demonstrates the current state of the game and includes commentary that discusses our designs. This is a great way to check out the project without requiring you to build the game yourself. We hope that you enjoy it, and will leave us any feedback you have by either commenting on the video itself or leaving your remarks on our forums. We will release more videos like this in the future as a way to keep the community updated on our progress.
Our next immediate order of business is to publish a new development release, so that you can experience the game for yourself as it is presented in this video. We hope to get that release out by the end of this month, if not sooner. We also now have an updated roadmap so you can get a picture of what it is that we need to finish and what we are currently working on.
With our online services cleaned up and restored, project files reorganized, and numerous features that have been backported from Valyria Tear, I'm happy to report that the revival of this project is now complete. Thus, we are now ready to begin working with a full development team again, and we'll spend the next couple of weeks hunting down artists, programmers, and others to help us work on our next release. If you are interested in helping out, please read the following page on our wiki to find out how you can get started. We especially need artists and game designers (who make maps and manage game content) to join our team. Our release is, for the most part, feature-complete and is only missing the appropriate content to bring it all together.
We're starting to pick up steam again. I hope that by the end of the month, we'll be ready to bring back a full development team. Here's what we've been able to do in the past few weeks.
And here are some additional tasks that I hope to have complete before next month.
As I mentioned before, I don't believe I will have time to update our website by myself, but I gladly welcome anyone who would like to upgrade our Drupal backend and improve our layout. I've had to disable commenting on news posts for now due to issues with spam.
Over on the Valyria Tear project, the first release is estimated to be available in a couple weeks time. Once it is out, I will make an announcement about it here.
Our site has completed it's migration to a new server. You may have noticed some parts of the site not working correctly or being completely unavailable, but I believe that everything is now operational again. Unfortunately, this migration has caught the attention of hordes of spammers who are registering fake accounts on the website and forums. I've had to disable registration for the forum and website for now as I try to clean up the mess and install measures to prevent spam in the future. If you already have a site and/or forum account, it should still work, however. Hopefully this problem will be resolved by the end of the month.
In the coming weeks, I'm going to be upgrading the website software (which uses a Drupal backend) and installing a new wiki. Our old wiki, hosted on Sourceforge, had some problems a while back and has remained accessible, but not editable by anyone. After I migrate all the content over to the new wiki hosted on our site, I plan to spend a lot of time updating it. Particularly the code documentation I am going to try to bring up-to-date to help make this project's rebirth easier (while also helping out Valyria Tear in the process).
I'd also like to give our website a major makeover and make it easier to navigate and more content aware (for example, having the latest screenshots on the front page). Unfortunately I do not think I'll have the time or ability to redesign our site, since web development is not something I have much experience in. With that in mind, if you'd like to help out with improving our site, or any of our online services (forum, wiki, etc.), I would gladly welcome the help. I (Roots) am doing all of this work by myself right now and it's taking me quite some time to fix and upgrade everything.
Right now, my goal is to have all of the critical online components fully functional by mid December. If everything goes according to plan, by the end of next month I intend to formally restart this project and seek assistance from both past members of this team as well as any new help we can find. I'll make a post here when that effort is ready to get underway.