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
Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 17th Feb 2018 03:18
Looks nice.

On another note, I am obsessed now with looking at Task Manager and making sure I am not adding code that starts a memory leak, thanks to you.

Best to catch those early I imagine.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Feb 2018 03:28
For sure. Task manager has gotten very good in Windows 10, even reports GPU performance in the creators update.

I still mainly use SysInternals Process Explorer though, it has nice options for opacity and overlay, and will even break down dependant .dll's and the like
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: 17th Feb 2018 03:42 Edited at: 17th Feb 2018 03:44
After your mention of memory leaks I checked my own project and was alarmed to discover one, if you use the progress bar from the bbb gui plugin, every time you update it there is a memory leak. I just quickly looked at one of your first videos with some of your UI on and thought it was feasible you could be using the plugin perhaps with an msstyle and your own tweaks. In my case the progress bar was updated every frame and caused a fairly fast leak. It was updated once before the main loop and on pausing before entering the main loop I discovered that single update was producing a smallish leak(around 4k every now and then I think it was)

Mind you at is fastest it was nowhere near as fast as the camera leak, or anywhere near as fast as the camera leak without a sync command each loop! Took 7 seconds for it to reach 2gig limit and silent crash, well it ended when it last read 1,793,060k in taskmanager. Interestingly, not deleting it and creating a new one instead is nowhere near as much memory loss(not leak) - even with no sync command, so it just looks like we need a magic plugin person to replace that command(delete)...or I'm guessing the mrt plugin is the only option because it might mean messing with the source because plugin not an option/not possible. In any case the lack of sync in the main loop showing the leak in a more obvious manner might be useful info to someone like Rudolpho if they where looking at a fix that is.
Win 7 Pro 64 bit SP1, AMD A4-5300 APU 3.4GHz, 8GB DDR3, NVidia GeForce GTX 750 1GB GDDR5, ASUS A55BM-E
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Feb 2018 06:14 Edited at: 17th Feb 2018 06:15
interestingly, in the snip I posted where a loop just creates and deletes a camera, it seems to leak about 2000 K / second, but my project is only leaking about 150 K / second when point shadows are enabled.

the shadow map image that it is rendering to is currently set at 128px ^2, the leak gets worse if the render target size is increased, but modifying the basic snippet to set various render target sizes doesn't seem to change the leak size much, it remains pretty constant at 2000 K / second.

crashing at around 1,800,000 K is pretty common from my observations. I don't think I've ever seen it actually reach 2Gb, I think there is some un-reported overhead that task manager doesn't pick up on.

one benefit of scouring my codebase for leaks is that I have tightened up variable and memory usage in general across the board and have managed to reduce the baseline memory total from around 850,000 K to around 795,000 K for the warehouse level. The outdoor level used to run at around 1,200,000 I have not rechecked it lately but it should have come down a bit as well.

The UI is entirely my own and is entirely dark basic code To be honest, I hate the way Windows GUI (WinForms, WPF, XAML etc) is handled. I have a strong background in web development, so my UI is based on the same principals as html and css. It still isn't entirely complete, probably the biggest hole is that elements have no awareness or concept of siblings. Parent/child and inheritance works like a champ though and it is serviceable enough for most game UI requirements.

It also lacks some standard widgets such as radio buttons, select and input boxes although the foundation for these are all there. I did have alert and confirm popup boxes in at one point, I don't recall offhand if these were included in the posted framework version though.

Anyway, the best thing about the UI module is that it is fully dynamic and can adapt to any screen resolution.

It is introduced starting here thanks to Chris issuing me an inventory challenge https://forum.thegamecreators.com/thread/211983?page=2#msg2535900

And It's covered in a fair bit of detail in my series on developing the world editor https://forum.thegamecreators.com/thread/220966#msg2613151 though it should be noted that I later moved the world editor into a hybrid application built in C# using CefSharp (embedded Chromium) this was simply a better fit for the high demand on UI that an editor requires, but the game itself continues to use my own UI module.

