OBoE

AuthorTopic: OBoE
The Establishment
Member # 6
Profile #0
OBoE stands for Open Blades of Exile. It is an easy acronym that I propose we use for this open source project. Within this, I further propose a simple versioning system for keeping track of things.

BoE -- This is the lowest level of modification. All of the code is identical to the standard release except for any compatability issues. Everything Khoth has done thus far falls into this category.

OBoE v 1.x -- Any set of changes that maintain backward compatability with original Blades of Exile scenarios are in the version 1.x set. Bug fixes such as the 100 town bug, strong strength potion, etc. or minor modifications like removal of the 50 node limit would go here.

OBoE v n.x (n > 1) -- Any code modifications that would break backward compatability would go here. The goal would be to maintain backward compatability within n. So a scenario created in v2.0.4 would still work in OBoE v2.1.1. However, OBoE v3.0.2 would not support it. Major changes in game balance, mechanics, spell systems, etc. would fit in these.

Any independent developments in OBoE are welcome, but I think the community should keep some control over the official versioning.

===============

With these set up, I think our first prioirty is to get everything running in BoE proper, the lowest level. Khoth so far has done an excellent job getting everything to work here and it is very exciting. Good work so far!

Next we should focus on simple things to do with OBoE v1.0. The future releases v2.0 will need to be planned out a bit more, I have some ideas regarding this, but I would like to start off simple first and take care of getting the basics working before we go off into a more radical territory.

Thoughts?

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
Law Bringer
Member # 2984
Profile Homepage #1
Smooth.

Well, what exactly is Khoth doing with BoE and where can I see that? Is BoE being ported to Linux some time soon?

--------------------
EncyclopaediaArchivesMembersRSS [Topic / Forum] • BlogPolarisNaNoWriMo
Look on my works, ye mighty, and despair.
I have a love of woodwind instruments.
Posts: 8752 | Registered: Wednesday, May 14 2003 07:00
Post Navel Trauma ^_^
Member # 67
Profile Homepage #2
I'm porting BoE to OS X. See my sig for the current version.

As for Linux, I doubt it.

--------------------
Barcoorah: I even did it to a big dorset ram.

New Mac BoE
Posts: 1798 | Registered: Thursday, October 4 2001 07:00
Board Administrator
Member # 1
Profile Homepage #3
This sounds like an excellent setup. If you ever make a central repository for this stuff, I want to link to it.

As I said in another thread, make sure changes to the scenario format are well documented, so that people working on the Mac and Windows versions can keep running scnearios from the other side.

Also, if the game runs under WINE, a Linux port might be more trouble than it's worth. Though, if memory serves, porting Exile 3 to Linux was not a hugely time-consuming job.

- Jeff Vogel

--------------------
Official Board Admin
spidweb@spiderwebsoftware.com
Posts: 960 | Registered: Tuesday, September 18 2001 07:00
Law Bringer
Member # 2984
Profile Homepage #4
Speaking of repositories: I can host Subversion (SVN) projects if needed. For joint development, a version control system could be kind of useful.

--------------------
EncyclopaediaArchivesMembersRSS [Topic / Forum] • BlogPolarisNaNoWriMo
Look on my works, ye mighty, and despair.
I have a love of woodwind instruments.
Posts: 8752 | Registered: Wednesday, May 14 2003 07:00
The Establishment
Member # 6
Profile #5
Right now we are using darcs for the stuff Khoth has prepared.

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
Law Bringer
Member # 2984
Profile Homepage #6
Where is it hosted?

I don't pretend to know a bit about C, but I'll peek inside if I have time one of these days...

--------------------
EncyclopaediaArchivesMembersRSS [Topic / Forum] • BlogPolarisNaNoWriMo
Look on my works, ye mighty, and despair.
I have a love of woodwind instruments.
Posts: 8752 | Registered: Wednesday, May 14 2003 07:00
Warrior
Member # 7633
Profile #7
Big idea #1: Move Blades from a "statically allocated" to a "dynamically allocated" model.

