Freitag, 30. Mai 2014

Something Big Is Coming!

Presenting nameless projects is always a bit weird because you never really know what to call it. So instead of just referring to to it as "The Project" or something lame like that I will call it for this Blog post only "Sawblades" to prevent any confusion. This is by no means the actual name of the game but just the working title it's going by internally atm. So that beeing said, what is Sawblades?

Well, for one, Sawblades is big. It's one of the biggest, most ambitious projects I've worked on in a while. And I'm super stoked about finally showing some stuff off over the coming days and weeks. 

Yah yah yah, but what IS Sawblades? Weeeell, I wont spoil too much of it as of now but I can confirm that there is jumping in it. And saw blades. And death... lots of death.
 
I know that’s about as meaningful as saying "It has game play in it", but the first playable prototype will role out to the alpha testers soon. So just sit tight.
But as a little appetiser I got something very special for you:


BÄM!

 It's the very first screenshot every made of Sawblades. This screenshot is the dev build from about 1 month ago and already shows off a couple of gameplay features, together with a whole bunch of editor debug overlay. And I think it will be really cool to see the difference once we'll show off some current stuff.



Stay tuned for more!

Sonntag, 6. April 2014

more sneakiness...

New Sneaky Update with one very special new element. Color. Crazy right!? Check it out >>>Here<<<


Sneaky Update 06.4.14

-added a base texture to the map mesh. Each room now has it's own color and many surfaces have a slight color variation to make it a little easier to the eye
-added a little vent to crawl through to show off  the fixed collision mechanic. Ironically this vent is extremely buggy and I'd advise you to avoid it at all cost
-added a moon. No seriously! I now have 3d skyMaps with a fancy moon to look at while getting shot to pieces


Sonntag, 30. März 2014

sneaky Sneaky update incomming!

Alright, today a spent about half an hour to fix a couple of problems and bugs from the last sneaky version and tried make it overall a little more polished. Here is the full list:

Sneaky Update 30.3.14

-fixed jumping bug
-added brightness option (ugly hack at the moment. But since I don't have direct access to the rendering path from Unity Indie there is not much I can do about that otherwhise. If it's still to dark you just have to cramp up the gamma manually on your monitor I guess...)
-made html site background black for less contrast, making it easier to the eye
-added little controlls description to html site


>>>play it here<<<

Samstag, 29. März 2014

Me like sis funky music!

If you code you need lots and lots of free music to bridge all that dead time you spend staring at your screen trying to figure out what you just did and why it's not working. 

As such, this music doesn’t necessary need to be any good, in fact you probably don't even need to like it, but you just need it to not go totally insane after 2 hours of tedious bug fixing.

This being said, I do like my music mix and I think it's pretty darn awesome!
 So beware the inko music mix 2014:




more to come...

Dienstag, 25. März 2014

How to play (and be) Sneaky

Sneaky shares a problem with every prototype every made. It's about as accessible as a brick wall. So to clear things up I'll explain the basic concepts and mechanics as well as the overall map layout a little. Here we go!

How to start a game:
The first thing you need to do in order to play the game is either open a port on your modem to your pc at 25565 or know a friend who can do that for your. Keep in mind that if your are playing this with friends only one of you needs to open the port. If you don't know how to do that, there are plenty of tutorials on the internet on how it works. It's usually a bit of a hassle for the first time but it really pays off once you understand it.
Once you got your port open you can just open the game link and click on Start if you want to host a server, or Join if you want to join a friends game.
Starting a server is as easy as clicking on the start button. The game does the rest for you and drops you right into the player lobby which we'll get to in a second. If you click on Join Game you'll see a list of all currently running games(this list is usually very short, i.e. empty so finding the right game should be easy enough).

The player lobby:
Once you got your game running and your friends have connected to your server you'll see 4 buttons and, if you are the server, a big button at the very bottom to start the game. Now each player can pick a team in the game. Each game has 2 teams and two spots per team. There is the Hiding Team and the Seeking Team. Once you click on one of the buttons it will set it to ON, meaning you are logged into the game and will spawn once the Server hits the start game button. Now let's get into some gameplay!

The teams – Hiders:
In Sneaky there are two different teams that play fundamentally different. The hiding team is equipped with a stun gun that has 3 darts in it. Once they are all fired he is out of primary attacks for the rest of the game so try not to waste them. If you hit an enemy seeker he will be stunned for 10 entire seconds in which he will be unable to move or see at all. Keep in mind he can still shoot though. As a hider you don't want to get into actual combat though and instead should try to sneak past and outplay the enemy seeking team. As a hider you can jump with space and use that to get to areas you'd otherwise wouldn't be able to get to. You can also use this to jump through windows and escape your persuers. With left shift you can crouch in order to hide behind cover and sneak past your enemies. Crouching you also make less noise while moving.
Your goal as a hider is to hack a database which you can access from 3 different consoles around the map. These consoles are the green glowing cubes spread around the map. Step in front of them and press E to start hacking. On the top of your screen you see a counter which will go up the more data you have hacked. Once this counter is full the game ends and the hiding team wins.