(lol, reading that post back now, I am reminded of this question that I don't think anyone answered directly: "Are you guys interested in more nitty gritty coding sessions like 01 - 09, or do people more prefer just the polished results in action like 10?" the YouTube views count clearly shows that people hands down prefer the 'polished results'!)

The full UI code is included in my framework https://forum.thegamecreators.com/thread/220966#msg2613151 though I have recently added some additional screen fading / transition support that hasn't been pushed to the repo yet.

I've got to say it is interesting to read back over some of these old posts, and to remember the state of the code and the challenges faced back then. One comment from that UI intro post really stands out:

"I don't think any project ever really gets completed without some compromises along the way."

I think the 3+ years of work since then certainly attest to that. sometimes it feels like development is one compromise after another.

Random Ortu trivia #38: that post was posted on my wedding anniversary. probably when my wife wasn't watching. don't tell her...
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: 17th Feb 2018 08:56
Quote: "interestingly, in the snip I posted where a loop just creates and deletes a camera, it seems to leak about 2000 K / second, but my project is only leaking about 150 K / second when point shadows are enabled. "


Well, of course. That snippet is running full bore, I'm sure your project has overhead.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Feb 2018 14:29
Oh geez. You're right of course, i dont know what i was thinking
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: 18th Feb 2018 09:18
Ortu,

More obsessive memory monitoring has led me to this discovery...

I was testing some new code and an important email came in, I minimized the test to check the email

Before I minimized the DBP Window, I was at 30MB memory used.

After restoring the window...imagine my surprise when I was at 4MB memory used! Ran about my level and it didn't grow back up to the initial 30MB, it stayed at round 4MB....

Weird right! So I added some test code at the end of the main loop.

mainloop=1
Do
// do my game code here

Sync

//Then add the magic memory reducer at the end of the main loop
if mainloop=1
minimize window
restore window
mainloop=2 //only execute once.
endif

LOOP

Works every time! Reducing the initial memory by almost 80%! (for me)

What kind of Voodoo is this?

Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 18th Feb 2018 09:34
Placement of the magic code seems to matter, at the very end of the loop AFTER the sync, I get 80% memory savings. 30 mb to 4 mb

At the start of the main loop, I still save some memory, 30MB down to 9MB


Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 18th Feb 2018 10:15
Another interesting tidbit...

Your little make camera, delete camera snippet.

The minimize, restore trick also works on that.

I let it run to about 100MB of leak, minimized then restored...freed up all the leaked memory

I wonder if there is another DBP command that may do the same thing, but without minimizing and restoring the window....

Could be quite the discovery if found...
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 18th Feb 2018 15:55
Very interesting. Ill play around when I get back home thanks!

set display mode will flush your video memory and completely unload all media (I think it rebuilds the d3d device) but you have impeccable management of your media to get everything reloaded and avoid a crash, you also have to go through the time out takes to reload it all, so not something you can do every few loops/ seconds/ minutes etc

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: 26th Feb 2018 17:09
Just a quick little update:

Settings and user preferences are now saved/ loaded to a config file and will persist across play sessions.

I am wrapping up the first of 3 new enemy character models. I think I an going to wait until all 3 are complete before presenting them as a set, so I may go quiet for a week or two as there won't be much in the way of visible progress until those are out of the way, but we are getting ever closer!
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: 6th Mar 2018 07:56 Edited at: 8th Mar 2018 09:41
Hi Ortu, just read your recent posts, i found that memory leak problem to be strange. I can confirm that there is a leak when i run your snippet, the memory usage will not stop increasing, but i don't see any memory leak when i run my game. I don't get it. The AL version i use, creates and deletes cameras constantly but i don't see a memory leak when i use it. I don't know if AL is the problem of the leak, but i can't be absolutely sure. But that memory leak increases too fast, even when running the snippet at less than 60fps. If it was AL, i think you would have noticed it earlier, right?
So i don't know what is wrong here, all i can suggest is maybe you could make a test program with a simple scene, that uses only AL and see if that leak still happens?
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 6th Mar 2018 12:54
yeah, the leak is there in the AL point light demo also. We had some further discussion on this on the dbpro board. Looks like replacing the cameraDebug.dll with the one from the open source version of dbpro fixes that particular issue.

My outdoor scene mostly just uses the directional light which doesn't handle shadows/cameras the same way as point and spot do. It didn't become noticeable until the indoor scene when I added 3 or 4 point lights in a small area.
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 Mar 2018 16:45 Edited at: 7th Mar 2018 16:55
Here's another fun one for you all:

I have begun to put in the basics for scripting and trigger zones, to start this will be used for AI patrol paths and a simple intro.

Looking through my AI data structure I find that while I had properties for targetX as float and targetZ as float, i had not defined targetY as float which is fine for navigating a terrain, but causes some minor complications for a multi floor interior in which I would have to add more intermediate path nodes to explicitly aim them up and down stairs and the like.

Now when I went to add that to the UDT, the compiler isn't having it, but it does so in a fun new way before when I push against its limits to handle large UDTs, it would simply fail and throw a generic error. This time it just sits around in task manager like a goon.

No failure, no error, no completion. It just runs, silently, doing absolutely nothing other than occupying a cpu core but almost no memory (you normally see the memory rise as it works) its just good and stuck, even after letting it run all night.

Commenting out that targetY as float definition compiles normally again, and I get the same issue if it is declared as integer, boolean, or string, so it doesn't seem to be an issue of specific type or memory requested, but rather of simply the number of properties present in the UDT.

so... time to refactor the character data layout. I mean while i shouldn't *need* this specific property, I'm going to run into the same issue with any future needs as well.

I can drop 25 properties straight off by not keeping base "unmodified" stat and vitals data in the structure. This is almost never even used, and when I do need this data, I can query it from the database.

These are filled per character during runtime and so this will help reduce overall application memory use as well.

I've also still got a good number of byte and boolean properties that can be compressed into a fewer number of dwords, though that can make the code less readable and impact performance as more operations are then required to get and set data, so it becomes a balancing act where if you need to get/set something every loop it may be worth leaving it uncompressed

Ultimately, I may end up having to look at splitting character data into several top level typed arrays instead of a single chatacterEntities array of type characterEntityData. I try to avoid that sort of thing as it creates some complication for keeping them synchronized and it seems like it would actually use more memory overall with some necessary duplication of data such as character ID used to link the data.
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: 8th Mar 2018 10:10
Quote: "Commenting out that targetY as float definition compiles normally again"


Quote: "Now when I went to add that to the UDT, the compiler isn't having it, but it does so in a fun new way before when I push against its limits to handle large UDTs, it would simply fail and throw a generic error. This time it just sits around in task manager like a goon.

No failure, no error, no completion. It just runs, silently, doing absolutely nothing other than occupying a cpu core but almost no memory (you normally see the memory rise as it works) its just good and stuck, even after letting it run all nig"


I will confirm that I also have not needed a Y based AI node network; each node simply belongs to a specific elevation or building; as I am building a game with skyscrapers and ramps, I can confirm that a Y node parameter is optional.

If you did want the Y parameter, and if it were me solving this problem, I'd do the following, then post a thread on the DBPro discussion board if I could not find the solution myself.

• Try re-ordering the file, change the compile order and see what happens; providing you can confirm the re-ordering will not cause problems
• Write to your log or monitoring window what functions are being called as it hangs, identify unexpected infinite loops or recursions.
• Temporarily remove comments from the offending dba (or what ever code format you are using) and see what happens
• Test the placement of the field elsewhere. Put the TargetX,Y and Z fields in a sub type, or seperate array; only if there are just one or two referencing commands and doing so would not be complicated.
• Find all references to TargetY in all classes and confirm that there are no potential unexpected conflicts


You would have likely have already tried these tests, but perhaps maybe 1 or 2 have not been attempted
Zep
21
Years of Service
User Offline
Joined: 31st Aug 2002
Location: From PA, USA. Currently reside in Hanoi, Vietnam
Posted: 8th Mar 2018 11:42 Edited at: 8th Mar 2018 11:44
Maybe... possibly using a global var in a function thinking it is only local thus messing with other unrelated code?

That problem/mistake has bit me in the ass more than a few times when I noticed variable weirdness.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 27th Mar 2018 03:14 Edited at: 27th Mar 2018 13:07
Well, it seems like forever since I posted up something in the 'Discussion on Design' format, but today's update is a good fit so here goes:

Part 11 - Conversation and Dialogue

My Thoughts:

RPGs often feature several different types or 'levels' of conversation.

1) You've got 'ambient' dialogue between background NPCs that the player has no direct involvement in other than to hear it as they pass by. This can be used to fill out the environment and make the world feel more alive.

