leilukin-site/_site/blog/posts/2023-11-20-finally-beat-a-b.../index.html

488 lines
18 KiB
HTML

<!DOCTYPE html>
<html lang="en" dir="ltr" id="page-top">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Finally Beat A Bug&#39;s Life The Video Game — 24 Years Later | Blog">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="My childhood goal of beating A Bug's Life video game was finally fulfilled.">
<meta name="generator" content="Eleventy v2.0.1">
<meta property="og:type" content="website">
<meta property="og:url" content="https://leilukin.neocities.org/blog/posts/2023-11-20-finally-beat-a-bugs-life-video-game-24-years-later/">
<meta property="og:site_name" content="Leilukin's Hub">
<meta property="og:locale" content="en_MY">
<meta property="og:description" content="My childhood goal of beating A Bug's Life video game was finally fulfilled.">
<meta name="twitter:card" content="summary">
<meta name="twitter:url" content="https://leilukin.neocities.org/blog/posts/2023-11-20-finally-beat-a-bugs-life-video-game-24-years-later/">
<meta name="twitter:description" content="My childhood goal of beating A Bug's Life video game was finally fulfilled.">
<link rel="canonical" href="https://leilukin.neocities.org/blog/posts/2023-11-20-finally-beat-a-bugs-life-video-game-24-years-later/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/fonts/noto-sans/noto-sans.css">
<link href="/assets/fonts/fontawesome/css/fontawesome.css" rel="stylesheet" />
<link href="/assets/fonts/fontawesome/css/brands.css" rel="stylesheet" />
<link href="/assets/fonts/fontawesome/css/solid.css" rel="stylesheet" />
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<title>
Finally Beat A Bug&#39;s Life The Video Game — 24 Years Later | Blog | Leilukin's Hub
</title>
</head>
<body>
<header class="hero">
<div class="hero__top-bar hidden"></div>
<div class="hero__img">
<img fetchpriority="high" src="/assets/leilukin/Leilukins-Hub-website-banner.png" alt="Banner of Leilukin's Hub">
</div>
</header>
<style>
.hero {
width: 100%;
background-color: var(--clr-hero-bg);
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
}
.hero__top-bar {
background-color: var(--clr-navbar-bg);
width: 100%;
padding: 0.5em 0.7em;
}
.hero__img {
display: grid;
place-content: center;
}
.hero img {
object-fit: contain;
overflow: hidden;
max-height: 16rem;
filter: drop-shadow(0.1rem 0.1rem 0.2rem black);
}
</style>
<script defer>
const hero = document.querySelector(".hero");
const heroTopBarEl = document.querySelector(".hero__top-bar");
const headerImgEl = document.querySelector(".hero__img");
const todayEvent = getTodayEvent();
if (todayEvent) {
heroTopBarEl.classList.remove('hidden');
heroTopBarEl.innerHTML = todayEvent.blurb;
if (todayEvent.class) {
headerImgEl.classList.add(todayEvent.class);
}
}
function getTodayEvent() {
const date = new Date();
const month = date.getMonth() + 1;
const day = date.getDate();
const currentYear = date.getFullYear();
const leilukinsHubLaunchDate = new Date("2022-09-11").getFullYear();
const leilukinsHubAnniversary = currentYear - leilukinsHubLaunchDate;
if (month === 3 && day === 1)
return {
blurb: `Today is <a href="https://www.unaids.org/en/zero-discrimination-day" target="_blank">Zero Discrimination Day</a>`,
class: "flag-progress-intersex",
};
else if (month === 3 && day === 8)
return {
blurb: `Today is <a href="https://www.internationalwomensday.com/" target="_blank">International Women's Day}</a>`,
class: "symbol-venus",
};
else if (month === 3 && day === 31)
return {
blurb: `Today is <a href="https://www.manygendersonevoice.org/tdov.html" target="_blank">Trans Day of Visibility</a>`,
class: "flag-trans",
};
else if (month === 4 && day === 6)
return {
blurb: `Today is <a href="https://internationalasexualityday.org/en" target="_blank">International Asexuality Day</a>`,
class: "flag-ace",
};
else if (month === 4 && day === 26)
return {
blurb: `Today is <a href="https://www.lesbianvisibilityweek.com" target="_blank">Lesbian Visibility Day</a>`,
class: "flag-lesbian",
};
else if (month === 5 && day === 17)
return {
blurb: `Today is <a href="https://may17.org" target="_blank">International Day Against Homophobia, Biphobia and Transphobia</a>`,
class: "flag-progress",
};
else if (month === 5 && day === 19)
return {
blurb: `Today is <a href="https://www.believeoutloud.com/voices/article/agender-pride-day/" target="_blank">Agender Pride Day</a>`,
class: "flag-agender",
};
else if (month === 5 && day === 25)
return {
blurb: `Today is <a href="https://genderedintelligence.co.uk/panvisibilityday" target="_blank">Pansexual and Panromantic Awareness and Visibility Day</a>`,
class: "flag-pan",
};
else if (month === 6)
return {
blurb: `Happy <a href="https://www.loc.gov/lgbt-pride-month/about/" target="_blank">Pride Month</a>!`,
class: "flag-progress-intersex",
};
else if (month === 7 && day === 14)
return {
blurb: `Today is <a href="https://www.manygendersonevoice.org/non-binary-peoples-day.html" target="_blank">Non-Binary People's Day</a>`,
class: "flag-nonbinary",
};
else if (month === 7 && day === 28)
return {
blurb: `Today is Leilukin's Birthday`
};
else if (month === 9 && day === 11)
return {
blurb: `Today is the ${leilukinsHubAnniversary}-year anniversary of the launch of Leilukin's Hub`
};
else if (month === 9 && day === 23)
return {
blurb: `Today is <a href="https://bivisibilityday.com/about" target="_blank">Bi Visibility Day</a>`,
class: "flag-bi",
};
else if (month === 10 && day === 8)
return {
blurb: `Today is <a href="https://www.lgbtiqhealth.org.au/international_lesbian_day2" target="_blank">International Lesbian Day</a>`,
class: "flag-lesbian",
};
else if (month === 10 && day === 11)
return {
blurb: `Today is <a href="https://www.hrc.org/resources/national-coming-out-day" target="_blank">National Coming Out Day</a>`,
class: "flag-rainbow",
};
else if (month === 10 && day === 17)
return {
blurb: `Today is the start of <a href="https://www.grlgbtqhealthcareconsortium.org/significantdates/genderfluid-visibility-week" target="_blank">Genderfluid Visibility Week</a>`,
class: "flag-genderfluid",
};
else if (month === 10 && day === 24)
return {
blurb: `Today is the start of <a href="https://www.grlgbtqhealthcareconsortium.org/significantdates/ace-week" target="_blank">Ace Week</a>`,
class: "flag-ace",
};
else if (month === 10 && day === 26)
return {
blurb: `Today is <a href="https://interactadvocates.org/intersex-awareness-day" target="_blank">Intersex Awareness Day</a>`,
class: "flag-intersex",
};
else
return null;
}
</script>
<nav class="navbar">
<ul class="nav__menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/about/">About</a>
</li>
<li>
<a href="/now/">Now</a>
</li>
<li>
<a href="/blog/">Blog</a>
</li>
<li>
<a href="/articles/">Articles</a>
</li>
<li>
<a href="/projects/">Projects</a>
</li>
<li>
<a href="/shrines/">Shrines</a>
</li>
<li>
<a href="/links/">Links</a>
</li>
<li><a href="https://leilukin.123guestbook.com/">Guestbook</a></li>
</ul>
</nav>
<style>
.navbar {
background: var(--clr-navbar-bg);
padding: 0 0.6rem;
width: 100%;
z-index: 999;
position: sticky;
top: 0;
}
.navbar a {
color: var(--clr-navbar-link);
text-decoration: none;
cursor: pointer;
}
.navbar a:hover {
color: var(--clr-link-hover);
}
.navbar a:focus {
outline-offset: 0.3em;
outline: 0.15em solid var(--clr-navbar-link);
}
.nav__menu {
list-style: none;
padding: 0;
display: flex;
justify-content: space-evenly;
flex-wrap: wrap;
gap: 0.5rem;
}
</style>
<main>
<header class="main__header">
<ul class="breadcrumbs">
<li>
<a href="/blog/">Blog</a>
</li>
<li>
<a href="/blog/posts/">Blog Archive</a>
</li>
</ul>
<h1>Finally Beat A Bug&#39;s Life The Video Game — 24 Years Later</h1>
<div class="article__info">
<p>Posted on 20 November 2023 by Leilukin
<p>Categories:
<a href="/categories/life-updates">life updates</a>
</p>
<p>🍿 3 min. read</p>
</div>
</header>
<div class="content__wrapper">
<article class="article">
<p>A Bug's Life was one of my favourite films in my childhood, to the extent I had lost count of how many times I rewatched it even just as a child alone by playing the CD on my house's television over and over. I was such a huge fan of A Bug's Life that I had also played its tie-in game, specifically the 3D action platformer game, and it became one of my childhood favourite video games as well.</p>
<p>However, I had a regret relating to A Bug's Life the video game for years — I did not finish the game. I managed to reach Level 15, the final level of the game, but the reason I did not beat it was my CD-ROM of the game literally broke into pieces inside the CD-ROM drive, accompanied by a loud breaking sound, when I was playing Level 15, likely due to the CD-ROM being dislocated. It happened in 1999. Needless to say, the breaking of the CD-ROM of one of my childhood favourite video games broke my heart. My family and I had tried to look for a new copy of A Bug's Life video game, but with no success because at that time the stores in my local area no longer sold it.</p>
<p>Over the years growing up, I still harbour nostalgia for A Bug's Life. While my love for the film had been tainted by the fact that <a href="https://therottenappl.es/result/movie/9487/A-Bug's-Life">both Kevin Spacey, who voiced Hopper, and John Lasseter, the director, were accused of sexual misconduct</a>, my wish of being able to finish the tie-in video game myself lingered from time to time. I had watched playthrough videos of A Bug's Life video game on YouTube to help to fill the void, but it was not the same as playing the game myself. The main obstacle that prevented my wish from being fulfilled was the fact that it was a very old game that its PC version is no longer officially sold, not even on online game stores such as Steam and GOG. In other words, A Bug's Life the video game had become an abandonware. As a result, I sought out <a href="https://www.myabandonware.com/">My Abandonware</a>, which does <a href="https://www.myabandonware.com/game/disney-pixar-a-bug-s-life-h0q">provide the game to download for free</a>.</p>
<p>From My Abandonware, I downloaded and installed the Full-Rip with dgVoodoo by Destabilize version of A Bug's Life video game on my Windows 11. I was delighted when I successfully launched and played the old childhood favourite video game for the first time. Soon, I searched for a save file of the PC version of A Bug's Life video game that unlocked all levels, and found it on <a href="https://www.thetechgame.com/Downloads/id=62821/a-bugs-life.html">The Tech Game</a>. Finally, at long last, on 20 November 2023, after 24 years, I successfully beat A Bug's Life video game by myself. I did not aim for 100% completion because my main goal was to defeat Hopper, the final boss, myself.</p>
<p>Given that the game was released in 1998, the graphics were obviously dated, and the camera and control were also awkward, but playing it again for the first time in decades brought back childhood memories of the game, and I still enjoy the game's soundtrack. This experience has also deepened my appreciation for internet archives, including ones that archive old video games. Thank you, My Abandonware, for allowing a childhood video game goal of mine got fulfilled decades later.</p>
<ul class="blog__post--nextprev"><li>Previous Post: <a href="/blog/posts/2023-11-19-i-can-finally-game-on-a-solid-state-drive/">I Can Finally Game on a Solid-State Drive</a></li><li>Next Post: <a href="/blog/posts/2024-03-06-i-received-a-lifetime-premium-membership-on-nexus-mods-for-free/">I Received a Lifetime Premium Membership on Nexus Mods for Free</a></li>
</ul>
<style>
.blog__post--nextprev {
list-style: none;
padding-left: 0;
padding-top: 0.8em;
margin-top: 2.5em;
border-top: 0.1em solid var(--clr-title-border);
}
</style>
</article>
<aside class="right-sidebar">
<nav class="content__nav sidebar--sticky">
<h2 class="content__nav--title">My Contents</h2>
<ul class="content__nav--links">
<li><a href="/archive/">Content Archive</a></li>
<li><a href="/categories/">Content Categories</a></li>
<li><a href="/articles/">Articles</a></li>
<li><a href="/blog/posts/">Blog Archive</a></li>
<li><a href="/blog/">Blog Home</a></li>
</ul>
</nav>
</aside>
<style>
.content__nav {
padding: 1.2em clamp(1em, 5%, 1.5em);
background-color: var(--clr-content-bg);
}
.content__nav--title {
font-size: 1.7rem;
}
</style>
</div>
<style>
.breadcrumbs {
list-style: none;
padding: 0;
margin: 0 0 0.7em 0;
display: flex;
gap: 0.5em;
flex-wrap: wrap;
justify-content: center;
}
.breadcrumbs li::after {
content: '➔';
padding-left: 0.3em;
}
</style>
</main>
<footer class="footer">
<p>Made with ♥ by Leilukin since <time>11 September 2022</time></p>
<ul class="footer__links">
<li><a
href="/sitemap/
">Site Map</a></li>
<li><a
href="/changelogs/"
>Changelogs</a></li>
<li><a href="/feed.xml">RSS</a></li>
</ul>
</footer>
<style>
.footer {
margin-top: auto;
background: var(--clr-main-footer-bg);
padding: 0.8rem;
text-align: center;
display: grid;
}
.footer p {
padding: 0;
}
.footer__links {
justify-self: center;
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: 0.7em;
}
.footer__links li:not(:last-child)::after {
content: '|';
padding-left: 0.6em;
}
@media only screen and (min-width: 600px) {
.footer {
width: 100%;
}
}
</style>
<button class="top-btn hidden" aria-label="Scroll to top">
<i class="fa-solid fa-chevron-up"></i>
</button>
<style>
.top-btn {
position: fixed;
margin: 0;
padding: 0;
bottom: 0.5rem;
right: 0.5rem;
z-index: 999;
border: none;
background-color: var(--clr-top-btn-bg);
color: var(--clr-top-btn-txt);
border-radius: 50em;
width: 2rem;
aspect-ratio: 1 / 1;
}
.top-btn:focus {
outline: 0.25em solid var(--clr-top-btn-bg);
outline-offset: 0.15em;
}
</style>
<script defer>
const topButton = document.querySelector(".top-btn");
window.onscroll = () => {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
topButton.classList.remove("hidden");
} else {
topButton.classList.add("hidden");
}
}
topButton.addEventListener('click', () => {
window.scrollTo({
top: 0,
left: 0,
behavior: "smooth",
});
});
</script>
</body>
</html>