XaiJu
lerra
lerra

fanbox


Prancing Fields GameDev 30-08-2022

Previous devlog: https://lerra.fanbox.cc/posts/4171402


NOTICE: This game is not playable yet and is still in alpha. I'm hoping to push a demo out soon but first impressions are important, especially when it comes to games I think. Therefore I want to put a demo together that offers a bit more than just running around/clicking doors and showing off sexy ladies in tight bondage. Keep this in mind when going through all this. All small steps help creating a better experience!


This devlog will unfortunately not showcase a lot of sexy stuff however. This devlog is a lot more technical and showing off the player to world interaction. Therefore the devlog will probably be less interesting for some people than the previous devlog... sorry peeps. Good and exciting things can only exist when boring things have been taken care off and were done right beforehand.


Last devlog I ended talking about the shaders of the game and how some of them didn't seem to work properly. Mainly because I had written these shaders from the ground up and they didn't receive or cast shadows. To give some examples:

(This is how my shaders used to be...)

(This is what they should have been...)

For this I needed help, after all, I'm not 'that' good with shaders and I didn't understand everything about them either. I started following tutorials from Catlike Coding:

https://catlikecoding.com/unity/tutorials/rendering/

If you are into writing your own shaders or want a better understanding of how your GPU takes elements from your game and displays these on screen through pixels and the color calculations behind them, this is a good place to start. Don't start somewhere in the middle because the first few tutorials give you the best possible examples and understanding about the how and why behind the scenes.


Anyway... I followed these tutorials up to part 7: shadows.

At first I thought everything was going well. In the engine everything worked the way it should've worked. However, when I ran the game in the 'build' version there were artifacts I couldn't explain nor fix. (image below):

For some reason some of the models suddenly lost their textures and I couldn't fix it. I figured I must've placed a line somewhere in the wrong spot and going back to fix it myself seemed like a drag (took me 4 days to get through all the tutorials...) Having gone through the tutorials I instead downloaded the package from catlike coding and used that to compare it to my own. The result:

Fixed!

I tested these shaders for performance loss but they are equal to the previous shaders luckily. (I looked into batching but it's not done yet, with batching enabled they might be more performant than the previous shaders PLUS I want to add a script to each pointlight, turning them off or on depending on how far away the player is. I'm hoping to win some performance with that as well)


There are still 2 shaders that I need to tackle but due to the tutorials and going through them etc etc, I had lost 4 precious days of work just to get a better understanding of shaders and how they are built up. I therefore decided to put the transparent shader and the alpha mask shaders on hold for now. They require little work to set up but still, I was done with shaders for now :P


So with the point lights and shadows properly being received/cast on other objects I decided to continue making some small lanterns for the world and a script to simulate candle flickering.

2022-08-29 19-52-09_Trim

It's hard to notice since these videos aren't that sharp and beautiful but you can still see the shadow of the girl moving on the tree behind her.

I created some simple light models for now but I will probably make more in the future (including actual candles):

I'm happy how they turned out, especially in the so called "inside" parts of the game where the candle flickering seems appropriate:

2022-08-29 20-10-21_Trim

It's not perfect I know. The candle flickering might be a bit too fast and the scene has been put together quickly just to show off how some of these houses or caves could look.

2022-08-29 20-14-48_Trim

At this point I realized that even though I had so many models etc already, there wasn't much interaction going on. Previous devlog I talked about how some worlds can be beautiful and yet feel so empty since there is nothing to do.

It was time to change that. First, the character needed tools and weapons. Hitting everything with bare fists doesn't make much sense right? So I started modeling and texturing some simple tools and weapons for the demo.

Naturally some of these items needed their own animations and I decided to start with the most common ones: A sword slash, A bow being fired and... a shovel? (not sure if that is one of the most common ones but I felt like the shovel animation was one of the hardest ones to get right so I decided to get that out of the way :P)


I'm happy how these three animations turned out but I haven't imported them all in the game yet since the bow needs an extra script (for pulling the string/making it expand/firing an actual arrow) and the shovel is supposed to help players dig up stuff that has 'randomly' been placed throughout the map.


This brings me to the next point of interest: How exactly was the player supposed to interact with objects and items in the map? Clicking on them? Not long ago I changed the player controls to WASD movement but this creates a playstyle where "if the player is too far away and can still click on something" it either becomes unrealistic or you would have to tell the player that they are too far away. In my eyes... that's annoying. Why can't I click on something and have my character walk over and interact with it? I tried to remember how other games handled this and one of the games that immediately came to mind was Dungeon Siege (Released in 2002). Yes, this is a 20 year old game, but still one of the best in my opinion.


