diablo 2 screenshots, lazy loading images, add stuff to meta keywords

This commit is contained in:
wgroeneveld 2020-12-13 21:19:52 +01:00
parent 76fa6d8ad9
commit fa12aa57c2
21 changed files with 133 additions and 22 deletions

View File

@ -14,11 +14,14 @@ summaryLength = 20
email = "wouter.groeneveld@gmail.com"
[markup]
defaultMarkdownHandler = "blackfriday"
defaultMarkdownHandler = "goldmark"
[markup.goldmark.renderer]
unsafe= true
[params]
description = "Retro game thoughts"
copyright = "<a href='/no-copyright'>No &copy; reserved - sharing is caring</a>. <br/>An integral part of <a href='https://brainbaking.com/' target='_blank'>Brain Baking</a>."
copyright = "<a href='/no-copyright'>No &copy; reserved - sharing is caring</a>. <br/>An integral part of <a href='https://brainbaking.com/' rel='noopener' target='_blank'>Brain Baking</a>."
sidebarAbout = [
"Youre browsing “The Codex”, a dedicated and highly opinionated website about nostalgic games that left a lasting impression on me."
]

View File

@ -0,0 +1,106 @@
---
image: "/img/games/diablo2/cover.jpg"
date: "2020-12-13"
title: "Diablo 2 twenty years later: a retrospective"
tags:
- 'Diablo 2'
- 'hack and slash'
- 'diablo'
- 'retrospective'
game_platform: 'pc'
played_on: 'winxp'
howlongtobeat_id: 2512
howlongtobeat_hrs: 35.5
draft: true
game_name: 'Diablo 2'
description: "2020 marks the 20th anniversary of the beloved and mostly undisputed hack and slash king, Diablo II. Does it still hold up, twenty years later, compared to modern Diablo clones?"
game_genre: 'Hack and Slash'
game_release_year: '2000'
game_developer: 'Blizzard North'
---
a
## 1. World Design
a
a
### Graphics
![](/img/games/diablo2/crystallinepassage.jpg "The Crystalline Passage, a typical dark and grim dungeon.")
a
a
a
![](/img/games/diablo2/talrasha.jpg "Tal Rasha's chamber - be ready to face Duriel! Note the thick fog of war.")
### Enemies and Mobs
a
a
![](/img/games/diablo2/mobs.jpg "Killing mobs in Act IV and hoping for something good.")
a
### Quests
a
a
a
![](/img/games/diablo2/baal.jpg "The Main Quest: kill All Evil. I'm about to hand it to Baal for the first time.")
## 2. Loot
a
a
![](/img/games/diablo2/loot.jpg "Wow, my topaz-socketed 72% magic find helmet pays off in Nightmare!")
a
## 3. Character Progression
### Attributes
a
![](/img/games/diablo2/stats.jpg "The Druid skill tree and my stats. Hurricane gets damage bonuses from other skills.")
a
a
![](/img/games/diablo2/items.jpg "Look ma, unique stuff!")
## 4. Ambience
### Sound and Music
a
a
### Cinematic
a
![](/img/games/diablo2/inhouses.jpg "Scouring for chests in the remains of Lower Kurast.")
## To Conclude
a

View File

