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
15
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
10
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
10
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
10
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
15
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
10
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.

Login to post a reply

Server time is: 2018-02-17 19:32:31
Your offset time is: 2018-02-17 19:32:31