Specifically, right now, a lot of the scenario file format is based on a fixed number of "slots" for various things: 16 room rects and 30/40/60 creatures per dungeon, 30 boats per scenario, and so on. While coding Blades this way undoubtedly made certain things easier, it's also an unnecessary limitation. The zero-one-infinity rule applies here.

So move to a dynamic model for everything. This would require a transition to a completely new scenario file format, but that's doable - compatibility can be managed by either leaving in support for loading old scenarios, or writing a converter. This would involve rearchitecting a lot of the internal data structures as well, but that's really less of a problem.
Posts: 66 | Registered: Saturday, November 4 2006 08:00
Babelicious
Member # 39
Profile Homepage #8
Elfy: darcs is a distributed source-code management system, which means that there is no central repository to host it. However, Khoth has it at http://khoth.ath.cx/~khoth/BoE, and I have a mirror to take the strain off what I believe to be his home machine at http://pygsys.com/darcs/oboe-mac. I'm pulling from his repository every 3 hours, but I could pull more or less as Khoth desires.

Now, Khoth has just been doing the Mac port. If BoE is going to be genuinely adopted as an open source product, coordination is going to be vital between the Windows and Mac version. After the Mac version is in shape for modern machines, it'll be vital to examine the differences between the two so they can be kept as consistent as possible.

I have several motives here. One of these is that I love Blades of Exile and, until I finish Pygmalion, there's no real replacement for it for me including BoA. So I'd love to see a resurgent BoE. Second, I want a public BoE development effort so I'm not duplicating work.

In general, I'm offering any help or resources necessary -- web hosting, darcs/svn/etc, Trac or a similar bug-tracking system, etc. Or you can use something like DevjaVu or Savannah. I highly advise not using SourceForge under any circumstances.

FWIW, *i, the very very original name of the very first version of Pygmalion was oboe.

Also:

http://pygsys.com/darcs/web/

[ Monday, May 28, 2007 16:09: Message edited by: Andrea ]

--------------------
Pygmalion | Desperance | Djur
Posts: 1074 | Registered: Wednesday, October 3 2001 07:00
The Establishment
Member # 6
Profile #9
Thanks Djur, that helps a lot. I was unaware that OBoE was already used. Oh well. :P

I agree on the issue of the dynamically allocated variables and also agree that it is a big idea. Another thing to keep in mind is having to make some major changes to the Editor as well. With a dynamic number of slots, a lot of the menu type things become unusable in their current form. It's a bigger project that I hope to see done, but for now I think restricting to fixing things up is top priority.

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
Off With Their Heads
Member # 4045
Profile Homepage #10
IMAGE(http://www.geocities.com/Vienna/Strasse/1859/Oboe.jpg)
In other news, I had a thought: we might package some/all BoE scenarios in a download near the BoE download. In fact, I think I'm going to compress my archive and see how big it is.

EDIT: Ach, 53 megs. Well, we might package the greatest hits of BoE, anyway.

[ Monday, May 28, 2007 20:41: Message edited by: Kelandon ]

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 7633
Profile #11
Google Code would be an excellent option for hosting if it weren't for the license. They've got Subversion repo, wiki, downloads, and issue tracking. However, they limit projects to using a small set of open-source licenses: Apache, Artistic/GPL2, GPL2, LGPL, MIT, MPL, or New BSD. Wikipedia says the Common Public License (which the Blades code was released under) isn't GPL-compatible, and IBM's CPL FAQ says it isn't generally compatible with relicensing. I'm kind of wondering whether Jeff would be willing to cross-license under something less restrictive like the MIT License:

quote:
Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
The main hang-up with the Common Public License is that it's got a weird clause about granting patents. It's well-intentioned, but ends up making CPL code incompatible with just about every other OSI license.
Posts: 66 | Registered: Saturday, November 4 2006 08:00
Apprentice
Member # 8823
Profile #12
Hi All,

I am an open source developer (see SF.net profile) and I played Exile when I was a little boy; I have always dreamed to have the possibility to make some improvements to it.

Really many thanks to J.Vogel for making it available to the community! This game is a very good piece of history, but has still some potential too (and not only for nostalgic people like me :) )

