Game Design

I’ve been watching and listening too a lot of talks on game design. I’ve probably learned more in the past two months about what makes a game great than in the past 10 years of making indie games! Here are 3 that I’ve recently listened too. Enjoy!

Game Direction

Originally, this game was to be a 2d clone of games like Rust, Ark and DayZ. However, as I began to research the survival genre I got more and more disinterested in going this direction. I still plan to have all the same survival element features in this game that I’ve discussed in other devblogs and videos – however, they will be presented in a much different way.

I don’t want to give too much away, right now, however just know that this game will not be some kind of a “hardcore” survival game as I previously intended.

Base Building Prototype

Not sure if I’ll keep this or not, but it’s a neat concept! The base design could work like this…
1. You place a cheap starter base
2. Use resources to upgrade it and make it bigger/add more room inside
3. Outside and inside completely customizable

You don’t actually change rooms when you walk into the base. This is nice because you’ll still be able to hear any noise people are making around your base!

Room Changes

I re-worked how “rooms” work for the client and server. Upon players changing rooms: the CLIENT will actually change rooms. The SERVER will just change clients x/y inside of the main server room so it can do proper calculations. I’ve also set up a system using ds_grids that gives each room a unique id. That way I can add special information specific to each room.

Room Transitions

I ran into a few issues with this. Mainly with walking. When you’d run into the object to change your room, once you transitioned rooms your character would keep walking with no way to stop him. Had to re-work some code with movement to make this work smoothly!

Player shadows

Players now have cute little shadows. I may play around with these. Maybe cause them to change color if you click on a player..

Server UI Overhaul

For my own convenience, I’ve overhauled the server UI. It was getting very messy, which was causing me to make a lot of mistakes. So I did some cleaning up 🙂

Other Changes

~ Removed some of the outline to the players sprites to make them look better
~ Fixed up Node spawning (rewrote script). Before you could only have 100, now you can spawn in as many as you’d like.
+ Animals and Nodes are now assigned specific rooms.

Crafting!

Finally! Another main feature of the game has been added: Crafting. This wasn’t terribly difficult since I’ve already had much of the machanics for crafting already in the game, only used by other things. For instance, the same script that checks if there are enough resources in the player’s inventory for base building is the same script I use to check for crafting. I also use the same script as I use for base building to remove ‘x’ amount of items from the player’s inventory. The hardest part here was just getting the GUI up and running, which is tedious work that I’ve done hundreds of times.

The crafting is seperated into different categories. When you find an item you want to make, you simply click craft. The server will then check if you have enough resources. If you do, it will then remove those resources from your inventory. Then after you wait whatever the crafting time on that item is, it will appear in your inventory!

Arms

Arms have been removed from the body sprite. This means arms can be doing one thing, while the body and legs are doing another. For instance, we can swing a weapon and the arms will play the proper animation and walk at the same time. This completely messed shirts up. So I’ll have to resprite them, and also include swinging animations on every shirt.

This also means, if I want it to look right, I have to make animations for every holdable item for every action and every direction…

Blood Effects

I’ve added a very cool blood effect to the game!

Notifications

Little notifications will now appear for the player to give him alerts, and display information about crafting.

Other Changes

Cursors
~ If the cursor was over the inventory when you closed it, it wouldn’t allow you to left click and use hotbar items. I fixed this.
~ Fixed other cursor glitches – I’m sure there are others lingering around.

NPC’s
~ Fixed glitch where dead npc’s were still spawning as if they were alive for new players.
+ If NPC’s are walking when player logs in, they won’t pop around like before, but will be walking.
+ Added another option to NPC’s behavior. They now will sometimes just stand and do nothing. Fun.

Armor Slots
+ You can now throw items onto the ground from your armor slot.

Misc
+Damage numbers now appear when you attack NPC’s.

Inventory
+ You can move (x) amount of items from a stack onto other stacks, or split stacks into new stacks.

Needed features for v1.0

Here are many of the features that need to be complete before we have a working v1.0 Alpha Version! These are not all of the planned features for the game, but only the ones that are needed to be working before we enter into the testing phase!

Sign up for free Alpha version key

Combat Overhaul

Server Side Combat

Up until now, most of the hitting of nodes, other players and walls has been done client side. When you used a weapon or tool, it would create a slash effect, and at a certain frame it would create a hitbox item and if there was a collision with a certain object, it would tell the server it’s hitting something and the server would respond appropriately (do damage, gather resource, damage a wall, etc)…

Obviously, this could be abused by hackers so I’ve fixed this up!

It’s now handled completely server side. When you use a tool or weapon, all the client does it tell the server that you want to use a tool/weapon.
The server then
1. Sees if you can actually use that item.
2. Checks players cool down (so they can’t spam attack)
3. Calculates where the hitbox should be
4. Checks if there’s a node, player, base wall, etc at that position
5. Runs the appropriate script (damage player, damage wall, gather resource)
6. Lets clients know what’s going on.

This is a lot less messy, and has made about 15 scripts obsolete since the client doesn’t have to let the server know everytime he hits a node, tree, player, etc… 🙂

NPC’s – Farm Yard Animals

Attacking & Killing

You can now attack and kill the barn yard npc’s that I added in the last update. Animals will leave a corpse, which you can then hit with any tool and it will yield resources.

Farm Animal Drops – New Items

Hitting dead animals with a tool will give you items. Depending on what tool you’re using will determine how much loot you get! I went ahead and added the following items to the game: pork, steak, chicken, bones, feather, leather, fat and wool! Now that we have all these new resources (and ways to obtain them), I can start working my way towards crafting!

Better Collisions & Path Finding

Barn Animals now consider resource nodes, walls and players and will no longer walk through these things. If they collide with something, they’ll try to find a better path rather than mindlessly walking into them. Also, when they are hit or take damage they will attempt to run away.
Players also collide with Barn Animals (and nodes) and will no longer just walk through them.

Sound Effects

I’ve added appropriate sound effects to the animals for when they get hit, or if they die. There are 3 hit sound effects per animal, and one death sound.

Base Building

New Walls

A special thanks to Cole Monpas on YouTube for suggesting this new wall style. He also sent me a project file of his own. Though I didn’t use his code, I certainly took his suggestion and I think this style makes a lot more sense for now!

Sign up for a free Alpha Key

Since a lot of people are following this project (some on and off) I’ve decided to go ahead and start allowing people to sign up for free Alpha version keys. You will receive an e-mail once the alpha is released with a game key and download link once the Alpha version is ready to be played. Feel free to sign up while keys are available!

Sign up for free Alpha version key

Name:

Email:

Other Changes

~ Did some upgrades to the code behind resource nodes so they can support more than only 100 at a time

If you’d like to join our alpha testing phase of the game and receive a free alpha serial key, let us know by joining our mailing list!
All who join will receive a free serial key to play the game once our alpha is released.

I just put my simple notification system in GameMaker Marketplace for a couple bucks. If you'd like it for free, just shoot me a message :) https://t.co/P1qWpLObW7 #GameMaker #gmstudio2 #gmstudio #gamemakerstudio