[Xsera] Progress Log

Progress Posts only. Please discuss in separate topic.

This is the official progress log for Xsera, the OS X port of Ares.

For more information about Xsera, please visit the Xsera FAQ.

Only developers should post in this topic. To discuss Xsera, please visit this topic.

This post should contain all the progress information, myself editing this post with future updates and revisions.

<2008>
2008.11.14 - Progress log opened. Xsera is in development.
2008.11.16 - prophile gives a run-down of the basics.
2008.11.16 - adam_0 on switch from Python to Lua.
2008.11.21 - prophile on networking, graphics, and hq3x.
2008.11.30 - prophile on demo, LuaLLVM, networking, misc.
2008.12.21 - adam_0 on credits, the Concussion missile, and the physics and class systems.

<2009>
2009.01.03 - prophile on graphics updates, Apollo and Xsera, physics updates
2009.01.20 - adam_0 on weapons updates, shaders, and the demo
2009.02.21 - adam_0 on new graphics, new music, and the Windows aspect
2009.03.30 - LNSU on blowfish encryption
2009.03.30 - adam_0 announcing the release of the first demo!
2009.06.08 - adam_0 on what's happening in the second demo
2009.06.24 - adam_0 with more updates on the second demo
2009.07.22- adam_0 with even more updates on the second demo
2009.08.22 - adam_0 with <i>even moar</i> updates on the second demo
2009.09.27 - adam_0 with big changes leading out of the second demo

<2010>
2010.02.13 - adam_0 with a lead up to the third demo (incl. data converter by GameFreak, sound effect work, graphics work)
2010.07.01 - prophile with new, shiny 3D renderer information

<2011>
2011.01.18 - adam_0 rings in the new year a bit late
2011.07.14 - adam_0 regarding summer stuff

This post has been edited by adam_0 : 14 July 2011 - 11:40 PM
Reason for edit: Pinned

2008.11.16

Hi folks!

Since most of the code is from me at the moment, I'll give you a quick run-down of what's done so far.

The graphics engine (based on OpenGL) is well underway, and the first version of the sound engine is complete. We have support for PNG graphics and TrueType fonts, all in a very fast system. The first version of the sound system using SDL_mixer is also complete apart from a few teething issues with regard to volume, and that supports OGG and S3M for songs, and AIFF for sounds.

Now, you may remember that the original Ares music was in a module format - MADH. I certainly remember tinkering with PlayerPRO for years with the music from Ares and Uplink and Bubble Trouble which all used module formats. Essentially, a module format for music is like MIDI, but with the instruments in the file as well: this means, among other things, that the file is very compact, as well as "open source" in as much as music can be open source. S3M is probably the most advanced of the plethora of available module file formats, so I went with that.

The plan at the moment is to integrate scripting into the system with Python via a boost library, named (perhaps unsurprisingly) boost.python. It's a choice between that and Lua - both are very flexible languages. Hopefully, most of the game logic can live in Python where it's easy to change.

I haven't started working on the networking component yet, that's possibly the biggest hurdle to jump. Adam and I are planning on using a library called enet to handle the basics of the networking engine, which is used by the open source FPS Sauerbraten. It won't be compatible with the original OS 9 Ares, I'm afraid, but since most people can't even use that any more I don't suppose that'll be a huge problem.

So basically, Xsera is coming along nicely so far.

This is a somewhat late announcement, but I'll put it up anyways for clarity's sake:

2008.11.16

We've decided to switch from Python to Lua, as prophile was having some difficulty with Python.

Since I have no knowledge of Lua, I will be learning it over the next few days or so, although it will be no learning curve for prophile.

More about the Lua decision can be found here.

This post has been edited by adam_0 : 18 November 2008 - 10:35 PM

2008.11.21

Hi folks-

Another progress update! So soon! But, as you might predict from early days of a project, we still have a lot to talk about.