2) You've got basic NPC statements where the player initiates a talk or interact command against an NPC and it spits out a basic response. These can be anything from idle comments and greetings to suggestions, background info, or instructions; but generally the player is just receiving the content and does not otherwise provide responses.

3) Then you've got fully interactive conversation where the player can provide responses to either dig deeper into a dialogue tree and possibly trigger more fundamental results/events based on the response choices.

4) Lastly, you might have scripted / cinematic / cut-scene type dialogue in which the player usually has no direct involvement in even if the player's character is involved. This generally suspends player control and runs through an automated script with the goal of advancing key parts of the storyline with the player's full focus locked on the exchange. This is often accompanied by the characters taking action / movement outside of what they normally can do in standard gameplay.

Each of these have thier uses and combine to form an important aspect of immersion into the world, plot, and characters.

The Results:

Sulium will feature each of these dialogue types, but will have to do so within a manageable development scope.

Modern AAA games can devote huge budgets to quality voice acting with facial and expressive animation. This sort of thing is fantastic and can really elevate the production quality of a game, but it is a bit beyond what is reasonably achievable by an individual indie developer with no budget for a hobby project!

So, I'll be limiting dialogue in Sulium to text and 2d character portraits. Dynamic portraits can allow for some basic visual expression of emotion and tone without all the additional requirements needed for 3d facial animation and additional expressive body poses.

Text content can also make use of emotes to describe minor supporting actions:

Roccio: You wouldn't!

Carliet's eyes narrow

Carliet: Try me.

Progress

All conversation types tie in to the event and scripting system, whether it is triggering ambient comments when a player enters a given zone or proximity, traversing a dialog tree, or to a full on cinematic script.

