Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411430 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 07:07:31 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsGuild of Dungeoneering [now out on iOS and Android too!]
Pages: 1 ... 15 16 [17] 18 19 ... 22
Print
Author Topic: Guild of Dungeoneering [now out on iOS and Android too!]  (Read 88732 times)
gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #320 on: November 24, 2014, 04:22:15 AM »

Getting my daughter to help out with some pair programming :D



We have some nice changes coming in soon. We've ripped out how you get HOPE cards, they are now dropped as loot from defeating monsters and the level corresponds to what you've beaten. It feels MUCH nicer and solves the whole 'why should I fight monsters' thing very completely.

Will share playable version pretty soon!
Logged

Nilanjan
Guest
« Reply #321 on: November 24, 2014, 07:37:58 AM »

Getting my daughter to help out with some pair programming :D



We have some nice changes coming in soon. We've ripped out how you get HOPE cards, they are now dropped as loot from defeating monsters and the level corresponds to what you've beaten. It feels MUCH nicer and solves the whole 'why should I fight monsters' thing very completely.

Will share playable version pretty soon!
So cute!!! Smiley
Logged
Mattie
Level 0
***


View Profile
« Reply #322 on: November 24, 2014, 08:03:09 AM »

Got any more signature dungeon-crawling monsters? Got any silly monsters we could include for the laugh?

Just some monster ideas:)
- banshee
- beetle
- black demon
- ghast
- (rock) crab
- phoenix
- werewolf
Logged
gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #323 on: November 25, 2014, 09:52:04 AM »

Just some monster ideas:)
- banshee
- beetle
- black demon
- ghast
- (rock) crab
- phoenix
- werewolf

Some good ones there! Fred's done a whole LOAD of monsters now, enough to keep me busy for a while! Will share em soon.

For now here's some animated gifs from some recent work:









« Last Edit: November 25, 2014, 05:07:36 PM by gambrinous » Logged

gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #324 on: November 25, 2014, 03:26:51 PM »

Update: v0.6.33 Nov 25th

Changes since the last version
- Removed hope counter. You no longer spend hope to place equipment or treasure, which can be placed freely now. However you no longer get HOPE cards from regular draws. Instead they are dropped as loot whenever your hero defeats a monster. The level of hope card dropped corresponds to the level of monster defeated, so take on those harder monsters to get the sweet top-end loot!
- Rebalanced some monster/equipment stats. More of this to come!
- Added a yellow hope icon to dead ends. The first monster beaten on a hope icon drops loot at +1 level. Finally a reason to dip into those dead ends!
- Added a clickable, expanded character sheet so you can examine all your currently equipped stuff
- Added tooltips to equipment on the expanded character sheet & monsters/treasure already placed on the board so you can check out their stats again
- Made all monsters & equipment have a level between 1-5 (no more blank level stuff).
- dread meter no longer linked to monster placement. Instead it is now simply a timer. When it fills up the boss will appear on the board to chase you down!
- trying to scroll the map beyond the bounds of the visible dungeon no longer possible
- click anywhere to skip past chat bubbles. They also now stay on screen in proportion to the length of their message
- dungeon boss now sometimes moves a 2nd time per turn. No more staying one step ahead forever
- monsters disappear from the board with a sweet ripped-up effect
- your hero now only says lines like "This looks vaguely familiar" when they have in fact been there before
- autoplay (demo mode) starting mutes all sound ('S' key toggles sound)
- tutorial message now more obvious
- instructions screen stays longer so you can read its wall of text (click to skip)
- music loaded differently, solves a long pause at game start

Play this version:
Browser (Flash)
Installable (AIR)



Logged

gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #325 on: November 28, 2014, 07:14:25 AM »



Owen made real tiles from the game. I guess we'll have to prototype a board game version now!!
Logged

gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #326 on: December 07, 2014, 03:49:33 PM »



Fred's been doodling. It's Embro in the bath.
Logged

bigalphillips
Level 0
*


View Profile
« Reply #327 on: December 08, 2014, 09:35:03 PM »

Update: v0.6.33 Nov 25th