As Adam mentioned, we changed over from Python to Lua. Python was proving to be a pain in the backside, quite frankly, and the inclusion of boost was pushing compile times through the roof, so we decided to gut out what we'd done and implement Lua. Lua went much more smoothly - the Lua engine is now fully functional and bindings to the main C++ code are pretty much complete, apart from a few odd bits and pieces like particle system functionality.

I've implemented a basic networking API. It lacks security and error checking at the moment, and can only be considered 'alpha' quality, but it does work. I managed to have it working between my laptop and my main machine and it seemed fine. The big hurdle is going to be implementing a 'meta-server' for game matching and suchlike.

We've brought most of the sprites in from the original game, but sadly they're all very low quality. I'm sure they weren't like that when I used to play Ares, but I guess that resolutions have just gone up and up - on my 1650x1050 screen they look a lot smaller than on the 640x480 jobbie I used to use. I spent one particularly long night trying to get a complex pixel-art scaling algorithm called hq3x working, but to no avail - it seems the sample code is only for little-endian systems and I'm stuck here with my G5. Mr Lamont, if you're reading this, models please!

If you're interested in the source code, the repository is publicly accessible on github - http://github.com/pr...era/tree/master is the cutting-edge branch.

Nothing more to report!

</proph>

2008.11.30

Hi folks-

Whew, a whole slew of changes since the last update. Apart from many bugfixes, the details of which I will not bore you with, we've made other changes.

The mode system now works fully, as does (pretty much) the input system. Since this mode system works, we've added a basic demo mode. It's very basic at the moment: you are an Ishiman Heavy Cruiser, and you fly around, shooting down a static Gaitori cruiser. It's not yet finished, but hopefully we'll have a little tech demo with this out in a couple of weeks, just to show off what we've done so far.

All the game logic, including the physics, is done in Lua. Later in the project, I plan to integrate a system called LuaLLVM: this means JIT compilation of the lua code so that it runs at native speeds. This will be a huge speed improvement. I've also added a 'class' system to Lua - not one created by me, I hasten to add - which means that we can use object-oriented code in Lua, and in fact the Physics engine is doing so right now.

We've put in a neat 'starfield' feature, which generates the starry sky background at runtime, so it'll be different every time you play it, which saves a hell of a lot of storage space.

Andrew (LANS) has tightened up all the networking code, so that it's got plenty of error-checking and validation in it to prevent nasty crashing invoked by malicious people.

Finally, and probably most importantly, the source code now contains a giant ASCII dinosaur, which I've lovingly nicknamed Rudy, who will be your friendly guide to the Xsera source code. Isn't cowsay wonderful.

This post has been edited by prophile : 30 November 2008 - 05:19 PM

2008.12.21

Hi folks!

Lots of stuff happening. I'll report what's happening on my side of things in this, perhaps the last report of the year.

We've added credits. Although this may seem a little early, and it is, prophile thought that it would be good to test the font system. Anyways, it works, and it's very nifty.

I've been focusing on getting the Concussion missile to seek correctly, which has proved more of a pain than I thought possible. As soon as the physics system is fixed (see below), I'll hopefully be able to figure out the correct solution.

Both the physics system and class system are being changed from Lua to C++ due to some problems with Lua binding. Which means I'll have to rework some of my C-missile code, but it needed reworking anyways.

That's all for now!

2009.1.3

Hi folks-

Since I last reported on our progress there have been a couple of minor changes and one fairly major one. Adam's been hard at work on the demo, and I've updated the graphics engine for some speedups by using a matrix class rather than relying on in-built OpenGL matrices. Hopefully some time I'll update it to be fully OpenGL 3.0-compatible and modern as well as backwards-compatible.

Now the fairly major change: I've split Xsera into two parts, the actual game Xsera and an independent game engine called Apollo. Apollo contains nothing specific to Xsera, and can be used as a separate game engine for other projects. In fact, I'm going to do exactly that.