Scripting further ties in to the AI and Character state modules as a character acting on script has to suspend it's normal control and behavior, then resume when the acting is complete.

Lastly, if gameplay is suspended, each step or event has to link up to the next in proper sequence and timing until normal gameplay resumes, and this all has to be abstracted enough in the engine that it can be easily defined, managed and controlled by the database (via the editor).

We don't want to have to add a bunch of highly specialized hard coded functions, actions, and sequences. Much like the AI behaviors, we want generic handlers that allow us to build complex aggregate output out of a series of individually simple conditions and inputs.

These module integrations and handlers are taking shape: type 1 ambient dialogue and type 4 cinematic scripting is mostly up and running, the content and actions are driven by the database, though for now I am just editing the database directly and have not yet hooked this up to the editor.

Type 2 is functional in theory as it uses our old interaction handler set up for the use/take/examine/converse system. It is effectively identical to the examine interaction except it displays the 'onConverse' column instead of the 'onExamine' column. I have not yet set any onConverse content to an interractable entity to test this as the more complicated scripting dialogue has been my focus recently.

Type 3, the two-way dialogue tree is going to need some additional support from the UI layer so this is not yet functional, but will be next up on my list to tackle. It will hook in to the same trigger as type 2, but will be routed to a more complicated UI component to handle its additional functionality.

Types 1 and 2 will be text only, while type 3 will use text and portraits. Type 4 will (probably?) be text only but will take control of the camera to provide more cinematic shots of the 3d characters and scene, as well as managing the characters actions and movements with, in some cases, specialized animations.

For the text portion, rather than just instantly dumping whole strings to the screen, I have set up a nice transition which adds one character at a time to the display, leaves it up for a while then expires, letting the conversation flow and scroll.

(Late edit: actually, there is a 5th type: freeform 'chatbot' conversation with some level of AI. My plans originally was to include this as well, but that has long since been set aside in an effort to limit development scope.)
-----

In unrelated progress, I am wrapping up the animation work on the 2nd of the new characters. This one took a bit longer than I had hoped as my male base mesh needed more work than I had hoped to get it in a usable state, but my workflow is improving with each one of these characters. Looking forward beyond what is needed for this demo scene, I am thinking about ways to modularize character templates and components for the production of more generic NPCs and NPC variations.

You can see a bit of the process of this character in my Blender thread over on the 3d Chat board.



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
Richard_6
7
Years of Service
User Offline
Joined: 3rd Feb 2017
Location:
Posted: 27th Mar 2018 08:47
Sounds exciting and challenging, Ortu! I really like 2D character portraits. Reminds me Baldur's Gate.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 28th Mar 2018 03:55 Edited at: 28th Mar 2018 04:34
Thanks Richard, yeah I'm a fan of the old RPGs from that era

So, after adding more dialogue content and getting a better feel for how it reads through, I've decided to discard the old school 'typed in' effect as well as the scrolling. Initially you would see 2 or 3 lines of dialogue at any given time and it would scroll up as the oldest line expired. This seemed cool at first, but ultimately just didn't prove to feel very comfortable.

I've now moved to a more standard 'sub titles' style which only displays a single line at a time and helps keep things a bit more steady as you are trying to read it.

I'll add a dialogue speed control to the options menu at some point but I would like to establish a comfortable 'normal' rate to start with.

Here is a quick look at some of the opening scene dialogue (Type 4, cutscene/scripted) that I would like to get some feedback from you all on. I've not yet set up the camera shots or much of the rest of the scene, but right now I'm focusing on the text display.

I'd like impressions on things like readability and speed of the dialogue. Is it clear who is speaking and what they are discussing? That sort of thing.




And a little bonus, here is a look at the database table which drives the scripting:

onSceneLoad actions are queried and executed at the end of the World module scene loader, the current scene and progress into that scene is isolated by the sceneName and waypoint.

You can see here that for the current scene, camera control is disabled and two of the characters (Ledelle and Roccio via their character GUIDs) are put into an acting state when the scene is loaded.

Next, when the intro letter is closed, onHideSplash is triggered which begins an ambient speech chain.

As Ledelle makes her first reply, she is also directed to move from the outside door to come over and talk to Roccio (it turns out I did need that Y float value discussed earlier, but as a facing / Y axis angle rather than as a location coordinate. When a character moves to a target x/z point, they probably will not end up facing the desired direction just by chance)

Lastly, when the last line of speech is finished, the NPCs are taken back out of acting mode and allowed to resume normal AI behaviors.



It's all pretty simple and straight forward, and the flexibility of the events and callbacks makes for a powerful system without a lot of specialized code.

For instance, the UI controller function which handles updating the ambient speech panel only needs to know that when a line of speech expires, it should query for events that trigger on the completion of speech, using the current record, and execute any callback it finds. It doesn't know or care what those callbacks are or do, and they can be pretty much anything.

