Bobdevis' Diablo and Hellfire project
Moderator: ScummVM Team
Bobdevis' Diablo and Hellfire project
This has nothing to do with ScummVM or Residual, but you guys inspired me to take on a project in the same spirit and of similar aims that I feel like sharing about here.
When the time comes I will roll a proper site and Source-forge page, but for now please accept this quite off-topic thread.
I am working on a complete reverse engineer of the Diablo1 game and it's Hellfire expansion. With this classic franchise still alive it would be just too bad to let the first game fade into unrunnability.
In time hopefully any device that can offer a c++ compiler, pointing-device, accelerated graphics and threads can be made to run Diablo and Hellfire...
The amount of work still left to be done before the game will actually be playable is substantial. For now I can only offer some screen shots. More is coming..
Main menu.
Credits. Added manual scroll options to the credits screen so you can browse around.
Extra settings. This is in Hellfire mode. OpenGL allows any resolution and zoom level ofcause.
Char creation. Again in Hellfire mode. Since character creation is the ONLY place where the original game forces you to use the keyboard, a nice on-screen keyboard is called for.
Tristram.
More Tristram.
When the time comes I will roll a proper site and Source-forge page, but for now please accept this quite off-topic thread.
I am working on a complete reverse engineer of the Diablo1 game and it's Hellfire expansion. With this classic franchise still alive it would be just too bad to let the first game fade into unrunnability.
In time hopefully any device that can offer a c++ compiler, pointing-device, accelerated graphics and threads can be made to run Diablo and Hellfire...
The amount of work still left to be done before the game will actually be playable is substantial. For now I can only offer some screen shots. More is coming..
Main menu.
Credits. Added manual scroll options to the credits screen so you can browse around.
Extra settings. This is in Hellfire mode. OpenGL allows any resolution and zoom level ofcause.
Char creation. Again in Hellfire mode. Since character creation is the ONLY place where the original game forces you to use the keyboard, a nice on-screen keyboard is called for.
Tristram.
More Tristram.
- Strangerke
- ScummVM Developer
- Posts: 335
- Joined: Wed Sep 06, 2006 8:39 am
- Location: Belgium
- Red_Breast
- Posts: 775
- Joined: Tue Sep 30, 2008 10:33 pm
- Location: The Bar Of Gold, Upper Swandam Lane.
There is only one required game file for classic mode, its the big beefy diabdat.mpq file.Strangerke wrote:VERY nice!
I have several originals, tell me if you need a tester!
For Hellfire mode you additionally need hfmusic.mpq, hfvoice.mpq, hfmonk.mpq and hellfire.mpq.
If you could compare the exact byte size of these files of the different versions, it would be great.
I a especially interested in the Mac version of diabdat.mpq.
If you have that one then I'd love a checksum comparison. (you know, endianness).
Alternatively, you could check compatibility yourself. I still need to wrap my head around the whole proper packaging and distribution of an OSS project, but if you wouldn't mind importing my Eclipse project (on Linux), say so. I'll have you running around my recreated Tristram in no-time.
Haven't updated in a while, but that doesn't mean I stopped working. Here is a problem I ran into while doing monster graphics code;
Diablo does this characteristic 'selection halo' when you mouse-over monsters and items. It's a one-pixel border around the texture in a bright color (as seen on the left).
It turns out you can't do that kind of border with basic OpenGL. You will need to use some pixel-shader that may not be universally supported.
I solved this for now by giving the selected monster a black border and rendering it with some alternative color-channel settings (as seen on the right)
Diablo does this characteristic 'selection halo' when you mouse-over monsters and items. It's a one-pixel border around the texture in a bright color (as seen on the left).
It turns out you can't do that kind of border with basic OpenGL. You will need to use some pixel-shader that may not be universally supported.
I solved this for now by giving the selected monster a black border and rendering it with some alternative color-channel settings (as seen on the right)
- Strangerke
- ScummVM Developer
- Posts: 335
- Joined: Wed Sep 06, 2006 8:39 am
- Location: Belgium
Thanks for the interest but for now I have to ask you to have patience, unfortunately.
When you can actually play a level (and not just walk around in Tristram), I'll do the Blog/SourceForge page sharing thing.
There are still some bumps in the road ahead that may force me to rewrite large chunks (I am still struggling with the random level generator concept) so I feel that I'm not ready to show the thing to the public yet.
When you can actually play a level (and not just walk around in Tristram), I'll do the Blog/SourceForge page sharing thing.
There are still some bumps in the road ahead that may force me to rewrite large chunks (I am still struggling with the random level generator concept) so I feel that I'm not ready to show the thing to the public yet.
Some more stuff today;
Started working on the code for items.
I wonder if I should respect the 5000/stack gold cap or allow billions to be stacked. There needs to be support for very big numbers anyway because of how the experience points work....
Added support for the narrated books (seen here on an empty level).
Adjusting the scroll speed to fit the voice exactly will be a bit impossible. What I did instead is add a scrollbar so the player will be able to adjust, or scroll back up to re-read.
As you can see, the code that determines where to add hard-returns in the text is a bit crude for now, but it works...
Did the code to allow levels to be changed (and the changes to be saved!) on the fly. A big headache this is, because not only will there be level altering levers on predetermined levels (like level 16, as shown) but also on random generated ones.
And here is Big Daddy himself. Just running around aimlessly when summoned because I only did a place-holder AI for now...
Started working on the code for items.
I wonder if I should respect the 5000/stack gold cap or allow billions to be stacked. There needs to be support for very big numbers anyway because of how the experience points work....
Added support for the narrated books (seen here on an empty level).
Adjusting the scroll speed to fit the voice exactly will be a bit impossible. What I did instead is add a scrollbar so the player will be able to adjust, or scroll back up to re-read.
As you can see, the code that determines where to add hard-returns in the text is a bit crude for now, but it works...
Did the code to allow levels to be changed (and the changes to be saved!) on the fly. A big headache this is, because not only will there be level altering levers on predetermined levels (like level 16, as shown) but also on random generated ones.
And here is Big Daddy himself. Just running around aimlessly when summoned because I only did a place-holder AI for now...