Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1395936 Posts in 67320 Topics- by 60447 Members - Latest Member: Uzuma

October 17, 2021, 01:23:35 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsTinyKeep - Escape the Dungeon (Steam release!)
Pages: [1] 2 3 ... 7
Print
Author Topic: TinyKeep - Escape the Dungeon (Steam release!)  (Read 35022 times)
phi6
Level 2
**



View Profile WWW
« on: September 23, 2013, 08:26:26 AM »

~ TinyKeep ~
Escape The Dungeon








Hi everyone!

After a couple of months break from the technological world, I'm back and I'm here to stay. After being successfully funded on Kickstarter, I've since quit my day job and will be working full time for about a year on TinyKeep.

It's the first time I've ever done anything like this and it is a very scary prospect not having a job to fall back on, so I thought I'd start documenting my progress here and hopefully give an insight to anyone interested what it is like to be a completely independent game developer. Whether the game is going to be a success or I simply end up crashing, burning and homeless on the streets, I want you lovely TIGSourcers to hear of it first hand.

My KS money runs out September 2014, so that's when the game will be finished and released.

I'll be posting here at least once a week for the next 49 weeks. (I just officially finished my 3rd week on the project as a self-employed person, so that's 52 weeks in total)

PS. Thanks to Alehkhs (TIGSource editor) for posting about TinyKeep on the front page of TIGSource, and also to the guys from the previous thread during the Kickstarter campaign. I got a lot of backers from here, so without you guys I probably wouldn't have made it.

OK, let's do this!
« Last Edit: December 04, 2014, 08:54:48 AM by phi6 » Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #1 on: September 27, 2013, 09:16:58 PM »

Full time development of TinyKeep began on 1st September, but as I started this dev log on the 23rd, here's a quick summary on what I got up to in the first few weeks:

Week 1

Having moved house a week before, I had to quickly get the office (a tiny box room in my new rented place) up and running and ready for coding.


Week 1 is all about planning, so I made this giant wall chart of month by month milestones which shows what I need to achieve on time lest I run out of money by September next year! I used Post-it notes here which are handy to rearrange, as we all know even the best laid plans can change.


Finally, I spent a massive chunk of time working out my budget for the entire year. As my only source of income will be the funds from Kickstarter, I have to make sure I have enough money for food and rent after all the game development related expenses are deducted. Also - I'm now officially a sole trader (self-employed), and that means keeping records for the tax man.


Week 2

With the workspace and financial matters set up and clear in my head, I can get onto working on the actual game. Although I was absolutely itching to get started on the coding side of things, I had to stop myself from doing so before actually planning on what I was going to do, and that means setting myself some weekly deadlines for September and October. It's not glamorous, but it helps keep me on track and on time which is very important when game development stops becoming a hobby.

September/October will be all about finalizing our Procedural Dungeon Generation.

Week 3

The original prototype showcased on Kickstarter was built in Flash. Since getting the funding, I quickly moved onto the more powerful Unity Pro engine, and so this week I spent mostly rewriting the dungeon generation code in C# and getting to grips with the Unity workflow.

You may remember me posting our algorithm on Reddit a while ago:
http://www.reddit.com/r/gamedev/comments/1dlwc4/procedural_dungeon_generation_algorithm_explained/

The Flash version of the generator is still up:
http://tinykeep.com/dungen/

As part of the push to get things out on time, I decided to promise myself that I'd release weekly builds of whatever I was working on to my game mechanics/concept guy Ben. It's also a great way of getting regular feedback from him in a structured and timely manner. Here's some of the comments he made on an early version of the dungeon generator:


Week 4

So based on the feedback from Ben, I iterated the dungeon system until we ended up with something we were both happy with. The focus then for this week was implementing locations of doors, and start work on our puzzle tree. That is - a tree of zones in our dungeon which contain lock and key puzzles. We wanted to generate zones or partitions within the random dungeon that are behind locked doors, and place a key to open them somewhere else. The problem is non-trivial as we wanted to support nested zones, and of course guarantee that all zones are accessible and solvable. The last thing we want is to end up with a game where a zone is impossible to access because we've mistakenly placed a key behind it.