(this function is in a bit of a messy state due to initially using an array for the multiple line scroll system, then being converted to only one line at a time, it needs some house keeping, but you get the idea)

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: 28th Mar 2018 05:52
Looking good, looking good. I prefer to read character dialogue; voice acting is not always well executed.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Apr 2018 07:03
Everytime I think I'm just about there, I find more loose ends to tie up. Progress continues though in the event and scripting system and in combat.

Roccio is complete and man, this guy is tough. He dual wields a pair of maces and hits like a truck. I've made some further balancing tweaks to ability force, armor coverage, and crit chance. I haven't managed to beat him yet but I've come close and believe it to be do able. There is something odd going on with his animation though, as he will drop back into an idle pose in the middle of combat sometimes, and other times freeze in mid-attack. His frame range definitions may be off, or I may have screwed up the export. I expect to have it sorted out this week and begin work on the next character who will round out the combat experience with a sword and shield.

I've also now got progress through the scripted events being saved so that after sitting through the intro, you don't have to sit through it again until you start a new game/profile. I still need to script out the camera shots.

Lastly, I've begun gathering up sound effects for combat and ambience. I forget if I have mentioned already, but I've got the music selection already in.

I'm considering whether to add weapon trails or not. I like the visual impact they add, but I'm not convinced that they fit the feeling of the game. If I do add them, they will likely be more to the subtle side.

Anyway, here are some of my deaths at the hands of Roccio

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 Apr 2018 07:03 Edited at: 17th Apr 2018 07:05
double post.
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: 17th Apr 2018 12:49
Wow! Impressive! Texture, lighting and speed look very professional!
Green7
18
Years of Service
User Offline
Joined: 23rd Nov 2005
Location: Switzerland
Posted: 18th Apr 2018 11:45
This looks very good, i like your character and environment style.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 20th Apr 2018 18:22 Edited at: 20th Apr 2018 18:25
Thanks guys, I'm really glad you like it and I appreciate the thoughts.

This week has been an assorted grab bag of small but needed additions, tweaks, and fixes.

I took some time away from the character art to add lanterns, windows, and interior doors. One of these doors is a locked door which you must find a way to get through to reach the victory condition.

I am offering 2 approaches to complete the goal: by force or by stealth. When different options are available, its always interesting to see how different people approach the goal differently.

As part of polishing up combat, there were a few minor issues with character states that were hardly noticeable and hard to catch or pin down in the typical heat of fighting so I implemented a sort of bullet time effect to slow it waaaaay down and was better able to see what was happening and when. This let me resolve a number of things but it was also just a really interesting way of seeing combat, I'll stick up a video this weekend maybe.

While it was only intended for debugging purposes, I've decided to keep it around and apply it during successful evasions, as it makes them feel much more satisfying and it provides a good visual queue to let you know when it was successful.

Attacks now have weapon sounds like swishes and clangs! Character combat sounds like grunts and hurts are still to come.

Fixed the weird bumps on Roccio's cheeks, reduced the size of carliet's textures, made wince/hurt animations shorter across the board.

Fixed a division by 0 crash in some situations when music volume was set to 0 and it attempted to apply a fade, as well as some music and sound related settings UI page issues when accessing it from the title menu before a level had been loaded.

probably a few other minor things, but again this ended up being pretty much a clean up week with the implementation of combat sounds being the most significant advance in progress.

The todo list constantly shrinks and grows, but I'd say that right now my biggest priorities are beginning the next character model (sword and shield defensive behavior type) and polishing up a couple of issues in the AI detection code.
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 Apr 2018 14:08
Looking good
Chris Ritchie
18
Years of Service
User Offline
Joined: 7th Jan 2006
Location: Norn Iron
Posted: 26th Apr 2018 18:21
Sounds good Ortu, I love the idea of the differing styles of game play it worked very well in the game Dishonored.

Lead programmer ULIDIA
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 13th May 2018 21:14
So this week I added some basic handling for the cinematic camera and camera scripting.

Also, I've extended the existing pause functionality to create a concept of a 'dev pause' in which on a development build of the game, I can pause gameplay but retain a free flight camera control to move about the scene, select entities to dump info about thier current state, and switch character I am actively controlling as the player character. This helps feel out and debug the scene from a number of perspectives.

I know the walk cycles are still terrible, man these things are killin me, but things are shaping up and here is some camera shot testing for the intro. Following this, Carliet will enter the scene by climbing through the window and gameplay will begin. Her model still needs some additional animation to support this though.

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: 13th May 2018 22:28
Shaping up nicely Ortu loving that cinematic feel .

Lead programmer ULIDIA
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 30th May 2018 06:35 Edited at: 30th May 2018 06:36
So let's see, what's new?