@ -21,9 +21,9 @@ In my earlier article '[Diablo III: Diablo for kids](/articles/diablo-for-kids/)
## 1. World Design
Sanctuary, the 'mortal world', hasn't changed: destruction is still the norm, spoiled grain and broke farmers still in habit it, and there's also a hero to save it from happening again (that is, until Diablo IV). Oldies return such as Decard Cain, and players familiar with the Diablo world will immediately feel at home. The areas to explore are vast and neatly connected, with quick ways to jump between waypoints using the overworld map. I particularly liked the first and second world, and the expansion content. The high heavens felt a bit bland to me.
Sanctuary, the 'mortal world', hasn't changed: destruction is still the norm, spoiled grain and broke farmers still in habit it, and there's also a hero to save it from happening again (that is, until Diablo IV). Oldies return such as Deckard Cain, and players familiar with the Diablo world will immediately feel at home. The areas to explore are vast and neatly connected, with quick ways to jump between waypoints using the overworld map. I particularly liked the first and second world, and the expansion content. The high heavens felt a bit bland to me.
I think it's safe to say that Blizzard knows how to create engrossing worlds. This time, NPCs and recruitable followers are especially chatty, and there are journals to be found that are all voiced and give more background insight in the main story. Sometimes, it's a bit too much, and you just want to kill stuff; I've had these dialogs during intensive fights and they can certainly feel inappropriate at times. Dungeons are still interesting enough to explore and procedurally generated, there is enough variety and everything feels tight. A bit of the gritty-ness of its predecessor is lost though: the sewers beneath Kurast are _much_ more dark than anything you'll find in here. Still, the atmosphere is good and it did not bother me that much, except in supposedly creepy dungeons with end bosses such as The Butcher that are ridiculously colored with bright reds and flamy oranges instead of dim shades of gray.
I think it's safe to say that Blizzard knows how to create engrossing worlds. This time, NPCs and recruitable followers are especially chatty, and there are journals to be found that are all voiced and give more background insight in the main story. Sometimes, it's a bit too much, and you just want to kill stuff; I've had these dialogs during intensive fights and they can certainly feel inappropriate at times. Dungeons are still interesting enough to explore and procedurally generated, there is enough variety and everything feels tight. A bit of the gritty-ness of its predecessor is lost though: the sewers beneath Kurast are _much_ more dark than anything you'll find in here. Still, the atmosphere is good and it did not bother me that much, except in supposedly creepy dungeons with end bosses such as The Butcher that are ridiculously colored with bright reds and flamy oranges instead of dim shades of gray. Speaking of The Butcher: compared to Diablo 2, act bosses are ridiculously big, and I sometimes wonder whether I'm playing a console jRPG instead of a western H&S. That is definitely _not_ a good thing. Not everything needs to be grand in order to be good - something that only Blizzard North folks seemed to understand.
### Graphics

View File

