I suppose the fact that it runs at all is stunning -- surely you could not get away with this a decade or two ago -- but perhaps it speaks to the incredible capabilities of modern hardware. This feels a bit similar to the Electron criticism, where convenience ultimately trumps performance, and users ultimately don't care. I wonder how this will play out in the long run.
Bizarre and at least for me, equally sad. I long for the days of a tuned, polished game engine squeezing every inch of performance out of your PC.
It is absolutely ridiculous that these developers can get away with releasing a beta (essentially what it is) and setting the full release price without the end user knowing they're a guinea pig.
It makes the game stay in people's minds longer because people keep coming back to it asking "is it good yet, have they fixed it yet?". It kind of feels it has worked like that for Cyberpunk. If it's a finished game on launch day people will quickly make up their minds if it's for them and then move on.
Personally I would be on the fence about buying it even if it was good on launch and I would probably not buy it straight away. But I might just change my mind if I get reminded of it enough times. Then again I felt like that about Cyberpunk as well and I still haven't bought it.
Cyberpunk was a good example of that. And the graphs make it really easy to see how it's changed over time: https://store.steampowered.com/app/1091500/Cyberpunk_2077/#a...
but yea, source2 engine could have used some more love before going live
Software is not “essentially a beta” because it doesn’t meet a bunch of entitled users’ arbitrary definitions of “finished”.
A game having some performance issues doesn’t mean you’re a beta tester.
Did you even buy this game? I suspect not.
Have you heard of Factorio :)
Does the commenter mean they should have implemented a system to reduce texture resolution or polygon count dynamically, eg. depending on what's in view or how far away it is? That the artists should have made multiple version of assets with coarse variants removing things like computer cables from desks in buildings?
Back in the day, games just had one version of each model, that gets loaded or not.
Nowadays, games with lots of models and huge amount of detail lets each model have multiple different versions, with their own LOD (Level of Detail).
So if you see a tree from far away, it might be 20 vertices because you're far away from it so you wouldn't see the details anyways. But if you're right next to it, it might have 20,000 vertices instead.
It's an optimization technique to not send too much geometry to the GPU.
Basic overview: https://www.youtube.com/watch?v=mIkIMgEVnX0
Or a more detailed one: https://www.youtube.com/watch?v=TwaS5YuTTA0
It's been a standard technique in video games for... decades now.
edit: not web tech should be banned, but releasing a game with horrible optimisation like this, either by the store selling the game or by the law
Could be that the integrated the Gameface library incorrectly I guess? Still interested in more details from you.
Microsoft has a similar problem where nobody gets promoted from fixing bugs or maintaining stuff, everyone gets rewarded for new innovative [thing] so every two-three years there's a completely new UI framework or similar.
Although I feel like wanting to start-a-new is a common tech problem, where there are problems and everyone wants to just reboot to "fix" it rather than fixing it head-on inc. backwards compatibility headaches.
Is there any big (or even medium-sized) company where this isn't true? I feel like it's just a rule of corporate culture that flashy overpromising projects get you promoted and regularly doing important but mundane and hard-to-measure things gets you PIP'd.
Edit: seems I misunderstood, ignore me
not a very strong one until recently. They implemented the FAANG esque "levels" in late 2021. Promotion lines weren't too atypical from FAANG, but the new system was not around long enough to cause the problems people complain about today.
The biggest issue IME was that teams were isolated. Maybe DOTS should have talked more with strongly integrating HDRP/URP into its workflow, but DOTS was busy getting off the ground itself. HDRP and URP are two very different teams and they were trying to solve very different problems. Perhaps that was a bad move for the people it was serving, who'd want to have the flexibility to migrate to/from HDRP and URP. There weren't really much product management that was trying to make the engine cohesive, so you end up with a rendering core and a bunch of different plugins with different philosophies and whatnot.
>I feel like wanting to start-a-new is a common tech problem, where there are problems and everyone wants to just reboot to "fix" it rather than fixing it head-on inc. backwards compatibility headaches.
to some extent, yes. I think the one huge downside of Unity compared to modern companies is its antiquated CI/CD. Getting changes into the core c++ engine took 10x longer than it really needed to. iterations on repo builds were slow because Unity simply didn't cough out the money for proper server farms, and the interface to interact with the status of PRs felt like it was from 2005. Much of DOTS was iterated upon separately on with modern Jira/Github/etc. pipelines and the DOTS repo was very lean (and it was public too... until it wasn't. I think they moved it in 2022?), moving to make a change to the core engine was like traveling back in time 15 years ago.
Legacy code is a pain as is. And Unity definitely needed to revamp some non-feature workflows before it could really dig into the core Unity engine issues.
So old products are thrown away while new products with similar functionalities are being created.
Both teams are happy. The users suffer.
what does this mean?
Godot has this: https://docs.godotengine.org/en/stable/tutorials/3d/mesh_lod...
Unreal has this (for static meshes): https://docs.unrealengine.com/5.3/en-US/static-mesh-automati...
Aside from that, agreed: the multiple render pipelines, the multiple UI solutions, the multiple types of programming (ECS vs GameObject) all feel very confusing, especially since the differences between them are pretty major.
Just the other night I wanted to know what it'd take to do some AR development for the Quest 3 using Unity. 10 minutes in I was straight up confused. There's AR Foundation, AR Core, AR Kit, and I think at least one other thing. I have no idea the difference between those, if they're even wholly separate. That's on top of using either the OpenXR or Unity plugin for the actual headset.
Open XR is also an an attempt to make a cross platform layer for vendor specific APIs. Again not Unity's fault. The Unity plugin system is a common interface for all XR devices.
I'd generally support your sentiment but in this case you're picking on things where Unity had mostly got it right.
[1] https://en.wikipedia.org/wiki/Level_of_detail_(computer_grap...
Or shitty software dev companies that push out crap to meet marketing deadlines.
Either way, take your money elsewhere.
Next time I wanna take out my graphics card from my PC I'm going to use scissors instead of screwdrivers because I'm more comfortable with them.
When did the gaming industry become a place where what people inside the company want matters more than the end user? People love to cry about developers not being responsible for the state the gaming industry is at right now, but I disagree, and this is an example. Had they simply responded with "We cannot do it with Unity" management would have had no choice but to switch to Unreal 5.
Whilst some of the issues here are potentially the fault of DOTS and HDRP not being production ready (in combination at least) there's plenty of blame to go around.
Elsewhere other people are making gorgeous and performant games in Unity.
And remember, despite Epic's efforts, UE is still a first/third person engine at it's core. I wouldn't nr surprised if the challenges using Unreal would be at least as great if they had chosen that.
Unity is designed more as a general engine, but it comes with a lot of baggage in terms of half-baked features and optimization difficulties. As the author mentions they really unlocked their potential with implementation of Unity's ECS framework, but they were still chained to Unity's rendering tech, which has been underdeveloped for several years now.
My observation tends to be that simulation games are the ideal case for custom engines. While there are some commonalities across games, compared to many other game genres, they don't get a lot of benefits from standardizations. Sim games often end up kneecapped by trying to conform to existing engine frameworks instead of spinning up something optimized to the way their systems work. It requires a lot more technical know-how than an action-adventure game or a platformer, and the up-front cost to developing your own tech is an order of magnitude compared to using out-of-the-box solutions. I think with the massive success of C:S, Colossal Order was in an excellent position to try something ambitious.
Maybe with open-source tools like Godot having more flexibility in their frameworks, where you can just get the parts you want (rendering approach, etc.), it'll be easier in future to develop more specialized custom tech for games.
City builders, and certain classes of RTS are really the last major forms of games that really are very poor fits for modern off the shelf engines.
Honestly, trying to build one in either Unreal or Unity is going to be a painful experience with challenges likely surpassing having just built the engine you need in the first place.
But Engine selection is really only a technical decision less then half the time these days anyways.
Maybe for CS:3 :)
Cause honestly this sound like the typical "Unity bad, UE with their flashy trailers good". But maybe You actually do have a valid reasoning, please share it then
The studio had to implement it.
Sounds serious enough to try something else, especially given Unreal has Nanite. I think on the ECS side they're lagging behind though
The problem is the developers more than the engine choice
Most of the AAA released this year had performance problems, most of them were built using Unreal 5
Happened everywhere. Now if you run an intense company where people are expected to work hard towards ambitious goals or be fired, you’re “toxic”
The very definition of a toxic brogrammer, Alex St John literally glorified the benefits of slavery and Microsoft's imperialistic dominance of game developers in his own words [1], describing his infamous Toga Party / Roman Orgy / Slave Auction he threw in the Spartan Stadium at the 1996 Computer Game Developer Conference (which I and my team from Maxis attended, and personally witnessed the slave auction and free silly string and live lions -- not all were caged, some were just tied up):
[1] http://www.alexstjohn.com/WP/2013/03/06/bunnygate-pt-2/ [offline and banned from archive.org]
>"Sex, violence and debauchery were all hallmarks of a great Roman “orgy” and I wanted to come as close to capturing that experience as I could get away with."
>"The slave auction was also a special occasion. The Roman guards were rounding up the losers from the gladiatorial events and anybody who was offending a “senator” or Cleopatra and throwing them in the slave pit. Once a sufficient number of slaves had been collected from the party, Gillian returned to the stage to auction them to the audience for the gold they had won in the games. Gillian could set any base price she wanted for a “specimen”, if the audience wouldn’t pay the price the slave would be “thrown to the lions”. We had configured a “pit” full of foam to one side of the stage and directly in front of the first caged lion. A failed slave would be marched to the edge of the pit at spear point and pushed in by the praetorian guard where they would fall into box full of foam below the audiences line of sight. Then a huge video clip of lions tearing up a wildebeest and roaring would be played on the big screens on either side of the stage accompanied by the sounds of screaming. Down in the foam pit we had a collection of fake bloody body parts that somebody would toss up in the air during the lion feeding. Of course the “victim” was then allowed to sneak out the back and return to the party."
Yes, the same Alex St. John who is so incredibly toxic that his own daughter publicly denounced him and his "horrific toddler meltdown" and "toxic waste trash fire":
I Am Alex St. John’s Daughter, and He Is Wrong About Women in Tech (medium.com/milistjohn):
https://news.ycombinator.com/item?id=11542568
https://medium.com/@milistjohn/i-am-alex-st-john-s-daughter-...
>My name is Amilia St. John and I am the daughter of Alex St. John. Yes, that one. For those not following the horrific toddler meltdown my father has been very publicly broadcasting over the past few days, here is a short summary; My father, posted an article recently on venturebeat.com claiming that:
>“Many modern game developers have embraced a culture of victimology and a bad attitude toward their chosen vocations.”
>and how:
>“[he] can’t begin to imagine how sheltered the lives of modern technology employees must be to think that any amount of hours they spend pushing a mouse around for a paycheck is really demanding strenuous work.”
>— The usual self aggrandizing agenda that older generations like to peddle on days when they need to feed their superiority complexes. My father’s article led to a massive outcry from the gaming industry and a subsequent invasion of my father’s blog by the (rightfully) angry internet masses.
>On the blog, they uncovered extremely distasteful recruiting slides and supplemental blogs with revolting opinions regarding women, minorities and those with autism in the tech industry. Since these findings, countless others and I have found ourselves at a loss for words how anyone, especially someone in a position of power, can think that it is acceptable to broadcast such offensive material.
>As his toxic waste trash fire not only is associated with my last name but also my face, I felt compelled to respond to my father’s sexist, ableist, and racist rants. [...]
Alex St John’s Ideas About Game Development Are Terrifying:
https://www.kotaku.com.au/2016/04/alex-st-johns-ideas-about-...
>Earlier today you would have seen the story how Alex St. John, the creator of DirectX and founder of WildTangent, came out over the weekend trying to recharacterise the conditions of game development. It’s art, not a job, and game developers shouldn’t be as concerned with stress, work-life balance or fair wages. Those were some of the arguments St. John made, although you should read them within to understand the full context.
>St. John also has strong views on who precisely game studios should hire. It’s contained in a presentation called “Recruiting Giants” and suggests, among other things, that coding isn’t actual work, “real” programmers don’t value money and that working juniors and interns so hard they burn out is “good for them”. [...]
Dispelling some myths about the autistic wunderkind programmer:
https://www.gamedeveloper.com/business/dispelling-some-myths...
>In April 2016 Alex St. John, one of the developers behind Microsoft's DirectX technology platform, wrote an article in which he defended eighty hour working weeks, scorned work-life balance and memorably described a porcelain toilet as an "incredibly decadent luxury." St. John’s article was widely criticized for promoting what many consider to be exploitative working practices and attitudes in the video game industry.
>In the ensuing outrage, a PowerPoint presentation written by St. John surfaced which included a slide in which he referred to engineers with Asperger syndrome as being "the holy grail" of hires. "They work like machines," he wrote, "don’t engage in politics, don’t develop attitudes and never change jobs." [...]
This, along with games like Alan Wake 2 getting phenomenal reviews in the face of terrible performance and game breaking bugs, makes me wonder why folks trust the current corrupt review system, of which streamers are now part of too.
> As a comparison similar hardware in Alan Wake 2 — which was released the same week as C:S2 and is considered by some to be the best looking game of this console generation — reaches comparable average framerates with all settings cranked including path tracing, either at 1440p without any upscaling magic or at 4K with some help from DLSS. I think that’s a good illustration of how bizarrely demanding C:S2 is.
I love CS:2, but it does run noticeably worse than every other game I have (using GFN's RTX 4080, which normally never lags) with outright stutters lasting a few seconds at a time, interrupting whatever I was doing. And it does that without looking really any better than its predecessor. And even if you turn down all the settings, it still lags quite a lot.
I think most people playing city builders don't necessarily demand super-next-gen graphics, but performance that can keep up with the growth of their cities.
I still gave CS:2 a positive/thumbs-up review, but I can understand why so many people are frustrated with it. Launching with such a limited number of building options and no editor or mod support was also kinda a let-down. Still, I'm excited about the foundation they've made in 2, and think that it'll be awesome in a few years' time.
There is no terrible performance and the game breaking bugs are very rare (as in none of my ~10 friends who bought the game ran into any of them on their first playthrough). Yes it is a demanding game but it is also one of the best looking games ever made.
Yes the game is demanding if you max out everything but as it runs at 30/60 fps in quality/performance modes on PS5/Xbox Series consoles it does run at those (or better) framerates on PCs very easily.
Only case when you get bad performance is when you use incompatible hardware (old graphics cards without mesh shader support)
Agreed. There's such a whole world of unreported 'sponsored' or otherwise products, and streaming is a big part of it. And no-one is immune.
When the cheesegrater Mac Pro came out, I watched a lot of videos on it, particularly on YouTube in the photo/video segment - I was planning to get one, and while I had other uses for it, I'd be doing a lot of photo work on it in my recreational time.
Quickly I noticed just how many of the big name streamers had launch day or very early access to the Mac Pro and Pro Display. Sure.
And then I noticed how each and every one spun it as "I just got mine", "just bought one", and so forth. All organic, they'd have you believe - not a single one said "Apple sent me this". And yet...
By "a curious coincidence", every single one had seemingly ordered the exact same spec: an 18 core CPU, 384GB of memory, the Vega II Duo GPU, and 8TB SSD, and the nano-textured ProDisplay.
So what, you might think, that might have been the quickest shipping order. Also an $18,000+ computer, $25K with the display.
And if you're a photographer, even if you're working on medium format digital, and 100MP images, you in no way shape or form need 384GB of memory, or that GPU. For me, LightRoom / Capture One and Photoshop all barely sweated on my 12 core 192GB W5700X variant.
So then Occam's Razor applies. What are the odds that, even of just the 8-10 streamers I watch, they all got exactly the same spec Mac? Or is it that that was the spec Apple was sending to high popularity streamers?
Except not a single one even implied that that might have been the case. And I don't doubt that many or all bought their own at some point. But I suspect it was mostly "got one from Apple, talked it up, and then substituted it with my own when it arrived".
It didn’t seem like turning down settings caused a huge increase in frame rate so I just put everything to max and man it looks great. So you at least feel like there’s a reason your graphics card is running at 82°C and your fans are spinning up.
On the other hand, my wife was a huge Cities Skylines 1 player and bounced off the game pretty hard, as the low frame rates doesn’t come with any sort of real upside.
Every two years or so there was a scandal about either reviewers calling out a game publisher about the bullshit, or a widespread backlash against obviously lacking reviews.
(If the subject of the review sets conditions on its content, to restrain the reviewer from discussing their negative observations, it has the character of an advertisement. The subject is enforcing editorial control; thus, they have partial authorship/editorship of their own "review". Either you sign your name to your *ad*, or, the reviewer signs their name to their unburdened conscience—there is no in-between).
But who cares? As long as the sheep keep preordering the music won't stop.
But… why?
It's completely normal in AAA games to have a few imperfect and in-optimal things. Budgets are always limiting, and development times short. Plus, it's a hit-driven industry where payoff is not guaranteed. There are some things you can do (which are usually management-related and not dev-related) to make the game a success, but estimated bookings are rarely on-point. So trade-offs have to be made to de-risk - corners cut where possible, the most expensive part - development - de-prioritized. These are much bigger trade-offs than a single mesh being unoptimized. A single mesh is nothing.
It's a fun fact that this mesh is LOD0, and so is the teeth mesh. But that alone doesn't tank the performance of the game and is probably unlikely to be addressed in lieu of actual performance fixes. The fixation on these meshes in the thread is kind of excessive.
A lot of these comments are quite galvanized so I don't want to add to that - just giving more context.
No, mate, stop. The state of C:S2 is well beyond anything we should accept as "completely normal". It's a defective product that should not have been released. Stop normalising this crap.
Finding objects with ridiculous triangle counts is one of the easiest things to do when you have known performance issues.
If they didn't have time to do the first, easiest chunk of the work, then something was far more dysfunctional than "it's one of a million things to deal with".
If you aggressively min-max development cost & time vs features, there are big external costs in terms of waste (poorly performing software carries an energy and hardware cost,) end-user frustration, stress on workers, etc., which is how I justify voting with my money against such things.
What I don't understand is - how did they not notice that the performances was horrible even high end hardware? How did they not decide to take the time to investigate the performances issues and find the causes we're talking about now?
This is a cop-out. This doesn't seem like an oversight but rather blatant incompetence. You don't just "not pay attention" to this.
This is a well known property of log scaling.
Or both?
This is 180 of how people programmed for the older consoles in the most fun and creative ways to squeeze the most out of smaller hardware.
Take a look at this for comparison:
https://arstechnica.com/gaming/2021/09/war-stories-how-crash...
Reminds me of the state of frontend development where you need 8000 tools and dependencies to show even the simplest of things, and i'm not surprised they bundle React for the menus.
I absolutely hate this way of doing things, because for me all art, all engineering, all creativity is about boundaries, dogmas, and squeezing and optimising the hell out of your _elegant_ systems.
I mean even in my small webgl/threejs projects the fun part was getting every last bit of eye candy out of the smallest file sizes i could, simplifying geometry, lowering resolution, while maintaining great looks.
100k vertice log piles and hundreds of people with teeth?
Optimisations like this aren't even hard or time consuming (and they are fun) - can anyone clue me in on why you ship your stuff in this state - what happens in a studio like this? Is it 100% shitty work conditions? How could single devs and small studios create relatively large games with love 20 years ago for small money?
Business and survival is what happened. Read any of Jason Schreier's books on game development. Income is very chunky with games being in development for years. Postponing by a few months might sink your company, especially with interest rates being high.
Calling out that something is "easy" and "fun" is likely insulting to the developers who are frequently working 70-80hour weeks sand ruining their family life in the process.
In this game, they've focused on the superficial stuff, yet the core gameplay is still broken (instead of a city builder where citizens have agency, the game is effectively a god simulator where your biggest challenge is traffic management, economy or politics is a joke)
This is why many people prefer older games - the amount of effort spent on the gameplay itself is only decreasing year by year, while most of the budget is spent on useless graphical effects, quirky things everyone forgets in two months and all the usual "analytics"/"cloud" stuff.
Producing well-optimized, “clever” code usually requires magnitudes of more time than the simplest, quickest solution. Hobbyists line yourself, and a few companies like Nintendo, are typically the only ones that can afford to spend time optimizing like you describe.
It strikes me as a "how many idiots are in a position to make important decisions on this game" issue, or "how generally competent is the development team" issue.
Consumers should vote with their wallet, and stop preordering and falling for preorder bonuses and marketing hype, which is another disease affecting modern gaming. Unfortunately, publishers know that they can release a lackluster product based on hype alone (No Man's Sky, Cyberpunk 2077), and then spend years "polishing" a game into a state they promised before the initial release. The modern gaming industry is rife with scams like these to the point that it should be heavily regulated. So, no, none of these companies can be excused for releasing a garbage product and charging full price for it.
Correction: React/Web technlogy is responsible for all the UI, from the loading screens to in-game labels when using road tools and everything in-between.
And their implementation of Coherent Gameface is not the reason for the performance issues in the game, so not sure how it's even relevant.
Game dev seriously needs to follow the VFX industry and unionize. I have zero trust left in fellow gamers to not buy games from unethical producers.
[1]: https://en.wikipedia.org/wiki/Andy_and_Bill%27s_law
And then the fact that skylines had both a larger play area and more fancy city building features was just the killing blow.
EA got caught out, thinking they could leisurely bring out an inferior product, when a competitor emerged guns blazing.
SimCity 4 was the last of statistical city simulators. That is to say, if you put down something like a distressed Ong Condos, the game would go "okay, here's 20,778 people in this node in the transportation network, do some network flow and figure out where they work." Newer titles, including the ill-fated SimCity (2013), are agent-based, where they essentially drop in a person and tell them to figure out where they can go or something like that.
As for why SimCity (2013) was a series-ending failure, it was essentially that at every single juncture, EA choose the stupidest possible option, the one that would most guarantee the failure of the series.
The first failure was in the engine itself. AIUI, the developers who came up with the modeling engine knew it wouldn't scale, and never intended for it to actually power a full-fledged SimCity mainline title. EA decided to tell them that it was going to be that anyways. The simulation just didn't scale; the desultory size of the cities was meant to prevent people from attempting to build anything that would cause the simulation to keel over and die--although it's also clear that the max size limit still was too large for the simulation. This is probably where you're getting your idea of perf issues from.
The most famous issue, though, is EA's requirement that the game have multiplayer features to justify being always online (and thus having more intrusive anti-piracy checks). SimCity doesn't lend itself well to multiplayer functionality, and many people correctly assumed that it was a gimmick to justify anti-piracy. Bizarrely, EA tried to claim for a while that one advantage of always-online was to be able to use more powerful servers to do the simulation calculations, but this was never implemented, and the lie was discovered extremely rapidly.
But the single stupidest decision was that EA never put in place enough server capacity to handle the launch. The game would be EA's first always-online flagship release, which meant it would strain their capacity like nothing else they had released ever did. The lack of capacity was repeatedly highlighted as a potential issue in prerelease, and yet was repeatedly ignored. Problems were reported during beta testing and the press preview period, and were still ignored. And launch day came, people experienced several issues, and it still EA like a few weeks to begin to address the issue.
Oh, and you can't forget all the other regular video game release issues like games being released because they need a release date rather than because they're done and things like that.
You make a lot of great and accurate points (including blaming EA instead of Maxis). But I disagree that SimCity doesn't lend itself well to multiplayer functionality. (And perhaps EA isn't the right company to pull it off properly, being more focused on competition and violence than collaboration and education.)
I agree that it would be difficult to adapt SimCity to competitive play without over-complexifying and spoiling it, but SimCity is ideal for collaborative play, and constructionist education (as envisioned by Seymour Papert and Alan Kay)!
I designed and implemented a collaborative multiplayer version called SimCityNet that I released online in 1993 (with node locked and floating DRM, but that worked offline or on a private network), including text chat and shared whiteboard overlay and voting dialogs and pie menus, which I described in my other post:
https://news.ycombinator.com/item?id=38155984
Multi Player SimCity for X11 is now available from DUX Software!
http://www.art.net/~hopkins/Don/simcity/simcity-announcement...
SimCityNet: a Cooperative Multi User City Simulation at InterCHI '93:
http://www.art.net/~hopkins/Don/simcity/simcitynet.html
Multi Player SimCityNet for X11 on Linux:
https://www.youtube.com/watch?v=_fVl4dGwUrA
Back when ActiveX was a thing, Mike Perry at Maxis produced a web browser plug-in version of SimCity that was simply integrated with a text chat window, so although you were playing your own local copy of SimCity, you could chat with other users playing their own cities in their own browsers, brag and gossip about your city, ask questions and help each other. It was a huge hit relative to the amount of effort it took to implement, and despite its clunky stripped down user interface, but it demonstrated how essential and engaging communication between players was, even if they couldn't actually affect each others games or share save files.
https://en.wikipedia.org/wiki/Mike_Perry_(game_developer)
http://www.andywest.org/pr/simcity/misc/introduction.html
>Meanwhile SimCity Classic did not die: Maxis/EA has transformed it into a Web game you can play from your browser (after registration). The Web SimCity plays just like the computer game, except that it does not have every feature. Also, since the game is an ActiveX control, you must use Internet Explorer to play it.
I also designed and produced two different educational versions of SimCity/Micropolis, one an OLPC XO-1 Laptop interface for kids (X11/Cairo/PyGTK/Sugar) and one a web client/server interface (Python/TurboGears/AMF/OpenLaszlo/Flash) for an online community around shared multiplayer games and a storytelling platform. I completed MVP first-cuts, shipping the single player X11 version on the OLPC, and a web interface supporting multiple players sharing simulations running on the server.
https://github.com/SimHacker/micropolis/blob/master/turbogea...
https://github.com/SimHacker/micropolis/blob/master/laszlo/m...
I haven't fully completed the long term plans for the web based version, because Sugar never panned out then Flash died, and I didn't have the resources or support.
Finding support for developing educational software is tough, and I'd rather contribute new stuff to a truly free open educational community inspired by Seymour Papert's philosophy, like Snap!, than sharecrop on EA's intellectual property.
I believe Seymour Papert's collaborative constructionist educational ideas can be applied to other city simulators, many other types of games, and especially visual programming environments like Snap!
It's fortunate that SAP supports Jens Mönig to continue building on top of the block based visual programming ideas that he, Brian Harvey, John Maloney, Yoshiki Ohshima, Alan Kay, the MIT Media Lab Scratch project, and others developed:
https://faberllull.cat/en/resident.cfm?id=38258&url=jens-mon...
Micropolis Online (SimCity) Web Demo:
https://www.youtube.com/watch?v=8snnqQSI0GE
Micropolis: Constructionist Educational Open Source SimCity:
https://donhopkins.medium.com/har-2009-lightning-talk-transc...
Plan for developing Micropolis for OLPC:
https://github.com/SimHacker/micropolis/blob/master/micropol...
Micropolis for OLCP Sugar User Interface:
https://github.com/SimHacker/micropolis/blob/master/Micropol...
Notes on adapting Micropolis to the OLPC Sugar user interface:
Core Ideas:
Activities, not Applications
First cut:
Integrate the current TCL/Tk version of Micropolis to run as a simple activity within Sugar.
Restructure the multi-window TCL/Tk code to run in a single full screen window.
Implement a simple activity-oriented tiled window management interface.
Disable advanced features like multiple editor and map windows,
that require more sophisticated window management.
Instead of using a traditional multi-window management approach,
Make a simple wrapper around it that makes it appear in the Sugar user interface as an activity, like eToys does.
Long term:
Implement activity specific modes that reconfigure the user inteface (like Eclipse "perspectives").
- build/edit oriented interface
- query/analysis oriented interface
- financial oriented interface
- communication/coordination oriented interface
- dynamic zone finder analysis
- grid of several overall map views, each configured to show a different overlay.
- grid of several close-up map views, each centered on a different parts of the city (or tracking a player's cursor)
Collaboration: Enhance multi player mode to support sharing activities.
Both publishing your game for others to clone and play themselves (massively single player, like Spore),
and letting others join in your game (like the current cooperative multi-player mode)).
Multi player inte
Expression: Enhance chat, journaling, storytelling, and personalization aspects of the game.
Journaling: Record all events (both user edits and simulation events), chat messages and drawings.
Checkpoint the game state, and implement the ability to deterministically replay time stamped
editing events into the simulation, so you can fast forward and rewind from any checkpoint to
any step of the simulation.
Enable players to write newspaper articles about the cities, with live links to a snapshot
of the simulation and a place on the map, related to the story. Other players could browse
their published newspapers about the history of a city, and jump into that history at any time
from any story.
Iteration: Checkpoint game save files, allowing players to rewind history, and try "what-if" experiments.
Presence is Always Present
First cut:
Enhance the current X11 based multi player interface to support presence, the grid network, and messaging.
The current multi player interface runs a single Micropolis process on one laptop,
which connects to the local X server, and/or several other X servers on laptops over the net.
Rewrite the "Add User" dialog to be grid-network aware.
Instead of asking for an X server DISPLAY screen, provide a list of friends on the network.
Send an invitation to play to friends on the network.
Rewrite the built-in chat interface to integrate with the chat system used by Sugar.
Improve the shared "white board" overlay, so kids can draw on the map in different colors,
enable and disable different overlays, save overlays with the map, add text to overlays, etc.
Implement location based chat, by overlaying people icons and chat bubbles on the map.
Each player has a people icon "cursor" that they can move around the map (which follows
their selected editing cursor), and their chat messages show up in bubbles overlayed on the map.
When you select an editing tool, you can type what you're doing with the tool,
other people will be able to watch you, and make comments on what you're doing.
Long term:
Rewrite Micropolis in terms of Python/GTK/Cairo, and take full advantage of the Sugar libraries and services.
Support sharing, mentoring, colaboration, voting, political dialogs, journaling, etc.
Develop Micropolis into a exemplary, cutting edge demonstration of all that's great about Sugar.
Tools of Expression
Micropolis is great at supporting personal expression, interpretation and storytelling,
and leveraging what the player already knows to make connections to new knowledge,
and stimulating conversation, debate and analytical thinking.
Develop a web based "Wikipedia" oriented interface to Micropolis, supporting colaboration, discussion,
annotation, history journaling, and branching alternative histories.
Journaling
The "Micropolis Journal" could be realized as a web-based
newspaper-like interface.
Expose the multi player user interface through the web, instead of
using X11.
Automatically generate a newspaper for any particular time in a
city's history, from the simulator events and state, combined with
user written articles and chat messages.
The newspaper has sections that present automatically generated
snapshots of the information displayed in the various dialogs
(graph, evaluation, chat, notices, etc), and stories about
significant events (both user-generated and simulation-generated).
Enrich the city save file with metadata including the chat and
event journal, overlays, snapshots at different points in time (in
a branching "what-if" tree structure), etc.
In the Python version of Micropolis it will be easy to implement a
web server based interface that lets users read the city's
newspaper through the web browser, automatically inserting
pictures of the map corresponding to particular events in time. An
article about pollution going down could show a before and after
overall map with the polution overlay, and stuff like that.
Plug in modules to the simulator that analyze the state of the
city and generate events for the newspaper to write articles
about, including interesting stastical information and other
parameters to insert into the story template.
Implement "online surveys" that let newspaper readers vote on proposals
(expose the voting interface to web based users).
Use OpenLaszlo to develop a rich graphical AJAXian web service
based Micropolis interface, eliminating the need for the X11
interface, and enabling all kinds of interesting interface
customizations and mash-ups with other web services.
[... lots more at:]OLPC-Notes.txt:
https://github.com/SimHacker/micropolis/blob/master/Micropol...
PLAN.txt:
https://github.com/SimHacker/micropolis/blob/master/micropol...
1. shallow game play compared to its predecessors
2. demand for always online and proven lies about offline play not being possible because of the game architecture
3. invasive DRM, during a time when invasive DRM was on everyone's mind
4. launch issues which, combined with the always-online requirement, meant a solid "plop" of a release.
5. EA was already negatively viewed at the time by many PC gamers
It looks like the wikipedia article for the game mentions some of these, and other issues.
> SimCity's sixth major release was announced on March 5, 2012, for Windows and Mac OS X by Maxis at the "game changers" event.[31] Titled SimCity, it was a dramatic departure from previous SimCity games, featuring full 3D graphics, online multiplayer gameplay, the new Glassbox engine, as well as many other feature and gameplay changes. Director Ocean Quigley discussed issues that occurred during the development of the title, which stemmed from two conflicting visions coming from EA and Maxis. EA wanted to emphasize multiplayer, collaborative gameplay, with some of the simulation work conducted on remote servers, in part to combat piracy. In contrast, Maxis wanted to focus on graphical improvements with the new title. Quigley described the resultant title as a poor compromise between these two objectives- with only shallow multiplayer features, and a small city size limit- one quarter of the land area of previous titles in the franchise.[2][32]
> The game was released for Windows on March 5, 2013, and on Mac in August.[33][34][35] Medium would later refer to the release as "one of the most disastrous launches in history".[2] The game required a constant internet connection even during single-player activity, and server outages caused connection errors for many users. Multiplayer elements were "shallow at best", with departing players leaving abandoned cities behind in public regions. Users were unable to save their game- with the servers instead intended to handle this- and so when users were disconnected they would often lose hours of progress.[36] The game was also plagued by numerous bugs, which persisted long after launch.[37]
> The title was heavily criticized in user reviews, and developer plans for post-launch updates were scrapped.[2] EA announced that they would offer a free game from their library to all those who bought SimCity as compensation for the problems, and they concurred that the way the launch had been set up was "dumb".[38] As a result of this problem, Amazon temporarily stopped selling the game in the week after release.[39] The always-online requirement, even in single play, was highly criticised, particularly after gamers determined that the internet connection requirement could be easily removed.[40] An offline mode was subsequently made available by EA in March 2014, and a mobile port entitled SimCity: BuildIt was released later that year.[41][42][43]
> It has been suggested that the poor performance of SimCity was responsible for the 2015 closure of Maxis' Emeryville studios, and the end of the franchise.[44][45]
It wasn't.
Part of the problem is that AAA is just (IMO) too big and expensive. Devs might actually have to ship a broken game around holiday time just to get enough sales to survive.
And the other extreme can be dangerous too, like how Mass Effect Andromeda's development dragged on forever, and EA let it happen because its such a golden IP.
I think the ultimate solution is to just scale down most studios a little bit, so the studio and publisher can afford to delay. Medium sized studios are the sweetspot, especially going forward with GenAI.
This makes it a 'race to the bottom' style (or a race to the top?) competition, where higher funding gets you more marketshare, but only against lower funded studios. It's akin to advertising budgets. Mostly a zero sum game in the end.
Any small indie studio have to deal with it.
Well, yes, because it doesn't matter. It is on the top seller list on Steam. I agree with you, but we can discuss fixes till our fingers bleed. In the end, the problem is capitalism.
https://store.steampowered.com/search/?supportedlang=english...
Is this sarcasm? I’m asking seriously. If not, then how is a poorly running game the result of capitalism, and what is the alternative economic model that would produce only high-performance / efficient games?
surely, it is the underlying economic system ruining the art of modern video game development!
When I first heard of this as being a thing, my initial reaction was indeed something like "wait what? HTML and CSS in a desktop PC game driving the UI? No, that shouldn't be ... ".
But then I used Microsoft Flight Simulator 2020, was amazed by the graphics and performance ... and learned about how the complex and detailed cockpit gauges are using WASM/HTML/JS for rendering. No React, but still the "web technologies".
It dawned on me that this is apparently not exactly the weird, strange, bad performing, wrong-use-case, "why would you ever" thing I originally saw it as. Because it was working fine in that complex scenario.
Gameface's architecture is described in its documentation: https://docs.coherent-labs.com/unity-gameface/integration/te...
Most of its divergence from browser implementations are unsurprisingly in font rendering, which is generally a headache in games anyway: https://docs.coherent-labs.com/unity-gameface/integration/op...
And in RTL text rendering: https://docs.coherent-labs.com/unity-gameface/integration/op...
The Javascript DOM API is a subset, but pretty rich considering: https://docs.coherent-labs.com/unity-gameface/api_reference/...
Conference talk by dev: https://www.youtube.com/watch?v=Pkf9H3XEMoE
There is a lot of snobbery and arrogance from "pure" backend developers who think JavaScript is some limited toy language. If it is not C++ or Rust or even Go (...assuming they are ok with the GC) then to them it is not worth wasting a milliseconds time on while they go off and fetishise over their copy semantics for their CRUD website backend.
Modern JavaScript is highly performant and the DX is second-to-none (unless you are using anything related to NPM). JavaScript and Typescript freed from the NPM nonsense is an absolute joy to work with.
I look forward to the inevitable dominance of JavaScript on the backend.
When I realized this was performant enough to drive a 747's entire cockpit while the simulator moved along at a high FPS and with incredible visuals, and was now a thing that was being selected for "state of the art" AAA games ... from there I did my homework.
So that led to reading all about SpaceX Dragon UI, as you mention, and all the myraid of other places this is used.
I did feel like I was too far outside the loop, having been a software engineer and working with these technologies for quite a while by that point. "quite a while" being the pre-JavaScript-existing years.
I just wasn't working on projects that such a thing would meet a requirement.
Now? I still have no use for it but I find it incredible that everything in this entire pipeline has become so optimized and reliable. Apparently to the point you can suggest running a spacecraft's user interface and not leave everyone staring at you, blank-faced and not sure how to respond.
Instead, possible responses can now include "sounds good".
Now, there is stuff like imgui of course. But Try writing a very heterogenous UI in something like Qt and then come back to React. There's very little empathy for the machine but it works so well.
This sadly tracks with my own experiences with Unity's tooling, where DOTS did ship but its implementation rots on the vine like every other tool they acquired. The company is woefully mismanaged, its been mismanaged, and given the very public pricing incident from a few weeks back, they aren't focusing on improvements to the engine, but on any way to scrap money from its users.
Bevy's ECS implementation is really good, and I want to see it succeed here, in addition to Godex.
Godex is ultimately putting lipstick on a pig. it can improve performance a bit, but ECS isn't some magical optimazation to slap on as a plug-in. cache coherency in the gameplay layer can't fix engine level bottlenecks.
For example, Godot isn't really build around ECS, but the idea of servers which are mostly autonomous game subsystems that can process their area of expertise (rendering, physics etc.) mostly independently, and are loosely coupled to the general game logic.
ECS architectures originate in the PS2/PS3 era, when CPUs were awful. Tiny caches, horrible branch mispredict penalties, slow memory, fragmented memory spaces and lack of a random access storage forced developers to build their games around predictable memory access patterns, that in general resulted in streaming architectures, where data necessary for the game data to be streamed in tiny chunks to be processed.
While generally this is good practice even nowadays, with the advent of superfast CPUs with amazing speculative execution, great branch predictors, and tens of megabytes of cache, this is no longer strictly necessary, especially considering that most modern games haven't really increased that much in terms of stuff going on on the screen compared to say, a decade or two ago. It's still uncommon for the player to fight more than a dozen dudes in an action game.
And in games with thousands of things on screen at the same time, often specialist logic and handling is necessary.
Although to build DOTS they did poach a lot of ECS and Data-Oriented folks like Mike Acton, who left earlier this year.
I really wonder how they develop at that place. And what kind of QS they have.I think even applying a crude pareto would improve their games a lot.
Edit: I stand corrected. I wasn't aware that Paradox is also a publisher and even such a big company (over 600 employees!). Still makes you wonder how they go about their business.
…of course those were all built on Dragonfly/Bitsquid instead of Unity so that might be a clue about where the issue lies.
It's not a Paradox game, they're the publisher. Colossal Order is the developer.
It's a small developer out of Finland, 30-50 employees.
In a way that sent them straight to the top sellers list on Steam. Sadly, today, it just doesn't matter.
Edit: spelling
It’s remarkably tone deaf
I've been looking through the decompiled code for the purposes of modding for the last few days, wrapping my head around their ECS/DOTS code, and the game has a much better foundation for a scalable simulation than CS1 ever had, even after years of optimizations.
Then the meme developers in the front end went “lmao JS and CSS for the interface, 100k for a log” and ruined it all
Important certainly but colour me unconvinced on equally important. If the game play isn’t fun on a simulator then it isn’t much of a game.
People still play chess despite terrible graphics
It's all about the gameplay.
I would have loved to see something really bold, such as Cities set in Venice, and the task is to revamp the city. More interesting, instead of cars, cars, cars...
It's set in the early industrial era, so a lot of sails and rails and small colonies exporting things all over. I can't remember if there are cars yet, but if there are, it's not a major focus. Some of the levels have you revamping existing towns, while others let you start from scratch.
(Edit: Anno 1800 is actually free to play on Steam this weekend: https://store.steampowered.com/app/916440/Anno_1800/)
An older title, Anno 1404, had a Venice expansion too: https://en.wikipedia.org/wiki/Anno_1404#Expansion
All of them are playable on Ubisoft+ for $15/mo (I think?), so it's a pretty low-risk investment if you want to try them. If you don't have the hardware, you can also stream them on GeForce Now and, I think, Amazon Luna.
Games are super accessible these days!
If they left them in, it would have been a fun challenge to minimise them.
https://www.theverge.com/2013/5/9/4316222/simcity-lead-desig...
The second game adds parking lots of various sizes, parking structures both underground and above ground, etc. But it also encourages you to build alternative public transportation like buses, trolleys, trains, metros, etc. (Sadly no bicycles in the 2nd game yet).
Your comment ignores the primary point of their comment, they want to start with an existing city and fix it.
I got a tremendous amount of enjoyment out of the first instalment of the game, it's a big bummer that I can't give this one a go
> If you're having issues with performance, we recommend you reduce screen resolution to 1080p, disable Depth of Field and Volumetrics, and reduce Global Illumination while we work on solving the issues affecting performance.
This is all I had to do to get smooth performance on an AMD Radeon RX 5700 XT
[Chill: it's a tooth joke, not a conspiracy theory.]
I'm all for holding developers accountable for flawed games, but the level of negative hyperbole around CS2 has been a real stain on the community.
I haven't had time or perhaps motivation to load up CS2 much, with that superb Cyberpunk story to be explored (and planes to fly), but on the initial tutorial I noticed a weirdly low fps for what was not a super impressive image.
I installed Skylines 2 through my gamepass; my initial thoughts were to come back after some post release patch cycles.
It took the CP2077 team a lot of time but they completely turned a trainwreck into something rather magic, so I'm hoping Skylines 2 will experience the same. I did enjoy the original release years ago. (Edit: Gamers Nexus' video led me to City Planner Plays, which shows just what can be made - the scope of Skylines 2 looks amazing, given my hardware I could probably get into it sooner rather than later!)
Finally a kudos to the author for this in depth, well written article! I really enjoyed it.
Maybe they could have gotten away with this with UE5's Nanite, but that much excessive geometry would have brought everything else to its knees.
Exactly.
If unity actually delivered a workable graphics pipeline (for the DOTS/ECS stack, or at all keeping up with what UE seems to be doing) these things probably wouldn't be an issue.
There is no excuse other than leadership are cashing the checks and squeezing the juice out of the company until they close it, which would make sense looking at their semi-recent merger and poor behavior by the CEO.
Seriously, I was looking into Unity at the start of Covid while laid off, and DOTS was "around the corner" even THAT far back!
They still don't have an answer for a network stack, and now LOD is broken? LMAO.
Unity has been a dirty word for me for a number of years. This is the pay-off for dismissing people's concerns and insisting it will buff out eventually.
Oh and I have to mention the cascaded shadow mapping: "taking about 40 milliseconds or almost half of total frametime. ". - 40ms is 25fps all by itself!
Imagine you have a web app written in Ruby using Rails with data stored in Postgres. You have a few hundred tables, millions of rows. Millions of lines of Ruby, CSS, and HTML. Thousands of images carefully exported as JPEG, GIF, or PNG depending on what they contain.
Now imagine being told you need to simultaneously port that to:
- Not run on the web. Instead be a native application using the OS's rendering.
- Not be written in Ruby. Instead using a different language.
- Not use Rails. Instead, use a different application framework.
- Not use Postgres. In fact, don't use a relational database at all. Use an entirely different paradigm for storing data.
- Not use CSS, HTML, and raster images. Instead, everything needs to be, I don't know, vector images and Processing code.
That's about the scale of what moving from one game engine to another can be like. Depending on the game, it's isn't always that Herculean of a task, but if often is. A mature game engine like Unity is a programming language, build system, database, asset pipeline, application framework, IDE, debugger, and set of core libraries all rolled into one. Once you've picked one, moving to another may as well just be creating a whole new game from scratch.
And if you've got a team of experienced Unity developers, some who've been working with C#/Unity for their entire game dev career, switching to C++/Unity isn't the most practical option. While many concepts are similar between engines, you're going to be back at the bottom of the learning cliff for a while.
It sounds like Unity isn't really the problem in this case, it's more about too many polygons, poor use of LOD, and sub-optimal batching (too many draw calls). It was probably more of a time pressure issue than a tech issue, as game development is usually a race against the clock.
Unreal really excels at action games, but you can absolutely implement custom camera RTS controls and such. Batteries included but replaceable.
The question "does X engine support this kind of game" is a bit.. off. You would be amazed at how many features these engines pack in. However: You would also be amazed at how NOT "plug and play" they are. It still takes a TON of effort and custom code to make a sophisticated game.
to be fair, DOTS 1.0 did "release" in 2022 I believe. IIRC the core came out and the biggest ommision was DOTS animation. But many core parts of DOTS has been deemed "production ready" for about a year now.
>They still don't have an answer for a network stack, and now LOD is broken
broken implies that Unity had a robust LOD system to begin with. That's always been very primitive since Unity's most successful projects were mobile or 2D.
But yes, the Netcode has been in absolute shambles for years. Very confusing since that is the backbone of mobile. I'm guessing there's some popular 3d party they defer to that integrates well with Unity.
It blows me away how bad everyone is at their jobs. Imagine spending all day working on something and then you just make it garbage.
It sounds like classic mismanagement. Some artists making this being told that there will be some automatic culling or LOD system so to go wild - it won’t affect the end result; and the system not being ready or being cut by another part of the organisation without the artists ever knowing about it.
I’m sure there were vocal developers who understood the problems and advocated for fixing - but a decision was made to release anyway; I can’t even say wrongly, because games being half-finished on release and polished later is not at all unusual nowadays even for flagship titles; and they do have a track record of supporting their titles for a long time.
I can well imagine a reasonable decision to get money coming in now for the cost of a couple of months of low level complaints that nobody will remember in a year.
It sucks, but I am willing to bet it’s not laziness or people being bad at their jobs.
It is easily achievable from bad/misaligned incentives, poor leadership, no product vision and probably a dozen other organisation problems which make decent workers working on stuff that actively makes the end product worse. Think Boeing 737 Max.
This all could easily stem from a couple of key people leaving and chaos breaking loose, or from extreme time pressure by the publishers.
The feature set is far from the same scale as RCT1.
That resolution is still fewer pixels than a simple 4k display, which modern games seem to drive at 60fps quite regularly if you buy beefy hardware. A graphical gore fest like Doom runs at over 100fps on 4k on the card the author has, so a mostly static city builder should also operate fine at a resolution like that.
It's more for race/flight sim type stuff IMO but if you got it, why not play everything at that res provided it performs well.
Look at images of it from the top, that'll help you understand how immersive it is.
You have to remember, Unity usually sets the bar very low for themselves, comparing their ancient Mono implementation (they still use the Boehm GC, written in the 1980s!), and when a shiny new performance 'fix' like Burst/DOTS drops, they proudly proclaim how much faster they managed to make things, never mind a modern .NET implementation, like Microsoft's CoreCLR would achieve the same performance without any proprietary tech, without any code modification.
I don't think it is necessarily a fair or useful comparison. I also wrote several toy 3d engine a few years back, and some where performing better than some "commercial" engine, but it is not hard to do when you don't have to handle cross-platform, and a large number of feature. What is a fairer criticism is that Unity has been unable for the last decade to actually stick to a few features and make them actually mature and production ready. DOTS has been introduced like 4-5 years ago ? And it still feels like a polished tech-demo, not a production ready-system, properly integrated with the rest of the stack. And the same could be said about so many Unity feature. The "legacy" systems are just plain simply more reliable than almost any new feature they started for their replacement.
Besides that, they made a bunch of proprietary changes to Mono to make it run on their engine, and to be able to export to literally any platform under the sun.
A lot of platforms, like iOS and consoles have (or had) a strict no-JIT policy, so they needed to come up with statically compiling code to said platforms. One of the methods they used was IL2CCP, which turned .NET bytecode, into horrible looking C++, full of goto-s, weird labels and structs getting passed around.
Considering some platforms had limitations like you had to compile the game solely with the C++ compiler the platform supplied, not sure if they had a better solution, but it's still horribly hacky.
They've been manually syncing up changes from the more recent versions, but I can't really tell, at what pace.
But the thing is, even the official Mono has never really kept pace with MS's implementation, and recently, after the acquisition, Mono was dropped by MS in favor of the CoreCLR.
Edit: Checked the vert & poly counts with Renderdoc. The example scene in the article processes 121 million vertices and over 40 million triangles.
I call this kind of thing the “kilobyte rule” because a similar common problem is shoving tens of megabytes of JSON down the wire to display about a kilobyte of text in a browser.
If you only stick to the mature tech, then you may wind up being potentially unable to even produce your (advanced) game. It's always a challenging tradeoff. As long as the game is playable and you make enough to continue improving you might be OK; but of course you might go belly up before you fix it enough.
By the time CS2 makes it to Mac, it might be improved enough to actually play!
Otherwise I guess you could ask people for the savegames of almost broken cities and try to rescue them?
The 'city' in the article has population of 1000. That would be village where I live - but it is drown in pretty wide roads and huge amount of parking places.
If I recall correctly, there was even a few mods that did a similar re-balancing of the population numbers in the first game.
I have a 3080 and it basically moves it from "unplayable 10fps in the main menu" to "works just fine, no issues in game" with medium-high graphics.
> This pass is surprisingly heavy as it takes about 8.2 milliseconds, or roughly about far too long, ...
Luckily it seems like there are pretty simple reasons for the poor performance so I'm hopeful they can at least do something even if they don't have a ton of rendering expertise.
But that means that everything is solvable. There's no need in this game for 100,000 vertices for a logpile, so that should be a relatively straightforward task to fix. And someone can rip out all the teeth and put "Principal Tooth Extraction Engineer" on their resume.
I'm guessing the studio was pressured to release on a hard deadline to make the publisher their promised profits. This game would have been a guaranteed first day purchase for me, but the bad press coverage now made me move on to other games in the limited time I have. So I may check back to see if the updates fixed the pefromance in 6mo or never. What I'm saying is that the person who decided on this release date likely made a long term strategic mistake for short term profit, or was forced to do so by another idiot up the chain.
Despite all that, from my reading it doesn't look like CS:2 really got bit too badly for using it. Their perf issues are more broadly explained by poor LOD coverage, treating their addons like black boxes, and no occlusion culling. These are issues that no stack is immune to.
The game ran so poorly
that Windows Game Bar
refused to acknowledge
there even was a framerate.> this written article from PC Games Hardware (in German) or this video from Gamers Nexus (in Americanese)
Humor and a great blog design, made my day.
Also, does that mean that easy fixes are available or is this so core that solutions would require going back to the drawing board?
Threads like this tend to become occasions for responding generically to stuff-about-$THING (in this case, the game), or stuff-about-$RELATED (in this case, the framework), or stuff-about-$COMPARABLE. There's nothing wrong with those in principle but each step into genericness makes discussions shallower and less interesting. That's why the site guidelines include "Avoid generic tangents" - https://news.ycombinator.com/newsguidelines.html
However, after reading this, it seems to be mostly a rendering issue with even basic stuff missing, like LOD models or occlusion culling?!? Feels like someone had to optimize the rendering engine after Unity didn't deliver, but skipped the '101 of how to optimize a renderer' in the first place.
Analysis showed that most frame time was lost due to lack of LOD levels and culling - causing the engine to render insanely high amounts of polygons that weren't even visible on screen.
In conclusion it seems that using the brand new engine feature DOTS (which is a perfect match for this game), successfully solved the CPU bottlenecks the first game had.
But because of Unity's DOTS <-> HDPR integration still being WIP (with several key features being experimental/missing) - they had to implement a lot of stuff on their own (including, but not limited to culling), which cost development time and caused the game to be not quite ready at release (explains missing LODs/optimization).
Great article @paavohtl!
We wasted a LOT of innovation tokens on VR, ray tracing, battle royales, etc. The availability of OSS and COTS engines has been an uplift on paper, but brought with it an entire new universe of downsides with regard to actual player experiences.
For better or worse, I believe that a higher barrier to entry is a good thing for a major creative effort like a video game or feature length film. Both of these typically require involving more than 1 human in a deep, passionate way. You really want to make sure you have the right vision & people or it's going to turn out shit.
Would you rather have 30 kinda meh games you can play for ~20-50 hours each, or 2 super incredible games that have endless replay value? At a certain point, the value proposition goes discontinuous with this form of entertainment. In my view, you should always seek this criticality and consider how severe the economics are if you fail to reach it. You can't necessarily plan to build something that will last as long as WoW from the beginning, but you can certainly ask yourselves "is this still fun to play?" on a daily basis.
I'm not saying we go back to the abacus, but there is a price to be paid for the level of abstraction we are operating with today. You stop thinking about things and they leak into the player feel. When you are working on top of a physics engine that you separately tuned for 1000 hours under extreme duress, you know exactly when something isn't quite right and can do something about it immediately. Every COTS engine is a very leaky abstraction that turns into a titanic disaster the moment you desire things like bespoke multiplayer or platform functionality.
I also think there is a vertical ownership crisis in the industry. When you have all of your assets being produced in a separate silo, you should expect a very manufactured look & feel when they are combined with the rest of the product. Less content would probably feel like a lot more if we'd slow down a bit and re-integrate the artists, developers, testers, etc. under fewer hats.
1. Optimization do not bring profit.
2. Bad code make developers' life easier.
3. Hardware nowadays is fast enough that we no need to concern about efficiency.