Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

"Adventures" - family-friendly, coop, dungeon crawling with "positive attitude" mechanic and values

Discussion in 'Works In Progress - Archive' started by SoftwareGeezers, Apr 7, 2016.

  1. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904

    "Adventures" is an unique in-development cooperative, multiplayer game about teamwork and being nice! Play with friends and family! Fight monsters! Find treasure! Compliment each other! Give emotional support! Succeed by being nice to each other! It has just been shown at the Norwich Gaming Festival where everyone who played it liked it. The youngest player was 4 and the oldest something like 74, and they could join in the fun with everyone else (school children, university students, parents) making Adventures a game you really can play together. Here are the pretty lofty goals I'm looking to accomplish.



    • Cooperative gaming - Ultimately, for me 'coop' means communication-based gameplay, talking about what people are doing and trying to do, calling on each other for help or giving instructions, and that's what I'm gunning for. I've played a lot of 'coop' games and generally they involve little more than hitting things at the same time. Adventures requires actual coop as each character has limited skills and abilities. In it's simplest form, not all weapons work with all creatures, so one player may be good at killing jellies but no good against skeletons, and if they're getting chased by a skeleton, they'll need to run to a team-mate for help.
    • Morale system - I've seen plenty of kids at school who want to be smart or beautiful or athletic, yet no-one values being nice. I want a game where choosing to be nice (or a good cook, and maybe other options) is an option for players because they see the value in it. Adventures features a morale system where players get demoralised by in-game events, and they need encouragement and support from the other players to cheer up and even get moral bonuses. Players can specialise in being nice and encouraging.
    • Family friendly - I want a game even young children can enjoy, so the interface is kept very simple and there's focus on specific fun interactions. eg. the parent can freeze a monster with a spell enabling their child to 'squash it' with a tap. Should have some exciteable moments shouting out which creatures to freeze/squash, etc.
    • A game for everyone - this is a lofty goal, but Adventures is not just a 'kids game'. The gameplay needs to be satisfying for everyone and this is achieved by a very clever piece of design and procedural creation, allowing the gamer to choose the experience at the difficult level they want. A dungeon can be created for one or two adventurers, or ramped up for a single player to tackle with a complete party of four diverse characters. At it's most difficult, Adventures in solo play is a complex party-based real-time strategy needing fast decision making and team control. But then you could have a friend or family member jump in via network play to join in.
    • Unique loot and skills ideas - One issue I take with the usual loot-and-level experience is most of the loot is pointless filler sold for crazy amounts of gold. In Adventures I have a Cunning Plan to ensure all loot has value and getting an item is always an event of interest. Every item will be collectible and usable in crafting unique items.
    • Environmental gameplay - Another thing I want to avoid is 'button mashing'. I want there to be lots of options for environmental interactions and more gameplay to focus on using these to kill monsters than basic weapon attacks. For example, in the Gaming Festival demo there was a unicorn that could be charged up with compliments to fire a devastating rainbow ray. Combined with good teamwork, this was able to bring down a particularly difficult boss.





    • Updated screenshot
      screenshot5.jpg

      Development has been a solo endeavour for about 8 months, creating a very playable prototype. Much of the core engine is complete and the remaining work is mostly content creation and refinement although I've still some work to do improving network code, which is tricky! In order to finish the game, funding is going to be needed for an artist and sound designer at least so I will have to have a go at crowd-funding.

      Please provide any feedback! Positive, negative, suggestions.
    Steam Greenlight page
    http://steamcommunity.com/sharedfiles/filedetails/?id=681013324
     
    Last edited: Oct 5, 2016
    educaPix and Teila like this.
  2. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    Some technical details for Unity users. If you want to know about any aspect, just ask and I'll update this.

    Using
    A* Pathfinding : https://www.assetstore.unity3d.com/en/#!/content/1876
    Pathfinding, natch!​
    SpriteTile : https://www.assetstore.unity3d.com/en/#!/content/13794
    Create maps with tiles. Excellent asset efficiently draws the map and a complete doddle to use. ​
    GameDataEditor : https://www.assetstore.unity3d.com/en/#!/content/18480
    Database engine. Store items, skills etc in database for editing. Also allows saves.
    Things I've had to solve myself
    • Tile movement was surprisingly tricky. eg. When moving towards a tile and something blocks it, you have ot backtrack. Coupled with network sync, this took a time to solve
    • Procedural maps. Tried a few assets but they all produced something a bit messy and prone to odd design like super long corridors. Am working on my own solution.
    • Interactive engine. Sophisticated means of creating events and actions for varied gameplay. Things like a time limit to destroy a room of crates, or survive for a time period, or herd all the munchkins into an area.
    • Customisable sprites. Means of creating a sprite from parts and having that in a single texture/drawcall.
     
    theANMATOR2b likes this.
  3. Bytewizards-SE

    Bytewizards-SE

    Joined:
    Aug 24, 2015
    Posts:
    14
    Interesting - as a father of a three-year-old girl that seems interested in games, this is something I've had my mind on for a while as well, but never managed to bypass the concept of 'death' (why do we need to kill?)

    Is there a gameplay demo/video available? This is absolutely something i could buy and play with my children
     
  4. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    There won't be a demo for a while as it's missing a lot of content to properly showcase it. I could produce a vid of what I have, although it's not a great showcase. Well, I don't think it is but people still seem to like it! It's a different experience when there playing with other players. Development is on hold for a week or three as I finish another project.
     
  5. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    Finally got a Steam Greenlight page going with video.

    http://steamcommunity.com/sharedfiles/filedetails/?id=681013324

    I'll update the OP.
     
  6. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    Wowza. Been doing this all wrong. Head down in development is the natural way for developers, but it's not the way to get a product to launch successfully!

    Demo nearing completion. Thanks to Colm Larkin, learnt my 'Greenlight' wasn't, hence the lack of response. So will put together a new launch campaign with the new demo.

    Also spent some time creating a Made With Unity page - everyone wants different resolution images! So create images for Google, others for Apple, others for Steam, others for MWU.

    Finally, last night was proper warm so I thought I'd explain why I'm creating this game. the personally story of a friend's suicide attempt is here if you're interested:
    http://softwaregeezers.weebly.com/blog/why-im-making-adventures-or-its-too-hot-to-code

    I genuinely believe the right game can do some real good in this world!
     
    Dave-Carlile likes this.
  7. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    Currently working on tutorial. Tutorial's are always a nuisance - players don't want to sit through them and can't be trusted to follow them! So you have to be as transparent and robust as possible, meaning lots and lots of work finding things the players can do and designing the tutorial around them.

    There's a couple of approaches for interactive tutes. For Footy I copied the game Scene and added a tutorial to it as a quick, low effort solution. However, every time I changed the game Scene, I had to manually update the tutorial scene, which ended up being quite a lot of work. So for Adventures I'm adding a Tutorial controller and gubbins over the top of a normal level. This keeps the game engine completely separate from the tute, but does add quite a lot of fudge work! SpriteTile is great in this regard. I can use it for generating procedural levels, but also it's straightforward to load a map from it. So I load a tutorial map into the normal game scene, and slap a Tutorial over the top.

    Originally I was intending on having the tutorial as a solo affair, but I realised that if several people (eg. a family or group of students in a lunch time) wanted to try the game for the first time, the tutorial ought to be multiplayer. And that means finding each other in game! Played a lot of multiplayer games with friends and it can a while, sometimes hours, before we get to meet up altogether (eg. Guild Wars). So I'm having to work it so the players can meet early and see each other, but not get in the way of each other's learning of how the game works. Suffice to say that throws up quite a few design issues!

    Demo will definitely be ready this month though. Looking forwards to getting some people testing!
     
  8. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    Demo nearing completion. Had to introduce a lot of gameplay elements for the tutorial, such as locked doors to ensure multiple players in the same tutorial don't interrupt each other. They're good elements that make for a better game and were due to go in anyway, but they did slow the process up!

    Currently now facing down a serious optimisation issue. Monsters are spawned at random based on the party playing, allowing for adaptive adventures - a new player joins and a new monster type can spawn. However, this is taking a LONG time. First time using the profiler and it's the Awake() call that's doing it, where I'm caching a load of sprites for the animation. I think I can load one at start and hopefully instantiate that. Otherwise there'll need to be some serious thinking. Hope it won't slow me up too much as want demo ready for trials on weekend!

    profile.jpg
    Guess where the monster loading happens! ;)
     
  9. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    The problem is dynamic creation of sprites from a sprite sheet needed for customizable characters. When a character is loaded (enemy or player), a texture provides the sprite pieces and I extract them into sprites. This clearly isn't going to work as is.

    I can see about creating a copy of the sprites at the start and referencing them. That makes a lot more sense. Have to be careful I don't screw up the player sprite system though.
     
  10. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    That was an easy fix for the demo, shifting everything to a DataCache class and loading it all up front.

    Next issue is lighting, because the game just isn't pretty enough to generate much buzz at the moment. Gameplay may be king, but Twitter and sharing is all visual, hence pretty games get all the attention. Not many games are going to enable Mum and Dad to play with their 10 and 7 year old children, which is extremely cool, but I still need visceral appeal.

    There are plenty of amazing Unity lighting options, but sadly mobile as a target really limits these as drawcalls quickly escalate. Currently I'm at about 50 and I can massively reduce that with some sprite/texture optimisation. Only cheap solution I can think of is a simple masking, drawing lights onto a texture and rendering that on top. Have to keep this in the GPU somehow. I've asked for suggestions of existing assets because I'm sure there must be a solution like this in operation in many mobile Unity titles, but until then I'll be experimenting. I already have the early makings of a specialist glow post effect, so I should be able to combine the two into a simple pass? Yeah, right. It's never that easy!

    Here's a target mockup.

    lightingUpgrade.png

    Does look a lot better and adds gameplay as well - you can have thrown lights and darker/lighter areas. Just need a way to draw big, soft circles (bigger than screen too) quickly an efficiently on mobile.
     
  11. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
  12. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    904
    One of the earliest design goals was flexible gameplay. I love games where you can play with the environment or situation. For example, in Champions of Norrath on the PS2, there were the occasional scattered powder-kegs. There was no mechanic to use them other than igniting them, but the physics engine meant you could crudely push them around. So I'd spend some time creating elaborate powder-keg traps, luring monsters and hopefully detonating them.

    To this end, Adventures incorporates an object system that allows a great deal of flexibility. Coupled with procedural skills, there should be plenty of explorative problem solving. Here's a quick vid of an early example of 'cheating' the system to deal with spawning monsters.

     
    Last edited: Oct 5, 2016