:::: MENU ::::
Browsing posts in: Survivalnauts

Indie MMO DevBlog #12

Game Name?

For the past 12 Devblogs I’ve called this project “SurvivalMMO”, “Survivalnauts” and “IndieMMO”. I really want to give the game a proper name, or at least something I could refer to the project as. I’ve kicked around “Sandusky” and “Starlight Town”. Nothing official yet. Any suggestions? Tweet me.

NPC Dialog

I’m excited about this! NPC Dialog! It’s still in it’s infancy, but when it’s done it will be able be really flexible!

World Objects

Craftable & Placable Tables & Chairs

Chairs and tables are now in the game, and can be crafted! They can also be placed in the game, moved and rotated.

I’ll probably not add the ability to ‘sit’ on the chairs for a long time into the development. But this is an important step in giving players the ability to interact with all objects in the game to some extent, even if that just makes moving them around and rotating them for now.

Toolkit / Game Design Tools

I announced in the last video that I would be developing a toolkit for the game, which would help me basically generate INI files needed for the game to run. This will be developed over time along side the client and the server. It will help me (and others) make necessary changes to the game without having to do any changes to the actual code of the game.
With this tool you will be able to
– Create NPC’s
– Edit certain aspects of the Map
– Create and Edit Quests
– Create Items
– Create Monsters

People have been irritated with me recently, accusing me of being too ambitious.
However, this is not as ambitious as it sounds and it will speed up the development of the game in the long run.
All I’m really doing is making a glorified INI file editor.

INI Files for Items

Items are now ini files rather than created by code in the game. This was actually a major since a lot of the items were hardwired into the code. For this to work I had to make the system more flexible. It created A LOT of glitches and other problems that I’m still hammering out, but it is so worth it!

Crafting Changes

Crafting data is also now configured through the server. This means that the server host can easily change some INI files around to change crafting info for all players. This way I don’t have to make an entirely new build and patch of the game in the future when I need to update crafting things. πŸ™‚

Loading Screen

Server Save / Refreshing

I mentioned in the last video that NPC’s would have homes that could be basically wrecked, but would refresh after the server is saved.
I’ve implemented this into the server.
The server keeps track of what objects need to be refreshed at server save, and does so.
So far it’s just keeping track of tables and chairs, and can tell the difference between chairs/tables placed by the player and the ones that need to be put back in place at server save.

Game Music

I’m not claiming to be the best at composing music, but I did make a little tune for the game using FL Studio!

Other Changes

~ Fixed longstanding glitch that would crash the client if you previous logged out in a different room.
~ Fixed glitch with crafting that was making crafting buttons appear in weird positions.

Sign up for free Alpha version key

MMO Devblog #11

Version: 0.4.8b
Goal: A 1.0 Playable Multiplayer ALPHA Version!

GameMaker Studio 2

The game was originally made in GMStudio 1.4. I’ve been working this week on converting the Client, Server and Main Server (SNON) over to GMStudio 2. I’m pretty excited about this since GMStudio 2 does have a lot of great new features. The game originally transferred to GMStudio 2 with ease. To my surprise, I can run the game just fine within GMStudio 2 with no outstanding issues. This is because GMStudio 2 generates scripts for you, and pretty much makes your game become compatible.

GMStudio2 made 937 changes to my game in order to make it work without issue.

It also generated a number of scripts to replace code that is obsolete in GMS2, which was nice.

Animated Water

Water tiles are now fully animated!

NPC’s and Monsters

I’ve made a lot of changes to NPC’s and Monsters. Originally I was just going to make NPC’s and Monsters a part of the same group, using the same data structures and code. However, which the change of the game direction I thought it necessary to split them into two separate groups that do two totally different things. Monsters are generic creatures that you can kill and get resources and items from. NPC’s will be more dynamic, and will be able to talk, give quests, sell/buy items, etc…

Monster/NPC INI Files

Instead of creating data in the actual server (hitpoints, name, walk speed, etc), I decided to create it in ini files instead. This way, if I need to tweak things with monsters or npcs I can just update an INI file and restart the server rather than creating a whole new server build. I plan to do this for items as well.

Other Changes

~ Sometimes code that needed obj_player was running before obj_player was created resulting in a crash has been fixed.

Survival MMO Devblog #10!

Version: 0.4.8
Goal: A 1.0 Playable Multiplayer ALPHA Version!

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!

Lessons Learned Making Gunpoint Quickly Without Going Mad
Secrets of Game Feel and Juice | Game Maker’s Toolkit
30 Things I Hate About Your Game Pitch

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.

Sign up for free Alpha version key

Survival MMO Devblog #8

Version: 0.4.6
Goal: A 1.0 Playable Multiplayer ALPHA Version!

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

Other Changes

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

Survival MMO Devblog #7

Current Version: 0.4.8

NPCs / Farm Animals!

I took the first huge leap towards NPCs and added some non-aggressive farm animals such as chickens, sheep, cows and pigs. This all syncs very smoothy between the server and clients.

So far all they do is walk around and occasionally stop to eat grass.
Here are some planned features with these guys:
– Chickens will lay eggs which can be used as food / hatching more chickens
– Cows can be milked and used as food/hydration
– Sheep can be sheered for their wool to craft and make clothing and other items
– All animals can be killed and harvested for their meat + other resources (feathers, hide, etc)
– Farm animals will be tamable and will follow you for a short time when tamed
– You will have the ability to breed animals and potentially have your own animal farm!
– Perhaps… Mountable horses in the future? πŸ™‚

This is all still a work in progress, and I can’t tell you how much will actually be done before I release a playable alpha.
Also, this gives me a huge step forward towards making enemy ai, and overhauling the combat!

Base Building

Thanks for all the input in the last video. I really got some great ideas that I will be unvealing in future videos!

Resource Cost

Placing items with base building will now cost resources. Repairing your base will also cost resources. This new script also allows me to start implementing crafting as I can now remove “x” amount of resources from the players inventory.

Damage, Destroy, Repair & Upgrade…

You can now damage, destroy or upgrade your walls and foundations!


There is now a new movement system in the game. The system handles collisions very smoothly.
The server and client should also better agree on the position of the player & slaves.
Also fixed a glitch that was passing up the players walking sprites when changing directions, making the player moonwalk.

Server Changes

For the sake of testing, the server can now display a lot more information. You can basically see a rough view of the game world now. This help me a lot when implementing the new movement system. I might remove or expand on this depending on any server performance issues it gives me in the future. Either way, it’s very nice seeing exactly what the server sees for now! πŸ™‚

Other Changes

~ Fixed inventory glitch that was crashing the Client when you moved items around
~ Fixed skin tone glitch that was making some tones look really wonky
~ Updated the stone axe sprite.
+ Servers can now send clients error messages
+ Server has a new command “/resetserver”, this will clear ALL files (player files, server saves) at once and have a fresh server.