|
Post by Admin on Dec 19, 2014 5:39:59 GMT
Template Log #16: Procedural
Today was spent finishing up the enemy species area generation scheme. So now there is quite a bit of variety in the enemies (barring any real content made in this area, I've got some cool plans in the works though).
After that I spent a bit designing a system for procedural activities in the world. I'm trying to define a way that makes things to do in the world based on a procedurally generated list of "actions", that are based on the content in the world. Each action corresponds to something happening, whether it be player triggered or not, and then its contextual meaning. For example an action might be "interact with <x> / pull lever". This action maps the player's ability to interact with something to a contextual thing (the lever). The system may generate effects based on these actions. For example, pulling the lever may cause another action to happen: "passive / boulder explodes" leading to an entrance opening up. In order for the system to smartly figure this out, it creates rules for rules. It's pretty meta. I can create a network of actions and transitions between them. So an action may require 3 other actions to have been done before firing. I then go in and type a ton of contextual rules for this thing to run by and as I build content, the triggers will happen automagically allowing for seamless transitions. It will also allow me to more easily link the content on different parts of the world. Maybe defeating a boss will allow for some contextual switch in the world... All I have to do is make the rule: "killed boss" and "find locked gate" leads to "gate opening". The hard part of this is choosing the content in the world to match the rules. Maybe there are 5 bosses and 3 gates... which ones need killin and which openin? When generating the actual rules, it maps the actions to actual content. This is what I mean by creating rules for rules. In actuality, the world would have a set number of possible actions based on the content dropped, and the system would collect this and then generate cause-effect paths through these.
But if some content is on the other side of the map, there will need to be conveyance for the player, which may manifest itself as more actions to lead you there, or some UI work on the main map.
But anyway, there is a lot of work to make the above work well, but once it is going, I can quickly iterate on smaller gameplay modes in the world.
Template Dev
|
|
|
Post by Admin on Dec 22, 2014 1:38:23 GMT
Template Log #17
Today I spent iterating a bit on the UI mock up and designing some basic UI for an items menu. In order to test many things such as shops, pickups, equipping, etc, I need a minimum amount of UI able to convey items that my character has collected. it is time for there to be some more in-game conveyance for it so that other things can be designed a bit more smoothly.
I'll post the mock up of that in Art at some point. The game dev grind continues.
Update
-sigh- It looks like Unity finally got some decent UI support in 4.6... and unfortunately I don't have 4.6, but I'm going to need it in order to get my to the desired look... so I guess I'll be doing that this week.
Template Dev
|
|
|
Post by Admin on Dec 23, 2014 5:49:04 GMT
Template Log #18: Loadout
Phew, spent most of the day getting some of those UI concepts in and working. Now I have completed the loot loop (I should trademark that). The player can kill things, or open chests, pick up gear, equip gear, and actually see the differences visually and when fighting. It's really starting to feel good. I'm very excited to be at this stage where things are starting to come together.
I go on break tomorrow but that just means I'll be working on this more than ever. Now that I've got an in-game way to convey items, I can move forward with a whole plethora of designs. I'll likely not touch this until after Christmas, but then I'll be putting quite a bit of effort into polishing up this part and just all around iterating on the game.
Feels good.
Template Dev
|
|
|
Post by Admin on Jan 13, 2015 3:53:08 GMT
Template Log #19:
Still alive. Wasn't able to get much done over break as my computer's graphics card is starting to bite the dust. But now that I'm getting back into my work groove, things are falling back into place.
Today I spent some time iterating on combat design some more. It's nice to take a large break away from your game so that when you come back you can clearly see things that are wrong with it.
This week I hope to continue iterating and will likely spend a lot of time defining the direction that the game will go from where I have it. A lot of my systems have been implemented so it is getting close to the point where art, design, and interesting game mechanics come into play.
Template Dev
|
|
|
Post by Admin on Jan 17, 2015 18:36:01 GMT
Template Log #20
Today, I revisited run animations and polished them up a bit so traversal feels a bit more organic. It is feeling pretty good at the moment.
Later, I plan to finish up the conveyance part of equipment and setting up the correct joints to socket in weapons/armor. Then back on combat.
The game dev loop continues.
Update:
Made some breakthroughs with core combat this week. The game is really starting to play like a game. The proof-of-concept stage for this is going rather well I must say. I'm pushing more for horde-based gameplay (as killing hordes are fun)... I think gameplay will revolve around dispatching large groups of small, easy to kill enemies, surrounded by a larger, harder to kill enemy. The harder to kill enemies will have rather special behaviors. For the enemies in the world, I'm thinking they will spawn a small party of people when you get too close. This will allow me to keep the battle pace how I want the player to experience it.
Template Dev
|
|
|
Post by Admin on Jan 21, 2015 4:36:20 GMT
Template Log #21: Springs
Today I iterated upon the camera work I started before break.
Previously, I had the camera on a spring of the player while the camera also looked at the player. This looked decent but I'm going for more of a Diablo 3-style camera, which is a spring alone. Unfortunately, I also want to swivel around the player. These two concepts generally don't play nice for the camera, so I decided to solve it in a somewhat weird fashion, add more springs!
How I do it is to do spring interpolation on both the transform position and the look at poisition, with the look at 'k' value rather high. This makes it a bit laggier than my position 'k'. Effectively, I get a diablo style movement scheme when not swiveling, and a camera that points relatively in the right direction of the player when swiveling, creating the effect I'm going for.
Anyway, more iteration. Bumped up the speed a bit to make the game faster paced. Enemy spawn and combat have been iterated on tonight as well. The game dev train continues.
Template Dev
|
|
|
Post by Admin on Feb 5, 2015 6:43:38 GMT
Template Log #22: Design By Sound
It's amazing the small methods you pick up when developing games. While iterating on combat I realized my sfx weren't up to snuff, so I made some modifications and the game sounds much better. But it created a distance between what I heard and what I felt was happening. I had gotten the sound to the point I needed it but the gameplay wasn't reflecting it. This is actually a very fortunate circumstance because it is so easy to ramp up visuals to match sound effects. Sometimes, the sound is easier to start with and then you can use it to create a visual goal.
Combat is continuing to look and feel better.
Some inspiration came from the game Lost Ark, which if you haven't heard of, you need to. It's an amazing game.
Template Dev
|
|
|
Post by Admin on Feb 17, 2015 4:21:22 GMT
Template Log #23:
Combat iterations have been going well. I think the pace of it is not well defined, however. Currently, enemies are just chilling in the world in packs and you can take a group out, but that isn't exactly my goals. I'm thinking of using cinematic segues into battles. Leave a single enemy out in the world and have them whistle for more or something. This lets the user pick his fights a bit more as well.
However, I still want that Diablo/Dynasty Warriors feeling of taking out large groups of enemies at once. In dungeons, I'm thinking that it will be much more diablo-ish, while in the overworld, combat will be more wave-based. To mix it up a bit.
In other news, its time for me to start looking critically at getting real pathfinding in here. Up until now, my agents have been naive and I haven't had a need for good pathfinding, but now that my enemy formula is being fleshed out, I need to take another pass at generating navmesh dynamically. Unfortunately, Unity's built in navmesh has no support for dynamically generated terrains. The best I could do is make an assumption that my game has a single layer and then carve out at runtime. But I don't wish to make that assumption this early, so I need a real solution.
I will likely either end up making the whole system myself or getting a system in use from the interwebz. I think an A* pf project I read about recently might help.
|
|
|
Post by Admin on Feb 22, 2015 1:59:57 GMT
Template Log #24: AI and combat
Spending quite a bit of time thinking about enemy AI and overall combat. Currently, it isn't quite there yet.
Mostly, I'm hoping to adopt an AI style similar to how Kingdoms of Amalur did it, which you can see here:
Their formula generally consists of keeping their AI out of reach, but won't plan to reposition until a certain amount of time after the player enters their own comfort zone (so they don't run away immediately upon the player trying to run and attack them, giving the player time to go in and do some damage.)
Usually they will swivel the player until they choose to attack. When they choose to attack, depending on the creature/attack type, they generally run in, do their attack and then slowly back out (or quickly for more difficult foes).
Some key decisions in their design show through, such as always trying to keep enemies within range of most magic attacks.
But since this AI type is generally against the style of "hit all the things" that I'm also trying to get, I'm thinking about making two different AI modes. One for out in the world, where your goal is to capture enemies, and one for dungeon instances, where enemies will be low level and the only real goal is to kill them as fast as possible, and then the bosses will be more or less a normal mode of difficulty where they actually have custom dodge behavior and the like.
Anyway, I'm gonna go polish it up a bit and see how it feels.
Template Dev
|
|
|
Post by Admin on Feb 23, 2015 1:18:09 GMT
Template Log #25: Bodies. Bodies Everywhere.
Here is a quick update after doing some combat tests and starting to get some real assets to test enemy pipelines. Here is the aftermath of a failed troll invasion:
Poor troll bastards.
Template Dev
|
|
|
Post by Admin on Mar 12, 2015 3:34:55 GMT
Template Log: #26: Tiles
After analyzing the current world creation system, I've determined that it is undermining my ability to truly create the content that I want. Therefore the whole thing has gotten a rewrite.
Now, the world is generated (and streamed) through a tiling system I wrote.
Fun fact: The purple is so I can see if there are any holes/gaps in world while in-game.Writing this thing as a tile system lets me iterate quickly on aesthetic decisions. In addition, it give me better access to do some dynamic pathfinding as well as a more efficient streaming system. Most importantly, though, is that it will let me fill out a world much quicker than before. A simple set of rules and a few different tile variations can make a relatively fleshed out world, and now I can truly create all the content as I intend, such as roads, rivers, and lakes, which were becoming a pain in the last world creation iteration. This truly gives me the freedom to put whatever the hell I want in the game AND make it look good.
So I'm pretty excited about it. It makes me giddy. Now I can put down nice looking decals and better ground textures without wondering how it will fit into the overall system, that shit just streams in from making a variety of tiles, and I just make rules for what hooks into what. Its just a matter of making some simple content that fits together and BAM, a world.
On top of all the above benefits, I get easier access to terracing and to actual nice-looking rivers/ledges.
Bottom line, for isometric games, a good tiling system kicks ass. There are some logistical issue of figuring out some larger rules for how these things fit together from a procedural standpoint, but the underlying tech is so solid, I don't think moving forward will take much time at all.
Expect screenshots in the future to have nice-looking things as the world starts to feel more fleshed out.
Template Dev
|
|
|
Post by Admin on Mar 13, 2015 3:41:42 GMT
Template Log #27: Perlin
I'm returning to attempt a pass at using perlin for guiding the base landscape of the generated tile world.
Here are some block in examples:
The above are a couple of arbitrary executions.
The basic idea is to smooth out some perlin noise by first doing a flatten pass where each pixel is set to its max neighbor. Then, they are cut off at threshold values for the different terrain height layers.
Then the system goes in and tiles accordingly. Currently, the tiling is naive, and just assigns a block to the right heightmap. The plan is for eventually getting a sophisticated tile hierarchy system in place for each height layer.
Template Dev
|
|
|
Post by Admin on Mar 22, 2015 2:29:51 GMT
Template Log #28: Regions
Today was an extremely productive day. Started out writing a minimap for the procedural terrain which works very nicely.
Rounded out by creating a region system similar to how Lenna's Inception created theirs.
First I generate regions by using a random nxm sized rectangle and check pathfinding ability between the start tile and each tile in the rectangle based on whether regions have already been set and heightmap information. For each region, I also set its neighbor regions. The pathfinding is all done with an A* algorithm.
Having this data is extremely useful. For one, now I just need to calculate an MST in order to get good entrance and exits between different elevated regions, since each region is delineated between heights, I can now calculate where to put stairs/ramps/etc. The other great part about this is now I have a nice region for setting content and controlling difficulty. Lenna's used a similar system for a lock-and-key setup so they can control progression across the world. Which is awesome, so I may try something like that. And finally, now I have a very nice data structure for calculating paths, which is really the next step for this whole thing.
Edit: What a full world might look like:
Template Dev
|
|
|
Post by Admin on Mar 23, 2015 0:08:53 GMT
Quick Update:
A very very rough pass at creating paths under the new system.Road networks are generated using the MST of the region graph. It calculated orientation and prefab type by looking ahead and behind each tile in the path. The regions are solid enough, but more work needs to be done to keep situations where paths get side-by-side. Either I'll need to tweak the mst algorithm to constrain a minimum number of neighbors per node or fix the A* pathfind to be a bit lazier.
|
|
|
Post by Admin on Apr 11, 2015 23:51:11 GMT
Template Log #29: Aesthetics
I thought I would give a bit of an explanation of the core aesthetics Template is attempting to hit.
Now, these are not just visual aesthetics, this spans all design aesthetics. Traditionally, games are usually organized by 8 core aesthetics that map to a need that we as humans have. I added a new one to mine, as I don't believe it really fit into any of the other 8. The following are my aesthetic goals:
Sense-pleasure
Sense-pleasure is the pure audio-visual experience that a game delivers. This is fancy artwork and sound design that keeps people up at night thinking about. Up until now, I feel I have failed mostly in getting this one up to speed. I am not a trained artist, so my art is very slow paced and does not often composite well. Lately, I have found some success in new styles, but I will continue to iterate until I have something that is worth a release. The overall goals for this are to bring nostalgia to old fantasy JRPGs and to make music that I would listen to on repeat.
Narrative Narrative is the drama that is presented to the player in some fashion. It is the story and details associated with it. Previously, much of the over-arching story in Template has been lacking. There is some simple scenarios written, and a a few smaller ideas written down, but I find this will be one of the most difficult areas to execute on given that I'm not sure if I can even start iterating on this until the gameplay and visuals are up to a certain bar. The goal for Template is to be zelda-ish in nature. Zelda doesn't need to do much in order to tell a narrative. They use camera and visual cues that can take the place of paragraphs of dialogue.
Challenge
Challenge is the obstacles that the player is expected to overcome. Although difficulty is often associated with this, it isn't strictly the same. A game can execute pretty well on challenges without being too difficult. Monument Valley comes to mind as an example. Although my game will have a fair amount of vertical progression, which means some difficulty will come straight up from the numbers you are doing compared to the enemy's health, I am hoping most of the challenge comes from smart enemy AI and level design.
Discovery
Discovery is the act of finding new things in the game. Really this can be anything that surprises the player. My two main means of accomplishing this aesthetic is the design principles of quest distribution (a la Zelda), and the procedural creation of the world. The scale of the world will be a large factor and when I execute on the visual style of the game, the biomes and dungeons will be a lot easier to churn out I believe. The other part of this is the collection mechanic of creatures and loot. This is one of the biggest factors of the discovery aesthetic. Coming across that legendary piece of gear and that shiny pokemon is fulfilling this need.
Power
This aesthetic I've created myself. I believe this is the need for people to feel in control of a situation and overall powerful. I think games like Dynasty Warriors and Diablo are kings of this Aesthetic. They let you blow through hordes of enemies quickly, and in dazzling effect. This makes the player effectively feel like a badass. Thus one of the goals of the Template's design is to give the player this feeling. The means of doing so will lie greatly in the number of enemies, enemy difficulty, feeling of the weapons/abilities, camera effects, etc. This aesthetic relies on a lot of different things working well with respect to core combat so it will be one of the more difficult things to get right.
Expression
Expression is the ability for the player to project themselves in the game. Games achieve this in varying ways, from WoW's classes and gear to Diablo's ability loadout. Choice in gameplay is a large factor of this. I intend to deliver on this mostly from the skills/loadout that the character can choose and from the relatively different gameplay modes I hope to deliver. Since the game is non-linear, players should be able to play any of the gameplay modes I create (given they are all unlocked).
Abnegation
Abnegation is the idea of games as a past-time. It is usually the "grind" in games. It could be the traditional grind such as in Diablo, WoW, and Destiny, or it could be a more casual grind like farmville. I believe this aesthetic comes mostly out of a combination of the above aesthetics mixed with a pure vertical progression for the player to pursue. The hope that players can always get "more" is the major factor here, and something I hope comes out at the end.
These 7 core aesthetic goals are not going to be easy to execute on. Few games successfully hit 3 or 4, let alone 7. But executing on all of these is the difference between an ok game and a great game, so why would I even develop games if I'm not gonna go for the experience I want to create?
Template Dev
|
|