The title menu can now pull down online news and announcement content from a web host, and provides links to open website, forums, and email contact in default applications.

I have plans to set up a patcher which will pull down and apply updates from the web host as well. This will be great for rapid and easy distribution and testing of changes.

I've begun writing out interactive dialogue content, the type 4 dialogue discussed previously.

All ability data has now been moved to the database, including per character and/or per class skill sets. much of this was still hard coded into the abilities module, so it was good to get this cleaned up. This also lays the groundwork for ability progression, both improving known abilities and learning new ones.

I've also whipped up some ability icons and put together some details for a basic abilities menu page.

Rather than focusing on artwork for the icons, I have designed them to convey core details at a glance about the ability form, function and effect. I dunno, I may scrap them and go with something more typical but it's a start and we shall see. They are not currently used/displayed in the combat HUD, though this may be added if it proves useful without being distracting.

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: 10th Jun 2018 08:07 Edited at: 10th Jun 2018 13:04
Coming along smoothly. Loving the lighting on the characters.

What does the character's Force represent in your game?
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 10th Jun 2018 17:11
It is the physical force (as in mass * velocity) of an attack ability.

The weapon contributes the mass, potential damage types, and some modifiers based on size and control ratings, the ability contributes velocity and the specific damage type, and the character contributes modifiers based on stats such as strength and agility.

keep in mind though that it is a simplified physics model based on a comparative rating system, not on exact units of measure or fully realistic calculations.

the 'base force' of an equipped weapon is a calculation of the weapon properties and character stats. when you make an attack, the base force gets added to the force of the ability being used to determine the total 'applied force' of that attack

the force applied by an attack gets compared against armor properties of resistance and absorption to determine if the armor can hold up under the attack (reducing its damage and possibly converting the damage type) or if it is breached, resulting in a direct wound to the flesh.
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: 13th Jun 2018 21:41 Edited at: 13th Jun 2018 21:42
Bam! The conversational dialogue system is now up and running. It is of course managed dynamically from the database and is also tied into the events and story progression systems, meaning response choices and conversation results can trigger additional events and things to happen as well as send you down variable storyline branches.

This is another big one checked off the feature list

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: 11th Jul 2018 10:53
Quote: "the force applied by an attack gets compared against armor properties of resistance and absorption to determine if the armor can hold up under the attack"


Sounds like a fun element play befitting of pleasing battle tactics.

Looking good. Will your updates continue to be centralized on this forum, or will you be updating us on social media or any game portals?
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 1st Oct 2018 23:25
8 days left before the thread lock, curious to see how things are, since the post I made 82 days ago.

With how well things looked, I'd hope and guess that the game's development is getting so interesting and progressive that the excitement alone has prevented you from posting for a while.
Dimis
12
Years of Service
User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 2nd Oct 2018 21:24
I was also worried about the possible auto-lock. How is it going? Any updates since mid summer?
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 6th Oct 2018 03:11 Edited at: 7th Oct 2018 18:07
Hey guys, unfortunately no further progress so far. I had started a new job in June and it has totally messed with my schedule and available time for working on this. I do want to get back to it soon though as there really is not much left to do to wrap up this warehouse scene to a point it can be shared.

I did take a look at it last week though to remind myself where I was and what I was doing but ended up just spending some time playing through it and was pleased at how fun it was to play when picking it up "fresh"

I believe that thread owners can unlock thier isn threads now if closed to inactivity, but thanks for the thoughts! I'm glad this isn't forgotten, and I promise I haven't forgotten it either
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: 13th Oct 2018 22:41
Quote: "I did take a look at it last week though to remind myself where I was and what I was doing but ended up just spending some time playing through it and was pleased at how fun it was to play when picking it up "fresh""


So in that week you intended to get back to work on the game, but you could not stop yourself from playing it; congratulations, it works!

I hope things get better with your schedule and for all things to work out. If the job is not quite what you like then I hope you can prioritize the project because the game looks like the kind that could earn a great deal of money, plus you'd be paid for doing something really interesting. If all goes well I would imagine at least 100,000 - 200,000 players purchasing a game like yours for $30 or so, over of 12 months easy, and that's just from the game purchasing.

Personally I have had to put my foot down to make sure there is at least 30 hours a week spare time for my project work; and have resorted to outsourcing some of the work because I just can't do everything myself, and it does not make sense me coding time consuming non-creative aspects of the game or attempting to fulfill tasks I am not best suited to fulfil. This arrangement is working quite well, so I just thought I'd inspire some ideas.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 13th Oct 2018 23:37 Edited at: 13th Oct 2018 23:37
Its development work and I do enjoy it, but my daily commute has gone from 30 minutes to more than 2 hours round trip. I'm getting up a lot earlier and so also go to bed earlier.

