I remember playing and testing the Alpha and Beta with Elemental. And Brad was responding to everyones responses on the forum and any other online source. And Stardock never wanted to abandon the game. They worked and released major patches and updates to the community for free. It was an impressive sight to see such dedication to the fans and to the final product. Ultimately it would take them several years to figure out the issue. But still i am impressed with Brad and Stardocks dedications.
@solidkingcobra6 жыл бұрын
I'm really digging the series. It provides insightful behind the scene struggles on how games are made... I must admit sometimes I have no idea what they are talking about... but I sorta get what they mean. awesome series overall. and looking forward to more.
@CircularEntertain6 жыл бұрын
Let's just put the "memory fragmentation is not something commonly known" thing aside, the real lesson learned should have been: *Never solve a bug, without understanding the bug*. It is words to live by, and you don't end up butchering a game.
@jsveterans69496 жыл бұрын
Well said, but hindsight's 20/20... They tested a fix, fix seemed to help, they deployed the fix across the game and it worked but it wasn't until after launch that they realized the extent of the issue. I can see unintentionally falling down that path... You live, you learn.
@Mike-my7uf6 жыл бұрын
The only thing that probably would have saved them would have been to just to wait. Blizzard had done this many times. Like Titan and Star Craft Ghost. They may have ended up cancelling but they knew the limits of technology and were realistic about what they can achieve. Most game companies just crank them out bugs and all. I'm looking at you Bethesda and EA...
@gozinta825 жыл бұрын
Easier to say than do, unfortunately. In programming language, there are a million ways to skin a cat. No one way is better than the other, it really just depends on how complex the system is and what you are using it for. Part of understanding a bug is knowing the bugs limitations and constraints. It's a back and forth thing. You won't always be able to identify where a bug is coming from, and secondly it may not even throw you an error. It could simply be the way the game was programmed or the limitations of the OS. They were doing waht development tells you to do like JS vets said.
@wobblysauce5 жыл бұрын
fix a bug... and now you have 99 new problems.
@Bartolomeus0025 жыл бұрын
Starship troopers neve understood the bugs but boy oh boy they solved them well.
@reinhardsrensen7476 жыл бұрын
i really love this series
@deeRay72926 жыл бұрын
same, same
@__aceofspades6 жыл бұрын
Same. As someone who enjoys video games, technology, the idea of game development and programming, its really interesting to see the struggles some of these games had during the early days of pc gaming. I hope this series is successful enough to continue, as I feel like the history of gaming will only become more and more important as gaming becomes more popular.
@gevdarg2 жыл бұрын
Ditto and Amen.
@KlausWulfenbach6 жыл бұрын
Aw Brad, it's all right. Seeing Elemental fail like that after I had the collector's box in my hand... Well it stung pretty bad at the time. But I'm over it. I still have the box. All is forgiven. :)
@Josh_D786 жыл бұрын
The Mad Tinkerer I also still have my collectors edition but I have to say they handled it well and even gave us the next two games for free as an oops I’m sorry we royally screwed up majorly apology
@jsveterans69496 жыл бұрын
:) Cute comment, made me feel nice inside. I can only hope I see this mentality in my player base when the time comes... Good on ya.
@jsveterans69496 жыл бұрын
Joshua Durben -Didn't realize it was 2 games... Damn... Good on them. These days companies do that to devoted fans to get you into a new game on purpose... Remember ethics? Those were nice.
@SimonJensen6 жыл бұрын
Man I remember the disappointment when it came out. But legendary heroes (the 3rd in the series) is still probably my favorite fantasy strategy game. (Actually reinstalled it last week for another go)
@janegoodall18374 жыл бұрын
Maybe if brad had taken a look at manager instead of waiting until the game f**king shipped.
@retsapb63195 жыл бұрын
god damn, this is a horror story for any game developer
@KaiserAfini6 жыл бұрын
And that is why modern game engines have profilers, it helps zero in on the problem much easier. Even with that said, its heartbreaking to work so long and hard, to give up on so much on your vision and not be able to ship something both you and players are happy with.
@SianaGearz2 жыл бұрын
Unfortunately in engine tools will not show the fragmentation, as you have to instrument the malloc implementation instead. No matter how many tools you have, there's usually one more issue that hides out of sight and needs one more tool.
@imjustinb6 жыл бұрын
Ars - this series is fanatic, please keep it going! The Thief one lacked any technical details which was a bit of a bummer tho, not as thorough.
@Neura1net6 жыл бұрын
This is an awesome format
@TYNEPUNK5 жыл бұрын
I must admit Ive gone down this route, and even wrecked a game the same way. What a great video, and to be honest I dont think much about memory fragmentation either.
@reginalb1244 жыл бұрын
"If you played for a long enough amount of time, it crashed 100% of the time." Shipped game.
@ScienceDiscoverer4 жыл бұрын
Well, I guess harsh reviews and fan's rage is better than just tossing 2 years worth of hard work into the trash bin, right?
@geraq04 жыл бұрын
@@ScienceDiscoverer "a late game is only late until it ships, a bad game is bad forever", Seamus Blackley
@chris-hayes4 жыл бұрын
Lol yeah, I had to replay that part, thought I was missing something.
@DiddyHop4 жыл бұрын
@@geraq0 the thing is that was said by a company that pretty much has an infinite budget. sometimes you dont have a choice.
@SteelSkin6674 жыл бұрын
When you run out of development money, you have the choice between shipping and facing the consequences of shipping a bad game, or going out of business permanently.
@Streetsvillainy5 жыл бұрын
Recognizing and owning it and moving on, this series is awesome.
@mtyEyes4 жыл бұрын
Thanks for this story. I remember playing Elemental at launch and it's nice to finally know what went wrong
@RaithSienar6 жыл бұрын
So this is why Galactic Civilizations 3 was 64bit only, Brad didn't want a repeat.
@gabeux5 жыл бұрын
Stripping systems away from a game that is all about systems hurts like hell. It must've been tough for those guys, but I'm glad they pulled through. Thanks Ars Technica for this great, great series!
@IrrelevantGeOff3 жыл бұрын
Man I am so empathetic for that position, how terrible to feel that error dawning on you. thank you for having the mettle to take an interview and turn it into a learning experience for us!
@proksenospapias93276 жыл бұрын
Comment section is 60% composed by legendary game devs apparently. Anyway, comments cringe aside, this series is awesome, pls give us moarrr
@swearsoft4 жыл бұрын
Don't you know, they downloaded Unity or Unreal once and tried to follow a tutorial, they ARE experts...
@antilogic016 жыл бұрын
Awesome series! I'm really happy to hear this broken down, I bought this game while I was in the army, and while I wasn't mad, I was definitely disappointed.
@SavestateComic4 жыл бұрын
Surprisingly I know about memory fragmentation because my old boss had an issue with his developers causing memory fragmentation and blaming it on the servers being too weak. He had to look at the source code and prove the bad coding practices were causing all the memory to be eaten up.
@claiminglight6 жыл бұрын
This series is fascinating. Please keep it going!
@MrDanieloneill6 жыл бұрын
In 2018, Stardock sued the creators of Star Control, in order to obtain the right to use their characters, story lines, and races; after purchasing the rights to the "Star Control" trademark name from Atari, claiming their ownership applies to all supporting assets. The creators assert that Atari only ever owned the name, and the supporting assets were never Atari's to sell. Stardock then sued the creators to keep them from creating their own sequel to Star Control 2 (under a different name). There are various counter-claims, such as Stardock not having the rights to sell Star Control 1 and 2 through Steam. Stardock also claimed the original authors didn't create their games. Litigation is ongoing.
@michc2046 жыл бұрын
Please continue to expand this series. There are tons of people like me that love anything about old games :)
@kongfeet816 жыл бұрын
Considering what they were aiming to create it’s a shame things didn’t work out.
@GendoIkari6 жыл бұрын
The lesson: next time hire a senior engineer. It was 2010, data oriented programming was already established by almost a decade. We were already developing games with custom allocators, cache friendly big unfragmented buffers, data oriented pipelines, reusable components and entities and much more. ECS was already a thing (2000-2008).
@Danielle_12344 жыл бұрын
Bingo! I am not even a software engineer and even I know the benefits of thread pools and memory pools. If I had to guess, on a modern system using the stack is at least 3x faster than using the heap. If you want dynamic allocation and you want it to run fast use a custom aloocator that puts the data on the stack. Writing a quick partial defragmentator that only runs when there are available cycles sounds like it would be a fun project. I imagine the framework would be a lot of opaque pointers, which is still probably quite a bit faster if they are pointing to a memory pool on the stack than non pointer data to the heap. I imagine allocating in chuncks that line up with cache line sizes of the cpu are ideal so the cpu only has to do one load for a bunch of data instead of a bunch of tiny loads would massively reduce latency which is everything to a video game, so being strategic of where you put your data matters making it even more of a fun project.
@darkengine59313 жыл бұрын
@@Danielle_1234 Well one of the reasons the stack is so fast is because it is restricted to allocating and deallocating memory in a strict push/pop LIFO pattern. That allows allocation and deallocation to be done by simply incrementing and decrementing a stack pointer. The other reason it's fast is because it's generally only used to allocate a small total amount of purely contiguous, thread-local memory. As a result, you get locality of reference (both spatial and temporal) constantly accessing the same contiguous regions of memory over and over with minimal cache misses when accessing memory relative to the stack pointer. What you are describing to automatically defragment memory in the background sounds very similar to what garbage collectors do, although they do so at a heavy cost to performance.
@UltimateCarl6 жыл бұрын
I love this series and I hope you all continue to do more! This kinda' stuff is super cool in its own right, historically relevant to the gaming medium, and something people can potentially learn from all in one. It's neat.
@alexthorpe25225 жыл бұрын
This is the only one of this series where I haven’t heard of the game. I think I know why.
@Roescoe6 ай бұрын
Only one where I have heard of the game, but I'm into niche stuff.
@regalvas6 жыл бұрын
really hope i get to see more like this, the problems in game development and what is learn from them is not talk about enough
@PercentageSign6 жыл бұрын
These are great stories, keep em coming!
@schleets83234 жыл бұрын
I just found this game in a thrift store still wrapped, it had never been opened. I now sort of see why it's like this but I never even heard of this game. It was also only 75cents.
@madpuppet6662 жыл бұрын
I guess they didn't come from a console background. Memory fragmentation is what we were fighting from day 1 on ps2 games because you only have 32meg and that very quickly fragments if you do anything dynamic.
@bl4bb3rm0uth6 жыл бұрын
More of these series, please!
@jan-erikstrm44976 жыл бұрын
I absolutely love elemental War of magic, I just wish more was done after release..
@gergnotsloh5 жыл бұрын
Of course, they still shipped and sold it anyway.
@adamconnor18985 жыл бұрын
@@cipherpunk7409 It was basically fraud.
@galacticwarlock22715 жыл бұрын
I would give them a pass. The real crooks are Bethesda, EA, Activision/Blizzard.
@Assimandeli4 жыл бұрын
Did they actually publish it themselves?
@FranzKafkaRockOpera4 жыл бұрын
The alternative was putting the whole team out of a job, which is kind of what happened anyway.
@metanumia6 жыл бұрын
+Ars Technica Can you do a *War* *Stories* episode about Westwood Studios in the early-to-mid 1990's? I'd *LOVE* to watch a video about Command & Conquer, Dune, and or Lands of Lore etc...! I love this series, keep up the excellent work! :)
@MrUglyDave4 жыл бұрын
I really appreciate his honesty in this, not an easy thing to do.
@JonathanGray893 жыл бұрын
Memory fragmentation was my guess but only because of what was mentioned about the custom memory allocation/deallocation system. Having made a task management implementation designed for an Arduino, where memory fragmentation is a much bigger issue, I can definitely appreciate the issue. I'm wondering if you applied any of the same mitigation techniques? Such as allocating blocks of common sizes that can be more easily replaced than arbitrary-sized allocations? Should be much easier to apply something like that with all of the memory headroom, compared to a microcontroller with only 1KB to work with.
@darkengine59313 жыл бұрын
These issues can still occur in 64-bit addressing space with virtual memory since the mapping to a much more limited physical address can suffer from fragmentation issues. I've seen OOM exceptions thrown in 64-bit Linux where allocating a 256MB block failed in spite of having over 4 gigabytes free. The easiest solution IMO is to just avoid using gigantic arrays. An array containing 2^20 elements can be represented by 2^10 small arrays containing 2^10 (1024) elements each. That introduces a layer of indirection along with a bitshift and bitwise-and for random access, but it tends to be a trivial overhead in the context of the logic performed inside game loops (and most of the critical loopy paths in games tend to be sequential in nature).
@EdgarAllanPoon2 жыл бұрын
The idea of this game sounds absolutely amazing. I'd like to see them remake it with modern technology in mind.
@derHutschi4 жыл бұрын
kudos for admitting the mistake and the way you handled it some studios should take a note ...
@FlamingZelda32 жыл бұрын
tbf it's much easier to admit a mistake 8 years after the fact as opposed to 8 days/weeks
@SBR726 жыл бұрын
Sorry Brad, but the 3D argument does not fly: "But strategy games had only recently embraced 3D engines" ... erm... Emperor: Battle for Dune (2001). Earth 2150 (2000), Warzone 2100 (1999), Warcraft 3 (2002), Age of Mythology (2002) - this list goes on and on. That said, Stardock has shown a lot of class in handling things after the game was released, especially giving away Fallen Enchantress to everyone who owned Elemental. Hats off for that.
@sathra40366 жыл бұрын
Yeah, their response was a huge part of why I don't think badly of them. They really did try to make up for it. Though it was a bit late, then AoW 3 was revealed and...yeah.
@Gini34 жыл бұрын
I distinctly remember buying this game along with a new laptop around 2010, installing it and rage uninstalling it the same day because it was basically unplayable with an underwhelming design and buying Civ 5 the next day instead. This is still the most broken game I think have ever had the misfortune of spending money on.
@vincepalejr66216 жыл бұрын
This is an awesome series of videos!
@Peksisarvinen5 жыл бұрын
Love this series. Also love Fallen Enchantress, but found the game so late that I only ever encountered the drama that surrounded Elemental briefly by reading about it, but never interacted with it myself.
@UlyssesCrab6 жыл бұрын
So why not release a remastered edition on the 64 bit format?
@RaithSienar5 жыл бұрын
They did. Fallen Enchantress Legendary Heroes is the name of the game. They had to ditch the Elemental name cause it was an anchor around their neck.
@sirdiealot78056 жыл бұрын
More of this series please.
@AriadyPutra2 жыл бұрын
More valuable lessons can be learnt from failed projects
@chancellor27556 жыл бұрын
Would love to see more of these for sure , great series. I would like to see an extended version on Star Wars Galaxies. Always found that game a good topic for discussion.
@MrDeathproof56 жыл бұрын
Such a fascinating series! Would love to hear from Bethesda or Obsidian on how they have had to solve design issues.
@Keithustus4 жыл бұрын
They’ll need to learn how to solve their issues first. Maybe in another several years.
@James_Amarant6 жыл бұрын
this is an awesome series so far hope to see a lot more of it
@Dartht33bagger2 жыл бұрын
It sounds more like the company was too busy guessing at what the issue was instead of taking the time to debug the issue.
@BobbyOxygen6 жыл бұрын
Lovin' these. Keep em coming :)
@armadillolol16 жыл бұрын
Please do more of this series
@pleasantml6 жыл бұрын
This series is fantastic
@chaoslab4 жыл бұрын
Memory fragmentation was even an issue on the Amiga.
@danielclifton33194 жыл бұрын
Best series on youtube! :)
@SolLignum6 жыл бұрын
I genuinely loved the Elemental, and it didn't even gave me all that much trouble either. And i do hope Enchantress will deliver as well, i've bought it a while ago, but still didn't have the chance to play :D
@yesteryearr6 жыл бұрын
Really good series! Please make more!
@JoseJimeniz6 жыл бұрын
Can use the Windows 3.1 solution: memory is a handle, not a pointer. When you want to read the contents to "lock" it, read it, and "unlock" when you're done. Behind the scenes another mechanism defragments the memory.
@Listenmebereal4 жыл бұрын
MY GOODNESS! the idea was really good
@luckymancilha036 жыл бұрын
More videos from this series!
@jaegerpenguinch5 жыл бұрын
Wow, learned something here. First time hearing about memory fragmentation.
@AlexBlues4 жыл бұрын
- ok men I love you! I also participate in this generation of the beginnings in which they started in Brazil in the world of games, very early with IBM PCs. Thank you very much and big hug from the gamers of Brazil! Let's move on!
@DiogoVKersting7 ай бұрын
It's easy, to criticize in hindsight, but this was a classic case of addressing the symptom, not the root cause. It's clear it had to do with memory, because of the error message, but it also seems clear nobody in the team was a low level programming specialist. It would have been a great idea to swallow the pride, and hire a specialist to help figure this out. Of course, nowadays there's just so many more resources than back then. Lessons: Recognize when you need to address the root cause. Recognize when you need external help.
@ArcNine9Angel4 жыл бұрын
It's sad too with the second game, they brought in someone who had a masterful mod for Civ IV by the name of Fall from Heaven for the writing, but it still had issues....
@SlimThrull6 жыл бұрын
Well, it's nice to hear him admit the game bombed. I recall being excited about the game. Upon reading the reviews, I dodged a bullet by not buying it. At the time, Stardock defended it which was not the thing to do. Thankfully, there games since have been anywhere from good to amazing, and I think we can forgive a company for a single bad game.
@RicardoNecrofear4 жыл бұрын
The idea of the game still sounds really cool. I hope they get the opportunity to re-do something like this at some point.
@maccrazyg53 жыл бұрын
Great perspective; reminds me that human beings try to create these amazing projects and sometimes the bugs are just too strong. There are just so many layers, what can you do.
@SianaGearz2 жыл бұрын
The moment he mentioned that they're close to hitting the 2gb border and keep unloading and loading individual assets... I knew exactly where this is going. Oh well.
@slou1246 жыл бұрын
I want to see more of this series.
@kevinsucre27464 жыл бұрын
Pre-Allocation is the way to fix and im glad they were able to finally implement it in later games.
@FlamingZelda32 жыл бұрын
ye, pretty sure that's what they did with old gameboy and gba games. those games never crash unless you yank the cart out.
@augustvalek5 жыл бұрын
Great stuff, not all battles are won, and all you can do is learn and improve
@midnightshade326 жыл бұрын
The sequel fallen enchantress was a great game. I was so excited about the original too. Oh well. They made good on it.
@BudLeiser5 жыл бұрын
Loving this series keep it up!
@chinogambino93755 жыл бұрын
Bethesda games have shocking memory management too but by far the worst program on nearly everyone's computer at this moment is Windows 10 photo preview. This default Jpeg viewer can bring any system to its knees given an a few hours of operation, its impressive work.
@HoorTaelChannel6 жыл бұрын
why did this serie stop? i've just discovered it and it's awesome
@jsveterans69496 жыл бұрын
Huh.. I can't help feel for this team.. I, as an indie, solo, dev (JustSomeVeterans.com) run into obscure issues ALL the time... I have been at the edge of failing and its a terrible feeling. To find yourself post release, with this realization would be soul crushing. I think about my first titles that suuuucked that I never released constantly, I cant imagine my brain after events like these... Great vid, ty.
@scoop209066 жыл бұрын
I remember being really burned by this one. They promised a ton of cool features and systems and we ended up getting a super bland looking and bland playing tactical game. I remember really being irritated by the response from Stardock that the gamers were too stupid to not get what was going on. Now I see they dumbed down the design to get it to work. I can understand that but that experience made me avoid Star Dock for years and recently I only purchased their Star Control game after very carefully reading reviews and watching gameplay trailers.
@Knoby10002 жыл бұрын
Well if you paid attention to the video you'd notice that the dev themselves didn't understand the issue either until after the game was finally shipped, so how would you explain that to players? I can't begin to imagine the shame they felt. That's why I 'm not working in the game industry, here if I fail a project with a client, worst case is we loose a client and money, but at least it doesn't create a world-class drama like a failed video game would do. They should have canceled the game and tell players "that's how it works, deal with it", but they cared too much and still tried to get something out. And drama follow.
@dominicdibagio71666 жыл бұрын
Great video & great series!
@st0rm6176 жыл бұрын
Just saw these by accident, thrilling!
@johnballard34036 жыл бұрын
I played the game and liked it. The only problem was that there was no way I could win. You are plopped down on a map where everyone else is already fully established, and you are just figuring out how steel works. I ended up surviving matches by racing to the terraforming spells, and building an ocean between me and any opposing kingdom. The imbalance between what the player had and what the npcs had was so extreme that I never incountered their memory problem.
@roytries3 жыл бұрын
I love the honesty here but I'm just so confused. You have a 100% crash bug. At a certain moment in time a person must've run a debug build and noticed that the crash happened when an allocator was trying to allocate a 'large' continuous block of memory. At that time they already knew that the game was using less than 2GB of memory in total. Even if memory fragmentation is not commonly heard of, or at least not in their circle. Putting 1+1 together should not have taken months, and 'fixing' the bug by ripping everything out of your game sounds like an insane thing to do.
@darkengine59313 жыл бұрын
It's strange enough for a team working on their own low-level engine to not know about memory fragmentation but even weirder is what you mentioned. Even if the programmers are so naive about how memory works, they could easily just write a simple wrapper over `malloc` in C or just a try/catch block at their main entry point which can log when malloc fails and returns null in C or when operator new throws in C++. That should let them know immediately when the game crashes hours into gameplay that it is the result of an out of memory error, and from that point on and looking at memory usage and realizing it's far less than physical memory available, do a few minutes of searching to figure out why this would happen and get a beginner's crash course on how memory fragmentation works and why requesting to allocate a block spanning megabytes can still fail with gigabytes free. To respond to this with a shotgun debugging approach gutting out random features without understanding the root problem is really horrid engineering. I really think we should just call it horrid engineering because the general industry at the management level tends to underestimate how important engineering experience and sound architectural design decisions (ex: with relation to resource management) can make or break a project. They still don't seem to understand how memory fragmentation works though if they think 64-bit addressing is a silver bullet to the problem. Having a 64-bit addressing space still suffers the same fragmentation and OOM issues in the process of mapping from a virtual address to a physical one when requesting to allocate multiple contiguous pages.
@SianaGearz2 жыл бұрын
@@darkengine5931 64-bit addressing solves the issue, if it is the one i'm thinking of, well enough for practical purposes; now you no longer see games crashing because of underlying fragmentation, while it was actually VERY common at the tail end of the 32-bit software era, just look in pc gaming wiki for games where LAA is suggested. In part because the fragmentation is purely virtual and doesn't trigger the overcommit protection or anything like that. Which is not to say there isn't a fragmentation internal to malloc, there is, but it's relatively better managed and stays isolated within about predictable bounds. I expect they were lead astray by most crashes not having malloc or any application code in the call stack, but coming from the second thread of the user-mode Direct3D driver, nominally unconnected to anything their own threads would do, and fragmentation occurring at mmap level. Naturally when your GPU driver misbehaves, a big black box, you try to reduce the problem to the smallest possible showcase by stripping away parts of the software until just the problem remains, at which point you can knock on some doors and get your issue fixed. But with memory management as an underlying issue, it doesn't matter what you remove, things just always seem to get "better", so the decision to strip down the game probably seemed justified at the time. But they should have reached out to someone. People at bigger studios, people at Nixxes, RAD, DICE, somewhere, just for advice, like literally you pick some credits or linkedin database and write an unprompted e-mail or two dozen, someone will reply, dozens of these people have private blogs and associated e-mail addresses and you can just mail them off-work. It's also a VERY good idea to make some friends among driver devs, like just crash parties they go to, go to GDC and demoparties and stuff. Unfortunately talking to Microsoft, NVidia and AMD directly about a vague issue is a no-go as a studio of 50 odd people. They would have definitely learned of the issue as they weren't the only ones struggling, i can guarantee you that.
@MrCortar6 жыл бұрын
This game looks like it was just ahead of it's time. They should try it again the concept looks very good.
@Crawenx5 жыл бұрын
I really like the idea and style of this game.
@markfrellips56336 жыл бұрын
Certainly a single perspective of the post-mortem; game post-mortems are awesome.
@drescythe15316 жыл бұрын
Damn this looks better than 99.99999999% on whats on steam. When can I preorder this?
@mattischastan79674 жыл бұрын
I've been making games since 15 years, now. Small... games. Because that's my nightmare : to be caught pants down on a technical bug I couldn't fix, halfway through the project (or worse, in this specific case). I like to conceive games. I don't want to take that kind of risk. So, I stick to small games, even if I could grow and take on bigger projects easily. But damn, hitting such kind of technical wall... the horror indeed!
@SianaGearz2 жыл бұрын
Get yourself some allies. Maybe a consultant with a lot of low level experience. Have your feelers out in the industry for people you can ask when stuck. You don't have to fight an impossible bug alone. Mostly, people will be willing to help with insight if you ask nicely, they won't do the actual job for you but they also won't charge you. Having dealt with malloc fragmentation before, I don't know how they haven't recognised the issue just a handful weeks into encountering it. Everyone has blind spots, but it's still on them that they haven't reached out to industry experts.
@baziztsahy39275 жыл бұрын
This is amazing how interesting this videos are
@pelgervampireduck5 жыл бұрын
I'm not very familiar with programming for windows, but shouldn't proffesional programmers be aware of the memory fragmentation thing?. it sounds to me as if somebody back in the DOS days said "we didn't know we had only 640kb of base ram wihout himem.sys and emm386.exe loaded! our game kept running out of memory on a 16mb system!"
@SianaGearz2 жыл бұрын
To an extent, Windows hides this problem fairly well, or used to. And an 800MB malloc pool size sounds completely reasonable. With typical fragmentation, you're still just hair north of a gig in virtual memory consumption which doesn't sound too scary at all. In spite of Windows and Visual C++ malloc implementation being particularly bad with fragmentation, it was rarely an issue. They might have not counted mmap memory. The by far worst offender is the UMD (user mode driver) of the GPU. You think you have sent data to the GPU, but really it still keeps a contiguous mmap in your address space of the object as it sits on the GPU, in case you ask for it back to write something new there or read it back. These mmap allocations can become fragmented themselves. I think it's pretty common not to know it, it doesn't actually say anywhere to be aware of it. Worse if various other sources of mmap and malloc end up interacting with each other. Like a GPU driver needs some address space in your application for the purpose of managing GPU objects, so it asks an mmap. Then the malloc implementation needs some actual memory, and asks mmap, now you have partitioned the contiguous address space into chunks that will never ever get recombined, as there is one little thing in that malloc's mmap hunk still hanging around. And that hunk is by all reason dedicated to objects of particular size or is subject to internal fragmentation itself.
@Munden6 жыл бұрын
👍👍👍 love War Stories
@jhbonarius2 жыл бұрын
To my best of knowledge this was commonly known. I understand that many large games have their own memory manager for this reason.
@SianaGearz2 жыл бұрын
That's around the era when awareness started spreading and certainly hasn't reached all the corners. It also depends on the developer background. If they were more PC based but never had to work on a web browser, they wouldn't be aware. If they cut their teeth on Dreamcast or PS2, systems where memory remapping support was disabled, they very much would. Web browser replace the system malloc for their process to manage fragmentation, while solutions in games aware of the issue and trying to limit it tend to be more ad hoc.
@StayCalm06 жыл бұрын
Sins of a Solar empire was really fun so I'd say stardock made up for it. I like the admission to failure too, better than companies blindly following the product
@Keithustus4 жыл бұрын
Publisher not developer.
@jakerawlings61505 жыл бұрын
Doing a CS degree, this is a great series
@Shadowjay9694 жыл бұрын
"...he moved on to be lead developer for adobe premiere pro"
@Nurr04 жыл бұрын
His undershirt is made of pure white light.
@rob41n2 жыл бұрын
Love it. But really, why did you release it unfinished and buggy?
@Abelhawk6 жыл бұрын
The cursor in that game looks like it's backwards to me.
@CptnHammer15 жыл бұрын
Super interesting, thanks for sharing
@LuckystrikeNQ4 жыл бұрын
I want Elemental II and I want it NOW!!!!
@robchr6 жыл бұрын
Newb mistake. Memory fragmentation was one of the first things I learned about dealing with when managing memory on Mac OS 8.0 in the late 90's.
@username139376 жыл бұрын
Or any old Mac from the era of their Handle based memory management systems =) Or any new fangled C++ with the move semantic built into some of the data structures... Pool memory allocators, etc... I totally agree with you, there's no excuse to be blindsided by this.
@Acejhm16 жыл бұрын
He said you don't find a lot of tools out there for memory fragmentation. I disagree. I mean there are IDE's and tools to find all kinds of memory issues. Yeah, this seems like something that wouldn't require a massive overhaul to fix. I mean you could have patched it right?
@antoinehanako31936 жыл бұрын
well, the question is if those tools were there 10 years ago.
@origamiuf6 жыл бұрын
think you're missing something - they did eventually fix the crashing bug, but by then they had stripped out so many features of the game it sucked. Which he said himself. In other words in trying to fix the bug they watered down the game and features so much it was no longer a fun game. Then later on they figured out the memory issue, fixed it but by then the game was dead. Fallen Enchantress was much better
@Cassp0nk4 жыл бұрын
Memory pools are pretty standard so gutted for them they didn’t realise until too late.
@kahetel136 жыл бұрын
I know you posted this about 8 years ago, but considering the updates, it's not a fair appraisal. I for one enjoy the game so your efforts did not go to waste and was wondering if there was room for improvements on your outdated synopsis ?