Lemme try this again...

Two objective questions and one opinion question for discussion. :D

 

I crashed in-game today for the first time in a long time. I was in a 2v2 on Crucible and my teammate and I were losing since the beginning. But somewhere mid-game we started making a come-back. We were just coming up to the Valor flag together, my teammate and I and I was feeling that epic comeback feeling rising up in me and then my screen blinked a couple times, my resolution changed, my desktop background came up, and I saw a giant box of text and read Unhandled Exception. I was so pissed. This match was incredible. But before I could see it through it was just suddenly gone and I was staring at a bunch of text that to me equated to the computer saying "LOLOLOL YOU JUST GOT PWNED FOR NO REASON HAHAHA SUCK ON IT LULZ."

 

Why do random crashes like that happen? Some extremely specific scenario happened, some series of events happened right in succession that the game didn't know how to handle and it died instantly? I did some Java programming a while back but I don't know how large-scale clients like this work.

 

Second question. My first game after updating to 1.01 I was playing UB and the very first spit I tried on someone didn't work. I made a post about it here. Many others have found other bugs in 1.01. This is the kind of thing that boggles my mind. How do the devs not see this stuff if they're testing the build before releasing it? 1.01 was an important build. It's the first big one by GPG since launch. It's the one that was supposed to fix a lot of glaring issues. Everyone was waiting for it to finally get made and be released. I got a very clear impression that Stardock/GPG recognized that this build was important and that it was important to get it right and not to rush it out. I'm not doubting that they tested the build. I just don't understand how they miss these major things.

I almost see 1.01 as a make-or-break build for a portion of the Demigod community because people have been clamoring about all these problems since the beginning and this build was promised to solve many of them. I fear that a fair number of people who were already really frustrated about the game will ditch it altogether after seeing that the build they hoped would solve their problems has solved a few, has not solved a few, and has made a lot of new ones. I don't want people to quit on Demigod. I love this game. It is so much fun. But in a way I can't blame them too much anymore.

What do you guys think? Will a good number of people leave after 1.01's not-so-great state?

8,144 views 18 replies
Reply #1 Top

Yes I think, as I read we were +5000 connected one or two weeks ago,  now we are 300-350... this game is already dying... only 1.5 month after release, that's sad :/

Reply #2 Top

I think doom-and-gloom posts aren't helping.   :thumbsdown:

Reply #3 Top

I don't think doom and gloom posts help or not help.

If you got a game which is predominantly multiplayer and that part of the game doesn't work, that's pretty serious.

Don't get me wrong, I enjoy playing Demigod but this game is going to be another SupCom.

Fantastic potential let down by amazing flaws which will shorten it's lifespan considerably.

SupCom: Great game except most people couldn't run it.

Demigod: Great game except multiplayer didn't work for at least the first month.

What's annoying is that it could have been so easily avoided.

SupCom: It was totally obvious that there were HUGE problems with the engine and GPGnet. They released and it got hammered.

Demigod: A very small beta (for a MP game) was done which failed to highlight multiplayer connectivity issues which have been done much better in the past in other games. Anyone remotely interested in RTSs/MMOs will know that this is outright insane.

I know some of you will point to how hard SD have been working to fix it but another way of looking at that is that it shows how badly broken the product was.

Why am I posting this? Cos it makes me mad that a game of this potential has been so badly let down and that player base is tiny compared to what it should have been.

Reply #4 Top

They absolutely do hurt the game.  I for one almost played Pirates of the Burning Sea.  Before I did I checked the forums to learn a little about the game.  After seeing a handful of doom and gloom threads on the first page I knew the game wasn't for me.

Reply #5 Top

I for one almost played Pirates of the Burning Sea. Before I did I checked the forums to learn a little about the game. After seeing a handful of doom and gloom threads on the first page I knew the game wasn't for me.
End of quote

Well, if someone checks these forums and sees that there are widespread connection issues that they'd rather not deal with, then yes, I suppose the game is hurt but... why shouldn't it be?

Are you now wishing you 'had' blown $50 on PotBS?

I wouldn't mind seeing more made of the fact that the game works flawlessly on other multiplayer sources like GameRanger, though.

Reply #6 Top

I'm not saying we should hide the connection issues.  I'm saying just the fact that the community says the game is dying is enough to deter new players... I didn't "not join" PotBS because of connection issues; I did it simply because the community was resolute that the game would die.

Reply #8 Top

Sly,

First error: Work with GPG ! I find them a poor developement company, really poor.

Second error:  You don't launch on the market a bugged game like demigod, they did wrong strategical choices.

In the actual game industry you cannot do this. You have only one chance to sell your game well, they didn't take it.

I thought that I was going to refund, as I see no future for this game anymore. I'm not thinking about it anymore because they will be enough penalized with the sales going down and the bad advertising for the next games. I won't get a refund, it will be too bad to do them that ! 40$ is nothing finally.

I give them my 40$ as a gift for trying hard to fix the game, but the thing is, now I will never buy again a GPG or SD game...

