Jump to content

Redo?


Zalatar

Recommended Posts

I think that BOE should be rewritten. Start from scratch.

Honestly, if BOE were written well enough in the first place BOE could have all sorts of crazy features but bugs are still being found and are being squashed and found at almost the same rate. And squashing bugs is hard! And simply increasing the max hp or max level with no odd effects took me about 15 minutes! I think that BOE should be split into a few parts and use more techniques such as classes and member functions. I think that the actual game code (not the making windows, receiving input, and doing dialogs) should be completely portable. It is almost completely NOT portable.

The dialogs aren't even portable between the related executables! I'm using Ormus's Win32 Boe (from roughly March 2008) and I can't get the item editor from the scenario editor to work right on the character editor!

Ideally, the only operating system specific code should be the code that is in charge of files and windows. Perhaps a file class that uses system specific code to open a file and write to it. The window class should be in charge of receiving keyboard strokes into a queue and storing mouse information. Also a dialog class that runs on a window to manage ... well... dialogs. The window should also have it's own internal bitmap to paste to the window on the paint cycle. That would really increase the speed of drawing because I've found the operating system drawing commands to be rather slow compared to hard-coded and specifically specialized drawing functions. Fonts are monochrome bitmaps drawn to first then partitioned.

Everyone who thinks I'm crazy/stupid/idiotic/brilliant? please speak up.

Link to comment
Share on other sites

Are you volunteering? If not, please don't complain about how other people do their work. The folks working on BoE are doing a lovely job, for free, in their spare time.

 

Squashing bugs is hard, yet most of the bugs are squashed, including some we once thought would never be fixed, like the Empties. Celtic Minstrel is rewriting the dialogue engine. We don't want to change the max HP and other stats, because that would unbalance the game. Otherwise we would have. I may be wrong, but I believe they are working on making it portable between Mac OS and Windows. Ormus's work left an extremely buggy, but in many ways improved and in all ways fixable, set of programs, which are now obsolete in light of the newest versions, so I don't know why you're using them anyway.

 

If you'd like to help out, you're welcome, provided you read the threads to see where we're trying to go and how far we are, and a bit of politesse wouldn't hurt.

Link to comment
Share on other sites

Originally Posted By: Zalatar
Honestly, if BOE were written well enough in the first place BOE could have all sorts of crazy features but bugs are still being found and are being squashed and found at almost the same rate. And squashing bugs is hard!