@ -62,7 +62,7 @@ Subquests are more fun than in Diablo 2 simply because Diablo merely has any. Ho
## 2. Loot
The loot system might be my biggest problem with Sacred. In a hack & slash game, the reward loop is the most important principle: click click click, a shiny item drops, you pick it up saying "wow", and continue to click frenetically on everything that moves. The problem isn't that Sacred does not have loot: it's that it simply does not appear. Towns are full of small houses with chests: don't bother, it contains max. 500 gold pieces. Sometimes, you come across a small cavern to explore: don't bother, it doesn't even contain a proper mob.
The loot system might be my biggest problem with Sacred. In a hack & slash game, the reward loop is the most important principle: click click click, a shiny item drops, you pick it up saying "wow", and continue to click frenetically on everything that moves. The problem isn't that Sacred does not have a lot of great loot: it's that it simply does not appear. Towns are full of small houses with chests: don't bother, it contains max. 500 gold pieces. Sometimes, you come across a small cavern to explore: don't bother, it doesn't even contain a proper mob.
Money is completely useless in this game. I ended up with a million in cash, unable to sink it into something like a gambling merchant. And you better pick the "trading"/"merchant" skill as your character levels up: it is supposed to increase the likelihood of encountering rares in the shop. Item rarity categories are the same as in D2. My vampiress used the same sword and shield for the whole second half of the game! Damage does increase through stat boosts, but my item hunger was not fulfilled at all.
@ -70,7 +70,7 @@ Money is completely useless in this game. I ended up with a million in cash, una
Nice items do drop now and then - specialized gear for other classes, of course. And no, there's no way to transfer that item to your other builds. What a missed opportunity. The blue chest in the town square used to store your stuff does not transfer over to other saves or new games (sure, there are [complicated ways of doing that](http://darkmatters.org/forums/index.php?/topic/14579-transfering-items/) using multiplayer games). That would have been a great incentive to replay the game with another class. There's a +% money drop item stat, but I have not encountered the classic "magic find". Proper item drops should encourage exploration, questing, and killing stuff. Instead, I stopped caring about chests all together. Isn't that depressing in a game like this, to not care about the contents of a chest?
As the [game difficulty](http://www.sacredwiki.org/index.php/Sacred:Game_Difficulty) ramps up, so do modifiers of items. For example, in the Bronze difficulty, an item would grant you `+15%` attack. In Silver, that would be `+20%`. The game difficulty should also affect the quality of items being dropped, but I haven't encountered a single chest in Silver so far that wasn't abysmal. Compare that with your Diablo hell runs and you know wny I'm that upset. Even the timed chests in [Diablo III](articles/diablo-for-kids/) are more amusing.
As the [game difficulty](http://www.sacredwiki.org/index.php/Sacred:Game_Difficulty) ramps up, so do modifiers of items. For example, in the Bronze difficulty, an item would grant you `+15%` attack. In Silver, that would be `+20%`. The game difficulty should also affect the quality of items being dropped, but I haven't encountered a single chest in Silver so far that wasn't abysmal. Compare that with your Diablo hell runs (even in normal I've encountered a lot more usable things) and you know wny I'm that upset. Even the timed chests in [Diablo III](articles/reviews/diablo-3/) are more amusing.
## 3. Character Progression

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View File

@ -48,7 +48,7 @@
&-offcanvas
@media screen and (max-width: 767px)
left: -46%
left: -46% !important
hr
border-top: 1px solid var(--accent)

View File

@ -0,0 +1,8 @@
<figure>
<a href="{{ .Destination | safeURL }}" class="lbox">
<img class="lazyload img-responsive" data-src="{{ .Destination | safeURL }}" {{ with .Text }} alt="{{ . }}"{{ end }} {{ with .Title}} title="{{ . }}"{{ end }}>
</a>
{{ with .Title }}
<figcaption>{{ . }}</figcaption>
{{ end }}
</figure>

View File

@ -25,16 +25,7 @@
<hr/>
</header>
<!-- thanks https://www.godo.dev/tutorials/hugo-image-figure-wrap/ -->
{{ $reAltIn := "<p><img src=\"([^\"]+)\" alt=\"([^\"]*)\" /></p>" }}
{{ $reAltOut := "<figure><a href=\"$1\" class=\"lbox\"><img class=\"img-responsive\" src=\"$1\" alt=\"$2\"></a></figure>" }}
{{ $altContent := .Content | replaceRE $reAltIn $reAltOut | safeHTML }}
{{ $reAltTitleIn := "<p><img src=\"([^\"]+)\" alt=\"([^\"]*)\" title=\"([^\"]+)\" /></p>" }}
{{ $reAltTitleOut := "<figure><a href=\"$1\" class=\"lbox\"><img class=\"img-responsive\" src=\"$1\" title=\"$3\"></a><figcaption>$3</figcaption></figure>" }}
{{ $finalContent := $altContent | replaceRE $reAltTitleIn $reAltTitleOut | safeHTML }}
{{ $finalContent }}
{{ .Content | safeHTML }}
{{ if isset $.Params "played_on" }}
<div class="categories">

View File

@ -3,7 +3,7 @@
{{ partial "mobile_nav_toggle.html" . }}
<div class="col-lg-8">
<img src="/img/logo.png"/>
<img src="/img/logo.png" class="logo"/>
<article>
{{ .Content }}
</article>

View File

@ -1,3 +1,4 @@
<footer>
<a style="cursor: pointer;" id="totop" class="no-border"><img src="/img/bg-back.gif" class="no-border" alt="back to top" /></a>
</footer>
<script src="/js/lazysizes.min.js" async></script>

View File

@ -9,9 +9,9 @@
<meta name="description" content="{{ .Site.Title }} - {{ .Site.Title }}">
{{ if .Keywords }}
<meta content="{{ delimit .Keywords ", " }}" name="keywords">
<meta content="{{ delimit .Keywords ", " }}, {{ .Title }}" name="keywords">
{{ else if .Params.tags }}
<meta content="{{ delimit .Params.tags ", " }}" name="keywords">
<meta content="{{ delimit .Params.tags ", " }}, {{ .Title }}" name="keywords">
{{ end }}
<!-- opengraph meta -->

View File

@ -35,10 +35,10 @@
&nbsp;Release year: {{ . }}<br/>
{{ end }}
{{ with .Params.game_developer }}
&nbsp;Developer: <a href="https://en.wikipedia.org/wiki/{{ . }}" target="_blank" class="external">{{ . }}</a><br/>
&nbsp;Developer: <a href="https://en.wikipedia.org/wiki/{{ . }}" target="_blank" rel="noopener" class="external">{{ . }}</a><br/>
{{ end }}
{{ with .Params.howlongtobeat_id }}
&nbsp;<a href="https://howlongtobeat.com/game?id={{ . }}" target="_blank" class="external">How long to beat</a>
&nbsp;<a href="https://howlongtobeat.com/game?id={{ . }}" target="_blank" rel="noopener" class="external">How long to beat</a>
{{ end }}
{{ with .Params.howlongtobeat_hrs }}
: <code>{{ . }}</code> hours<br/>

File diff suppressed because one or more lines are too long