"What goes around come around"

I'm sorry to say that, I'm thankful to SD and their hard work, but they deserved it !

Sincerly,

eeka

Reply #9 Top

Seems to me they worked with GPG just fine.  They're the publisher right?  Aren't the publishers pretty much just in charge of distro'ing the game, setting deadlines, and maybe sending out the occasional project manager over to sniff out recent progress?  Seems unusual to me the publisher would be taking over network coding like they did and helping out (tremendously) with this crunch aftermath.

Am I saying they didn't make mistakes?  Nah, they did, but it's the 20/20 hindsight deal-e-o.  I believe them when they say that they thought the game was done (connection-wise) because the beta was working fine.  That said, I do not feel the game is truly "done" since they knew they were not shipping with a map editor, replays, or FFA-style custom games (all of which I've posted for).  That, IMO, really is something no skirmish-style RTS-style game should ship without.  So yeah, that I'm not as happy about.

But please!  No more "community is too small, game is dead!" threads!  They aren't helping.  Besides, I played Savage 2 for several months despite having the smallest community I've ever experienced, and it was still worth it.  In an MMO I understand the problems with a small community but in an RTS as long as you can find a semi-decent game (and you probably can for some time to come) let SD worry about it and give us more coupons.

Reply #10 Top

Why do random crashes like that happen? Some extremely specific scenario happened, some series of events happened right in succession that the game didn't know how to handle and it died instantly? I did some Java programming a while back but I don't know how large-scale clients like this work.
End of quote

In C++, in addition to reference or value parameters, you can pass "pointers" to a physical memory address where some value or object resides. There are various circumstances where pointers make some task easier or even possible when it would not otherwise be so without.

If you get an exception due to an access violation attempting to read 0x00000000, it's usually because a pointer with a value of 0 (i.e., it wasn't set or somehow was set to zero) was passed to a method that tried to use that address's contents. It's impossible to say without looking at the code just how it happened or why it wasn't caught and dealt with, but that's what it means.

Sending in the logs and dump files is pretty vital in these cases because it tells the devs exactly where it happened (the log) and what was going on at the time (the dump). Without that actual data from the error happening, such issues can be incredibly troublesome to pin down.

Reply #11 Top

There are various circumstances where pointers make some task easier or even possible when it would not otherwise be so without.
End of quote

A lot of it also is when you have objects that take up a lot of memory, it is much easier and smarter to pass a pointer to the object than the actual object (which is usually copied when passed to a function) to save precious memory :P

Reply #12 Top

That's only a problem if you try to pass an object by value (which is actually impossible in most managed languages like Java, IIRC, where objects default to reference). Using a reference wouldn't spawn a copy either. In many cases you'll want the method to make changes to the object anyway, so a value parameter would be counterproductive.

Reply #13 Top

The best strategy for avoiding null pointers is to never delete anything.  Let the program munch memory until there's none left. Nom nom nom :drool:

 

Quoting kryo, reply 12
In many cases you'll want the method to make changes to the object anyway, so a value parameter would be counterproductive.
End of kryo's quote

Yeah but often you call a function thinking it won't actually change the parameter and it does, either because the caller didn't know it had this side effect or the implementer didn't realize he wasn't really working with a copy.  Most likely that is what's causing these null pointers.  Sure, C++ has "const correctness" but it's such a pain to have to make everything const just because you want one function to be const that no one does it.  Const_cast can override it anyway so that makes it even more pointless.

Reply #14 Top

All true, but default C++ isn't a managed language (thought MS has its variant in C#) so it can happen :P I was just adding on to your earlier comment anyway, rather than disagreeing with it.

Reply #15 Top

Quoting Sly_Squash, reply 13
The best strategy for avoiding null pointers is to never delete anything.  Let the program munch memory until there's none left. Nom nom nom
End of Sly_Squash's quote

Well essentially in managed code you don't delete anything. Java, C# have their own garbage collectors that do it all.

Reply #16 Top

Quoting Annatar11, reply 15



Well essentially in managed code you don't delete anything. Java, C# have their own garbage collectors that do it all.
End of Annatar11's quote

Garbage collection works by performing the delete when there are no more references to the object.  Thus, you still have to take out the references to the object or the garbage collector won't reclaim it (i.e. set the pointer and any alias pointers to null).  So just don't reset the pointers and you foil even garbage collectors foolish attempts to reclaim YOUR memory!

The big win for garbage collectors is being able to reclaim memory for vars once they have fallen out of scope, but many objects have global scope so TAKE THAT GARBAGE COLLECTORS!!

I was joking btw.  Memory leaks are bad... just like vampires :fuzzy:

Reply #17 Top

This is truth :P Well, everything except vampires. Vampires are awesome.

Reply #18 Top

Well essentially in managed code you don't delete anything. Java, C# have their own garbage collectors that do it all.
End of quote

And yet you can still get a crash from trying to access a disposed object :p