Started prototyping a 2D murder mystery

I started working on a 2D murder mystery, pixel art style. The basic gameplay is about deducing the murderer based on stuff you see on the screen. You play a “coroner” (or “medical examiner”) in early 20th century world and help the local police to figure out cases.

Each case can be played in a pretty short time (I think it will take like 10-20 minutes maximum to solve a case). There won’t be any pixel hunting or that type of work. All the information will be presented to you, and it’s up to you to interrogate suspects (who are also present at the scene)… and then choose who is guilty (if anyone).

After all, maybe it was a hunting accident?


Stopped survival co-op prototyping

I decided to pull a plug on my co-op wilderness survival game prototype. This happened couple of weeks ago or so.

Biggest findings/reasons:

  • Online multiplayer requires time: I had major plans for different scenarios, where threats and many things would happen… but putting these together in an online multiplayer game requires quite a lot of time. I spent much time on networking, too little on gameplay. I really wanted to try out Unity networking, and it’s a really good… but testing multiplayer is a headache for team of my size (that would be me).
  • No graphics budget…: I don’t have the budget to do the things I wished to do. I must pick something simpler.
  • Not fun after one month, not fun after a year: If a prototype isn’t fun (or have something that would give reason to dig further), there’s not much reason for me to continue. I progressed too slowly for this type of game.

Too big scope for me. Going to try something smaller.

Very, very early coop testing screenshots

Alpha 1 build 915 screenshots

I’m prototyping my wilderness survival game. The game is aimed for 2 players, and my first goal is to create an island scenario where two lads have to survive for several days. Players will have to make choices about what they’ll do with limited time. Will they recon the island to find a better place to set up the camp? Will they hunt? Find water? Collect firewood? Players need to work together and decide what’s the most important for survival right now, and keep in mind they gotta build a signal fire to get spotted.

I’ve been using a same character 3d model for both players and I wanted to bring some new 3d models in the game. The 3d models are more high poly than I will eventually have (since the rest of the game will have lower poly models), but they’ll do for now. Here’s the first character.

I have to figure out a way to reduce the amount of polygons this guy has, now he is at 18 000 tris

I haven’t corrected item positioning for all items… and this type of things just happens. At this point I’m not too worried about fixing every item, since they are subject to change. I’ll positioning some items correctly (like the axe) just to see that positioning works OK. If it works fine for couple of items, it will work fine for the remaining similar items too.


Why bring high poly chaps in the game now?
Currently my game has a few important gameplay features: collecting items, fire crafting, shelter building. Tons of important gameplay related features are missing: rain, hunting, boiling water, inventory, packback, ropes, game related events, signal fire. All of these features will require quite a bit of time to make a playable scenario.

So, why bother with the character models when I haven’t even tested if the game is fun to play? Why there’s no simple cubes flying around?

There’s couple of reasons…
One pretty important reason for me is that I’m a sort of a “visual developer”. I like seeing some graphics as they kind of make developing more fun. Not that I’d hate boxes and whatnot, but it’s cool to see actual items and not only cones and cubes here and there. I’m very much in favor of having cubes in prototypes, but there’s some additional benefits when using actual 3d art.

I’m an Unity newbie
I’ve been using Unity now more actively this year, and I’m learning the engine. By adding 3d art I get to see all sort of issues my game has. I see drawcalls getting higher. I can see FPS ratings changing. I can learn about how terrain and rocks could use blending. I notice how my terrain texture is very blurry. I probably wouldn’t notice all these with simple objects with a shared sample material/texture.

I get to test how fast the game runs
Since I’m an Unity newbie, I have no clue how fast the game runs. By having something different than cubes and whatnots, I get more idea about how visuals affects speed. Here’s something I tested yesterday: by adding 40 guys (2 different) on the screen, my old machine went from solid 60 FPS to 30 or so. (My buddy’s computer had solid 60 FPS all the time).

Gotta figure out why framerate drops with these fellas on the screen

It just is cooler to playtest when there’s two different models, one for server and one for the client.


Now the basics of networking and items are done, and I get to continue adding gameplay elements.

Stay tuned.

What happens when you add a multiplayer functionality

I’m currently continuing to build on top of my LD48 jam entry. I’m currently prototyping a two player online multiplayer version and the idea is to get a brief idea on how long this will take. I’m very aware that adding a multiplayer networking isn’t that simple… so the first step is to learn and see if a multiplayer game is even possible for me to do in Unity. And while there are fine articles about the topic (such as this: Don’t make multiplayer games) I want to test it out myself before I decide one way or another.


I have quite a bit of low-level networking experience (I once built my own medium-high level UDP framework), and I don’t want to do that low-level stuff again. But Unity seems to have a decent higher level network available, and so far it’s proven to be pretty good. Here’s some challenges I’ve experienced.

So, what happens when you add a multiplayer feature?
Everything changes.

I started adding 2 player multiplayer support on my LD48 jam entry and it really affects everything. For example, earlier I wanted to set a wooden branch on fire, and in the game it would happen like this: I’d call a function item.setOnFire();

And that’s it. Now I had a wooden branch on fire.

Add multiplayer, and… now only server sees fire on his local machine. I cannot just instantiate fire like that. Now I need to have networkViews, I need to call RPC functions. I realize I want server to be authoritative, so I also add RPC call for “pleaseLetMeFireThisStick” where client asks server to start the fire, server instantiates fire and let’s the client know about this.

And of course I then realize that actually, I don’t need to instantiate fire as a network object. Instead I change the fire ignition code so that we only track the “isOnfire” (owned by the server) and client instantiates particles locally, and server instantiates things locally.

And this was only about fire starting. Let’s not even go talk about what happens when I want to chop down some trees and I must Network.destroy() and Network.instantiate(…) things, and then realize client didn’t yet connect so he sees a ghost palm trunk…

I hope you get the point. And the point is this: I saw the tip of the iceberg when doing a single player game. Then adding a multiplayer means revealing the whole iceberg. There’s quite of bit of slippery stuff ahead.

And I keep going
Explaining “why” on the next blog post.

SPOILER:One reason is because of unexpected things like this