The thing I loved about this game was the simplicity which immediately challenged anyone to go and play it. When you start the game you can explore your surroundings with your mouse cursor. Anything that glows can be clicked and by doing so you would either open or destroy an object. In turn these destroyed objects might drop items for the player to pick up. No fancy icons or messing around with chest UI. No these items really just dropped in the world as plain pieces of text. Again, hovering over these made them light up and let the player know: You can pick me up!


This system is simple and feels natural. Just look around on your screen and try to find loot. If there's nothing there, continue your way.


Although I do like the way players interact with in world items. The inventory itself however... I'm not sure about it. I would love to hear what you guys think about what the best solution is. (Image below)

In dungeon siege items take up extra space in your inventory based on their size. It works very well for the game. It's fun to manage inventory and min/max your profits by dropping the less valuable items. For my game however... I'm not too sure about this.


Since I plan to implement resources and building materials, I feel a system like minecraft, simply 1 icon and a number to indicate the amount of the resource, is a better solution.

Looking up footage and screenshots of dungeon siege made me realize I could actually build this combat / interaction system and it also made me realize how good it could work with the already existing framework I had built and the way I want combat to be.


However, I cannot forget that I'm actually building a bondage game and I know there will be moments where the player can't interact with items because of their tied up state. At those moments it's better to use a WASD system to make the player move around as they try to sneak out of a prison or goblin camp.


Long story short: I'm building a hybrid between point/click gameplay while still allowing the player to move around with WASD or arrow keys.


Now knowing how the player will interact with the world, I can move on and actually create it all. First, the in game item/text labels:

I read somewhere on the net that many canvasses in Unity destroys performance. I wasn't sure about this so I decided to test this myself.

No performance loss. Still running this game between 180 to 200 frames per second.

However, when I added different items, spawned these objects in through script and allowed the game to resize the panels automatically the frames dropped with almost 3 frames PER canvas. The game now ran at around 30/40 frames.


I first I thought it was the automatic canvas scaler that was causing this huge performance loss. So I wrote a script, allowing the label to update for 3 frames, setting it's width properly before turning the automatic scaler off and setting the size of the panel manually, using the automatic scaler values. It made no difference however.

I then found out that all the spawned in canvasses had no camera assigned. In other words, each frame it would loop through ALL the game objects in the world until it found a camera that could render it.


Thankfully, this was the fix and the performance is now stable again :D

I still plan to add different colors etc for different types of loot just like dungeon siege does it, for now, I'm happy with the result.


With the items now in game I updated the inventory UI as well, since it looked out of sync with the ingame loot. I made it dark/black like the ingame item labels. It's slightly see through but it works well. I also updated the way player can manage their inventory items. Now you can drag/drop but also select an item to see what the stats or details of that item are. I must admit however... I have not created the stat/detail panel yet. I was too busy implementing the mouse interaction system that I will talk about in a second. Still, I can show you the inventory and how it updates when resources or weapons are gathered:

2022-08-29 21-52-40_Trim

Here you can see that the number of apples is growing as I pick up more. The same happens with Rune dust. The only thing I haven't done is displaying the number of apples on the ground. I could still add that or leave it like this. Both methods have a certain elegance I think. Weapons, unlike resources, get their own inventory slot and cannot stack. (don't look at the icons please :P It's still in ALPHA!)


At this point I would like to point out the problem I mentioned earlier. How players can interact with objects from FAR away. Example below:

2022-08-30 11-47-38_Trim

Here you can clearly see how the distance to an object doesn't matter. You can ALWAYS pick it up. To fix this I could give a warning sign telling the player "to get closer to the item" before clicking it. But this is annoying when there are 7 or 8 items on the ground and you would have to manually walk to them with the arrow keys BEFORE you can click it.


This is why I implemented the following point/click system:

2022-08-30 12-16-15_Trim

I guess I could increase the range of the pickup radius by a slight bit... but you can clearly see how the character now has to move closer before being able to pick it up.


I'm hoping to use this system not only to make the game look a bit more realistic but also as a gameplay mechanic, where: if you drop something close to enemies, they will in turn check it out and pick it up. But that's something for in the future.


Anyway... with this new system I moved on to actually implementing the first weapon: THE SWORD! :D I had to mess around with the code quite a lot because "attacking" a monster or NPC also meant it had to continually update the locations of both parties where a static item didn't need that type of code at all.


