Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Et Sulium Sao Eterniae

Author
Message
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 4th Jul 2017 17:54 Edited at: 4th Jul 2017 17:54
Just about finishing up the latest revision of the high poly. Ended up keeping the old sleeves as they were in pretty good shape as is, had to make some minor adjustments to fit the new base model, but that saved some time. Redid the corset, shirt, and gloves from scratch. The corset in particular is much improved with cleaner joins and geometry.

Over all everything is much thicker and more solid than the previous iteration particularly the lacing, which I believe will help get cleaner normal bakes. Before I tried to keep everything realistically sized/thick but this created many spots of complicated empty space that while realistic, created difficulties for the normal map projections.

I've begun working on fine detail of the skin such as pores, moles, and wrinkles, a step that I completely skipped previously. I'll post some close ups once this is farther along, but for now, here is a turnaround gif

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 7th Jul 2017 16:17 Edited at: 7th Jul 2017 16:19
Looks good. You are a very talented modeller. I really like the look of her garment.

Tell me if this feedback I am providing is premature, because you might be working on what I mention or might have reasons to overlook.

Looking at it afresh, three things stand out to me from my perspective in terms of realism, which of course is just a single opinion. Judging by the look of your work you seem to be aiming for a realism, so

Firstly I cannot remember the exact time period of the game or whether you disclosed that information but I am guessing you will eventually add some imperfections to the cloth, particularly around the cuffs and sleeves, to make it look a little less precision manufactured, and more like the work of an age old tailoring equipment.

Secondly, now this may be a lighting issue, but at the bottom of the female ear lobes (which are quite distant in view) when compared to about 100 I am looking at on Google images, looks a little bit more on the sharp side; which is of course a possibility, given her genetics, and age (of which I am unaware), it would likely be perceived as a modelling mistake, than of the genetics of the character.

Thirdly, assuming that she is wearing gloves; I think I should not have to assume or question as to whether they are, because they look a little thin from certain angles, without the colour displayed, they look like bare fingers.

I look forward to seeing her in a screenshot to she how she looks now in the engine; I think that's where she needs to be judged; with the in game FOV, lighting and texturing applied this feedback may differ.

However, a very professional looking mesh. Can I marry her now?
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 7th Jul 2017 17:33 Edited at: 7th Jul 2017 17:36
Hey Chris, the critique is appreciated!

Its not meant to be hyper realistic, there is a sort of 'stylized realism' style that I like which sort of pairs realistic shapes with more stylized textures that I think dbpro can pull off well enough. My texturing abilities sadly can't quite pull it off yet, but yes, the modeling is meant to be more realistic than not.

The ears have definitely been giving me some issues, i'll take another look at the lobes and see what i can do.

Yes, she is wearing gloves and this gets a bit tricky: they can't be too thick or loose because they are meant for fighting, but they definitely need to be readable as gloves and not just hands. Obviously a texture will do a lot to separate the materials, but the base geometry and silhouette still needs to support it as well.

I think I can reshape the fingers a bit and add some bulging and creasing at the flex points to break up the 'hand' look some more.

The game is not meant to have any specific historical time or setting, though this character's people and region draw inspiration from a sort of loose Italian rennesaince theme as far as style, culture, and activity go. It is an age of prosperous trade in large sailing ships to far lands, an age on the brink of world exploration and colonization. An age before steam or gunpowder, but with a decent level of ability to work with textiles and metals.

As is often typical in fantasy, there will be no guns/firearms, there will be some magic, but it is definitely to the lower side of fantasy, more Wheel of Time/Recluse than Lord of the Rings/D&D if you will.

Some concessions to the level of manufacturing for such a setting are attempted to be shown in the coarse, thick stitching of the seams on the pants, the buttons on her sleeves are irregularly shaped and made of wood, the sleeves are fabricated separetly from the shirt body and attached through heavy lacing. I know the images above don't show much of these finer details.

Much of the material is leather: corset, boots, belt, gloves, which is fairly easy to cut and assemble with clean edges.

Texturing will add a coarseness to the weave of the cloth as well as some visual wear and tear.

I have to be careful when it comes to adding imperfections to the edges/shape of the geometry as that can easily get to a point where it just looks like poor modeling, but I'm open to ideas.

The metal buckles and grommets could probably stand to be roughed up and look more 'hammered'

I've started work on retopologizing a low poly version for the game engine, I've raised my poly budget by a couple thousand triangles for the lod that the player will see when controlling the character, which will mostly go towards supporting better lighting of the face. The face will also be getting a good bit larger portion of the UV space, while the boots and pants will get less. (hair is a completely separate object)

I am baking out the maps at 4096, then scaling down to 2048 for in game at this lod. A few preliminary tests provide good readable skin detail in the engine at the standard camera distance.

