Bobdevis' Diablo and Hellfire project

All the inane chatter goes in here. If you're curious about whether we will support a game, post HERE not in General Discussion :)

Moderator: ScummVM Team

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Bobdevis' Diablo and Hellfire project

Post by bobdevis » Thu Nov 18, 2010 1:11 pm

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.

User avatar
Strangerke
ScummVM Developer
Posts: 333
Joined: Wed Sep 06, 2006 8:39 am
Location: Belgium

Post by Strangerke » Thu Nov 18, 2010 2:09 pm

VERY nice! :)
I have several originals, tell me if you need a tester!

User avatar
Red_Breast
Posts: 785
Joined: Tue Sep 30, 2008 10:33 pm
Location: The Bar Of Gold, Upper Swandam Lane.

Post by Red_Breast » Thu Nov 18, 2010 3:30 pm

I've never been into any of Blizzard's games myself but good luck with the project Bob.

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Thu Nov 18, 2010 5:44 pm

Strangerke wrote:VERY nice! :)
I have several originals, tell me if you need a tester!
There is only one required game file for classic mode, its the big beefy diabdat.mpq file.
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.

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Thu Dec 02, 2010 4:50 pm

Figured out how to do the map (and have it auto-update) without eating too much resources.

Image

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Tue Apr 26, 2011 4:40 pm

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)

Image

tueidj
Posts: 1
Joined: Wed May 04, 2011 7:17 am

Post by tueidj » Wed May 04, 2011 7:22 am

This is looking really impressive. I'd love to get a look at the source code, I could maybe help out if you still want help getting it packaged up properly.

User avatar
Strangerke
ScummVM Developer
Posts: 333
Joined: Wed Sep 06, 2006 8:39 am
Location: Belgium

Post by Strangerke » Wed May 04, 2011 7:28 am

bobdevis: impressive, once more. Do you have a site, or a blog? I'm eager to read more and to see more screenshots :)

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Wed May 04, 2011 10:03 am

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.

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Thu Jun 16, 2011 11:29 pm

Some more stuff I can show today.
I have been busy with the lighting, wall transparency and build a part of the Hell levels.

This is a (scaled down) screenshot of Level 16
Image

KuroShiro
Posts: 455
Joined: Thu May 15, 2008 7:42 am
Location: Miyazaki, Japan

Post by KuroShiro » Fri Jun 17, 2011 12:36 am

Wow... that brings back memories. Keep it up, it's looking like a great project.

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Thu Jul 21, 2011 1:17 am

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....
Image


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...
Image


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.
Image


And here is Big Daddy himself. Just running around aimlessly when summoned because I only did a place-holder AI for now...
Image

User avatar
md5
ScummVM Developer
Posts: 2261
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 » Thu Jul 21, 2011 8:09 am

Thumbs up! Great progress :)

User avatar
maximus
Posts: 101
Joined: Sun Jan 06, 2008 4:17 pm
Location: Toronto, Ontario

Post by maximus » Thu Jul 21, 2011 2:33 pm

I can't seem to find this on github yet ... any chance the source is coming soon? :)

PS. Great job so far :)

User avatar
bobdevis
Posts: 563
Joined: Fri Jan 16, 2009 10:52 am

Post by bobdevis » Thu Jul 21, 2011 5:16 pm

Well I guess I can dump a very user unfriendly Linux-only tarball on Sourceforge some time soon.

I just need to make sure I scrub all the copyrighted nomenclature from the source and script files first.....

Post Reply