The teams – Seekers:
The seekers play a much more fast paced role. As a seeker it's your goal to find and take out all hiders in the enemy team. (fun fact: This is the reason why the the game instantly ends when you try to start the game alone as a seeker. The game will detect that there are no enemy hiders left and instantly sets the win condition to true).
As a hider you don't have all the fancy movement controls that your enemies have. Instead you have a gun, and you will need it! Your gun has a mag of 45 bullets and once that runs out you can walk to any ammo crate and press E to grab a new mag. You also don't need to worry about death as a seeker. The stun darts of the hiders only paralyse you for a short time, but don't do any actual damage.
Listen out for sounds and try to predict the enemies next move. You sure can't catch up with the speedy hiders but you bullets definitely can.

The map:

This is the map from a birds eye perspective with the shadows toned down. You can see the two spawn points of the teams, the consoles the hiders want to hack, and the ammo boxes for the seekers to refill their ammo. There are plenty of ways through the map with lots of verticality and options for your enemy to jump on you, so stay focused!

Montag, 24. März 2014

SNEAKY - post mortem

Over the last 2 days I've made a stealth fps pvp game based on the classic kids game of good ol' hide and seek. It can't get much more basic then that, can it?




I really enjoy the overall premiss. As a hider you really feel like being hunted by an overpowered enemy. You need to predict his movement and his actions, trick him, juke him, outplay him.
The map is designed with a two layer system. Almost any area in the map has a second layer to it that is usually only accessible by the hiding players. From these spots they can stalk their enemies and plan their moves. Giving players the opportunity to slow down and think about their actions was very important for me. As much es the fps component feels fast paced and action packed the game play itself lends itself much more for slower and precise play. Just running around the level until you randomly find your enemy usually gets you nowhere and and as a hider more often then not killed.
Sound is another important aspect. Every move you make creates sound. If its firing your gun or even just walking, everything can give away your position even if you are in full cover. The hider has the ability to duck down which also softens his footsteps and making it harder to be detected by sound.
The final tricks to eliminate any chance for stalemates are changing the bounds of limitations. Many games force players into certain actions with a timer. Once the timer runs out the favoured team wins. This rewards quick thinking and reflexes more then careful planing. By removing the timer the games pace is entirely up the the hiding team as they spawn in an area inaccessible for the searchers. They can take all their time to observe and strategize they want until they strike. At the same time they need to put themselves into dangerous situations if they want awareness over the searching team. Here I remove an often used boundary and give the players more freedom in their play style. In order to prevent any kinds of stalemates in which the players ignore the objective and turn the game into a straight up death-match there is no way for the hiding team to actually frag a searcher. I also gave them a very limited supply of ammo for their stun gun to provoke careful usage of their ammo. Once a hider has fired all his 3 stun shots he has no ability to fight back in a conflict. But the usefulness of each of these shots makes them all the more important and relevant for the core game play instead of just becoming a gimmick.

All in all I'm extremely pleased with how this project turned out. And even though I haven't played much of it yet and really enjoy the dark and scary atmosphere as a hider, and the action packed hunting as a seeker.
There are many problems and systems that could be done better I'm sure.
The overall art style with the hard shadows is, while essential for the game play, very jarring and sometimes even abstract to the eye which is not intentional by any means. The weapons don't handle too well, the firing feels weak and unimpactful. And a very annoying bug in the ground detection causes the game to ignore a jump input every now and then which can create awkward situations. Since the footsteps are such an essential game play aspect they are overly loud and can get kinda annoying when all you hear is your tap-tap-tap for several minutes. And the slow pacing can create plenty of downtime for the seaker, depending on the willingness of the hider to go in or not. This aspect also makes the entire game concept extremely griefable.
Also, since the game doesn’t feature any kind of input prediction at all and instead handles movement calculations directly on the client it's extremely easy to hack and break by any kind of hack software.

But still, I think for a 2 day prototype these drawbacks are mostly minor and the game stays playable and enjoyable for the most part.

-file closed-

Mittwoch, 5. März 2014

It's that time again...

I remembered why I always cancel my zombie games. Because making them is freakin boring!
I still want to finish the survive prototype before going back to Geroll, but I got even more side-tracked by a little idea I had the other day while watching the podcast from the guys over at http://podcasts.uselessopinions.com/ .

And as always when I get an idea I just couln'd stop thinking how I would execute that. Thinking became tinkering. Tinkering became coding. Coding became magic and BAM! Suddenly I got a new unfinished prototype.

I'm not going to reveal what this new prototype is about but you'll probably manage to figure it out if you watch the latest episode of the podcast. Anyway, here is a little leaky screenshot:


[EDIT: Harch... I just notices the typo in the title. Dough! I'll fix it, don't worry... ]

Samstag, 1. März 2014

Survive - fifth update

I didn't feel too well today so I mostly added small stuff to Geroll and Survive which doesn't require much thinking.
I have narrowed down a  critical memory leak problem in Survive but wasn't able to find exactly whats causing it. I also added a couple new features to the ui and improved some behaviour background code to be more percice while still beeing fairly efficient.

I've also finally added the stamina system which is going to be a fairly big part of the managment aspect of the game. Keeping the stamina of your heroes at a decent value in dangerous situations is going to be a key mechanic and it's cool to see it taking shape. Right now the stamina bar has no actual effect though. The plan is slow down exhausted players, making them easier pray for the undead horde.

Another little feature is the double click detector. Double clicking on the ground makes your character run there instead of taking there time. Running also diminishes your stamina faster and makes more noise, alerting zombies further away.

The last new feature is barely implemented but I started adding communication from the character class to objects. In other words is now possible clicking on an object to tell your character to move there and interact with it. But again, very early mechanic and still loads of stuff to do with that.

More to come soon - ish.



Mittwoch, 26. Februar 2014

Survive - fourth update (last one of day1)

Okay. I'm done for today. Worked for about 10 hours on this thing today and now I'm absolutely destroyed... Still not anywhere near done though.

So, whats working?

The basic controlls are in and most of the behaviour is working just fine.
The overall server structure is fairly polished for a 1-day game and is relatively easy to use.
Object state syncronisation works pretty much flawlessly thanks to unitys amazing networkView class and the ai is optimised to run smoothly even with a large number of enemies on the map.

What's missing?

Attacks aren't in yet, neither are objects or items. Objectives get tracked, but aren't displayed or even calculated propperly.
The map currently only contains a single test building and is waaaay to small for actual gameplay. Some more buildings, houses and other cover objects would be nice.
A detection system that stops rendering enemies that aren't in sight of your team. Still not really sure if I like that feature since it removes controll from the player, but I think it will help the atmosphere and pacing.
Propper ui. Each character has a whole bunch of different stats but unfortunately you barely notice any of it because nothing is displayed in the ui. Very annying.
Doors, weapon pickups, quest items for objectives and an overall object class that is powerfull enough to normalize all these things into a single pipeline.
And of course a win screen that shows up when a level is finished.

Nevertheless I would call this first day a success. Did I make a strategy game in a single day? Nope! But I got pretty close.
Here is the final build of the day. More to come soon-ish.

>>>PLAY<<<

Survive - third update

okidoki. Finished movement and zombie behaviour for now. Currently avoiding them might be a little bit too tricky but I'm not quite sure how to fix that yet.
I also did some UI code and got totally side tracked. Spent almost an hour fixing the health bar color lerp function while I could have used that time to fix some actual gameplay... dough!