All other characters not under the players active control, and therefore not directly infront of the camera of course use considerably lower resolution textures and objects.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 7th Jul 2017 18:47 Edited at: 7th Jul 2017 18:47
Some tweaks to the gloves, squared off the fingers a bit, added some looseness. Debated adding some stitching, but much of that goes on the inside and I'm not sure how readable it would end up anyway.

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Jul 2017 12:27 Edited at: 12th Jul 2017 12:44
Quote: " there is a sort of 'stylized realism' style that I like which sort of pairs realistic shapes with more stylized textures that I think dbpro can pull off well enough"


Sounds good.

Quote: "Yes, she is wearing gloves and this gets a bit tricky: they can't be too thick or loose because they are meant for fighting, but they definitely need to be readable as gloves and not just hands. Obviously a texture will do a lot to separate the materials, but the base geometry and silhouette still needs to support it as well. "


I understand. I am sure it will look pretty distinguishable with the materials applied. If there is going to be a first person view option from the standpoint of the character; then the time investment will pay off ever more because you'd be able to see the gloves real close.

Quote: "The game is not meant to have any specific historical time or setting, though this character's people and region draw inspiration from a sort of loose Italian rennesaince theme as far as style, culture, and activity go....

Much of the material is leather: corset, boots, belt, gloves, which is fairly easy to cut and assemble with clean edges.

Texturing will add a coarseness to the weave of the cloth as well as some visual wear and tear. "


Understood.

Quote: "Some tweaks to the gloves, squared off the fingers a bit, added some looseness."


Looks better to me.

Quote: "Debated adding some stitching, but much of that goes on the inside and I'm not sure how readable it would end up anyway."


Stitching might look kind of cool for screenshots and close ups, but might not be of the priorities you have in mind.

It is good that you are adding details to the mesh, what some would add in textures. Textured stitching for instance might not look so cool in DBP with all the post rendering and limited texture processing memory means that on may end user machines, textures will more likely lead to a deficit of 32 bit RAM access long before the number of vertices; at least from my early observations which are inclined to favour vertex detail because of my heavy use of instancing. It might be a different story with the Advanced Lighting material system which I do not use.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 1st Aug 2017 02:18 Edited at: 1st Aug 2017 02:18
Bit of a progress update:

Low poly mesh is just about wrapped up though I still need to retopo the hair.

Normal, diffuse and specular maps have been baked out though they still need some touch up and cleaning.

Still needs to be rigged and animated.

But, I'm very pleased to say that I went in to this willing (and expecting) to increase the polycounts by up to 1500-2000. The new model has ended up being only about 600 triangles more than the old, but they are put to much better use, and it still remains under my original 10k triangle budget for a main hero character at highest LOD.

Pay particular attention to the handling of shadow across the face (new on the left, old on the right):



On the whole, she is still a work in progress, but I like how things are shaping up. Please do feel free to critique though, feedback makes things better.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 1st Aug 2017 05:13 Edited at: 1st Aug 2017 05:14
UV layouts and maps (scaled down for posting): I have tried to maximize real estate where it counts, minimize wasted empty space, mirror where possible, but maintain some good asymmetrical detail.

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 1st Aug 2017 19:38
It is lovely to see the costume in full colour; and the new model looks very good in the engine.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 8th Aug 2017 07:55 Edited at: 8th Aug 2017 07:56
Coming into the final stretch now my friends. Hair has been retopologized and normals baked out.

I have to say, I'm pretty amazed at how well this bake turned out. I wanted to get the braids and silhouette looking good, but didn't want to throw too many polys at them.

I really didn't want to go more than 1000 triangles (old hair model is exactly 1000) and ended up with this for the new model at 906:

I know the left side is a bit flat in this shot; there are definitely parts that I need to do some softening and tweaking, and I haven't gotten to the diffuse yet, but man, I'm pretty happy with it

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 8th Aug 2017 22:28
Brilliant
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 18th Aug 2017 06:38
I've started on the animation, here's a preview of the new walk cycle

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 22nd Aug 2017 12:44
Looks smooth and consistent. Great work!

I quit manual animation for procedural animation. Viewing this video reminds me of the trouble I went through to export loads of animations to .X format when ever I needed to change something, and then convert to animation enhancement formats, long load times and poor performance. How has your experience been with exporting animations?

You are more skilled with Blender so I imagine it has not been as much of an issue for you.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 22nd Aug 2017 16:26 Edited at: 22nd Aug 2017 16:28
I think I've mentioned before that it takes significantly longer to export the character with animations than it takes to compile the game

Blender makes it easy to manage and adjust pose, actions, keys, curves, and timing though.

