We love Blizzard's popular game, Diablo. We love it so much, in fact, that we're willing to spend our precious time developing a free and open source solution for those wanting to play it on a modern computer.
Short answer, yes. We don't distribute any copyrighted game assets, which means you'll need to have a copy of Diablo to be able to play.
So, I’ve gotten the main renderer ported to OpenGL instead of using SDL2 (still using SDL2 for input, audio, window + OpenGL context creation, so it’s by no means gone).
The code is still a bit of a mess, and unfortunately libRocket doesn’t work, so there’s no GUI at the moment. If you’re curious, you can see the code here: https://github.com/wheybags/freeablo/pull/250
Why would you want this? OpenGL lets us use programmable shaders, so we can do fancy lighting effects, instead of just dumping images on top of eachother.
So, what about the GUI? Well, libRocket hasn’t been working out as fantastically as I had hoped. It is a fairly dead library (there is a guy maintaining it on life support, but it needs much more work), and has problems with memory leaks that are unlikely to get solved. It also uses python as it’s scripting language (actually supports lua now too, but it would be as much work to switch to that as to just dump it), which is kind of just a bad choice for this project.
I want to allow mod developers to write script code for their mods, so preferably the scripting language would be sandboxed from doing bad things like network and disk I/O, but with python this just in’t possible. As well, the libRocket rcss and rml languages are close enough to html/css that you try to use the tricks you know from that space, but far enough that the tricks don’t work.
So, I’ve decided that as part of this port, I will just switch GUI library too. The current front-runner is MyGUI, with some custom lua script bindings. This is the gui library used in OpenMW (awesome project, check it out if you haven’t heard of it). A lot of my technical decisions so far have been based on OpenMW, so in a sense this is just following that trend.
Finally for the programmers reading this, I wanted to plug an awesome utility that I’ve found out about recently, and will definitely be using in freeablo in the future: Hunter
Hunter is a cmake library that acts as a package manager for c/c++. This is amazing because the most awkward thing about working with these languages is the immense pain involved in getting your code to build and link (especially getting it to build and link on other people’s computers). Hunter solves this problem by downloading the source of the library, building it as a static library and linking it in, all from within a few lines of CMake.
So, yeah, Hunter is great, use it :p
Thanks to konopka90 and pengyz, we now have pathfinding in freeablo!
You can now hit things until they fall over, even in multiplayer!
Also, the multiplayer code has been massively overhauled, so things are in a much better state for moving forward.
Anyway, here’s a quick video of some things being hit until they fall over:
There’s been some progress on multiplayer, I’ve been working to switch to a unit tested serialisation framework based on the gafferongames article series here.
So far most stuff is working, with the notable exception of monsters in the dungeon. Below is a short video demo:
Also, another big announcement, following this forum post, brightlord, the developer behind the Diablo 1 HD mod/Tchernobog has shared the sources for Tchernobog with me to use as a resource for the further development of freeablo. So, a big thanks to him for that, and here’s hoping it’ll come in useful in the future. I’m afraid, however, I can’t share the sources at the moment, but chunks of them will probably end up in the freeablo codebase.
Hey, so not much has been happening in the past month or so because work was pretty hectic for me and I had no free time to work on freeablo.
The good news is that has changed. MP is pretty close to done, expect a proper video of that soon.
Also, the forums were absolutely inundated with spam, that’s been fixed now, and hopefully won’t happen again, as I’ve enabled captchas for signup.
Probably the only feature half of you even care about :p
Anyway, perhaps an overstatement, as what you see is just the player being synced, but I’ve started on implementing mp, so you should be hearing more about it “Soon”
As it says, v0.3 finally released.
Big features this time round are level 3 level generation, and some cool new gui stuff from konopka90 and Exairnous.
Im hoping that for v0.4 I can get a start on combat and multiplayer, so it should be a more exciting one (a lot of the stuff in this release is a bit “invisible” to end users). I’m also gonna try actually write something on here a bit more often, keep it updated with project status and the occasional general interesting gamedev bit I run into.
Anyway, (slightly less) crappy video, and changelog below:
- Bugfix - monsters spawn on level stairs #112 - Threading refactor #107 - Hotkey selection GUI #106 - level 3 dungeon generation #103 - UI chroma key transparency #96 - UI animation #95 - Bugfix - gui clicks register as movement clicks #88 - Initial version of launcher #33 - sound #26 - better celview gui #134 - Bugfix - music memory leak #111 - Bugfix - exit when DIABDAT.MPQ not found #114, #115
Hey all, I updated the website. Finally have themes for wordpress and phpbb that match :3
also, SPINNY PENTAGRAMS
Hello, all. As the title says, v0.2 is released. The big features of this release are the gui, music, and level generation for dungeon level 2. Downloads available at https://github.com/wheybags/freeablo/releases/tag/v0.2
Crappy video and changelog below:
- Bugfix - MPQ filename case sensitivity #78, #76 - Bugfix - Deadlock on caertain command line args - Bugfix - Player-npc clipping #97 - Bugfix - Reading freed memory in FAIO 6f098b1 - Config File parsing #81 - LibRocket Gui framework #82, #86 - Improved CEL rendering #85, #91 - Inventory and char menu placeholders #86 - Pause menu #90 - Main menu #94 - Keybinding configuration framework #98 - Music #99 - SDL1 support removed d4da725 - Dungeon level 2 generation #93
Another short update – I made a media section with some screenshots + a basic video: http://freeablo.org/?page_id=39
BTW: If any of you out there are good at web (or just ordinary) design, it would be nice to get custom wordpress + phpbb themes (that match), and/or a freeablo logo.