wheybags / freeablo

[ARCHIVED] Modern reimplementation of the Diablo 1 game engine
GNU General Public License v3.0
2.16k stars 192 forks source link

DGEngine (Similar Project) #240

Closed ghost closed 6 years ago

ghost commented 8 years ago

Hello,

First of all, congratulations on the great project you have here. I have been working on a similar project and have released a first version of it today. You can find it here: https://github.com/dgengin/DGEngine

I use freeablo's CEL decoding code on it. Hope that's okay.

I will update the wiki later on with more information.

PS: sorry, this isn't an actual issue :)

Edit: So the engine currently mimics the original's menus pixel perfectly, with a few enhancements. (Hint: there is a hidden button in the main screen - Diablo v1.09 which allows you to change some options). What's missing is most of the game code (items, players, etc).

I currently have some things you don't. Feel free to use any part of it as you wish.

I also would like to change the license to zLib or similar. However, I'm using your CEL decoding code (and your Helper2D, Dun, Sol, etc, although these are so small I don't think it matters). And would like to know if it's okay with @wheybags for me to change the license of DGEngine to zLib.

Regards, DGEngine

wheybags commented 8 years ago

Hey, sure, you can use zlin for code I wrote, but I didn't write everything in those files, you'll have to review got history and contact everyone that contributed. However... Any chance you'd consider just contributing to freeablo instead? There are now 4 derivative projects based off freeablo, and I can't help but think that's an awful lot of wasted effort

ghost commented 8 years ago

Hi wheybags, thank you for allowing the license to change to zLib. Like I said, the projects are quite different in terms of architecture. I don't support MPQ archives, use SFML instead of SDL, and don't use libRocket nor Python. I also don't use the original Diablo.exe. All you need is SFML, PhysFS and (optionally) sfeMovie for movie support (can be disabled). This allows me to run the code easily on android and iOS as well, since SFML supports those and PhysFS builds fine on those. So I will continue working on DGEngine, and you can take anything you want from it. I had a few things you didn't (at least in comparison to version 0.3).

Regards, DGEngine

gbudny commented 8 years ago

Hi dgengin,

Do you plan to create a Mac version?

I know that people from Openrw had to remove SFML in order to create a Mac version that uses SDL even if SFML is available for Mac.

I didn't know about the existence of the other projects based off Freeablo. In 2016, there are not too many users who want to run this game on a computer or a smartphone, and this fragmentation of similar projects doesn't solve this issue.

@wheybags

Do you think that Freeablo could be more popular if users can run this game on a smartphone or a tablet?

sskras commented 8 years ago

@dgengin:

I had a few things you didn't (at least in comparison to version 0.3).

Could you at least documents these differences at least? They would be very interesting to see (at least for me:).

wheybags commented 8 years ago

SDL also supports android and iOS, is always presumed freeablo will be ported to android at least at some point. Anyway, if you just want to do this for fun, then carry on, sure, but is I urge you that if you really want a working Foss diablo engine to just contribute to freeablo.

ghost commented 8 years ago

@gbudny I don't own a Mac, so not from me. However, the build instructions from Linux should work well for Mac and SFML and PhysFS build in Mac. You shouldn't get build errors as It compiles on clang, gcc and msvc without errors and I test on all 3 to make sure it continues to compile.

@s4kr4s I have updated the wiki with more information. It's still incomplete, because it's quite a task to document everything. The best way to see what's different from freeablo is to run the code and see. I use the original fonts for everything, including the cel based fonts. I also have scrollable texts. I have the loading screens, video playback (not on the provided release, but support is there and working with the original unmodified videos), I can load/save gamefiles, I can delete gamefiles. I can choose the player class. I support all the original keyboard shortcuts with configuration files + some enhancements (mouse scroll menus, drag scrollbar, etc). I can resize the windows and the elements will anchor to the window or stretch to fill the screen. Small things mostly, but you can see how I did them, in case it's not yet on freeablo.

eresid commented 8 years ago

Very nice source code! And rejection of Boost is a good idea. A few weeks ago I started rewrite freeablo to D language because I cannot support original freeablo's code and also I wanna learn D (it's just for fun). But now I'm confused

Do you think that Freeablo could be more popular if users can run this game on a smartphone or a tablet?

Yeahh :+1:

Do you plan to create a Mac version?

I can compile if need in future

wheybags commented 8 years ago

Also @gbudny, I don't think getting freeablo working on a phone is worth the effort right now. The only reason to get it working across windows Linux and osx is to maximise the population of possible developers, when it's already playable of might make sense to port to android.

@dgengin/@eresid I basically see is getting into the same situation that openmw did, with projects like crystal scrolls etc. It was a huge waste of time and duplicated effort, which I'd really like to avoid. A port to d makes no sense to me, it's too niche a language, it will be really hard to get contributors as noons knows it already (openmw was originally in d and ported to c++ for this reason). Dgengine seems pretty much like the same thing as freeablo to me, just using sfml instead of SDL which tbh is a pretty irrelevant technical detail. And I'm not sure about the future of libRocket and python in freeablo either. Like I said, if its just a side project for yourself, I guess I can't stop you, but it'd really please me to see people backing the one project so we can have a cohesive community.