I've started putting constraints and curves to better use. last time around syncing the weapons/hair/etc with the character was a nightmare. Adding an additional step of baking the animation increases the export work/time, but allows me to apply copy transformation constraints so i only have to animate the base character skeleton most of the time and only tweak extra bits and secondary motion in the attached accessories. Saves time in the workflow overall.

I hope to have all the basic locomotion states (idle, walk, run, sprint, sneak, jump) wrapped up today or tomorrow then move to combat animations towards the weekend.

I'm very happy with this iteration, Lots of progress has been made, though the character still isn't at a "launch ready" level of polish and will no doubt under go another iteration (or two) at some point.

For now though, I'm definitely feeling the itch to code again and am beginning to get impatient to finish the animation and texturing.

Id like to start digging in to the conversation/dialogue system soon.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 3rd Sep 2017 21:52
Quote: "Id like to start digging in to the conversation/dialogue system soon."


It is going to be interesting to see how conversation and dialogue is going to work.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 5th Sep 2017 05:34 Edited at: 5th Sep 2017 05:35
Quote: "It is going to be interesting to see how conversation and dialogue is going to work."


That is unfortunately one item that I am likely going to have to scale back on in scope starting out. I had/have great plans for a robust system with cinematic camera shots, animations, and character motion/action scripting. It was all meant to be done live in the 3d world. For now, I will likely be going to more of a 2d portrait system. We'll see. Everything has taken so much longer than planned some things are going to have to be cut back and this seems like an effective place to do it without sacrificing too much.

The dialog content won't be cut back or changed of course, just the method of presentation.

Anyway, I know I've been bouncing around lately, but I took some time over the long holiday weekend to get the basic character creation / new game process up and running.

I do not plan to allow customization of the character model / appearance. I know this sort of thing is often expected by RPG fans (I love it too!) but again... manageable scope and honestly I don't feel like it is a good fit for these characters and this story. These are specific individuals with strong predefined identities for the player to experience and guide, not generic blank slates for the player to fill with themselves. (Characters cannot be renamed either)

Players do have a great deal of customization when it comes to developing physical attributes, and these attributes affect just about everything that a character can do or which can be done to them.

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 5th Sep 2017 20:57
@Ortu

The animation looks very stiff and mechanical. The reason why is because all of your keyframes are synchronized at specific points in time (this is immediately clear if you look at the dope sheet). You'll find that if you, for example, delay the arm+hand movements by a few frames relative to the feet, and again delay the hand movement relative to the elbow movement by a few frames to add latency, it suddenly looks a more organic.

With walking humans each foot has contact with the ground for a shorter period of time than being in the air. This becomes more extreme the faster the human moves (e.g. a running human probably has each foot touching the ground 20% of the time, the rest of the time the foot is in the air). The result is that the foot moves backwards faster than it moves forwards. A slow walk is close 50%/50%, but even an adjustment of 1 frame can make a huge difference here.

I also see no weight shifting of the body. Each time the foot is placed down, the center of mass shifts forwards, so I expect the body to rotate backwards to compensate for this. The center of mass will gradually shift towards the back right up until the next foot is placed down, at which point it abruptly shifts to the front again.

"Jeb Bush is a big fat mistake" -- Donald Trump
https://vt.tumblr.com/tumblr_o2rvwdLLSF1rmjly4.mp4
Green7
18
Years of Service
User Offline
Joined: 23rd Nov 2005
Location: Switzerland
Posted: 6th Sep 2017 10:00
For Animations i like to use this fine tool. It is not the end of wisdom, but it may help.
https://www.mixamo.com
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 7th Sep 2017 01:48
@TheComet, thanks man, yeah i fully agree it is still too stiff, animation gives me no end of trouble.

I actually do have the arm swing offset from the legs by 3 frames, (this gets more noticeable in the run and sprint sequences), but ill try to push this more. I had more twist/swing in the shoulders and hips, but i felt it looked too exaggerated and cut it back some, maybe too much, my torso work regularly seems too stationary and stiff.

The frames on the dopesheet on which all bones have a keyframe are used to isolate distinct actions: walk transition in - walk loop start - walk loop end -
walk transition out etc, if this isn't done then interpolation will bleed across actions. Not a big deal in the case of the walk actions as they naturally blend into each other, but in other cases nonblending actions may be next to each other and bleeding causes problems.

On the sheet you can see additional key nodes on arms and legs etc extending and offsetting the motion past the main action start frames
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Sep 2017 16:26
Quote: "Everything has taken so much longer than planned some things are going to have to be cut back and this seems like an effective place to do it without sacrificing too much."