Here's a sneaky peak of the kind of thing we'd like to end up with:


And so as of yesterday that concludes Week 4 activities and we're now up to date!

Next week hopefully the puzzle tree will be finished and I can start looking at furniture placement...
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #2 on: September 30, 2013, 05:11:15 AM »

As an addendum to last week's work on dungeon zoning, just for fun I decided to crank up the maximum room limit to 500 and see what kind of layout it would end up with.

The following took several minutes to generate but it was totally worth it for the crazy result! I probably won't be including levels of this size in the release though... Tongue

Logged


TinyKeep is now on Steam!
@phi6
somin
Level 0
***



View Profile WWW
« Reply #3 on: September 30, 2013, 05:23:58 AM »

not so tiny now! Smiley
what do the different colors stand for?
Logged

@sominklein      WIP Story Exploration Game      WIP Weltenformer      Done CLIMB
Excy
Level 2
**



View Profile
« Reply #4 on: September 30, 2013, 05:38:48 AM »

Just watched that kickstarter video, looks fucking amazing and incredibly fun to play! I hope the multiplayer happens.

Edit: I'll back you when I get home, it *must* be scary transferring to working on a game full time. I hope you get all the support you need and you have no major setbacks!
Logged

phi6
Level 2
**



View Profile WWW
« Reply #5 on: September 30, 2013, 06:37:47 AM »

not so tiny now! Smiley
what do the different colors stand for?

Haha yeah! The name originally came from the 2d version, it was supposed to be a 5 minute coffeebreak roguelike with really small graphics, but the concept and art has evolved a lot since then. But the name stuck! Maybe Tiny now refers to the chibi-style graphics or the streamlined RPG mechanics I have planned.

The colors come from zoning, they can be used for a number of things mainly lock and key puzzles and to determine spawn/home locations for Orcs and Skeletons (they each have their own territories).

I'll back you when I get home, it *must* be scary transferring to working on a game full time. I hope you get all the support you need and you have no major setbacks!

No need to back - the project is already funded and going ahead as planned! However if you want to support the project you can pre-order but that's not the reason why I'm posting here. I think it'll just be interesting to see how this turns out over the next 48 weeks Smiley
Logged


TinyKeep is now on Steam!
@phi6
Excy
Level 2
**



View Profile
« Reply #6 on: October 01, 2013, 02:11:10 AM »

No need to back - the project is already funded and going ahead as planned! However if you want to support the project you can pre-order but that's not the reason why I'm posting here. I think it'll just be interesting to see how this turns out over the next 48 weeks Smiley

Oh, okay! I'll pre-order it then! ^^
Logged

i-kari
Level 1
*



View Profile WWW
« Reply #7 on: October 01, 2013, 02:52:32 AM »

Brave move to go full time indie. Best of luck!
Logged

Fervir
Level 4
****


JustLikeMakeGame


View Profile WWW
« Reply #8 on: October 01, 2013, 08:48:13 AM »

Full time indie!
Living the dream!

Looking forward to seeing where this goes!
Logged

   
Konidias
Level 4
****


View Profile WWW
« Reply #9 on: October 01, 2013, 09:28:33 AM »

Good luck! I backed you early on during the kickstarter and it looks like you are very serious about the game so that's awesome. Smiley
Logged

phi6
Level 2
**



View Profile WWW
« Reply #10 on: October 04, 2013, 09:19:11 AM »

Week 5

So this week I decided to stop messing around with the 2D debug visualizations and do a little bit more of what Unity was actually designed for. Here's our progress on the zoning system discussed last week so far, rendered in full lovely 3D. I'm using Unity Pro for this, with deferred rendering path, static batching and real-time shadows and still getting maximum performance.

