How Stardock's Elemental: War of Magic Failed | War Stories | Ars Technica

  Рет қаралды 236,803

Ars Technica

Ars Technica

Күн бұрын

Пікірлер: 311
@crushingit5128
@crushingit5128 5 жыл бұрын
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.
@solidkingcobra
@solidkingcobra 6 жыл бұрын
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.
@CircularEntertain
@CircularEntertain 6 жыл бұрын
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.
@jsveterans6949
@jsveterans6949 6 жыл бұрын
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-my7uf
@Mike-my7uf 6 жыл бұрын
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...
@gozinta82
@gozinta82 5 жыл бұрын
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.
@wobblysauce
@wobblysauce 5 жыл бұрын
fix a bug... and now you have 99 new problems.
@Bartolomeus002
@Bartolomeus002 5 жыл бұрын
Starship troopers neve understood the bugs but boy oh boy they solved them well.
@reinhardsrensen747
@reinhardsrensen747 6 жыл бұрын
i really love this series
@deeRay7292
@deeRay7292 6 жыл бұрын
same, same
@__aceofspades
@__aceofspades 6 жыл бұрын
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.
@gevdarg
@gevdarg 2 жыл бұрын
Ditto and Amen.
@KlausWulfenbach
@KlausWulfenbach 6 жыл бұрын
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_D78
@Josh_D78 6 жыл бұрын
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
@jsveterans6949
@jsveterans6949 6 жыл бұрын
:) 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.
@jsveterans6949
@jsveterans6949 6 жыл бұрын
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.
@SimonJensen
@SimonJensen 6 жыл бұрын
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)
@janegoodall1837
@janegoodall1837 4 жыл бұрын
Maybe if brad had taken a look at manager instead of waiting until the game f**king shipped.
@retsapb6319
@retsapb6319 5 жыл бұрын
god damn, this is a horror story for any game developer
@KaiserAfini
@KaiserAfini 6 жыл бұрын
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.
@SianaGearz
@SianaGearz 2 жыл бұрын
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.
@imjustinb
@imjustinb 6 жыл бұрын
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.
@Neura1net
@Neura1net 6 жыл бұрын
This is an awesome format
@TYNEPUNK
@TYNEPUNK 5 жыл бұрын
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.
@reginalb124
@reginalb124 4 жыл бұрын
"If you played for a long enough amount of time, it crashed 100% of the time." Shipped game.
@ScienceDiscoverer
@ScienceDiscoverer 4 жыл бұрын
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?
@geraq0
@geraq0 4 жыл бұрын
@@ScienceDiscoverer "a late game is only late until it ships, a bad game is bad forever", Seamus Blackley
@chris-hayes
@chris-hayes 4 жыл бұрын
Lol yeah, I had to replay that part, thought I was missing something.
@DiddyHop
@DiddyHop 4 жыл бұрын
@@geraq0 the thing is that was said by a company that pretty much has an infinite budget. sometimes you dont have a choice.
@SteelSkin667
@SteelSkin667 4 жыл бұрын
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.
@Streetsvillainy
@Streetsvillainy 5 жыл бұрын
Recognizing and owning it and moving on, this series is awesome.
@mtyEyes
@mtyEyes 4 жыл бұрын
Thanks for this story. I remember playing Elemental at launch and it's nice to finally know what went wrong
@RaithSienar
@RaithSienar 6 жыл бұрын
So this is why Galactic Civilizations 3 was 64bit only, Brad didn't want a repeat.
@gabeux
@gabeux 5 жыл бұрын
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!
@IrrelevantGeOff
@IrrelevantGeOff 3 жыл бұрын
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!
@proksenospapias9327
@proksenospapias9327 6 жыл бұрын
Comment section is 60% composed by legendary game devs apparently. Anyway, comments cringe aside, this series is awesome, pls give us moarrr
@swearsoft
@swearsoft 4 жыл бұрын
Don't you know, they downloaded Unity or Unreal once and tried to follow a tutorial, they ARE experts...
@antilogic01
@antilogic01 6 жыл бұрын
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.
@SavestateComic
@SavestateComic 4 жыл бұрын
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.
@claiminglight
@claiminglight 6 жыл бұрын
This series is fascinating. Please keep it going!
@MrDanieloneill
@MrDanieloneill 6 жыл бұрын
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.
@michc204
@michc204 6 жыл бұрын
Please continue to expand this series. There are tons of people like me that love anything about old games :)
@kongfeet81
@kongfeet81 6 жыл бұрын
Considering what they were aiming to create it’s a shame things didn’t work out.
@GendoIkari
@GendoIkari 6 жыл бұрын
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_1234
@Danielle_1234 4 жыл бұрын
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.
@darkengine5931
@darkengine5931 3 жыл бұрын
​@@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.
@UltimateCarl
@UltimateCarl 6 жыл бұрын
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.
@alexthorpe2522
@alexthorpe2522 5 жыл бұрын
This is the only one of this series where I haven’t heard of the game. I think I know why.
@Roescoe
@Roescoe 6 ай бұрын
Only one where I have heard of the game, but I'm into niche stuff.
@regalvas
@regalvas 6 жыл бұрын
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
@PercentageSign
@PercentageSign 6 жыл бұрын
These are great stories, keep em coming!
@schleets8323
@schleets8323 4 жыл бұрын
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.
@madpuppet666
@madpuppet666 2 жыл бұрын
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.
@bl4bb3rm0uth
@bl4bb3rm0uth 6 жыл бұрын
More of these series, please!
@jan-erikstrm4497
@jan-erikstrm4497 6 жыл бұрын
I absolutely love elemental War of magic, I just wish more was done after release..
@gergnotsloh
@gergnotsloh 5 жыл бұрын
Of course, they still shipped and sold it anyway.
@adamconnor1898
@adamconnor1898 5 жыл бұрын
@@cipherpunk7409 It was basically fraud.
@galacticwarlock2271
@galacticwarlock2271 5 жыл бұрын
I would give them a pass. The real crooks are Bethesda, EA, Activision/Blizzard.
@Assimandeli
@Assimandeli 4 жыл бұрын
Did they actually publish it themselves?
@FranzKafkaRockOpera
@FranzKafkaRockOpera 4 жыл бұрын
The alternative was putting the whole team out of a job, which is kind of what happened anyway.
@metanumia
@metanumia 6 жыл бұрын
+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! :)
@MrUglyDave
@MrUglyDave 4 жыл бұрын
I really appreciate his honesty in this, not an easy thing to do.
@JonathanGray89
@JonathanGray89 3 жыл бұрын
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.
@darkengine5931
@darkengine5931 3 жыл бұрын
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).
@EdgarAllanPoon
@EdgarAllanPoon 2 жыл бұрын
The idea of this game sounds absolutely amazing. I'd like to see them remake it with modern technology in mind.
@derHutschi
@derHutschi 4 жыл бұрын
kudos for admitting the mistake and the way you handled it some studios should take a note ...
@FlamingZelda3
@FlamingZelda3 2 жыл бұрын
tbf it's much easier to admit a mistake 8 years after the fact as opposed to 8 days/weeks
@SBR72
@SBR72 6 жыл бұрын
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.
@sathra4036
@sathra4036 6 жыл бұрын
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.
@Gini3
@Gini3 4 жыл бұрын
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.
@vincepalejr6621
@vincepalejr6621 6 жыл бұрын
This is an awesome series of videos!
@Peksisarvinen
@Peksisarvinen 5 жыл бұрын
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.
@UlyssesCrab
@UlyssesCrab 6 жыл бұрын
So why not release a remastered edition on the 64 bit format?
@RaithSienar
@RaithSienar 5 жыл бұрын
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.
@sirdiealot7805
@sirdiealot7805 6 жыл бұрын
More of this series please.
@AriadyPutra
@AriadyPutra 2 жыл бұрын
More valuable lessons can be learnt from failed projects
@chancellor2755
@chancellor2755 6 жыл бұрын
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.
@MrDeathproof5
@MrDeathproof5 6 жыл бұрын
Such a fascinating series! Would love to hear from Bethesda or Obsidian on how they have had to solve design issues.
@Keithustus
@Keithustus 4 жыл бұрын
They’ll need to learn how to solve their issues first. Maybe in another several years.
@James_Amarant
@James_Amarant 6 жыл бұрын
this is an awesome series so far hope to see a lot more of it
@Dartht33bagger
@Dartht33bagger 2 жыл бұрын
It sounds more like the company was too busy guessing at what the issue was instead of taking the time to debug the issue.
@BobbyOxygen
@BobbyOxygen 6 жыл бұрын
Lovin' these. Keep em coming :)
@armadillolol1
@armadillolol1 6 жыл бұрын
Please do more of this series
@pleasantml
@pleasantml 6 жыл бұрын
This series is fantastic
@chaoslab
@chaoslab 4 жыл бұрын
Memory fragmentation was even an issue on the Amiga.
@danielclifton3319
@danielclifton3319 4 жыл бұрын
Best series on youtube! :)
@SolLignum
@SolLignum 6 жыл бұрын
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
@yesteryearr
@yesteryearr 6 жыл бұрын
Really good series! Please make more!
@JoseJimeniz
@JoseJimeniz 6 жыл бұрын
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.
@Listenmebereal
@Listenmebereal 4 жыл бұрын
MY GOODNESS! the idea was really good
@luckymancilha03
@luckymancilha03 6 жыл бұрын
More videos from this series!
@jaegerpenguinch
@jaegerpenguinch 5 жыл бұрын
Wow, learned something here. First time hearing about memory fragmentation.
@AlexBlues
@AlexBlues 4 жыл бұрын
- 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!
@DiogoVKersting
@DiogoVKersting 7 ай бұрын
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.
@ArcNine9Angel
@ArcNine9Angel 4 жыл бұрын
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....
@SlimThrull
@SlimThrull 6 жыл бұрын
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.
@RicardoNecrofear
@RicardoNecrofear 4 жыл бұрын
The idea of the game still sounds really cool. I hope they get the opportunity to re-do something like this at some point.
@maccrazyg5
@maccrazyg5 3 жыл бұрын
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.
@SianaGearz
@SianaGearz 2 жыл бұрын
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.
@slou124
@slou124 6 жыл бұрын
I want to see more of this series.
@kevinsucre2746
@kevinsucre2746 4 жыл бұрын
Pre-Allocation is the way to fix and im glad they were able to finally implement it in later games.
@FlamingZelda3
@FlamingZelda3 2 жыл бұрын
ye, pretty sure that's what they did with old gameboy and gba games. those games never crash unless you yank the cart out.
@augustvalek
@augustvalek 5 жыл бұрын
Great stuff, not all battles are won, and all you can do is learn and improve
@midnightshade32
@midnightshade32 6 жыл бұрын
The sequel fallen enchantress was a great game. I was so excited about the original too. Oh well. They made good on it.
@BudLeiser
@BudLeiser 5 жыл бұрын
Loving this series keep it up!
@chinogambino9375
@chinogambino9375 5 жыл бұрын
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.
@HoorTaelChannel
@HoorTaelChannel 6 жыл бұрын
why did this serie stop? i've just discovered it and it's awesome
@jsveterans6949
@jsveterans6949 6 жыл бұрын
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.
@scoop20906
@scoop20906 6 жыл бұрын
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.
@Knoby1000
@Knoby1000 2 жыл бұрын
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.
@dominicdibagio7166
@dominicdibagio7166 6 жыл бұрын
Great video & great series!
@st0rm617
@st0rm617 6 жыл бұрын
Just saw these by accident, thrilling!
@johnballard3403
@johnballard3403 6 жыл бұрын
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.
@roytries
@roytries 3 жыл бұрын
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.
@darkengine5931
@darkengine5931 3 жыл бұрын
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.
@SianaGearz
@SianaGearz 2 жыл бұрын
@@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.
@MrCortar
@MrCortar 6 жыл бұрын
This game looks like it was just ahead of it's time. They should try it again the concept looks very good.
@Crawenx
@Crawenx 5 жыл бұрын
I really like the idea and style of this game.
@markfrellips5633
@markfrellips5633 6 жыл бұрын
Certainly a single perspective of the post-mortem; game post-mortems are awesome.
@drescythe1531
@drescythe1531 6 жыл бұрын
Damn this looks better than 99.99999999% on whats on steam. When can I preorder this?
@mattischastan7967
@mattischastan7967 4 жыл бұрын
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!
@SianaGearz
@SianaGearz 2 жыл бұрын
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.
@baziztsahy3927
@baziztsahy3927 5 жыл бұрын
This is amazing how interesting this videos are
@pelgervampireduck
@pelgervampireduck 5 жыл бұрын
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!"
@SianaGearz
@SianaGearz 2 жыл бұрын
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.
@Munden
@Munden 6 жыл бұрын
👍👍👍 love War Stories
@jhbonarius
@jhbonarius 2 жыл бұрын
To my best of knowledge this was commonly known. I understand that many large games have their own memory manager for this reason.
@SianaGearz
@SianaGearz 2 жыл бұрын
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.
@StayCalm0
@StayCalm0 6 жыл бұрын
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
@Keithustus
@Keithustus 4 жыл бұрын
Publisher not developer.
@jakerawlings6150
@jakerawlings6150 5 жыл бұрын
Doing a CS degree, this is a great series
@Shadowjay969
@Shadowjay969 4 жыл бұрын
"...he moved on to be lead developer for adobe premiere pro"
@Nurr0
@Nurr0 4 жыл бұрын
His undershirt is made of pure white light.
@rob41n
@rob41n 2 жыл бұрын
Love it. But really, why did you release it unfinished and buggy?
@Abelhawk
@Abelhawk 6 жыл бұрын
The cursor in that game looks like it's backwards to me.
@CptnHammer1
@CptnHammer1 5 жыл бұрын
Super interesting, thanks for sharing
@LuckystrikeNQ
@LuckystrikeNQ 4 жыл бұрын
I want Elemental II and I want it NOW!!!!
@robchr
@robchr 6 жыл бұрын
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.
@username13937
@username13937 6 жыл бұрын
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.
@Acejhm1
@Acejhm1 6 жыл бұрын
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?
@antoinehanako3193
@antoinehanako3193 6 жыл бұрын
well, the question is if those tools were there 10 years ago.
@origamiuf
@origamiuf 6 жыл бұрын
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
@Cassp0nk
@Cassp0nk 4 жыл бұрын
Memory pools are pretty standard so gutted for them they didn’t realise until too late.
@kahetel13
@kahetel13 6 жыл бұрын
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 ?
СКОЛЬКО ПАЛЬЦЕВ ТУТ?
00:16
Masomka
Рет қаралды 3,5 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 37 МЛН
Farmer narrowly escapes tiger attack
00:20
CTV News
Рет қаралды 12 МЛН
Миллионер | 3 - серия
36:09
Million Show
Рет қаралды 2,1 МЛН
You Suck at Showcasing Your Game
28:20
GDC 2025
Рет қаралды 195 М.
Blizzard Said No, It Cost Them Billions.
13:27
Bellular News
Рет қаралды 133 М.
Non-Euclidean Worlds Engine
5:15
CodeParade
Рет қаралды 11 МЛН
Strategic Uncertainty - Keeping Strategy Games Fresh - Extra Credits
8:32
How the inventor of Mario designs a game
5:55
Vox
Рет қаралды 5 МЛН
СКОЛЬКО ПАЛЬЦЕВ ТУТ?
00:16
Masomka
Рет қаралды 3,5 МЛН