I can relate, this stuff takes considerably long; but the rewards make it worth while in the end.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 24th Sep 2017 16:31
As for the animation stiffness concern, did you construct the walk animation with reference footage or without?
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 25th Sep 2017 23:05
I've gone through some YouTube videos, non of them quite have the right "attitude" that im looking for so i have to adapt. if you have a good source for references id be grateful
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 26th Sep 2017 22:41
So far I have just watched lots of videos of body language and walking overall.

I am not as far ahead as you are.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 10th Oct 2017 23:57
Well, progress has been slow lately, what time I've had has mostly been spent pushing the animation some more. Still trying to loosen it up a bit, and I've started work on the combat animations. On this pass, I want the attacks to feel more weighty and forceful. Last pass they all used Blender's default interpolation, this time I am pushing the curves to give them more dynamic momentum and 'snap'.

I've also cleaned up a few minor issues in the character controller, adding better and smoother handling for momentum and speed management. While walking, you will now stop moving immediately with no forced momentum. It felt too floaty / on ice. Momentum is still applied to running / sprinting, but it has also been reduced. Combat movement did not use momentum to begin with.

Slope grade once again affects movement speed. This has long been disabled because the initial implementation wasn't very good But its back and much improved giving a slight boost to maximum speed going downhill and a reduction to max speed going uphill. This now prevents you from walking up slopes that are too steep. It uses a threshold to ignore minor changes in grade. If you are running, it will automatically handle a transition into a walking state when your speed drops too low, and automatically return you to a running state when it picks up again.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 12th Dec 2017 23:15 Edited at: 12th Dec 2017 23:32
Hey all, not dead yet!

Been a busy season for me in the real world, but progress continues on the animations. I think I've got the walk cycle to a pretty good (for an amateur animator like myself) point. combat speed is feeling snappier and more varied also which is good.

Given the poor speed of progress lately, I don't want to promise anything, but by the first of the year, I am hoping to post up a small combat focused technical build to get some outside testing and feedback from you all on the overall feel of combat. This will basically just be a closed room with a pre-made character and a stream of NPCs to fight.

Hopefully a bit of a deadline will help to push myself a bit harder, we'll see how it goes!
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Ritchie
18
Years of Service
User Offline
Joined: 7th Jan 2006
Location: Norn Iron
Posted: 12th Dec 2017 23:39
I look forward to that Ortu !

Lead programmer ULIDIA
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 13th Dec 2017 02:02
Hopefully you will get more spare time to get things done. From what I can see in the videos and screenshots, the standard of quality is better than a number of successful releases (and pre-releases). I am sure everything will work out well.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 6th Jan 2018 05:00
phew December was rough!

First the USB flash drive I primarily work off of started to go wonky on me. Files would randomly disappear or revert to an earlier state, these were usually recoverable through 'scan and fix' but it was a mess and very frustrating. It's in such an unreliable state I've just stopped using it until I can get it replaced.

Then Symantec has suddenly become incredibly aggressive with Sparky's .dll in particular, but some other .dll's and build utility .exe's as well and has been quarantining things right and left on compile. Even adding exceptions only fixed it for a few days, then SEP started sending Sparky's right back into quarantine again, so I'll be avoiding any dev on that machine for a while.

If that wasn't enough, another machine got thoroughly borked during a failed windows update for 1709, I can't even get it to reset or restore from system image. Of course I keep multiple copies of all my stuff in multiple locations, so nothing is lost really other than time and frustration. I'm considering if I want to bother completely wiping the drive and running a fresh clean install of windows, or just say *** it and turn it into a full time linux server.