I have started modeling the final character for this scene, for the defensive behavior AI. Is the last major media asset needed. It's a bit slow though as I've gotten out of practice
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: 18th Oct 2018 13:45
Glad you enjoy the job. 2 hours is unfortunate, but if the job is good and it is in line with your goals then it's worth it.

Looking forward to seeing the game progress.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 17th Nov 2018 23:45 Edited at: 17th Nov 2018 23:46
Been a while, I know! Here is some progress on the new character. He will be the most heavily armored of the characters in this little demo and also the largest. Still need to work up the helm and shield and run a detail pass on the chainmail. I may end up giving him a cloak as well.



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
Dimis
12
Years of Service
User Offline
Joined: 12th Jun 2011
Location: Athens, Hellas
Posted: 28th Nov 2018 10:52 Edited at: 28th Nov 2018 10:52
Looking good. I noticed that the model isn't symmetrical, right sleeve is larger than the left, wrinkles on the pants and boots are different, feels more natural that way.
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 28th Nov 2018 17:23
Yeah, for characters I find that it is fine to mirror minor and widespread things like gloves, boots, eyeballs: it saves time and UV space, but for any of the main central forms like head and torso is much better to go with non symmetrical details even if it means sacrificing the UV space.

You can gain some back by using non uniform scale UVs, head should take a much larger portion of the texture than the geometry does of the model. Next upper body, then lower body can take a much smaller space proportionally.

Both the camera and the player focus tend to center on head and shoulders, so you can get away with lower resolution as you go lower on the character.
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 May 2021 20:43 Edited at: 17th May 2021 20:47
Well, it has been a while hasn't it?

A lot has been done since the last post, in fact, attached to this very post you will find a playable build of the game!
- well, it's apparently too large to upload to the forums, here's a download link instead!

http://games.joshkirklin.com/download/sulium-wharfside

Now it isn't a full game, it's more of a vertical slice somewhere between a pilot and an internal test.

So what will you find? a short little adventure which features most of the core systems from combat to conversation, AI to cut scenes and event scripting, music and sound, controller support, ultra wide-screen support, settings/customization, auto-updates, auto-saves, multiple options on how you go about achieving the goal from stealth to combat to a mix of the two.

It is a fully packaged and self contained game loop which tells a fun little story and introduces some characters.

Give it a try! Let me know how it goes!

What I'm most interested in:

- did you have any trouble getting it to install and update?
- did you have any crashes while playing?
- did you have any performance issues while playing?
- what OS, CPU, GPU are you running?

- did any of the AI get stuck or do strange or unexpected things while playing?

- how would you rate the combat 1-10?
- what did you like about combat?
- what did you not like about combat?

- how would you rate the story and dialogue 1-10?
- what did you like about story/dialogue?
- what did you not like about story/dialog?

- how would you rate overall gameplay 1-10?
- what did you like about the game?
- what did you not like about the game?

- If one thing could be added/changed/removed what would it be?

- how did you go about achieving the goal on the first play through?
- if you want to upload the save file located at resource/data/save/Default.sav I can determine which paths / options you took based on your waypoint
- did you play it again to do things differently?

- did you ever manage to defeat Roccio yourself in direct combat?
- if you can get this on video I'd -love- to see this? I haven't been able to do it but I feel that it is possible! (tip: use those evades and counters, he is slow and this is key!)

Known things that need further work:
- Animations - I'll be the first to admit I'm no animator!

Thanks all, hope you enjoy 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.
James H
16
Years of Service
User Offline
Joined: 21st Apr 2007
Location: St Helens
Posted: 29th May 2021 22:14
I did give this a go about a week ago - I intend on revisiting it this week. I couldn't get the hang of fighting the lass at the door, she did me every time and rather quickly lol, more of a reflection of my skills, that said I did experience a lot of performance issues during the fight making it difficult, almost felt like my input wasn't being detected fully because of it and my understanding of the combat was poor so there would be that to consider also - this may well be my machine though, it is old and I have been hitting it hard messing about modding GTA V to the point where I decided to really push my system, bad idea as chances are it could well be struggling to perform as it once did. That said i was playing around with Evolveds latest ALS and the tree demo performance on a 4000 sized terrain was just fantastic, trees galore lol. Iirc last time I tried one of your demo's of this I had similar problems, hence why I am going to revisit this week.

The install and update seem fine, no crashes but then i never left the building. I was supposed to find/collect some crate I think it was but never did find it. That's when I decided to try and leave(several times). I had my 1st Covid jab though last week which left me a little rough so really wasn't 100% when I tried this out, still not 100% now, so providing I remain in good working order I promise to get back to this. My specs should be in my sig, obviously I cannot respond to the rest of your queries just yet. in essence the info in this post is likely next to useless to you but give me some time so i can get back on the horse, those Covid jabs can pack a punch!
Win 7 Pro 64 bit SP1, AMD A4-5300 APU 3.4GHz, 8GB DDR3, NVidia GeForce GTX 750 1GB GDDR5, ASUS A55BM-E
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 29th May 2021 23:24 Edited at: 30th May 2021 01:05
Awesome James, thanks. I suppose some tutorial prompts would be a good idea for starting combat, i wasn't planning to add those until a fuller length game, but i might need to look at that sooner