Nice update!  Gaining hope items in exchange for winning fights makes a lot of sense.  (Only slight complaint here: near the end of the game, sometimes I find myself in a situation where I want to avoid playing some monster cards because I know that if I win against that monster, I will gain a relatively useless low level item, which takes the place of an otherwise useful card slot.  If hope cards were drawn after refilling your hand up to 5, might make this better, or just chalk it up to just need to be careful about where you place low level monsters.  (and probably less important when glory means something to bring back to your guild.)

Also a bug, perhaps: if I have 6 defense but not enough power to defeat Embro, the final fight will end in a draw, our hero will move a square away, Embro will follow and attack him again, the fight will end in a draw, hero moves away, etc.  Twenty minutes later, they are still battling to a draw without a chance for me to do anything.
Logged
gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #328 on: December 09, 2014, 06:01:21 AM »

bigalphillips: yep, thinking about allowing more than 5 cards in hand in that case. And yep that bug with no one winning the fight is annoying and has been around quite some time. We're changing combat to fix it.

Here's some paper prototyping for the combat moves system...

Logged

cass16x
TIGBaby
*


View Profile
« Reply #329 on: December 11, 2014, 09:51:45 AM »

I keep getting stuck in this loop where I have enough defense where Fire Demon can't harm me, but I don't have the strength to defeat him in 5 turns. so we just go back and forth between 2 spaces fighting over and over again until i gave up.
Logged
gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #330 on: December 15, 2014, 07:02:50 AM »

I keep getting stuck in this loop where I have enough defense where Fire Demon can't harm me, but I don't have the strength to defeat him in 5 turns. so we just go back and forth between 2 spaces fighting over and over again until i gave up.
The combat system we're prototyping (see pic above!) will prevent this kind of deadlock.
Logged

gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #331 on: December 15, 2014, 07:03:50 AM »

We are now hiring a GAME DESIGNER to work on Guild of Dungeoneering. Full details are here:
http://blog.gambrinous.com/2014/12/15/now-hiring-game-designer/

If you are interested or know someone who might be then check it out!
Logged

EdFarage
Level 2
**


I can upload avatars


View Profile
« Reply #332 on: December 15, 2014, 07:22:01 AM »

I played the last demo and i really liked it, good progress from the last time!
I do have a little feedback to give, if you don't mind.
-You should only do the "tutorial" only once, using sharedobject would solve this easily
-You shouldn't be able to close your dungeon, and if you did, it should "game over"
-Path finding shouldn't repeat the same movement more than three times, i played a match where i moved up and down about 10 times, pretty annoying
-Also some monsters are way too strong for the first level
Again, im sorry if this isn't the place for this, just trying to give you my feedback, cheers  Coffee
Logged
gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #333 on: December 24, 2014, 03:43:53 AM »

I played the last demo and i really liked it, good progress from the last time!
I do have a little feedback to give, if you don't mind.
-You should only do the "tutorial" only once, using sharedobject would solve this easily
-You shouldn't be able to close your dungeon, and if you did, it should "game over"
-Path finding shouldn't repeat the same movement more than three times, i played a match where i moved up and down about 10 times, pretty annoying
-Also some monsters are way too strong for the first level
Again, im sorry if this isn't the place for this, just trying to give you my feedback, cheers  Coffee
Thanks for the feedback - agree with you on all fronts!
Logged

gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #334 on: December 24, 2014, 03:45:09 AM »

Just wanted to wish everyone a happy Christmas! Thanks for all the support and feedback over the last year. You guys are great  Beer!

Should have some exciting news to share about Guild of Dungeoneering in early January  Well, hello there!
Logged

kverkagambo
Level 0
***


View Profile
« Reply #335 on: December 26, 2014, 10:02:31 AM »

It is a really good game starting with concept ending with art! And it has cards too - extra awesome.
Logged

Plaguepunk Justice

Comrades and Barons: Solitaire of Bloody 1919
bdsowers
Level 3
***



View Profile WWW
« Reply #336 on: December 26, 2014, 01:07:23 PM »

This looks pretty incredible, and I'd really like to see the board game version. Smiley
Logged

oscan
TIGBaby
*


View Profile
« Reply #337 on: January 06, 2015, 09:08:35 AM »

Hey guys! This is Owen from the Guild team. I wrote a post about how I went about making the scribble effect for the tiles. Thought you might be interested in having a look

Quote
One of the big draws of Guild of Dungeoneering is the distinctive art style created by Fred;  it really evokes that feeling of playing a paper and pencil style RPG, where you are sketching out your own dungeon maps. However we felt we weren’t doing that art justice in the transitions between picking a room card and it appearing on the page. Rooms simply faded in to a static image. We also weren’t really happy with the way the game was highlighting possible placement positions for new rooms, showing just question marks in valid locations when in the middle of the placement sequence, which was confusing for some players.


So when I joined the team one of my tasks was to try and implement solutions to these issues, eventually coming up with what I call the Scribble Effect.

The Scribble Effect

We knew we wanted to somehow mimic the rooms being drawn, by pencil, on to the screen. So I figured the best way, or at least the best way I knew of, would be to use image blending effects. Guild of Dungeoneering is slated to first release on Steam for PC & Mac, however the game is entirely built in Flash (in pure Actionscript to be more precise) primarily using the Flixel engine. So I would be able to use Flash’s built-in bitmap functions and blend modes to get the result I was aiming towards. I had used similar techniques in the past when creating dynamic fog-of-war systems, so I was confident enough in going for this approach.


Looking at a single room tile, we can see it is made up of two main parts: the room itself, and its surrounding hatching. That hatching is made up of a ten by ten grid of alternating horizontal and vertical strokes, which is also aligned with the grid of the graph paper below. I decided to use this grid as the basis of the effect. At the games current fixed resolution each room tile is 150 by 150 pixels, making each small square of hatching 15 pixels square. These small squares were to be the basic building blocks.


I created a very simple spritesheet consisting of four frames, with each frame being 15 by 15 pixels, with simple semi-transparent black scribble strokes. This would be used as a mask to progressively build up the effect on each grid square. When applied over 4 steps they would layer on top of each other and slowly reveal the actual image pixels.

I wanted the effect to grow out from the existing tiles. So when starting the effect I check to see where the neighbouring tiles are, if any, then pick a starting location based on the highest density. If starting from a corner, the effect will then spread diagonally out from that point. If starting from a side it will move across to the far side whilst also spreading perpendicularly in both directions from the middle of that side.

Setting everything up

The other main piece of setup is creating the various temporary display objects required to pull off the effect. The effect takes place on the final Tile object itself that is placed in the world; when the sequence is finished it will just hold the static room sprite, but will start out blank and contain a couple of temporary images and mask display objects as variables to enable the effect.

The first mask we use is a Flash Shape object with its default blank Graphics object. In Flash a Graphics objects is a simple canvas for drawing vector graphics (lines and shapes), but as well as allowing you to do solid and gradient colour fills you can also do a bitmap fill. With a bitmap fill, when you draw a shape the filled in contents will come from a portion of a supplied image. This can be useful when you want to do quick and cheap frame/spritesheet based drawing/blitting. As the effect will progress the scribble spritesheet will be drawn to the Shape, adding the appropriate frame in the appropriate position for the grid square currently being executed.  With a fifth step added on the end to completely fill in the square this results in the mask filling up to become entirely opaque black.


This build-up sequence is queued up during the initial effect set up. Throughout the game we make extensive use of the TweenLite library from GreenSock for normal transformation tween animations but also for timing using its delayed function call features, and here we make extensive use of the delayedCall() function to enable the scribble effect. We loop through each of the one hundred squares and set up its initial delayed call to the masking function, with the appropriate delay for its position - the pattern of delays depends on from which point to grow out from. Then within the masking function, when called following each delay, the next delayed call step in the sequence is queued up for that position. For a basic effect that’s five hundred delayed calls.

It is within these built up black areas of this first mask that we want the actual tile to be displayed, so this mask isn’t quite what we need. What we really need is the inverse so that we can erase the remaining areas from the full room image, another temporary object contained within the Tile. In the beginning everything is erased from the room each frame, then less and less needs to be removed until the sequence is complete and nothing is erased leaving just the full room tile image. This inverting, erasing and then copying of the modified contents of the room image to the Tile objects framePixels (and then resetting of the room image to its original state) is done in the Tile’s draw() function, called once per game frame when Flixel is ready to copy the Tile’s framePixels to the Flixel Camera blitting backbuffer.

This second inverted mask is a Flash Bitmap object. This is so that we can use the draw() function from its bitmapData Object, which allows the use of BlendModes. The inverted mask is first instantiated during the effect set up and filled entirely with a solid colour (doesn’t matter what colour, as long as there is no transparency). Then each frame, in the Tiles draw() function, we take the current state of the first mask and draw it on to the invert mask, making sure to use the BlendMode.ERASE blend mode. This effectively makes the first mask a special one-time eraser brush to be used on the second mask.


The inverted mask is now ready to be applied to the temporary full room image in the same way. The room image is a FlxSprite, Flixel's implementation of a Sprite - which contains a couple of Flash’s bitmapData objects, one of which being framePixels. Similar to how the original mask was drawn on to the invert mask with an erase blend mode, the invert mask is now drawn on to the room sprites framePixels, also with an erase blend mode. This removes the parts of the room that have yet to be ‘drawn’ by our pencil scribbling sequence. The result is what we now want to be displayed to the screen. This requires just one more draw call to apply the modified room pixels on to the Tile framePixels itself, which in turn will get picked up by Flixel and copied to its camera. The temporary room sprite is then forced to redraw its frame, thereby restoring its original state as stored on the other bitmapData in the FlxSprite, ready to be used on the next frame.

Splitting the scribble into two passes

To remove the hard edges from each tile, borders are added where there are no neighbouring tiles, which lends to the hand drawn aesthetic. These borders perform their own versions of the scribble, being triggered and synchronized by the parent Tile.


Originally each tiles room and surrounding hatching was incorporated into a single flat spritesheet.


By separating them out we can then run the effect on both independently, with differences in direction giving a more dynamic result. Rooms would grow out from existing adjacent doorways, while the hatching would grow out from the highest density of neighbouring tiles as before.


Using the effect elsewhere

Breaking out the room portion of the tile also led to the solution for the highlighting issue.

In the game, when you select a room card, all of the valid placement locations are highlighted. In the past we indicated these highlights with a question mark surrounded by hatching to communicate ‘hey, you can put this room here!!’. But while observing new players during play testing it was noticed that this was not clear to all players.


With the rooms now broken out on their own, and since highlights are just a special type of Tile, we can use them to draw just the room as a highlight using the scribble effect (at partial transparency) in all of the valid placement locations, which gives a much better impressions of where rooms can be placed. When a room is dropped on a valid spot the highlight is then drawn over with the full effect. For all the other highlights not used, a simple erase effect is done with a simple mask spritesheet (in a single pass since we’re just removing what’s already there).


There is no limit on the number of highlighting positions there can be in a dungeon, which could mean potentially a lot of scribble effects attempting to run at once, impacting performance. So we do a little bit of extra optimisation by caching in each direction. The first highlight to attempt to scribble out from a particular side (it’ll only be in the four cardinal directions) will assign itself as the master effect, then any subsequent highlights that attempt to go the same way will just assign the master’s framePixels to themselves, meaning no additional computation needed.

All scribbled in

So there you have it, that’s how we achieve our dynamic tile drawing effects. I must say I quite like it myself, but as I found when writing this post there’s always room for little improvements.

If you have any comments, questions or suggestions we’d love to hear them.
Logged
gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #338 on: January 13, 2015, 10:06:10 AM »

So we're finally making the game work at a proper resolution (1920x1080). Here's what it looks like.



Click for huge.

Whoops. It's using all the high res art but all the positional and sprite-size code hasn't been updated yet Tongue
Logged

gambrinous
Level 4
****


Indie Game Developer


View Profile WWW
« Reply #339 on: January 15, 2015, 04:41:23 PM »

Game Informer included Guild of Dungeoneering in their 'Bevy of New Indies' article on P16 of this month's magazine!



Our first ever mention in an actual printed magazine!!
Logged

Pages: 1 ... 15 16 [17] 18 19 ... 22
Print
Jump to:  

Theme orange-lt created by panic