Note that these coloured cubes won't actually be in the final game, they are there simply to help us test which rooms are being zoned off. However, the lighting was just so pretty I had to take some screenshots!


The exit room indicated by 2 red cubes.


A "birds eye" view of the zoning system in action. Pretty disco lights!


Vanity shot of our very own "red light district".


Ominous blue zones...


The green zone locked away by the 2 wooden doors at the bottom. You'll need the correct key to access this area and all of its treasures within...

That about wraps it up for our lock and key puzzles!
Logged


TinyKeep is now on Steam!
@phi6
aberrantmind
Level 2
**


View Profile
« Reply #11 on: October 04, 2013, 09:39:38 AM »

looks real cool. good thinking on the initial planning, and good luck!
Logged

phi6
Level 2
**



View Profile WWW
« Reply #12 on: October 04, 2013, 10:37:26 PM »

Thanks!

For week 6 I'm going to create a quick minigame for our focus group testers, where they will have to navigate from the beginning to the end, optionally picking up keys and unlocking zones on the way if they want to improve their score.

It's not an involved game by any means, but it is important to test every isolated game mechanic and get as much feedback as you can. In this case - we're testing lock and key puzzles.

The questions we're trying to answer:

Will players find it tedious running around the dungeon looking for keys to unlock zones?
Is there enough extra reward in doing so?
Or will they just go to the end bypassing all of that stuff?
As we've made it optional to allow players to ignore the zones if they want to, will that make the game too easy?
If it wasn't optional, would that annoy players even more?
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #13 on: October 12, 2013, 09:33:19 AM »

Week 6

Week 6 is finally over! So as I mentioned last time, at the end of October I'll be sending our first build to the monthly focus group users (a few "lucky" people who for some reason gave me a lot of money for the privilege of finding early bugs!).

As part of this first release I wanted to focus a bit on cleaning up the UI so that it's a little more polished to look at. The work I'm doing will also help me get a handle on the different UI solutions available for Unity, which will form the foundation of all the UI work in the future.

Unity GUI
If you've ever used Unity, you'll know that the default UI system that comes with it is plagued with a whole host of performance and usability problems. I won't say anything further about the subject, there are plenty of complaints on this thread:
http://forum.unity3d.com/threads/191921-Why-doesn-t-Unity-s-GUI-work-for-you

As an ex-Flash/ActionScript developer I leaned towards a few different 3rd party UI alternatives: Noesis, Autodesk's Scaleform and UniSWF.

Noesis
Noesis uses XAML, an XML based templating system from Microsoft's Silverlight and looks extremely polished however it lacked Linux support.

Scaleform
Autodesk Scaleform looked like the best of the bunch, supporting a full AS3 virtual machine and pretty much the entire Flash feature set. However, it is extremely expensive (you have to purchase a license for each of the platforms you intend to export for) and also there is currently no Linux support.

UniSWF
Considering I had promised my Kickstarter backers Windows, Mac and Linux support for the game, I ended up going with UniSWF. A nice and light framework that can automatically take a Flash file (.fla) and convert it into a format ready to use in Unity. Unlike Scaleform, AS3 isn't supported as there is no virtual machine, so all the logic has to be coded in Unity (C# is my preference). Not a big deal, but there are other drawbacks too such as the lack of 9-slice scaling, masks and blend modes. The pricing is good though, and Linux is supported out of the box as it uses Unity's rendering system just like any other scene object. All sprites are exported in a single texture atlas which helps reduce the amount of draw calls too.

Given these limitations I was still able to implement a robust enough system for my needs.


The buttons and parchment can be 9-slice scaled, which I had to implement manually in code as UniSwf doesn't support it.


Implemented a few different controls such as dropdown menu, text inputs etc...


Quite nice to see progress bars integrated with the dungeon generation work I've been doing for the past few months!


A non-UI screenshot just for fun, some monsters have self-illuminated heads such as this glowing imp. I like the lighting on this one! Smiley