Some part will have to be rewritten (some have already, for example the drawing process) but i don't think all would have to be rewritten from scratch (I think Nikmind is doing that with his Linux port ... let's hope he also fixs already discovered bugs).
The dialog part is surely to be rewritten and Celtic Minstrel has already done that in his version of the code (if i'm not mistaken).
Concerning bugs, i actually have a shortage of such to fix ... Unless someone find or i stumbled across one, there's not many which remains to fix (and it means, rewritten is the next step). Besides rewriting the game from scratch won't fix the bug that is present in the game mechanisms (unless you change them too, but that would break any legacy compatibility ...)

By the way,
Originally Posted By: Zalatar
all sorts of crazy features

feel free to add them to the compiled suggestion thread.
If not too crazy, we'll surely implement them smile

Originally Posted By: Zalatar
I think that BOE should be split into a few parts and use more techniques such as classes and member functions. I think that the actual game code (not the making windows, receiving input, and doing dialogs) should be completely portable. It is almost completely NOT portable.

That's why it is progressively being ported to C++ (mostly by Celtic Minstrel though).
However, apart from OS specific code (Windows and dialog handling, input, sound, ...), what is not portable ?

Originally Posted By: Zalatar
Ideally, the only operating system specific code should be the code that is in charge of files and windows.

Isn't it the case ? We found a few differences between Mac and Windows version but i think we merged them ...

Originally Posted By: Zalatar
And simply increasing the max hp or max level with no odd effects took me about 15 minutes!

That's because you're not familiar with the code already (that and the lacks of proper code documentation) wink

Originally Posted By: Zalatar
I'm using Ormus's Win32 Boe (from roughly March 2008) and I can't get the item editor from the scenario editor to work right on the character editor!

If you're using Ormus' version of the character editor, the item list is hardcoded (it's roughtly the bladbase.exs one), thus copy/pasting the code won't achieve much.
But I agree, dialogs are quite a mess in the (my version of the) code.

Originally Posted By: Zalatar
That would really increase the speed of drawing because I've found the operating system drawing commands to be rather slow compared to hard-coded and specifically specialized drawing functions.

The game was using an intermediate storage sheet slowing down the drawing process (that and trims were drawed on wrong terrains or not at all). That has been changed and the game run quite smoothly now (at least, i found it this way).

Originally Posted By: The Almighty Doer of Stuff
I may be wrong, but I believe they are working on making it portable between Mac OS and Windows

On the executable side, Classic BoE is able to read savefiles/scenarios with either endianness (i.e coming from Mac PPC or Intel architecture).
On the code side, when the dialogs code will have been isolated i think it would be far easier to make a common portable build (using QT or whatever).

Overall, like ADoS said, check the last version (Classic BoE since you seems to be using Windows) and, if you want to, you're welcome to help. smile

Chokboyz
Link to comment
Share on other sites

Originally Posted By: Zalatar
I think that BOE should be rewritten. Start from scratch.
Too much work. wink

Originally Posted By: Zalatar
I think that BOE should be split into a few parts and use more techniques such as classes and member functions.
I am doing this. Ormus was also doing this. Unfortunately, my version can't be compatibile with what Ormus did though. Anyway, I am using classes and member functions and such stuff.

Originally Posted By: Zalatar
I think that the actual game code (not the making windows, receiving input, and doing dialogs) should be completely portable. It is almost completely NOT portable.
First, ideally it would be possible to compile the same code on both Mac and Windows (using conditional compilation if necessary, but mostly by using portable libraries). Secondly, you're wrong about it being completely not portable. All the game logic is completely portable; the only trouble is that in some places the game logic is mixed up with the application logic.

Originally Posted By: Zalatar
The dialogs aren't even portable between the related executables!
If/when Chokboyz implements my version of the dialog engine, they will be – it's an XML dialog format. (At the moment the dialog engine sort of works, but it's not stable yet.)

Originally Posted By: Zalatar
Ideally, the only operating system specific code should be the code that is in charge of files and windows.
Not even that. The file handling code should certainly not be operating system specific since we have the standard stream library at our disposal.

Originally Posted By: Zalatar
Perhaps a file class that uses system specific code to open a file and write to it.
Why reinvent the wheel? We have the standard stream library to open files and read and write files.

Originally Posted By: Zalatar
The window class should be in charge of receiving keyboard strokes into a queue and storing mouse information.
While this is not a bad idea, it's also not what is currently planned. I have no intention of moving away from the event loop method of receiving input. In fact, I doubt it would be beneficial to do so (though it probably wouldn't hurt).

Originally Posted By: Zalatar
Also a dialog class that runs on a window to manage ... well... dialogs.
I'm not sure what you mean exactly by "running on a window that manages dialogs". I do currently have a dialog class – it wraps an OS-specific window and its BoE-style dialog controls.

Originally Posted By: Zalatar
The window should also have it's own internal bitmap to paste to the window on the paint cycle.
This is already the case, though it's not a C++ class we're talking about.

Originally Posted By: Zalatar
That would really increase the speed of drawing because I've found the operating system drawing commands to be rather slow compared to hard-coded and specifically specialized drawing functions.
I doubt speed is truly an issue though. The drawing seems fast enough to me. Jeff's code also uses a few tricks to avoid unnecessary drawing.

Originally Posted By: Chokboyz
The dialog part is surely to be rewritten and Celtic Minstrel has already done that in his version of the code (if i'm not mistaken).
It's "done", but not stable. That is, it's buggy.
Link to comment
Share on other sites

I'm sorry. I haven't done much related to blades of exile for a long time and only posted on this forum about 3 days ago, so I still have to catch up. does anybody know who has the latest code of boe? Because I've been trying to find it and apparently everybody else knows but me!

 

[edit] Wow. I feel REALLY stupid. It's on the flipping front page for the blades of exile forum head. Everyone has permission to call me stupid.

 

[edit] LOL! Chokboyoz submitted it while I was doing the previous edit!

Link to comment
Share on other sites

Zalatar, if you want to work on the code, email me and I'll give you repository access. (You need to get a Google account first if you don't have one already, but that only takes a short time.)

 

I don't advise literally starting from scratch, but if you want to experiment with radical changes (preferably moving towards something like wxWidgets) then I could create a branch for you.

 

Would you be programming for Windows or for Mac? Or both? Or even Linux?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...