This carries some major advantages. Multiple projects using the core engine means it gets far more in the way of updates to keep it running efficiently and with plenty of features for us happy developers to use. The engine is called Apollo, and, incidentally, if any of you are thinking of making a game any time soon, it's there for you to use!

Another change is the physics subsystem. Adam mentioned this in passing in the last update: I've moved the physics system over to C++. It's now very complicated and has all sorts of funky sounding things like quadtrees in it. Basically: physics is now very fast.

Hopefully we'll have some major progress over the next month or so, Adam and I are working our socks off trying to get the first tech demo finished.

This post has been edited by prophile : 02 January 2009 - 09:38 PM

2009.1.20

Long time, no info! but that doesn't mean that we haven't been hard at work. The one thing that hinders progress is finals and exams going on for the next few weeks. Other than that, Xsera is breezing along. Lotsa changes and improvements.

First, there's the typical bajillion-bug-fixes. Meh. Alastair added support for .xm, .mod, and .aiff music formats. I added the background "grid" that helps to show how fast the ship is moving, but the colors aren't correct yet. Meh.

Second, lots of weapon updates. Cooldown timers (how long it takes for the weapon to fire a second time) have been put in place using some of Pallas' extracted data, which is an amazing help. I'm also working on incorporating weapons to their ships, which was something that I hadn't thought about until recently.

Third, shaders. Alastair has added this nifty thing called 'shaders'. I don't fully understand what it means, but he says it means more cool effects, like smoke, distortion, etc. which is a good thing.

Yeah, that's about it. Lotsa stuff happening... this demo may be delayed by improvements that are unnecessary to the demo, but things will go faster after the demo.

2009.2.21

I realize there hasn't been an update in over a month, and I apologize for that. That's partially due to finals and exams taking away lots of time from work on Xsera, partially due to myself getting sick, and partially due to a bunch of other small factors. Here's what's going on:

Shlimazel has offered to create high resolution graphics for Xsera. He's just finished his work on the Ishiman Heavy Cruiser, here's a couple of teaser shots:

Posted Image

Posted Image

It's really great that he's volunteered to do this, and I'm glad to have him aboard the team. I've also promised him that should Mr. Lamont come up with the graphics, I'll still make his graphics into an Xsera add-on / plugin.

Also, I've managed to wrangle someone to re-mix the music for Xsera. I haven't been able to discuss this with prophile yet, but the person I talked to wants some experience and something he can put on his resume, so I figured he'd be perfect for the job. He's not yet a member of these boards, but I've listened to some of the demos that he posted, and I really like his sound. Anyways, he hasn't created anything yet, but I'll post when he gives it to me, pending his permission.

I've been working on getting Xsera to work on Windows, but I've had some very obscure errors that I've been trying to fix. No guarantees of having the Windows version up by the time the first demo rolls around, but rest assured that I'll have it soon.

Speaking of the demo, prophile and I are very close to finishing the demo. We just need to collaborate (hopefully some time this weekend) and wrap things up.

That's all for now!

This post has been edited by adam_0 : 22 February 2009 - 04:12 PM

I've built a blowfish encryption mechanism. Decryption soon. Any Xsera multiplayer/networking will now be encrypted pending the implementation of a random key generator and a method of transferring the key from the server to the client (RSA).

Should've been done months ago, but my schoool, RealLife™ and procrastination got in the way.

This post has been edited by LNSU : 30 March 2009 - 08:03 PM

2009.03.30

Hello everybody! The demo is out! Check it out here!

adam_0

2009.06.08

I realize it's been a while since we've done one of these progress reports, so I just thought I'd fill everybody in on what's going on. Leaps and bounds are being made every day that us devs have time to work on it. The reason for the lack of great progress has been preoccupancy with school stuff - finals and exams and important things like that. Anyways, I am now able to get things in gear and attack our agenda for Demo 2.

One of the big visual improvements we've made to Xsera is the addition of the side panels. Not that they weren't there before, but now they display information. After several hours of tweaking, I've gotten everything just how it should be. Although some functions like radar and planet information currently have no use, a few small adjustments will fix that.

