Developing a Minecraft Classic Mod

1 Likes
BY method ON May 25, 2023

What is Legacy Minecraft?

Minecraft is a game that needs no introduction. It is the best selling game of all time and has millions of active monthly users from all ages and backgrounds. That being said, there is a side to this game which is long since forgotten, and that is within its past.

Many OG players look back at the game's earlier times fondly. The Alpha, Beta and even early release stages are often brought up in discussions all around the internet, from video essays on YouTube to discussions in online forums or Discord servers. It is undeniable that these earlier versions, Alpha and Beta in particular, are vastly different than how the modern game has shaped up to be. Their unique vibe and aesthetic has inspired many recent "golden age" mods that aim to overhaul the game's earlier versions by continuing development as if they come from an alternate timeline, where certain decisions (such as hunger) were never made. Some examples of these include Better Than Adventure for Beta 1.7.3 or Not So Seecret Saturday for Alpha 1.1.2_01. However, one area that lacks in such overhaul mods, are the pre-alpha versions, namely Classic, Indev and Infdev.

These three versions of the game are much less known than the aforementioned Alpha and Beta, but are, in my eyes, the most interesting, due to how early on in development they were. Back then, every update could have been a huge game changer, and some were. Ever since I first played the game back in Alpha, I've always found intrigue in these three versions. And discovering the golden age modding scene back in 2020-ish, I noticed a disturbing lack of content for these three versions. So, I have decided to take it upon myself to shape each one of them into a more polished, complete experience, whilst preserving what made the original so unique to begin with.

Introducing: Legacy+

The end result is a project dubbed "Legacy+", which is a collection of three mods: Classic+, Indev+ and Infdev+. Each one expands on its base version in a substantial way, as if Notch had continued development without doing the major leaps forward.

I do this by following the three keywords which make Minecraft the game it is: Create, Survive and Explore. Each mod aims to improve on these three key elements of the game in its current state, and each one focuses on a particular keyword the most. In this series of blog posts, I will be covering all three of these mods in greater detail, explaining my design process for each, creative decisions I took and why I took them, as well as giving some more general information on the version the mod is based on. I hope you will find this interesting and gain something from it.

This post will focus on the first of the three mods in the collection: Classic+. It is based on version 0.30 of Classic, a very early version of the game, back when it was still a simple java applet you'd play in your browser. This version of the game in particular is very basic. The primary gamemode is creative, with a very small selection of blocks and no convenient features such as flight. There is also a very rudimentary version of survival mode, which has no inventory, crafting or items.

Create

The first order of business, is to improve the Creative mode and give players more freedom with what they can build. This includes blocks such as fences, candles, ropes and doors. However, given Classic's simplicity, I had to make these blocks look and feel natural in builds you'd expect to see in such an early version. As a result, all of them render as 2D sprites in the overworld, rather than using complex 3D models, as the only block variation other than full blocks at the time were half-blocks (slabs), so anything other than that would feel severely out of place. These blocks also serve unique purposes: Candles light up an area, doors act as barriers and can be closed and opened, fences cannot be jumped over and ropes can be climbed, serving as a ladder replacement.

Upon analyzing some builds from this era of the game, I noticed a lot of players used a plethora of colors for their builds. The only colored blocks originally are cloth (wool) blocks, so I added colored bricks, planks and glass to go with that, basing the colors off the same palette that the cloth blocks use.

The remaining blocks that I added are either expected materials such as stone bricks or sandstone, with textures that fit the retro and saturated look of existing textures, or re-using textures from older versions of Classic, such as the original planks texture which was used only at the very beginning of the game's development.

Other improvements to the creative element of the game include:
* Better creative inventory with multiple page support
* Creative mode flight
* Creative-only commands, accessible from a new "Command Block", which can only be obtained from the creative inventory.
* For quick clearing of terrain, pressing Tab will fire an explosive arrow.

Survive

Given how basic the original survival mode, the most work went into this part of the game, despite the creative mode being the primary focus at first. In the base game, there is no day-night cycle, so hostile mobs spawn everywhere at all times, creating for a constant onslaught. Players can heal by eating mushrooms and shoot arrows by pressing tab. There is no real goal, other than getting points from killing mobs, which cannot be used for anything.

First and foremost, the original version only had the 9 hotbar slots as the player's inventory. Therefore, I coded my own basic inventory system from scratch. In addition to the hotbar, there are now 3 rows of 9 slots each, where blocks get stored upon collection. To swap between them, one must select their current hotbar slot with the scroll-wheel or number keys, then click on the slot containing the block they want to swap out. Doing so will swap the stack in the hotbar with the selected stack.

I also implemented an extension to the inventory, which serves as more of a balancing system. Special items such as food (mushrooms and meat), armor and arrows are stored in a separate side-bar, which can be toggled with Tab to select one of the four items. One can then press the use key (default E) to use said item (e.g. consume food, equip armor or shoot an arrow). This is done so that food and armor is limited to only one stack of a limited size in order to prevent cheesing of situations. In the original game, one could hold a stack of 99 mushrooms at all time and keep spamming those, essentially becoming invulnerable as long as they play their cards right. Although this is still attainable in Classic+, mushroom healing amount has been nerfed and they only stack up to 50. It also prevents one from spamming arrows and healing at the same time.

In the original version, mobs could wear armor, but it was purely visual. I took this idea to the next level and made armored mobs have more health, as well as a chance to drop their armor upon death. Said armor can then be picked up and equipped. Armor absorbs all incoming damage, essentially acting as a second health bar when equipped, which can be useful, given the ruthless nature of the survival mode.

