[Code] What would you redo from scratch?

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Andrea B Previtera

[Code] What would you redo from scratch?

Post by Andrea B Previtera »

Just to know... What would you completely redo of the Exult Engine if you were to go for a "2.0 / Rewrite" route? Or, better, *how* would you redo it? Actually it's not "just to know", I would be interested in joining the team in the eventuality of such a project. It would be my best chance to learn how to work with CVS (I always did "solo" coding) and to refresh my C/C++ skills..
mark mitchell

Re: [Code] What would you redo from scratch?

Post by mark mitchell »

Hmmmmm
Unlimited world size, unlimited items/npc's, multiple world maps, chunkless world editing, unlimited z axis, more terrain options (banks/cliffs/enscarpments)
marzo
Site Admin
Posts: 1925
Joined: Thu May 14, 2020 1:34 pm

Re: [Code] What would you redo from scratch?

Post by marzo »

@mark: I don't think Andrea asked for a wish-list filled with already-existing (or nearly so) features; but rather, I think he is asking what would we (the Exult team) rewrite from scratch in the existing code for better performance/extensibility/modifiability/elegance/all of the above. I deal with your wish-list at the end of the message.

@Andrea: These might or might not be for 2.0, but, off the top of my head:
For starters, there is the audio buffering system; it works quite well, but it could be improved to also cache music and voice similarly to what is done for SFX. This would require a rewrite of the interfaces exposed by the audio subsystem and a consolidation of audio code throughout Exult.

Then there are gumps. They are currently hard-coded, and it would be good to change that. Particularly so that they can be customized for mods. It would even allow that pesky, often requested feature of giving Trellek his custom gump, as well as allowing the possibility of a custom paperdoll for characters such as Spark (so that he is not so buff). Or allow spellbooks with more than 8 spells per level.

A graphical subsystem overhaul and consolidation would also be good. The ability to chain scalers (like Pentagram does) or to have different layers, each with its own scale (again, IIRC, like Pentagram does), would both be very nice to have and would require a massive rewrite. It would also allow aspect correction to be done more transparently (although optimized combined aspect correction/scaling would probably work faster and better).

Now for the wish-list:
unlimited items
There isn't a limit for that (except for storage space and physical memory limits).
[unlimited] npc's
Again, 65530 NPCs (not counting "temporary" NPCs created by eggs or usecode, which can also be given unique identities/dialog) is not enough? Do you *really* need that many NPCs?
multiple world maps,
We have those already (up to 255 additional maps).
chunkless world editing,
Which would break the original games, defeating the whole premise of Exult.
unlimited z axis,
It is already in the process of being extended to 256 levels; that already allows buildings about 16 times higher than those from the original games. Does it *really* need to be more?
more terrain options (banks/cliffs/enscarpments)
That would be more of a graphics issue (as in, someone doing these terrain types) than an engine limitation.
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Andrea B Previtera

Re: [Code] What would you redo from scratch?

Post by Andrea B Previtera »

@Marzo: Given what you mentioned, I think the idea is to rewrite the engine to allow for all of the characteristics of U7, without really bend the code around U7 files format. This is after all what happened with the original exult development since it was born as an U7 file viewer.

Then, there should be an adaptation layer (or a "physical" reworkment) of the original data files to fit the new engine.

Also: is it really a good idea to keep Exult still attached to the SDL libraries? I am not really into SDL but from what I've seen I got the feeling that, portability aside, the whole "framework" is a bit flaky and sports a good number of limitations.
wjp
Site Admin
Posts: 1708
Joined: Thu May 14, 2020 1:34 pm

Re: [Code] What would you redo from scratch?

Post by wjp »

I wouldn't want to rewrite Exult from scratch, but if I did, I'd still choose to use SDL. Are there any specific limitations that would make you choose something else?
Andrea B Previtera

Re: [Code] What would you redo from scratch?

Post by Andrea B Previtera »

Well actually to be honest mostly I am referring to using Opengl within SDL, which I found a bit crippling - but I am still talking of an experience that dates back to 2004. Said that, I think shaders, for instance, are something that could be very useful. The scalers itself could be written using the Opengl shading language, I believe - not to mention advanced lighting and more.

Btw... why wouldn't you rewrite Exult from scratch? (Let apart the obvious reasons ;) )
artaxerxes
Site Admin
Posts: 1310
Joined: Thu May 14, 2020 1:34 pm

Re: [Code] What would you redo from scratch?

Post by artaxerxes »

oh, and CVS is not gonna stay for long IIRC (and you may want to start to learn SVN)

Artaxerxes
Locked