This does leave me down to only 1 PC for development, which makes me a bit nervous (silly maybe considering I used only 1 PC for years and years and never thought anything of it... once you start building up a fleet though, it's hard to go back I guess)

Anyway, I'm rambling, I am definitely behind schedule, but I have gotten a big chunk of the demo level built out, a 3 floor interior warehouse, as well as some other odds and ends, and am pushing forward as quickly as I can.

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Dimis
12
Years of Service
User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 7th Jan 2018 23:04 Edited at: 7th Jan 2018 23:06
Nice screenshot Ortu. There should be a "like" button in the forum.

Just out of curiosity, have you tested your game on windows 10? I still haven't tested anything on w10.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 8th Jan 2018 12:41
Thanks man, yeah I've run it on Windows 10 home and pro, including creators update.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 9th Jan 2018 17:05
The lighting and texture work looks fantastic
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 10th Jan 2018 05:08 Edited at: 10th Jan 2018 05:14
Thanks Chris, I've got a bit further to go with the level, but I like how it is coming along. I have to admit that I find prop/environment modelling and texturing to be a bit tedious, I get bored with it quickly and much prefer character work.

Today it was back to animation, I'd really like to get that finished up. At this point I just need to animate 2 more abilities to finish out a "full" initial complement of 9 for the dagger. This will give 1 ability for each slot. of course more will be added later to provide choices, improvements, and the like, but this is enough to start.

Here's a short preview:

There are a couple of little "hops" that don't look to go anywhere, but it's important to note that in the game, the engine is actually moving the character's position along a jump trajectory during these sequences.

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 12th Jan 2018 23:40 Edited at: 13th Jan 2018 00:34
Abilities can now apply secondary status effects such as buffs/debuffs, damage over time bleeds/poisons, basically whatever!

These effects can be something that executes instantly and then is gone, or it can be a status effect that persists for a period of time before dropping away.

Each ability can specify one callback function to apply effects and the callback triggers are very flexible. for instance, I can specify when/if it should trigger based on if the ability resulted in a kill, if the ability penetrated the targets armor, if it was resisted by the armor, if it was blocked, if it did block, if it was parried/did parry, was evaded/did evade, if it executed successfully, if it was interrupted, if it failed so on and so on. This uses a tag matching system rather than being hard coded so it is fully extensible allowing any tag string to be used as a trigger.

I have also completed the initial 9 abilities, one of which will now apply a bleeding effect to your target when it strikes flesh (was not defended and did penetrate armor), and one of which will now apply a stat buff to yourself to improve your next few attacks.

So, the initial set of abilities are:

Thrust
[Basic Press] (W + Lclick)
{Balanced Stance > Striking Stance}
A moderate piercing attack

Jab
[Basic Hold] (Lclick)
{Balanced Stance > Balanced Stance}
A light, fast piercing attack

Disengage
[Basic Fallback] (S + Lclick)
{Balanced Stance > Defensive Stance}
A quick backstep which will put physical distance between you and your target

Pierce
[Skillful Press] (W + Alt + Lclick)
{Balanced Stance > Balanced Stance}
A viscous piercing attack which will apply Bleeding to flesh wounds at 1 point of damage per second for 10 seconds

Slice
[Skillful Hold] (Alt + Lclick)
{Striking Stance > Striking Stance}
A moderate slashing attack

Feint
[Skillful Fallback] (S + Alt + Lclick)
{Balanced Stance > Striking Stance}
A quick ruse which leaves you ready to strike

Lunge
[Powerful Press] (W + Shift + Lclick)
{Striking Stance > Balanced Stance}
A strong piercing attack which can close the distance to your target

Slash
[Powerful Hold] (Shift + Lclick)
{Balanced Stance > Striking Stance}
A strong slashing attack

Guarded Slash
[Powerful Fallback] (S + Shift + Lclick)
{Striking Stance > Balanced Stance}
A defensive slashing attack which will apply Readiness on you increasing Agility and Focus by 2 for 5 seconds

Defensive Stance
{Hold Rclick}

Stance Evasion
{Lclick} (Requires: Defensive Stance)


As a reminder, every ability has a starting stance and an ending stance. If the character is not in the proper starting stance, the ability will be delayed while the character first transitions between stances. This transition is quite fast, but it does have a significant impact in combat.

Attacks have a 'peak' at which the hit is resolved, determining if it hits anything, if it is defended, or if it does damage etc. If a character takes damage (or otherwise interrupted) while performing an ability, but before the ability peaks/resolves, the ability is interrupted and cancelled. A forced stance transition is included in this interrupt period making for easier interrupt.

You can improve your attack speed by 'soft chaining' one ability's ending stance to your next ability's starting stance, eliminating the need for a transition.

Attacks also have a 'hit zone' or 'swing arc' an area in which the ability will connect with an enemy target. You can avoid attacks by physically moving out of the hit zone.

Generally, thrusting type attacks have a much narrower hit zone, and strike with less force, but are also faster making them harder to interrupt or defend, and making them more likely to interrupt. Swing type attacks have wider hit zones, often apply more force, but are slower and easier to interrupt or defend.

Later on as more abilities are added and learned, 'hard chains' will be available where 'follow up' abilities will have a hard requirement to immediately follow a given opener ability, as well as reactionary abilities which will have a hard requirement to immediately follow a given event trigger.

In any case, this was a fun session. It is always nice to get back to the code and knock out another system or mechanic.

Next up, I will be revisiting the AI module to clean and polish things up a bit, work out a few bugs on my issue log.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 16th Jan 2018 07:22 Edited at: 16th Jan 2018 07:23
Getting close now I think. I've cleaned up some issues with AI and combat. AI behavior is still quite simple and their use of abilities is mostly random, there is lots of improvement to come but they can still pose a decent challenge, particularly when they get into an aggressive cycle of quick jabs. The difficulty rises quickly with 2 or more of them at once.

Next up, more enviro/prop modelling to fill out the level some more.

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Arbrakan
13
Years of Service
User Offline
Joined: 10th Oct 2010
Location: Geneva
Posted: 16th Jan 2018 17:57
Awsome
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 17th Jan 2018 20:06
AI is a major milestone in these types of projects. Very difficult work. Congratulations. I'm looking forward to seeing how things progress.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 27th Jan 2018 20:52 Edited at: 1st Feb 2018 03:58
A Letter From Xi

A curtain stirred lazily in a light morning breeze as Carliet awoke. She had left the window open the night before to let the warm air freshen the room. Fair and pleasant weather was a bit unseasonable for late spring upon the isle; a time that often showered the orchards with storms blowing through the straights.

She simply lay a bed for a time, watching as the sky brightened from lavender to rose over the broken, rocky ridge-line of the eastern shoulder of the island. The persistent rush of waves against the shore and sweet trill of birdsong brought a certain peace and silence to thoughts often troubled of late.

She turned her head slightly upon her pillow, breaking her gaze from an old lemon tree outside her window to fall instead to the roll of parchment waiting atop her table. Today's the day. She thought to herself.

Gazing now up at the rafters above, she recalled the words of her father's letter, memorized weeks ago when it had first arrived. A new land... a Golden Land. The thought was thrilling and brought with it memories of a young girl flush with the excitement of preparing for her first trip across the sea to Xi. What sort of people did this new country hold? What odd new customs and culture? What were their rituals? What did they eat? What did they value and hold dear?

A short time longer she indulged in the warm sheets and soft mattress before she gradually became aware that her nightgown and bedding had twisted themselves uncomfortably beneath her back. Carliet sighed, mildly irritated, as she admitted to herself that it was time to rise and break the morning languor.

It took a silent count of ten to force herself to sit up and swing her feet to the floor. Moving gets easier of course, once it begins, and she dressed quickly. There were certainly days meant for dresses, but today she pulled on pants and boots for travel.

She loved these boots, broken in over many leagues and years abroad. She'd swear they were as comfortable as any slipper and they still held up well, even if they were getting a bit worn.

They had seen the dust of the world with her, from the lordly halls of Celand to far Xi with its vibrant riot of strange people, sights, and sounds. She had traveled much with her father, her brother as well, pursuing the family business of trade, mixed often with politics and sheer simple adventure at times.

The people of Ducall held fiercely to a bold and spirited heritage. The yoke of Celand's rule may have calmed and dressed the southerners in civility, but Ducallian hearts would always be filled with a burning passion for life, for freedom, for the things that they held dear. Travel and adventure was deeply ingrained within their blood, and lent them naturally towards trade and commerce between the great kingdoms.

Alucia, “The Fair Isle”, lay directly upon the trade route between Xi and the Ducallian mainland. No ship passing between the kingdoms failed to stop at the island's great port and the di'Spezia family had called it's shores home for many generations.

With traffic and trade comes wealth, and their family, though common, fared well trading the fruits, wine, and cheese that their homeland so prized for the fragrant spices and herbs, exotic Xichan cloths and dyes far to the south across the sapphire sea.

Her father had been abroad this past year, taking a rare trip without his children, but Carliet could feel somehow, that today was the day of his long anticipated return. She let her fingers work her hair into a braid as they had so often, she hardly gave it a thought while her gaze fell again upon the letter.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 27th Jan 2018 21:14
I have expanded the AI defensive behaviors, which happily exposed and allowed me to resolve a bug in combat event states which will eventually be used by reactionary abilities.

Previously, AI applying defensive behavior would simply hold guard stance, they now have the ability to make proper counter attacks while continuing to limit their exposure.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Richard_6
7
Years of Service
User Offline
Joined: 3rd Feb 2017
Location:
Posted: 28th Jan 2018 12:23
Nice story! Very intriguing!
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 6th Feb 2018 05:15 Edited at: 6th Feb 2018 05:43
Thanks Richard!

Well guys, the little combat demo is just about ready, and I am itching to post it up, but ... I swear, any time I start putting any amount of focus into a scene, a story starts to spin itself to life, and this is turning into a bit more than just combat. First hands-on impressions are so important with these types of projects, I'm taking some extra time to expand and polish.

It is now something of a short little mini-mission, with a couple of objectives leading to a victory condition.

As far as new tech and polish goes:

We've now got music! up until now, the only sound at all was a single music track that played during the loading screen, and this was a hacky thing temporarily hard coded in. I've now expanded the media module and database to properly manage tracks by scene and game state(hostile area, passive ambient, in combat, etc), including fade in/out/cross/cut transitions.

Next I will be adding some very basic sound effects for footstep, attack, block, parry, and got hit.

I have also expanded my object binding handler to also bind non-object things like lights and particles, this means you can now pick up a candle and it will bind a point light to you and that sort of thing.

Lastly, applying damage to shield condition has finally been implemented, meaning shields can now be broken. This was another one of those cases where something that should have been very simple ended up taking several days due to odd and unexpected bugs. I ended up having to add in a couple of cheat buttons to refill my health and boost my damage because I realized I was spending more time fighting and/or dying than actual troubleshooting in trying to break the shield to generate the necessary logs to track down why the shield would not properly stay dead after being destroyed

This also led to fixing a bug in the Parry handling which was preventing parry from ever being over powered (as in forcing it to fail) When an attack is parried, combat checks the attack's force against defender stats, and if the force is great enough, the parry will fail. Turn's out the combat module's init function in which this threshold is set was never actually getting called

The bulk of my time though goes of course to media, media, media. RPGs are insatiable when it comes to media.

These are exciting days my friends, Sulium is truly evolving from an engine into a game more and more each day.

Here is a little teaser:

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 11th Feb 2018 17:58 Edited at: 11th Feb 2018 18:33
Hmm, somewhere in the recent additions I seem to have introduced a couple of memory leaks.

I have managed to find a big one that had started to cause a crash under a particular situation.

If you have a function that returns a string, always capture the return to a variable, even if you aren't going to use it. Failure to capture the return will result in a memory leak. Storing to a variable seems to prevent the leak based on some quick testing

In this case, when I create a timed interval, I generate a guid and return that id as a means of later updating or canceling the interval. Most of the time though, i have no intention of altering the interval in progresss and so do not capture the id.

By itself this is a slow leak, and had gone unnoticed until it was compounded by a new bug in the AI that suddenly started flooding the interval system with 100s of interval creations per second.

The AI bug was easy enough to fix once isolated, (I was issuing a request to change stance instead of a request to change state when the AI is in combat state but loses its target.

The AI can change to passive stance while remaining in a combat state in order to chase a distant target at a run, in this case though, it needs to actually change to a passive state. By changing the stance but not the state, and without a valid target, it was locked into a loop of constant stance change requests, which process on a delay based on agility character stats, via the interval system, hence the memory leak spike

So AI bug fixed, interval leak fixed (No longer returns the id string at all just to be sure, I can get it another way if and when I actually need it)

Unfortunately, i am still seeing a small leak somewhere. This one is harder to isolate. It leaks faster while moving around, but isn't completely gone while standing still either.

I believe I've ruled out the point light additions and binding.

I need to look at the music additions, additional AI updates, and even though animation and character modules have no recent changes, they may somehow be involved given it the leak increases while moving around.

So, work continues.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
James H
16
Years of Service
User Offline
Joined: 21st Apr 2007
Location: St Helens
Posted: 11th Feb 2018 19:26
Keep up the good work
Win 7 Pro 64 bit SP1, AMD A4-5300 APU 3.4GHz, 8GB DDR3, NVidia GeForce GTX 750 1GB GDDR5, ASUS A55BM-E
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 12th Feb 2018 03:37
Quote: "If you have a function that returns a string, always capture the return to a variable, even if you aren't going to use it."


Will do.

Best of luck finding the other causes.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 14th Feb 2018 05:25
Interestingly, just spinning the camera around is enough to generate the leak. It's faster when actually moving the character around the level, but simply orbiting the view around exhibits it also. standing completely hands-off idle: no more leaks for an hour or more.

I've gone back through some older revisions, and it looks like this has been there longer than I'd realized, but it is much smaller/slower in the outdoors level and harder to notice there.

another odd quirk of good old dbpro: you can load just about any file resource type using / in the file path "resource/media/ui/background.jpg" EXCEPT apparently animations. it will crash with "cannot load animation" if you use / but it loads just fine with \ "resource\media\ui\loader.gif"
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 15th Feb 2018 06:47 Edited at: 15th Feb 2018 06:48
Well, the good news is that I've positively narrowed it down to the AdvLighting point light shadow maps.

When the point lights are created with shadows disabled, memory use again looks stable across the board. Once these are enabled, I see the leak return during the point light shadow map update / render

The more lights in view, the bigger the leak, which explains why this is more noticeable in the new scene which uses more lights.

I don't have a proper fix for this yet, but at least I know the *where* of it and can put a stop to it for now by just disabling shadows on the point lights pending further testing and study of the AdvLighting code.

In other news, I've loaded my armor master into the database finally, and have distributed various armor types to the NPCs. You can now see how different damage types and force levels interact with different armor types and coverage levels.

I've also found that if timed just right, using a very quick attack, it is possible to get the NPCs in an interrupt-lock down state where they become unable to get an attack started or return to a defensive ready state. Once you get this timing down, it becomes trivial to take down opponents which isn't good.

I've considered several ways of handling this, I really didn't want to just slow the attacks down or add a forced delay/recovery as this can make combat feel clunky.

I was leaning towards a sort of 'over heat' mechanic where each attack would add to a meter, which would force a cool down period if you filled it all the way up, but which would drop over time. This would allow you to push a flurry of quick attacks when wanted, but would require that you either back off and let it cool or pace yourself more throughout.

As I was working on hooking up the armor data today though, I think I've decided to adjust the way that interrupts are handled. So far, any undefended hit would cause an interrupt on a target that had an attack in progress which had not yet peaked. Also so far, no targets have had any armor and so even though the combat resolution code has always had handling for armor resisted vs armor breached, every attack so far has been considered as breached (no armor, no resistance) and is therefore considered a flesh wound (eligible for bleeds)

A breach occurs when an attacks force exceeds the armor's resistance. If the armor successfully resists the attack, the damage type is converted to crushing and is reduced by the armor's absorption. In either case, some health damage is applied to the character and condition damage is applied to the armor. condition damage is modified by the armor's durabilty vs the damage type of the attack, and condition in turn modifies the armor's effective resistance. So, much like shield breakage, armor becomes less effective and easier to breach as you continue to land attacks against it.

Weapons can sometimes have special attributes 'Penetrating' which gives bonus force when comparing against resistance, and 'Destructive' which gives bonus force when calculating loss of condition.

So, now that the armor data is loaded, and now that undefended attacks can be properly resisted by armor, I am going to test and play around with the following to see how it feels: all breach/flesh wounds will continue to apply interrupts, all critical hits will continue to apply interrupts, resisted attacks which apply health damage above a given threshold will apply interrupts, resisted attacks which fail to apply damage above the threshold will not apply interrupt.

This will result in light, fast attacks causing interrupt less often, even much less often against more heavily armored opponents, while the armor is in good condition, but that is how it should be really, and even then, a fast critical hit focused build can still be highly disruptive against them. (how's that for a run-on ha!)
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 15th Feb 2018 10:12
This project sounds great. Can't wait to try a demo.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 15th Feb 2018 13:48
Thanks guys, I appreciate the interest!

It feels good to be making steady progress again. As much as i want to get this demo out, i wasn't going to put out an unstable build as I think most would agree.

So, what's left to do?

New NPC character models: fighting "yourself" is fine for prototyping, but it's time to get some variation in there. This should go faster than the hero model as that one laid a lot of groundwork that can be adapted to the new ones.

Basic sound effects

Settings menu page to adjust performance / enabled effects

A few odds and ends prop models: interior door, chair, torch etc don't need a lot here to start though.

Basic dialogue, the demo will feature a single short conversation.

Lastly, get the AI walking around between a few patrol waypoints.

I'm not going to put any time estimates on it, but these seem reasonably manageable!

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 16th Feb 2018 07:31 Edited at: 16th Feb 2018 07:44
Ok, I've isolated the exact cause of the shadows memory leak.

AL point and spot light shadow updates constantly create cameras, set the cameras to images, and delete the cameras.

When a camera is deleted, memory is leaked.

You can see it in this little snippet:



... so, just don't delete/rebuild the cameras right? of course it's not that simple, shadows go all wonky and broken as it stands.

This is not going to be a simple fix
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 16th Feb 2018 13:57
Quote: "You can see it in this little snippet: "



Sounds like a job for the 9Ex guy....But I don't think you use that.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 16th Feb 2018 17:26
I've tried it a few times, but I was getting an application crash on exit with it, and it had some compatibility issues with Cloggy's d3d plugin.

The d3d 3d line drawing is useful for debugging distances and angles in the AI and combat, but won't be needed for a production release, so that's not a large concern

I also use it for text and 2d drawing in the UI though, there are alternatives of course, like Mage's bitmap font work, but it would take some time to work on integrating a different system into my ui module.

And that's even assuming that Rudolpho could fix the delete camera leak.

Ive looked at the new version of AL, which uses the jGFX multiple render targets plugin, and this does fix the issue because this version doesn't delete cameras, but it dropped support for terrain and particles

So, either way I cut it, I'm looking at having to do extensive modification of AL: Either rewrite the old version to work without deleting cameras, or add terrain and particles in to the new version (plus learn all the new command and texture setup changes)

Oh boy.
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Feb 2018 01:02 Edited at: 17th Feb 2018 01:03
Alright, knocked out the settings menu, it's basic, but gets the job done

http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.

Attachments

Login to view attachments

Login to post a reply

Server time is: 2024-04-19 07:58:10
Your offset time is: 2024-04-19 07:58:10