Still, after some work, implementing the animations (and running into a bunch of problems there trying to figure out how to replay an animation... because that surely shouldn't be THAT HARD unity...) I managed to get it all to work without further problems and I even made it in a way that there is a random chance for the broken items to drop loot.

2022-08-30 12-28-55_Trim

As you can see it's still FAR from being complete. It's needs a bit more polish. The walk animation could stop a bit smoother and I would like some kind of destruction/particle effects showing when the item breaks. Other than that (believe it or not) the character is set to swing the sword animation but since it breaks the object on impact immediately the sword animation is also immediately cancled. I need to sync the animation with the moment of impact to create a more realistic look.


Below is the same attack pattern but for enemies in the game. Mind you, this slime has a 1000 health for testing purposes and we only hit him for 1 each swing :P

2022-08-30 12-36-19_Trim

I plan to add 2 more sword animations and have the character choose 1 randomly each swing to create a better look. For now, in terms of testing I'm happy with the result. The character actually does damage and is capable of following the slime even when it moves around (even though the video doesn't show that I guess...)


Last but not least is the combat system that I've mentioned a few times now but never really told you what I'm planning to create: a realtime group based combat system.


This group consists out of several classes that you can choose/combine/play around with and give whatever weapons/armor you think is best for them. You can train them to give them higher stats or buy better armor/runes to get on par with enemies. The classes are somewhat familiar already to most people playing RPG games...:

- Tank : Character with a high health pool and high defense stats.

- Swordsman : Character with a balanced stat bool but is usually at the frontline/dealing damage

- Healer: Character who can heal friendly teammates or apply strong buffs/nerfs. Health pool and defenses are low.

- Mage: Character who fires damage type spells with damage over time effects. Health pool and defenses are low.

- Ranger: Character who uses a ranged weapon to deal high damage. Health pool and defenses are low.


So the idea is that you can recruit characters from the town. Be it important characters or maybe less important characters. You can train them in multiple ways (Example: a firm whipping session can give a tank type character a thicker skin and results in a higher stamina pool.) This way I'm hoping to mix combat with the pleasure of bondage and the other way around.


I already made a buff/nerf system which alters characters stats based on the amount of seconds it was applied (how strong a character basically is). I plan to use this as a way for players and enemies to deal spell damage or other types of buffs/body mod alterations (like enlarged breasts...) for a certain amount of time.


I also made a script for damage numbers, slowly floating away from the enemy or player when damage is dealth. The text will tell you the outcome of the attack and can display itself in several ways:

- yellow number: basic attack damage

- orange/red number: critical hit attack damage

- green number: spell damage

- blue number: Critical hit spell damage

- yellow text "dodged": the attack was dodged

- red text "dodged" the critical hit was dodged

- green text "dodged" the spell was dodged

- blue text "dodged" the critical hit spell was dodged


There are 10 combat stats in total that you can focus on. I dare to say... it's probably a bit broken since it'll be easy for people to create an overpowered character quickly but that is something I will take care of in the long run.


The question when reading all of this is: why? why make it so complicated? why work with a group? The answer is quite simple: I see too many games where 1 character (the player) does ALL the work. Ever played a Ubisoft Far Cry game? 1 person singlehandedly kills an entire nation even though there are hundreds of NPC's claiming "they are all doing work".


I figured I could try and make it different. With a few characters walking next to the player, participating in combat, collecting loot just like the player and back at the town or ranch they all enjoy each others company by wrapping and tying each other up. In other words: have other characters just be there and don't make the player feel as if they are the only one actually doing stuff. Plus, this could potentially create some great in game moments, where not just you but your whole group is captured and wrapped up in shiny but restrictive outfits.


I'm hoping I can make it all work...


And that concludes this devlog. As mentioned, it didn't feature sexy stuff. A lot of technical stuff etc etc... Still, I hope you like what you see and let me know what you think of it so far! Do you like the group combat style idea? Or would you rather prefer a solo experience?


Thank you for reading my devlog, I hope this sparkles your immagination and what the game could possible be in the future. For the demo I'm hoping to create a small group 2/3 characters and give a small glimpse of the group combat + how to upgrade/train your characters while using tight bondage and strict devices :P


Have a lovely day! Until next time people <3




Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022
Prancing Fields GameDev 30-08-2022
Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022 Prancing Fields GameDev 30-08-2022
Prancing Fields GameDev 30-08-2022

Comments

Man, I would LOVE to see some artwork of concepts for situations the character can end up in! Good concepts so far, I'm excited to see more!

ReDork

It's very fun to watch. You can add several companions to fight and interact with players through recruitment

🐕 汤姆·大黄

striving for perfection is always something positive! and I love that you want to have something to show off, before you release it!:P

ichbendunicht

And should add that the group-idea sounds very interesting - would be great seeing that develop

This is truly impressive!


More Creators