The project to run NeLSound on top of Microsoft's new XAudio2 API is already nearing it's final stages of development. The driver currently implements all basic functionality required by NeLSound, as well as the some of the environment effects (commonly known as EAX), and has support for the OGG Vorbis music format. I am currently working on adding support for the ADPCM sample buffer format used by NeL to the driver, and I will soon work on the rest of the environment effects implementation as well. Also, the new owners of NeL have made available a new official website for NeL over at http://dev.ryzom.com/, and you can browse the code of the new sound driver at http://dev.ryzom.com/repositories/browse/nel/nel/src/sound/driver/xaudio2.
Friday 5 September 2008
Sunday 24 August 2008
I have recently started working on an XAudio2 driver for NeLSound, which will allow OpenNeL to make use of Microsoft's new XAudio2 sound library (included in the latest DirectX SDK), in addition to the three sound libraries already currently supported by OpenNeL (FMod, DSound and OpenAL). The project currently does not implement all functionality yet, as the rest of the features will be implemented in the coming weeks, but it already runs the sound_sources sample included with OpenNeL pretty nicely without problems. The code can be downloaded from http://nel.svn.sourceforge.net/viewvc/nel/trunk/nel/src/sound/driver/xaudio2/, and is released, like all other available OpenNeL code, under version 2 of the GNU General Public License.
Sunday 20 January 2008
Hi, I'm Kaetemi, currently sort of working on bringing Snowballs back alive. Snowballs is the prototype game of the open source OpenNeL MMORPG engine. I recommend brining a visit to http://www.opennel.org/ for some more detailed information. As the title of this blog entry suggests, this bit of text is about the gameplay of Snowballs, and there will be an article about a few other parts of Snowballs here every few days, weeks or months, depending on how much time I have for this.
Here's the description of the current gameplay (or at least how it was intended to be) from the readme: "You're now a penguin on an artic snowfield. You have snowballs which you can throw at other people. When you throw a snowball, you have a few seconds during which you gather more snow before you can throw the next one. If you hit someone, your score increases, and the snowed opponent becomes immune to further snowing (he flashes on the screen) for 5s. He cannot retaliate while invulnerable." If you have already playded the game, you would probably have noticed already that this description isn't really a very accurate description of the actual game as it is now. In the code that we have the penguin isn't implemented, you can throw snowballs as fast as you like and you neither become immune nor flash on the screen when being hit by a snowball. In any case, that description would make an extremely boring game anyways.
Obviously if we want to improve the gameplay, we do have to look at what people playing the game actually enjoy doing. This seems to be mostly either exploring the terrain, hitting the left mouse button as fast as they can (preferably on a non-moving target who's most likely afk), or also just talking with each other. So what we need here is a gameplay which allows at least these few things.
In order to allow exploration, we need a continueous gameplay. This means that instead of resetting all player stats or whatever on every round or something like that, a more dynamic system should be in place. Similarly to how the game is implemented right now, anyone should just be able to join and leave the game at any time without any problems. A new player should also not have any extreme disadvantages over people who have been playing for a while. Not allowing any players to have any advantages over others at all would make the game extremely boring, though.
An appropriate way of solving this, is by having some sort of short-term advantages only. These could for example be implemented using either a time, or usage limit, but doing it in that style for every bonus is really boring, especially since other players have no other way than waiting for the advantage to go away on that player, and waiting is a really boring game. Instead, it must also be possible for a player to make another player lose his advantage over other players. A possible method is simply by letting x amount of bonuses go down when a player gets hit by a snowball, but since this isn't very effective when a player has something like an extremely rare overpowered defense shield bonus, or high speed snowball dodge skill, or something, other useful methods could be special bomb items (somewhat less rare than the extreme defense bonus) which instantly reset all advantages of all players in x radius around you (including yourself, obviously) without doing any other damage. Bonus stats and items or whatever can be given to players in different ways. Players could get higher hit points when they hit someone else, they could pick up bonus items or skills at random locations, there should be bonuses that are less common than others, there could even be bonuses that allow players to gain bonuses in an alternative way.
Now to attack another player, hitting the left mouse button really fast, and throwing loads of snowballs, is definitely more fun than just click, hold, wait and release, click, hold, wait and release, etc. One of the types of bonuses a player can gain, would be different attacks, trough which you'd then be able to switch with your mouse scroller. This includes things like throwing at your target at high speed with small target radius, large snowball bombs falling from the sky, snowballs being launched around you in a spiral, snowballs being launched to random positions in front of you at high speed, higher target radius the longer you hold your mouse button, loads of snowballs launched around you in all directions, etc, very much like games of the shoot 'em up genre (those 2d games where loads and loads of bullets are being shot at you the whole time).
There will also be some sort of scoreboard which shows the best players online. Points can be earned, obviously, by hitting someone with a snowball, or by picking up bonuses from the ground (gives some exploration value). A team system could be added, where you'd have to defend or take over a few different villages in the area. And for those who just want to talk to others, there will also be a bar, which is a safe zone where no snowballs can land; and after leaving it you'll have ten seconds to run as far as you can before you're back to being attacked by snowballs.