Forum rules - please read before posting.

Making a game Skyrim-style and want to discuss

I'm working on a game that is using a first-person navigation. It's like skyrim in style, NOT IN SCOPE (before anyone decides to re-direct me to a different ambition). The core gameplay and mechanics are similar, such as NPC companions that direct the player to point A, then point B, then leave the player. The world areas are reasonably large, but unlike Skyrim, they are not massive. I'm not using procedural loading so instead of a massive open-world, I have meaningful areas with connectivity. It's a little more like Dragon Age Inquisition in that way, for those who've played. What I want to discuss today is some of my technical ideas and my approach to making aspects of this game. I would like to see what impression the community might have, and take any advice or ideas about workflow using AC.

Collection and Crafting:
In terms of AC, I am using hotspots for harvestables that can be collected one-time only. I don't know how to use hotspots with a time of something like, say, 6 real-time played hours. Should I consider using a timed-node?

Instead of a crafting station, I wanted to do something like - allow player to give BlacksmithNPC a red rock and a green rock, and that interactive Blacksmith NPC returns to the player inventory an item: festive holiday orb, for example. Something like that should be possible, right?

Mecanim/Animation retrieval:
I want to allow my player to block damage with his shield using an animation, in addition to using attack and other animations. Can I just set up a mecanim controller and call this action at a certain time? If t here is a tutorial for this, I would love to see it but I have really only watched the tutorials on controlling simple movement in conjunction to hotspot inspection. Basically, I want to make a controller so my player can enter combat, play animations for fishing and chopping, ect.., so can I provide a controller to allow for that?

I already have an AI system in place, with behavior such as fleeing from the player or attacking the player. The AI system uses it's own controller. The r eason I have to ask about the player's controller is that all AC Players have the paths and other scripts attached, thus I must integrate my custom animation events on the player with that of the default navigation.



I will have more questions over time, I have no doubt. But for now, I wanted to start this thread to see what people might think or get any advice regarding using AC for this project. Thanks!


Comments

  • edited September 2016
    Hey, It's always great to know other people making hybrid games. :)

    1. 
    I don't know how to use hotspots with a time of something like, say, 6 real-time played hours. Should I consider using a timed-node?

    Well, for that you could probably benefit from a global timer, you could then capture the current time when the hotspot is used and when the player checks it again you could have the hotspot compare the saved timestamp with the current timer. If enough time has passed the hotspot could give the player another item. If you want to change the appearance of the object after sometime you could make a looping actionlist to change it's appearance after the necessary time (don't know how performant it would be to have tons of those though...). If the harvest-able object were in separate scenes you could also have a onLoad action list doing the comparisons and checks, that would probably work better (or you could custom script it which if done well could be faster. You could use c# StopWatch and/or DateTime.Now). - Giving items to an NPC in exchange for other items should b no problem as far as I know.  

    2. About triggering animations by input or action
    AC only requires the walk and run Animation state (and jump and turn if you have them), but you can still have a more complex animator working with it. But, well, some of those actions you mention are the type of things you'd delegate to the Update() function in Unity. So, you could create a loop in AC which continuously check for inputs and then react accordingly. Say you detect the right click was pressed, then you could play the raise shield animation, then stop the animation once the player releases the button. other actions, which would be triggered by hotspots will be easier. For example, if you get close to a pier or somewhere you can fish, you could have a hotspot give you the option to fish, the you would just trigger the animation and other logic, you could then have a button to press for stopping. You would only need to be mindful of not choosing conflicting inputs, so you'd give AC inputs different buttons that your other actions. Alternatively you could get or write a custom character controller.
  • edited September 2016
    When it comes to implementing non-adventure elements within AC, you can often find a complicated-but-possible approach but it's sometimes easier to just include some custom scripting that sits alongside it.

    In the case of collection, for example - when you pick up an item, you could send a message / call a function you have on a custom script attached to the Hotspot that begins an internal countdown, which then resets and re-enables the Hotspot when it elapses.  To ensure this all works within the save system, you'll need to write a custom Remember script that saves/restores the timer's current value - but it's pretty simple and is covered in this general tutorial here.

    For crafting, AC's Crafting system is basically just a grid that you can lay down inventory items within to get a new item depending on the combination/layout - so you could re-style the Menu to make it look like an NPC's inventory, but the principle is the same.  If you don't need to actually "drop in" each item onto the NPC's inventory grid, and using each item on the NPC hotspot is enough, you can just use standard interactions.

    As far as player animation goes, so long as you're using Mecanim things should be straightforward.  AC will control the parameters that define it, but nothing more - so if you create a boolean paramater that, when checked, prevents things like your MoveSpeed float parameter from having an effect, then AC won't be able to control it.  You would certainly benefit from some custom scripting/separate asset to implement a proper combat system, however.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.