Another improvement is the addition of a console, both as a standalone mode and an in-game pop-down console. This console accepts Lua commands, making it a tremendous improvement in game modification.

Another minor detail I've worked on is the 1/16 viewing ratio - ships and planets are now viewed as polygons in that size, not as ships.

The Second Demo is near at hand - but just how near? We'll leave that for you to guess.

adam_0

2009.06.24

Hey everybody! Work on Xsera is coming smoothly as we start into summer - although Alistair will be finishing up at the end of the week. Everybody else on the dev team is enjoying summer, and I've been cooking up some great new things in Xsera. (you can follow me on Twitter as well for more frequent updates on Xsera)

I've created the ability for ships to be created from planets. Although this is really great, there's currently no way for me to control these ships, and they have no AI, so they just float out in space. Still, it looks pretty nifty to be able to create Ishiman Fighters, Cruisers, and Heavy Cruisers. The next thing that I need to do here is to take build time and cost into account.

Along with that, I'm working on a pre-load mechanism that should increase the performance of the game (everything currently loads on an as-needed basis).

As of right now, there's really only a few things that we will need to do to release the Second Demo. There's a color issue with the text that's being worked on and a couple other small bugs, but that's about it.

The work continues!

adam_0

2009.07.22

Hey y'all!

First things first, I'm just gonna put it out there that the second demo is close to being done! Woohoo! I'm doing as much as I can whenever I can, and I'm sure the rest of the crew is putting in their time as well. Changes:

  • Countless bugfixes.
  • Zooming in and out is now done smoothly, as in the original Ares. It looks very nice, if I do say so myself.
  • Ships now build correctly, taking time and resources to build.
  • Preloading mechanism is mostly done, although there are a few exceptions (sounds, for example) that will be added later.
  • A console that accepts Lua commands. This will be invaluable for later on in the development process, but for now, it simply allows us to work with the underpinnings from within Xsera itself.
  • All keyboard keys are now recognized by Xsera, including keypad keys and function keys

So yeah, look for more updates coming soon!

Adam

This post has been edited by adam_0 : 22 July 2009 - 06:37 PM

2009.08.22

I am making progress, I really am. The team is being held up by a single bug that prohibits the game from being played for more than a couple minutes before it freezes up - not exactly a memory leak, but really more of a memory build-up. Basically, Alistair needs to work on that, and he's gone right now.

But I'm doing lots of other stuff by myself. The game's getting a lot more features that give it more of an Ares-y feel. I won't discuss these until they are complete, but things are being done, rest assured. If you want proof, look no further than Xsera's commit feed, which is automatically updated whenever one of the devs makes a change.

Looking at the date, we're about 10 months into Xsera. I think the summer months have been more restrictive to progress due to everybody's totally hectic and chaotic schedules. Hopefully as school starts up again, we'll settle in and get more coding done.

Look for a demo coming soon! (I hope)

Adam

2009.09.22

Hey everybody,

So now that the Second Demo's been out for a while, I thought I'd post again on the progress that's been going on in Xsera. There's quite a few things that have changed from last month, including but not limited to the following:

There's a new website. That's right. A new website. With it's own domain name - xsera.org. I'm trying to post lots of updates there with what's going on. With the new website, there's a lot of new resources at the team's disposal. Xsera and Apollo now have documentation in the form of Doxygen, which should help people who want to mod the game or create new games with the Apollo engine.

Xsera now has the original Ares CLUT colors. This means a more authentic game experience, although a much more tedious one for developers - we're trying to match the colors to Ares' CLUT, or Color Look Up Table, by selecting a spot on the table, running the game, and then tweaking that color until it's the same as in Ares.

Conversion of Ares data to Xsera. All of the data that Pallas Athene has extracted is available for use, so I'm working on creating a utility to convert the data, which is in the .xml format, into native Lua tables. I'm almost finished with this - when I do finish it, it means that all of the original Ares data will be available for use in Xsera.

