fixed some outdated links
All checks were successful
Web/pipeline/head This commit looks good

This commit is contained in:
Ell 2021-03-11 03:32:22 +01:00
parent 23eea1d559
commit 9c3b8f16ae
4 changed files with 22 additions and 22 deletions

View file

@ -18,11 +18,11 @@ MiKeY and Rid are going to port Actually Additions to **Forge** for **Minecraft
The art overhaul has already started (and even been finished, I believe), and because it is *gorgeous*, I'm going to show you some of the preview pictures that Rid has sent me right now. Enjoy. The art overhaul has already started (and even been finished, I believe), and because it is *gorgeous*, I'm going to show you some of the preview pictures that Rid has sent me right now. Enjoy.
![](blog/res/future_actually_additions/1.png =100%x*) ![](../blogsrc/res/future_actually_additions/1.png =100%x*)
![](blog/res/future_actually_additions/2.png =100%x*) ![](../blogsrc/res/future_actually_additions/2.png =100%x*)
![](blog/res/future_actually_additions/3.png =100%x*) ![](../blogsrc/res/future_actually_additions/3.png =100%x*)
Don't they look *so good*? Don't they look *so good*?

View file

@ -13,7 +13,7 @@ Okay, finding [a build of the game](https://github.com/RockBottomGame/RockBottom
Hm. Okay. Hm. Okay.
So something's already broken. So something's already broken.
![](blog/res/rock_bottom_mod/1.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/1.png =100%x*)
It looks like here It looks like here
``` ```
@ -27,7 +27,7 @@ That didn't seem to fix it either. Huh. Taking a look at [the maven](https://mav
Okay, it's now the next day and it looks like the maven has been fixed, which is nice. So all the compile issues are finally resolved, I put the build into the `/gamedata` folder like explained in the tutorial, I renamed the examplemod to `NaturesAura`, and I can now finally try running the game! Okay, it's now the next day and it looks like the maven has been fixed, which is nice. So all the compile issues are finally resolved, I put the build into the `/gamedata` folder like explained in the tutorial, I renamed the examplemod to `NaturesAura`, and I can now finally try running the game!
![](blog/res/rock_bottom_mod/2.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/2.png =100%x*)
Ah! That worked quite well in the end. Ah! That worked quite well in the end.
# Actually making something # Actually making something
@ -76,7 +76,7 @@ public void preInit(IGameInstance game, IApiHandler apiHandler, IEventHandler ev
So far, so good. Let's figure out how to add a texture to the thing. So far, so good. Let's figure out how to add a texture to the thing.
I somewhat remember that I made a horrible json-based asset system (instead of just loading all of the assets in the mod's jar automatically), so I'm going to try to add my tile to the `assets.json` file the example mod provided me with and also add a texture into the actual file system. I somewhat remember that I made a horrible json-based asset system (instead of just loading all of the assets in the mod's jar automatically), so I'm going to try to add my tile to the `assets.json` file the example mod provided me with and also add a texture into the actual file system.
![](blog/res/rock_bottom_mod/3.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/3.png =100%x*)
This is the folder structure I decided on. I also created a quick golden version of the game's leaves texture by going to the [asset repository](https://github.com/RockBottomGame/Assets), stealing the leaves texture and recoloring it to be golden-ish. This is the folder structure I decided on. I also created a quick golden version of the game's leaves texture by going to the [asset repository](https://github.com/RockBottomGame/Assets), stealing the leaves texture and recoloring it to be golden-ish.
Also, I put this in the assets file, but I have no idea if that's actually the right path. We'll find out. Also, I put this in the assets file, but I have no idea if that's actually the right path. We'll find out.
@ -101,7 +101,7 @@ public static final Tile GOLDEN_LEAVES = new TileGoldenLeaves(NaturesAura.create
``` ```
*Crisis averted*. *Crisis averted*.
![](blog/res/rock_bottom_mod/4.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/4.png =100%x*)
Yaaay, it... worked? *Somewhat?* Yaaay, it... worked? *Somewhat?*
You're probably yelling at your screen by now, but yes, I finally noticed it as well: My assets path says `examplemod` instead of `naturesaura`. Easy fix, though. You're probably yelling at your screen by now, but yes, I finally noticed it as well: My assets path says `examplemod` instead of `naturesaura`. Easy fix, though.
@ -119,7 +119,7 @@ While I'm at it though, I can also add a localization entry for the golden leave
Let's try again. Let's try again.
![](blog/res/rock_bottom_mod/5.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/5.png =100%x*)
Ta-da! Success, at last. Ta-da! Success, at last.
After some investigation, I realized that Rock Bottom's normal leaves can be walked through, so let's see how to make that happen. Typing `@Override` while in the `TileGoldenLeaves` class causes my IDE to list all of the methods I can override. Among them are two that interest me: After some investigation, I realized that Rock Bottom's normal leaves can be walked through, so let's see how to make that happen. Typing `@Override` while in the `TileGoldenLeaves` class causes my IDE to list all of the methods I can override. Among them are two that interest me:
@ -136,13 +136,13 @@ public BoundBox getBoundBox(IWorld world, TileState state, int x, int y, TileLay
``` ```
It seems like this is what I have to do to make the tile walk-through...able. Let's try it out. It seems like this is what I have to do to make the tile walk-through...able. Let's try it out.
![](blog/res/rock_bottom_mod/6.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/6.png =100%x*)
Yay, that seems to have worked. Great. Yay, that seems to have worked. Great.
# Making an item # Making an item
Now that I have somewhat of a grip of this whole Rock Bottom stuff again, I'm quickly going to make an item. I won't bore you with the details as it's pretty similar to making a tile, but the gist of it is this: I made an `ItemGoldPowder` class that extends `ItemBasic`, and I initialized and registered an instance of that in my newly created `Items` class, of which I created an instance in my mod class's `preInit` method so that it gets initialized at the right time. Also, I did all of the annoying asset mumbo jumbo. Now that I have somewhat of a grip of this whole Rock Bottom stuff again, I'm quickly going to make an item. I won't bore you with the details as it's pretty similar to making a tile, but the gist of it is this: I made an `ItemGoldPowder` class that extends `ItemBasic`, and I initialized and registered an instance of that in my newly created `Items` class, of which I created an instance in my mod class's `preInit` method so that it gets initialized at the right time. Also, I did all of the annoying asset mumbo jumbo.
![](blog/res/rock_bottom_mod/7.png =100%x*) ![](../blogsrc/res/rock_bottom_mod/7.png =100%x*)
*Oh, C#, you've ruined me.* *Oh, C#, you've ruined me.*
# Making stuff happen # Making stuff happen
@ -164,7 +164,7 @@ While writing this code, I quickly remembered that Rock Bottom has a tile state
Let's try it out! ...yea, no. The Java version that gradle uses to compile a Rock Bottom mod isn't new enough yet: You can't use the `var` keyword. Oh, my poor, poor C# soul. So let's swap that `var` out for a `TileState`. Let's try it out! ...yea, no. The Java version that gradle uses to compile a Rock Bottom mod isn't new enough yet: You can't use the `var` keyword. Oh, my poor, poor C# soul. So let's swap that `var` out for a `TileState`.
![](blog/res/rock_bottom_mod/8.gif =100%x*) ![](../blogsrc/res/rock_bottom_mod/8.gif =100%x*)
Yay, it works! *Except that, in the gif, the mouse position is weirdly offset for some reason. It's correct in person, I promise!* Yay, it works! *Except that, in the gif, the mouse position is weirdly offset for some reason. It's correct in person, I promise!*
# Conclusion # Conclusion
@ -172,6 +172,6 @@ So yea, that was the start of my adventure back into Java, back into my old game
I think it's important to remember that, as a developer (especially an indie developer), you don't have to code everything perfectly or work stuff out correctly the first try. I mean, heck, this is my own game, and I completely forgot how to make a mod for it. But it was fun to figure it out again, and to get back into something I made two years ago. I think it's important to remember that, as a developer (especially an indie developer), you don't have to code everything perfectly or work stuff out correctly the first try. I mean, heck, this is my own game, and I completely forgot how to make a mod for it. But it was fun to figure it out again, and to get back into something I made two years ago.
Oh, also, if you really want, [here's a build of the mod](https://ellpeck.de/blog/res/rock_bottom_mod/NaturesAuraRockBottom-0.1.jar) that you can try out yourself, as the game is now actually open source and available to everyone! I created this jar with the command `gradlew build`, and all you have to do to run it is [download the game](https://github.com/RockBottomGame/RockBottom/releases), run it once, and then stick the mod jar into its `mods` folder. It really doesn't do that much right now, though, so I don't know why you'd bother. Oh, also, if you really want, [here's a build of the mod](https://ellpeck.de/blogsrc/res/rock_bottom_mod/NaturesAuraRockBottom-0.1.jar) that you can try out yourself, as the game is now actually open source and available to everyone! I created this jar with the command `gradlew build`, and all you have to do to run it is [download the game](https://github.com/RockBottomGame/RockBottom/releases), run it once, and then stick the mod jar into its `mods` folder. It really doesn't do that much right now, though, so I don't know why you'd bother.
As always, thanks for reading! As always, thanks for reading!

View file

@ -1,10 +1,10 @@
As it turns out, I struggle a lot with maintaining interest and motivation for working on bigger projects like my [other game](https://rockbottom.ellpeck.de/) or my Minecraft mods. However, an easy fix for that would be to just start less big projects and focus more on smaller ones, like **Foe Frenzy**. Foe Frenzy is a game I've been working on for about a month now. As it turns out, I struggle a lot with maintaining interest and motivation for working on bigger projects like my [other game](https://rockbottom.ellpeck.de/) or my Minecraft mods. However, an easy fix for that would be to just start less big projects and focus more on smaller ones, like **Foe Frenzy**. Foe Frenzy is a game I've been working on for about a month now.
![](blog/res/small_projects/contrib.png =100%x*) ![](../blogsrc/res/small_projects/contrib.png =100%x*)
The basic gameplay is finished, as is enough content for my friends to have been testing it for the last week or so and saying that they enjoy it quite a bit, both visually and gameplay-wise. I thought I'd make a blog post about my process of working on it, showing what it's about and what I did this time around to make sure that I don't get burnt out with it. The basic gameplay is finished, as is enough content for my friends to have been testing it for the last week or so and saying that they enjoy it quite a bit, both visually and gameplay-wise. I thought I'd make a blog post about my process of working on it, showing what it's about and what I did this time around to make sure that I don't get burnt out with it.
![](blog/res/small_projects/overview.png =100%x*) ![](../blogsrc/res/small_projects/overview.png =100%x*)
_Foe Frenzy is a fast-paced fighting game where you battle up to three of your friends with random, short-lasting items in an attempt to be the last survivor._ _Foe Frenzy is a fast-paced fighting game where you battle up to three of your friends with random, short-lasting items in an attempt to be the last survivor._
@ -14,9 +14,9 @@ A lot of times, I'll find myself getting stuck on making art for my game project
So, this time around, what I did instead of doing that all over again, I just decided to go with _simple art_ instead. For example, as you can see, all the tiles in the world only have 8x8 pixels, and all of them follow a really simple pattern: The top and left side are slightly darker, giving the world a really tiled feel and making the levels seem like they were made with actual building bricks. As well as that, the character movement animations are _really_ simple. So, this time around, what I did instead of doing that all over again, I just decided to go with _simple art_ instead. For example, as you can see, all the tiles in the world only have 8x8 pixels, and all of them follow a really simple pattern: The top and left side are slightly darker, giving the world a really tiled feel and making the levels seem like they were made with actual building bricks. As well as that, the character movement animations are _really_ simple.
![](blog/res/small_projects/wobble.gif =100%x*) ![](../blogsrc/res/small_projects/wobble.gif =100%x*)
![](blog/res/small_projects/water_wobble.gif =100%x*) ![](../blogsrc/res/small_projects/water_wobble.gif =100%x*)
Both of those aren't even real animations per se, because what they really are is just the player's static texture rotating around a sin wave that is centered on the player's feet. It looks cute, though. Both of those aren't even real animations per se, because what they really are is just the player's static texture rotating around a sin wave that is centered on the player's feet. It looks cute, though.
@ -27,7 +27,7 @@ What I did for this game instead is just kind of... let the code take me where i
For example, the map parsing system is really simple: It consists of an XML file, which stores all the important information about a map like its name and the positions that players spawn in, and a png file. For example, the map parsing system is really simple: It consists of an XML file, which stores all the important information about a map like its name and the positions that players spawn in, and a png file.
![](blog/res/small_projects/map.png =100%x*) ![](../blogsrc/res/small_projects/map.png =100%x*)
Each pixel in the file determines which tile will be put at its location. In this instance, black is deep water, blue is shallow water, yellow is sand and green is grass. And the cool thing is that this is really easy to deal with (reading pixels is a simple thing that's present in almost every game framework), because changing something on the map just takes an image editing program, no custom map editor needed. Each pixel in the file determines which tile will be put at its location. In this instance, black is deep water, blue is shallow water, yellow is sand and green is grass. And the cool thing is that this is really easy to deal with (reading pixels is a simple thing that's present in almost every game framework), because changing something on the map just takes an image editing program, no custom map editor needed.
@ -49,14 +49,14 @@ Keep updated about the game on [my Discord](https://ellpeck.de/discord) as well
To finish off, here are some more pictures of the game for your enjoyment. To finish off, here are some more pictures of the game for your enjoyment.
![](blog/res/small_projects/cave.png =100%x*) ![](../blogsrc/res/small_projects/cave.png =100%x*)
A cave being lit up by torches and lava. This is where a rubber hammer can spawn that you can use to knock the other players into the lava. A cave being lit up by torches and lava. This is where a rubber hammer can spawn that you can use to knock the other players into the lava.
![](blog/res/small_projects/map_select.png =100%x*) ![](../blogsrc/res/small_projects/map_select.png =100%x*)
The map selection screen, where each player can choose the map that they'd like to play most. The map selection screen, where each player can choose the map that they'd like to play most.
![](blog/res/small_projects/flame_thrower.gif =100%x*) ![](../blogsrc/res/small_projects/flame_thrower.gif =100%x*)
The favorite item I've added so far: The flamethrower. The favorite item I've added so far: The flamethrower.
![](blog/res/small_projects/win.gif =100%x*) ![](../blogsrc/res/small_projects/win.gif =100%x*)
Killing the last person alive and winning Killing the last person alive and winning

View file

@ -14,7 +14,7 @@
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<link rel="stylesheet" href="./style/prettify.css"> <link rel="stylesheet" href="./style/prettify.css">
<link rel="stylesheet" href="./style/style.css"> <link rel="stylesheet" href="./style/style.css">
<link rel="icon" href="favicon.ico"> <link rel="icon" href="./favicon.ico">
<meta property="og:title" content="Ellpeck.de"> <meta property="og:title" content="Ellpeck.de">
<meta property="og:description" content="Ellpeck's little internet place"> <meta property="og:description" content="Ellpeck's little internet place">