Here is my idea: have a well-settled open souce project and organize it so that it will be successful. I have seen you have already started a project, where can I get more informations?

I am skilled at C/C++, I could help a lot in development, but for the moment I am mostly interested in organizing the project so that it will get the needed advertisement.
The main focus is not to fragment open source development (as far as possible) on the Blades of Exile code but to offer a good project where developers could plug in.
Once the project will be well-settled, I will also join development; and I can make some magic with C/C++ ;)

Please let me know more, thank you
Posts: 22 | Registered: Monday, May 28 2007 07:00
Babelicious
Member # 39
Profile Homepage #13
Honestly, I think darcs is a better idea for a project like this without a natural or artificial hierarchy. A central repository leads to the issue of who's hosting it, who has access to it, etc.

If at some point in the future the project becomes stable enough that a centralized SCM makes sense, you can always use tailor to convert the darcs repo into a SVN repo.

There's a darcs plugin for Trac, which gets us a wiki, issue tracking, and the like. I could set that up if anyone likes.

--------------------
Pygmalion | Desperance | Djur
Posts: 1074 | Registered: Wednesday, October 3 2001 07:00
Off With Their Heads
Member # 4045
Profile Homepage #14
quote:
Originally written by Daniele C:

Please let me know more, thank you
There are basically four threads here in this forum that discuss this project. Once you've read them, you've pretty much read everything on the subject. (There's also a thread on Shadow Vale, but it doesn't say much yet.)

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Apprentice
Member # 8823
Profile #15
quote:
There are basically four threads here in this forum that discuss this project. Once you've read them, you've pretty much read everything on the subject. (There's also a thread on Shadow Vale, but it doesn't say much yet.)
Thank you for replying Kelandon, I have already read them.

I was going to reply here but I have started a new topic about the open source project startup (it was a long post, in the end).
Posts: 22 | Registered: Monday, May 28 2007 07:00
Law Bringer
Member # 2984
Profile Homepage #16
A project whose first fork precedes the first roadmap sounds kind of doomed. And a fork is a bad thing when the project is centrally hosted.

---

So if I understand this darcs thing correctly, it's like CVS and SVN except that you aren't committing to a single repository but to several separate ones.

Do all changes need to be pushed to all the available repositories? Or what happens if there are more than, say, 2-3 repositories out there?

If anyone can host their own repository - what's the difference between a checked-out working copy and a repository? Can a code base be both at once, or is there still a client-server structure in spite of the decentralization?

Sorry if I'm asking dumb questions, but Wikipedia can only take you so far and I've never heard of darcs before...

[ Tuesday, May 29, 2007 15:05: Message edited by: Dr. Johann Georg Faust ]

--------------------
EncyclopaediaArchivesMembersRSS [Topic / Forum] • BlogPolarisNaNoWriMo
Look on my works, ye mighty, and despair.
I have a love of woodwind instruments.
Posts: 8752 | Registered: Wednesday, May 14 2003 07:00
Babelicious
Member # 39
Profile Homepage #17
So if I understand this darcs thing correctly, it's like CVS and SVN except that you aren't committing to a single repository but to several separate ones.

Not exactly. What it means is that every working copy is itself a repository and vice versa, and each repository can have its own history. Then, you can choose to package up a set of changes and send them to an upstream repository. Thus, you can commit changes without having to have commit rights to a central repository.

Do all changes need to be pushed to all the available repositories? Or what happens if there are more than, say, 2-3 repositories out there?

Well, Linux is a good example. It uses git, which is similar to darcs but on crack and without even a modicum of Windows support. Earlier, it used BitKeeper. What you have in Linux is a mainline repository, managed primarily by Linus Torvalds, but experimental work is done in other repositories. In essence, each working copy/repository can 'branch' without doing so explicitly, and then you can either 'push' changes (over email, HTTP, SSH, etc.) to a remote repository, or someone can 'pull' changes (usually over HTTP) from you.

If anyone can host their own repository - what's the difference between a checked-out working copy and a repository? Can a code base be both at once, or is there still a client-server structure in spite of the decentralization?

