Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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







Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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.



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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



Admin

Administrator







Posts: 59

Administrator Developer Log Select Post

Select Post Deselect Post

Deselect Post Link to Post

Link to Post Member Give Gift

Member Back to Top Post by Admin on 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.