Next week I need to get the HUD up and running for the first gameplay test!
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #14 on: October 18, 2013, 10:48:36 PM »

Week 7 is officially over!

I swear, the days go by way too quickly! It's odd because when I was working in full-time employment at a digital agency, the weeks were long and I always dreaded Mondays. Now, the opposite is true, I get panicky on Friday evenings and wish I had extra hours in the day to do even more work. I think that's a good thing though, it means motivation is pretty high right now!

Bugs

So a couple of weeks ago, my game designer Ben found a few issues with one of our builds when running in fullscreen mode. Strangely, he couldn't alt-tab or switch to another application. So I had a quick look and it seems that this is only happening when building the game for DirectX 11. It looks like a Unity specific issue: http://answers.unity3d.com/questions/456271/directx-11-and-minimize.html

The problem is resolved when I build for DirectX 10, but I'd like a better solution. Has anyone experienced this before? I'm thinking of posting a bug-report.

Development updates


In-game pause menu is implemented! This surprisingly took ages to create, not the actual design itself but the "Exit to Main Menu" behaviour. Have you ever noticed that most jam games/prototypes have no replay button? This is because it requires a significant amount of work to properly destroy objects in memory and start a new game from scratch, so in this case I had to make sure I wasn't running into any memory leaks.





Automaps! I intentionally made the maps quite sketchy and unclear, mostly for aesthetic reasons but also I didn't want to give the player too much detail whilst they explore. Things like doors and exact placement of rooms and tiles are omitted. I think for gameplay's sake, it's good enough just to have the general layout, but I didn't really want the player to spend too much time on this screen.





Unity has some really nice easy to integrate HDR features, so here I'm using a post-processing image bloom effect. HDR means that the intensity of the image can exceed the 0 - 1 range, so we can make things like the torch light look even brighter and more intense. It's a nice effect, but we're going to make this an option as it can slow down the game on older hardware.

That's it for this week, but already I'm itching to get started again come Monday Smiley
Logged


TinyKeep is now on Steam!
@phi6
Impmaster
Level 10
*****


Scary, isn't it?


View Profile WWW
« Reply #15 on: October 19, 2013, 03:12:09 AM »

Looks interesting. Will follow.
Logged

Do I need a signature? Wait, now that I have a Twitter I do: https://twitter.com/theimpmaster
phi6
Level 2
**



View Profile WWW
« Reply #16 on: October 25, 2013, 10:00:24 PM »

It's that time again!

Week 8 has finished and I admit I'm a little behind according to my planned schedule, although some of the work I have done will hopefully save me time in other areas in the future.

The biggest time sink of all: performance issues!
So when I decided to add a load of physics-enabled rigid body furniture to my rooms, the game crawled to an absolute halt during the first few seconds of loading as all the objects settled down. Once they were sleeping, the framerate went back up again. In the end I knocked together a really quick system to disable collisions, rigid bodies, particles, lights and shadow calculations on all objects outside of the the player's view. Unity's camera does automatically cull rendering outside of the viewing area, but clearly this was not enough as there is a lot more stuff going on in the background too! To solve this, I've added a huge sphere collider around the player character, that collides with triggers around the dungeon and the different objects get enabled/disabled accordingly. Seems to work pretty well, and we're back up to a consistent 60fps most of the time.

Getting decent performance has always been a tricky thing with TinyKeep. Because we're procedurally generating our dungeon levels, a lot of the usual optimisation tricks were unavailable to us. And we're not talking about putting together jigsaw-like chunks of the level either, TinyKeep is procedural right down to the last floor tile and wall segment. Things like lightmapping, occlusion culling, static batching etc... can't be used because these must be baked in at development time. That means all our lights must be rendered in real time! So as you can imagine in a dungeon, with hundreds of torches, it's going to be an issue.

Our strategy to get around some of these issues is to compromise on the following:

1. Topdown camera. Even though we allow a bit of zooming in and out, it reduces the amount of the things to be rendered on screen. In fact this negates the need for occlusion culling entirely!