Given score exists but is entirely useless, as well as the lack of tools, I decided to hit two birds with one stone and implement a powerup system. Classic survival already feels a lot like an arcade game, with how you rank up score by constantly defeating enemies, so this seemed to fit right in. Points can now be spent to equip one of five powerups: Haste (faster mining speed), Strength (double damage), Speed (increased movement speed), Regeneration (health regenerates overtime), Silk Touch or Resistance (halved damage taken) depending on gamemode. Only one powerup can be equipped at any given time, so if the player wants to swap their power for another, they must pay the price again. Think of it as a beacon boost from modern, except it has no range or time limit but you need to pay every time you want to swap it.

I've also implemented GUI-less crafting. Upon getting 4 planks, you can press a key on your keyboard (default C) to acquire a "Crafter". You can then place a combination of two blocks on top of the crafter to craft almost any block in the game (for example, cloth + flower = colored cloth). This makes building in survival mode a viable option, as in the original game, the only building materials which were obtainable legitimately were planks and cobblestone.

Other improvements to the survival mode include:
* Respawning: The original version was permadeath, as if you are playing in hardcore mode. Although you can still do this with the "Hard" difficulty, in "Normal" difficulty, you can spend 1,000 points to respawn upon dying.
* Difficulties: The original game had no difficulties. The mod has four: "Peaceful", which has no hostile mobs and constant healing. "Normal", which is the standard difficulty with respawning. "Hard", which disables respawning (permadeath) and "Expert", which is also disables level saving (iron man run). I made it so if one selects peaceful or expert, the difficulty remains locked in order to prevent cheating.
* Signs: Upon pressing a hotkey, one can place a sign entity down (it takes 5 planks to do so). Anything can be written on said sign, and it can be broken easily by just clicking on it.
* The ability to drop items with Q and place blocks over dropped items. This might seem like a small thing, but believe you me, it is very useful and underrated.
* Pigs will drop meat, which restores more health than mushrooms but stacks less.
* Bunnies and slimes for more mob variety.

Explore

In order to improve the exploration aspect of the mod, I added new blocks that one can find in the world, such as corals which drop sponges to clear areas of water or lava, new flower types, magma and a new ore. I did not stop there though, as I also implemented 10 world types and 4 world themes.

The world types are mostly reused terrain generators from earlier versions of Classic, so they fit right in with the existing terrain generator. These range from deserts to forests to islands and levels consisting of large hills.

The themes are inspired by Indev's level themes, and can be combined with any world type to give it a unique look and feel. I even went the extra mile and added special toggles for terrain generation features such as liquids, caves, trees etc., level sizes and support for level seeds.




Other

There is some other content the mod has which does not necessarily fall under any of the main three categories.

The biggest of these is a whole new and unique gamemode: Arcade mode. Think of it as a sort of horde mode, where monsters come in waves, with each wave being more difficult than the last. In between each wave, there is a "grace period", in which animals spawn, allowing players to stock up on food and also equip powerups, as powerup equipping is disabled during wave time. A wave ends when the time runs out or all the mobs in the level are killed. There are also special waves, such as an all creeper wave, all armored mobs wave or boss waves (super large slime or a special mob). The end goal is to reach wave 30, after which the game continues but there is no more difficulty increase.

Other improvements include:
* Survival multiplayer, which I had to make my own netcode for from scratch, as the original game only supported creative multiplayer.
* Local level saving. The original game only had online level saving, which no longer works due to the servers for that being down.
* NBT level format that Indev and later versions use to store level data, instead of serialized (unreadable) level files.
* Improved sound engine with ambience and mob sounds and alternate block sounds based on the original sound mockup at the time.
* Simple weather system. It will rain/snow/sandstorm based on the world type/theme after a random interval of time.
* Spectator mode so one can keep a world they have died in and just fly around and spectate mobs or other players in multiplayer.
* Texture pack support
* GUI scaling and fullscreen support.
* Many quality of life improvements, such as leaf decay and sneaking.
* New options (mouse sensitivity, FOV, alternate control schemes, graphics options, audio sliders etc.)
* Redesigned GUI.

Conclusion

The end result is the biggest mod for this version of Classic to date, with a plethora of new content. All of this has been achieved whilst preserving the original version's design by simply improving on what was already there. Creative mode gives players a lot more building options, whilst keeping the textures consistent with the style and palette of the original ones. Survival is still chaotic and arcade-y in nature, but gives players more tools to help them aid in their survival. There are many new world types for players to explore and a whole new gamemode to experience, in addition to full survival multiplayer support, among many other smaller things I am likely forgetting.

All of this has been achieved in the span of 9 months, from December of 2021 to September of 2022. The mod is no longer being updated or supported, as I deem it to be a complete experience. Most of it has been done completely solo with my (at the time) limited Java knowledge and programming skills. Credits of other people who helped develop the mod can be found within the mod's main menu.

If you wish to try the mod for yourself, you can get it here. To run it, I recommend using the MultiMC launcher. Make a new 0.30_01c instance in it, then simply go to edit instance > version tab and replace jar with the Classic Plus.jar file.
You can get the server for the mod from here, in case you want to host a server. There is a readme file with more information on how to run the server.

And here are the three trailers for the mod:


Currently, I am in the process of developing Indev+, the second mod of the trilogy, which is approaching completion as we speak.
I hope you found my ramblings interesting and you have a newfound appreciation for this game's whacky and fascinating history.
Until next time, stay frosty!

Comments (0)