There is absolutely no difference. Any darcs working copy exposed over HTTP is automatically a read-only repository. That's how I'm pulling Khoth's changes and mirroring them.

Sorry if I'm asking dumb questions, but Wikipedia can only take you so far and I've never heard of darcs before...

Eh, it's not dumb. darcs in particular and distributed SCMs in general are pretty new. But the important thing is to realize that one can use darcs just like Subversion, if you like -- one person has a public repository crowned the "official" one, and everyone pushes and pulls changes from that. But an added benefit is that if you're making a lot of major changes, or if you have local changes you want to keep to yourself, you can still have a regular update-modify-update-commit cycle, without having to worry about making an explicit branch, polluting upstream, or even having commit access.

There are a lot of pretty good arguments for Subversion, and there are good arguments for the plethora of DSCMs available out there today. They both have distinct advantages. However, when it comes to a loosely-knit open source project like this, there's a definite advantage to distributed systems.

--------------------
Pygmalion | Desperance | Djur
Posts: 1074 | Registered: Wednesday, October 3 2001 07:00
Law Bringer
Member # 2984
Profile Homepage #18
Okay, I think I get it.

I also would guess that you spend more time pulling changes to keep your own repository in line with the rest, than pushing changes to the others.

And if an SVN repository exists at the same time, there would effectively be a gatekeeper (or several) who pull changes from the other developers, review them and commit them to the central codebase.

What defines an "upstream" repository? Is it defined by the system or does the term apply to any repository that pulls the changes from many other developers and acts as a kind of "local central"?

This sounds new and a bit weird and somehow not likely to work, but I probably thought the same when I first heard of Linux. :P

[ Tuesday, May 29, 2007 20:15: Message edited by: Dr. Johann Georg Faust ]

--------------------
EncyclopaediaArchivesMembersRSS [Topic / Forum] • BlogPolarisNaNoWriMo
Look on my works, ye mighty, and despair.
I have a love of woodwind instruments.
Posts: 8752 | Registered: Wednesday, May 14 2003 07:00
Babelicious
Member # 39
Profile Homepage #19
quote:
Originally written by Dr. Johann Georg Faust:

Okay, I think I get it.

I also would guess that you spend more time pulling changes to keep your own repository in line with the rest, than pushing changes to the others.

Well, that depends on the development model.

quote:

And if an SVN repository exists at the same time, there would effectively be a gatekeeper (or several) who pull changes from the other developers, review them and commit them to the central codebase.

Yep. There are also tools like tailor, which convert repositories from one format to another, and numerous gateways providing SVN interfaces to things like darcs, arch, git, etc.

One specific example here is the Ruby programming language. For a while now, it's been in Subversion (and before, it was in CVS), but a number of developers use git to manage their local changes before making big commits. Including matz, the language's creator and lead developer.

quote:
What defines an "upstream" repository? Is it defined by the system or does the term apply to any repository that pulls the changes from many other developers and acts as a kind of "local central"?
You'll have to forgive me. I was lazily mis-using some programmer slang. What I was trying to communicate was that you might want to share changes with other developers without potentially messing up the version in the main repository. This is a common issue with Subversion. Branching helps, but it can become kind of a pain in the ass to maintain. Distributed systems allow you to go essentially branch-free by just sharing the patchsets you want with specific developers, while pushing relevant changes to a central repository -- or not. Which can also be a pain in the ass, but a different kind.

It's important to realize that the feature set of a distributed SCM is a strict superset of the feature set of a non-distributed SCM. Generally speaking, darcs/git/arch/monotone/mercurial/etc/etc can do everything that Subversion can do. The advantages for Subversion are mostly the same advantages that CVS had traditionally -- more mature, more universal, better support from third-party tools.

quote:
This sounds new and a bit weird and somehow not likely to work, but I probably thought the same when I first heard of Linux. :P
Linux is the example you want. It has been successfully developed for years using a distributed model that would have been difficult if not impossible with Subversion.

--------------------
Pygmalion | Desperance | Djur
Posts: 1074 | Registered: Wednesday, October 3 2001 07:00