Oh well, at least I got some fancy health bars now. After looking at the time (It's 10:00pm already) I realized that I might not be able to get a playable prototype finished today which really really sucks. I got 2 more gamebreaking problems on my todo list before I can really show it off. The biggest one beeing the player assignment. I think I may have to rework my start screen and the network class if I really want it to work. Once that is done the rest should be fairly easy to fix tough.

This is how my current to do list looks like:

ToDo:
group movement
startGame gets only set from server
slot system for players
server can choose seed

Survive - second update

Another 2 hours have passed and I finally added some basic input. You can send your units around and get detected by the zombies now. In fact the movement system is pretty close to beeing done, just 2 more minor features and it should be stable enough for the prototype release.
Next up is some more server code. I really need to finish the character state syncronisation. Then I'll have another go at the zombie behaviour and finish the movement system. Then I'll finally upload a first webPlayer build.
But first I'm gonna make me a Goulash. (You guys really spell that as GOULash... Like... Goul? Thats freakin weired!)

Survive - first update

Put about 3 hours of work into this now and got lots of good, clean code done.
The basic server - client structure is fully functional. So is the reaction from zombie to survivor. You can move the camera and every character in the game has a whole bunch of tracked stats. Next up are some first interactions like selecting units and moving them around.

I'll also have a look at a simple avoidance system so that the characters don't walk into walls constantly. It's not gonna be as nice as actual pathfinding but definitley better then nothing. Performance is gonna be an iffy topic anyway since I want a whole bunch of zombies on the map. So the simpler the movement system the better.

I also got a little sidetracked and added a simple cutscene mechanic. And it turned out pretty darn cool I must say.

Next I'll have a little break and then try to get some actual gameplay going later. Until then.




New Mini-Project: Survive

Can I make a simple strategy game prototype in a single day? Not sure to be honest, but let's find out!

The concept is fairly simple and something I tried to do numerous times before. It's a multiplayer coop strategy game in which you controll a group of individuals trying to escape a zombie outbreak. Think of Left4Dead meets Commandos2. Is it gonna work? No clue. But I'll keep you up to date. Let's do this!

First 3 Steps:
- basic netcode, sync characters and random values over the network

- basic class structure and behaviour functions for survivors and zombies
- basic input & ui

Samstag, 22. Februar 2014

Options Rant

Today I took a break from code optimization and instead toyed around with Unity's QuallitySettings class for a proper options menu.
Now, if you have ever played a commercial Unity game before you may have noticed the striking lack of ingame options in almost all of them. I always thought this was due to some weird rendering limitation of the engine that wouldn't allow changing render settings while the game is running. But as it turns out it's apparently only due to laziness of the developers or their inability to look at the freakin API. Because the ingame QualitySettings class is freakin awesome!

It's super easy to use with a whole bunch of service functions and excellent documentation. And so I made one of the best option menus I've seen in a unity game in just about an hour. Crazy, isn't it?
Quit slacking Unity game devs!

Okay, enough ranting. I still don't have anything new to show as most of the code is still broken. In the most current version all I can do is running around and shooting, every other feature got removed or broke during the optimization, which is kinda frustrating. But I think it will be worth it once it's done.

That's it for today, stay tuned.

Donnerstag, 20. Februar 2014

May I introduce...

Spend a ridiculous time reworking almost every part of the code today and therefore managed to break pretty much every feature in that damn thing. Whoo me! But still, the code is coming along quite nicely and I expect being done with most of the basic code refinements by the end of the week. New features that are finally gonna be possible thanks to all the cleaner code are things like weapon customization, different types of bullets that have more ways to react with their surroundings, and most notably freakin sounds!

I also did 2 other major things today:
First, I finally made a little gameplay video showing off a new level that is coming up in the next stable build of the game.



And Second, I thought of a title. No, don't worry, it's not going to be called Doomed or anything lame like that. Instead say hallo to


Mittwoch, 19. Februar 2014

Updates and Upgrades

Got some pretty insane progress done this week, especially today evening. Over the last few days I've been constantly adding new maps and refining old ones, adding a whole bunch of new gameplay features and mechanics. But the more features I got done the more annoying the terrible place holder code from the first couple of days became. It took longer and longer to fiddle in new systems so I finally sat down today and rewrote most of the old broken ugly code and replaced it with new, even more broken, but slightly less ugly code! Yeaaay me! I'll need a couple more days to iron out all of the old and new little kinks in the systems, but then the overall gameplay should be fairly stable. I finally starting putting in some proper trigger and event based map design system which will hopefully make a lot more dynamic maps possible in the near future. I also pretty much rewrote the gun code from scratch. The new code is about half as long, twice as fast, way less buggy and super easy to mod. Now thats what I call improvement. Booya!

One feature I haven't really touched yet, and I probably won't until prototype version 0.1 is enemy AI. Currently the AI, (or the behaviour code to be more percice, as the therm AI is about as meaningful as calling a toaster high end hardware) is as basic as it gets: If they see you, they shoot. AI is not going to be a big part of the project anyway since I much prefer having dozens if not hundreds of enemies in a map instead of only a couple of smart asses. Though a basic movement system at the very least, inspired by the behaviour mechanics from Doom or Quake would be nice. It's not that these systems should be all that difficult to code, but it will probably require a whole lot of testing to see how much the frame rate suffers from constant AI check raycasting.

Still don't have any pictures or videos yet, but once I got a stable version, I'll take some time to document the whole thing and make some neat gameplay videos and screenshots.
Until then...

Freitag, 14. Februar 2014

current project: let's make a single player fps that doesn't suck

Modern singleplayer shooters kinda suck. There are exeptions of course, but qualities like weapon balancing, level design and pacing get more and more left behind and are replaced with shinier graphics and turret sections.
There have been a couple of decent oldschool-throwback-wannabees lately, trying to recreate the good ol' days before singleplayer fps became different variations of running along nice looking set pieces, with loads of cut scenes and occasional sections of shooting brown people.
And while some of them are far from beeing bad games, they still don't manage to be any more fun then a game that is more then 25 years old now, would run on a toaster and rhymes with broom.

Could please get some AAA dev off their arse and make a decent fps campagne for once? No? Well fine, I guess I have to do it my self then. Say hallo to... well...

uhm...

Okay, I don't actually have a name for it yet, I usually just call it "my game thing". But there is already a lot of action in it. With explosions, big guns and demons from hell trying to eat your face off (right after bruning it to a crisp with rocket launchers).

I'll post a little more about ideas, concepts and progress in the future but for now I just want to leave this little link here:

>>>play me<<<

There you can check out the current version of the game after about 2 weeks of development. More to come soon-ish-ish.