Ledelle uses a knife so her attacks are fast but light, she is semi aggressive so she will generally close in but will sometimes jump back to catch a breath.

She starts with her back to you, meaning if you stay in the crouching stance you can sneak up and get bonus damage on her for the opening hit.

She also uses mostly thrusting attacks which have a very narrow strike zone and can be avoided by strafing sideways or stepping back. Because she is fast, the actual dodge ability (press left mouse while holding right mouse) isn't as effective on her as it is on a slower opponent like Roccio.

She is beatable, but you really only need to get her down to about 80% before she will try to flee and it's fine to let her go. If Roccio joins in, ignore him and stay on Ledelle, if you make her run away, he will stick with her and follow shortly after

You also don't have to engage her directly, you can check out the office or head upstairs. It is possible to reach the crate without fighting any of them with a bit of sneaking and distraction

You can't leave the building for this demo, it's meant to be a small self contained environment.

For performance issues, you can control graphics settings from the menu, and this is still built on the 2017 version of AL. I generally run it on a GTX 770 and a fairly comparable cpu to yours and will generally run at about 75 FPS with dips to around 50. This map uses a bunch of point lights which cause some of the biggest hits to performance, turning off point shadows will probably help.

Also there is a small recovery period between attacks, the length can be reduced by your agility stat and increased by getting hit by an enemy, its generally around 500ms -700ms or so, so it would ignore an attack input if you were in that recovery (or if you ran out of stamina for that matter). You can move during the recovery, however you can't move while you are in the middle of most attacks
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: 17th Jun 2021 05:28 Edited at: 17th Jun 2021 05:29
@Ortu

Fantastic. I will download this over the weekend and will report my experience back at some point the following week. I am still using my same old system that I am attached to like a magnet. I do keep 'planning' to migrate to a newer system, and also have a work laptop which has more RAM than I have spare disk space. Most likely I will test it on my oldie; then in a few months a newer machine.

Very happy to be one of the firsts to try this out, and will be honoured to help.

@JamesH

Quote: "my 1st Covid jab though last week which left me a little rough so really wasn't 100% when I tried this out, still not 100% now, so providing I remain in good working order I promise to get back to this"


I am sorry to learn about your unfortunate experience. A family member of mine did not respond too well to the vaccine. I am sure we all hope your health improves.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 21st Jun 2021 06:48
After my first experience, I think I will spend more hours playing before I answer the questions. I am not currently recording video because I want to get better and die less so as to lot look like a fool.

As part of my preparation for a Monday morning at work, first things first, practice attacking and evading danger in Sulium Wharfside.

Attachments

Login to view attachments
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 23rd Jun 2021 05:20
Hey Chris, glad you are giving this a go! Much appreciated.

I'm finding that one of the hardest things is not so much deciding on how hard to make it, but gauging how hard I actually have made it.

You play through it so many times to test things that you get really good at knowing how to approach each fight, what to expect, and how to counter it. This skews your expectations for how other people will approach it and experience it.

I'll say that it is not meant to be easy but is also not meant to be frustrating. I'm most likely going to add a setting to give more control over the difficulty, but dang it is satisfying when you finally do win a fight that has been giving you trouble.

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


Here's another combat tip for everyone: Ledelle has no armor, this means that every hit you land will cause her to wince in pain which also acts as an interrupt and will stop any ability she might be using as long as it hasn't yet reached it's peak. You can time the basic jab (left mouse by itself) to effectively lock her down and prevent her from making any attacks against you. Roccio and Arrick do have armor and will only be affected by these types of interrupts when you land a critical hit or after you have damaged the armor enough that you can penetrate it.

I'm tempted to provide the rapier seen in some of the earlier videos, it provides a significant boost to your combat power over the dagger, but story wise you aren't really meant to get that until farther in to the full game.
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 Jun 2021 06:42 Edited at: 24th Jun 2021 07:06
It was a satisfying accomplishment getting past Ledelle, then Roccio came and knocked me out. Now thinking about what to do about him.

Question, how do you get out of combat mode? The save location puts me in combat mode. (I was practising attacks on the other side of the room.)

Edit
I can't get out of combat mode after the Ledelle and Roccio did a runner. I am guessing I might need to open the door with F when in walk mode.

Attachments

Login to view attachments

Login to post a reply

Server time is: 2024-04-19 01:43:21
Your offset time is: 2024-04-19 01:43:21