I'm getting all of this done even with college starting up, so I'm glad that this progress can still continue!

Adam

2010.02.13

Hello everybody,

This progress post is seriously overdue, but I promise it's full of great stuff that's been going on. (plus more on this post as a personal marker later) The topics include Demo 3, GameFreak's work on the project, and new work in sound effects and graphics.

Demo 3: Space Race, the Musical!
We've decided to make our goal a playable version of Space Race, the Musical. This is a huge stride over Demo 2, which featured a great number of interface improvements and the ability to build ships.

In Demo 3, the interface will be totally feature complete - including radar, fully operational menus, and even being able to use the mouse to make selections.

Demo 3 will also feature an AI in some form or another. Currently, the AI is only able to do a "dumb seek"; that is, it turns towards its target hitting thrust the full time (if you've seen the recent YouTube video, you'll know what I'm talking about). This is definitely not our end goal, and GameFreak is working on getting a functional AI for this next demo.

In short, Demo 3 will be nearly fully functional. Demo 3 will make significant leaps and bounds over Demo 2, and we hope you'll enjoy it!

GameFreak's data conversion
GameFreak has been the most active dev on the team recently. He's made huge progress towards a playable Space Race, the Musical and continues to make great strides towards making Xsera fully playable. His latest awesome piece of work is a data converter that extracts the data directly from Ares' resource files into Xsera, allowing us to read from those resource files instead of needing to create our own files. It may also help in the future when it comes to plug-in functionality.

GameFreak has also redesigned much of the backend of Xsera, making the game run faster and better than before. He always manages to surprise me with what he's done from one week to the next.

New graphics work
khlae has created an official Xsera logo! It looks fantastic, and it's even on the website (see the top of the page). He is also working on making some ship models - he is currently working on the Obish ships. They haven't been integrated into the game, but I'll be sure to post screenshots once they're in and working.

New sound effect work
Board member Geek has offered to assist Xsera by offering his services in the sound effect department. He has a lot of cool sound effects which are now at the team's disposal. At the time of writing, none of his sound effects are in the current build in Xsera, but I'm sure we'll be getting them into the game soon. One of the nice things about developing Xsera is that nearly all of the resources (sound, graphics, and story) were available for us to use. Having the rest of the sounds in our arsenal will make our situation even better.

Xsera's IRC Bot
Another thing I've been working on is a bot, which now resides in #xsera. It's 100% Lua, meaning that possibly it could be changed in such a way as to provide a built-in IRC client in Xsera, much like Uplink - no promises, but we'll check it out. It would definitely be cool to do this, and I don't think it would require a ton of work.

PS: On a personal note, 3000 posts! Woohoo! (and yes I did time it to be this post, and I wanted to make it epic :p) I hope you all enjoyed!

Until next time,

Adam

2010.07.02

Another terribly overdue update.

Over the past couple of days I've been working on a 3D renderer for Xsera. It's something I've been meaning to do for a while, and I finally got round to it. The idea is that rather than just rendering sprites, we render actual 3D ships top-down, with proper lighting, which looks much better up-close, and means we can do some nifty effects like lighting from weapon fire and explosions.

Here's a couple of quick screenshots-

A spinning cube of death:

And because it's 3D graphics, here's the all-important marble teapot:

These need work, of course, and actual ships to render, but it's off to a pretty good start. I'm using a clever trick called spherical harmonics to do diffuse lighting, which looks much better than your basic OpenGL lighting.

I hope this gives you some indication of what I've been up to 🙂

EDIT: and after a few bugfixes, here is a cabinet:

This post has been edited by prophile : 03 July 2010 - 06:43 PM

2011.01.18

Hey hey hey! It's the first post of 2011!

Xsera is now in its 3rd year of development! Wow, how time does fly...

LOOK LOOK! FANCY NEW WEBSITE! It's modeled after arescentral.org, made by Pallas Athene and touched up by old-time Ares player and IRC-goer known as thants.

Anyways, a lot of work has been going into Xsera since around the holiday season, so I thought I'd post a bit to tell you what we've been up to. First, there have been 46 commits since the new year (think of a commit as either adding a new feature or a bug fix), which is quite above average - there's a lot of stuff going on. Below is a list of everything that's happened since Alistair's previous post:

Switch to OpenAL - We were using SDL's sound capabilities for Xsera, but OpenAL has lots of cool stuff, like Doppler sound and positional sound.

3D - Added some features and fixes to the 3D, nothing too major. Also added khlaex's Obish Cruiser.

Shaders - Alistair did a lot of shader work (which will make things like warping and explosions much, much cooler).

Levels - Now with one line of code change, we can load any level we want! It's really quite nifty, we've been playing around with a few of the levels to test as many of the features of Xsera as possible.

Layers - In Ares, objects were drawn according to layers - planets and space stations on bottom, ships and bullets on top. Xsera just got this feature!

Ship's computer - the computer menu on the right of the HUD is now fully working again, including building ships in planets.

Console - a true Lua console has been (re)added to the game, allowing players to pause the game and modify the game data. It currently has no tools for doing this easily, nor does it have a scrollbar, meaning that it's somewhat limited right now. Mostly, it is usable for debugging the game, and may be quite handy for mod developers.

Among this are the many, MANY bug fixes and performance upgrades that we add along the way.

Now, for some future plans for Xsera:

Demo 3 will be nearly feature-complete, boasting full multiplayer support (although perhaps not playable for the average user quite yet) and even AI. Multiplayer is going to require a large rewrite of the code, but it is one of the last few things that we really have to do.

Xsera, right now, is usable. The only main things that we have to do to complete the game are multiplayer, AI, and singleplayer testing. Expect an open beta sometime after Demo 3 is released. Other things that we hope to do after the game is released include a level editor (like Hera) and Windows and Linux ports. Although these items are the biggest and perhaps the most difficult of anything we've done so far, Xsera is starting to look quite nice 🙂

Please discuss here

Good hunting,

Adam

This post has been edited by adam_0 : 19 January 2011 - 02:41 AM

2011.07.14

Greetings one and all!

This is another long overdue update about the happenings in Xsera. Progress has been slower than normal, on my part due to a heavy school workload, but nonetheless it is summer! And that means plenty of time to (strikethrough)play games(/strikethrough) code. Here's what's coming up for Xsera:

Athena:

GameFreak continues his diligent and impressive work with Athena, a data editor for both Ares and Xsera. GameFreak has been the most consistent committer over this slow period, which is a tribute to his commitment to the project.

Ares Models:

Mr. Lamont has given me access to the Ares models in the hopes that I could convert them to a modern format for his use later. khlae and myself diligently worked on the many versions of game ships and planets, converting them by hand to several formats. In fact, many of the items were not Ares models but other 3D models that Mr. Lamont made years ago. Just before this, I sent the converted models off to Mr. Lamont. Perhaps sometime in the near future, he might release them under an open source license as he has other Ares materials.

AI:

My next project is to begin on a brand new AI for Xsera. The hope is that it will be more intelligent than the Ares AI and provide for more of a challenge. We'll see how this project goes, as I have never built an AI for a game before.

Multiplayer:

prophile is going to work on a multiplayer system for Xsera which should make playing the game with your friends fun and convenient. Not much more I can say on that though, as I don't know what sort of progress he's made...

And so there you have it! This is the latest news on Xsera. Don't forget to follow us on media of your choice for the latest and greatest news as it happens:

Twitter:

adam_0 is @adam_0
prophile is @arplynn
GameFreak is @GameFreak4321

IRC:

irc.ambrosiasw.net/#xsera
OR
go to http://www.xsera.org/irc.htm in your browser

TTFN!

Adam