2. Deferred rendering path, this allows us to have many many lights on our scene as long as they are small. Thankfully, our torches don't light up a large area so this is perfect for us. Unfortunately, this technique breaks down for larger lights (such as a room lit by a chandelier, or fire pit), so we have to make sure that for rooms such as these we only use the one large light, and not include torches there. Once a light's range starts overlapping others, you'll get issues. The good thing about deferred rendering is the added benefit of real-time shadows from point lights, but again these are restricted to the larger lights only as calculating shadow maps is pretty expensive!

3. As mentioned above, disable physics, collisions, particles and lights outside of a certain distance away from the player. Of course this means interactions between monsters and objects can't happen outside of the player's view, but it's a compromise we have to make.

So far so good, but we'll probably have to revisit this once we add monsters and our AI code kicks in! Anyway enough talk about performance, here's some screenshots of some new features this week:

Week 8 screenshots

We now have dungeon entrances:


And exits!


Lighting schemes

I've also been working on different lighting schemes for the variety of environments I have planned for the game (prison, fiery hell, organic forest area, pitch black caverns). Of course these environments will all be using different models and textures, but just changing the lighting makes a huge difference to the feel of it all. None of the following are photoshopped, they are a simply slight tweaks to the ambient light color.

For the prison area, we're using neutral ambient lighting. Wood looks like wood. The stone walls and floors are cold and grey, the only respite coming from the warm glow of the fire pit.


Our cavern levels will be pretty dark, so the only way to navigate through these is with a torch, or by following luminous crystals and glow in the dark creatures. So for this environment, we use no ambient lighting at all (black).


Our fiery hell levels will be constantly lit by the red glow of flowing lava. The air is hot and dry, walls are scalding to the touch, and there is lava, fire and smoke everywhere. I wanted it to feel like we were inside a volcano, so the ambient light here is a highly saturated red.

Reference image (volcano): here

Finally our organic forest level will have vines, ivy, moss and other fauna, underground trees and waterfalls tearing apart the dungeon walls as nature reclaims its territory. I wanted to go for a Zelda-esque feel with floating spores, falling leaves and lots of sun shafts/god rays coming through the tree canopy. The ambient light has a green tinge to it, as the sun light filters through the green leaves.

Reference images (forest): here and here

Of course you need to use your imagination as to what the actual environment models and textures will look like, but for this exercise I was just focusing purely on the lighting.

Torture chamber
I had some extra time this week to add my first furnished room, a torture chamber complete with hanging gibbet cages, dead skeletons....


X-shaped stocks inspired by Theon Greyjoy's experience with the Boltons...


Of course all physics enabled, so if you push hard enough... (Whoops!)


What a week!
Logged


TinyKeep is now on Steam!
@phi6
phi6
Level 2
**



View Profile WWW
« Reply #17 on: October 25, 2013, 10:44:27 PM »

One final thing:



You can now zoom out at any time to see a clearer view of the surrounding area, this will surely be a help when planning your tactical decisions (if you've ever tried our AI demos, we're going for quite fast-paced combat which has a kind of a flow to it, so peripheral vision will be very important).
Logged


TinyKeep is now on Steam!
@phi6
Noogai03
Level 6
*


WHOOPWHOOPWHOOPWHOOP


View Profile WWW
« Reply #18 on: October 25, 2013, 11:25:26 PM »

This is absolutely gorgeous. It has a fairly standard art style for 3D dungeon games but that isn't a problem; the lighting looks amazing!
Logged

So long and thanks for all the pi
0x0961h
Level 2
**


Quantum Demon


View Profile
« Reply #19 on: October 26, 2013, 02:05:02 AM »

Forest light reminds me of Diablo 3, but in your case it looks very in-place, like it should be there from the beginning. Smiley
Logged

Pages: [1] 2 3 ... 7
Print
Jump to:  

Theme orange-lt created by panic