April 09, 2013
On Monday, 8 April 2013 at 08:21:06 UTC, Manu wrote:
>
> The C++ state hasn't changed though. We still avoid virtual calls like the
> plague.
> One of my biggest design gripes with D, hands down, is that functions are
> virtual by default. I believe this is a critical mistake, and the biggest
> one in the language by far.

My understanding of this is that while all of your class functions will be virtual by default, the compiler will reduce them to non-virtual unless you actually override them, and to override by mistake is difficult because you have to specify the "override" keyword to avoid a compiler error.

I'd like to see that understanding confirmed as it was only implied in here:
http://dlang.org/overview.html

For extra safety you have to specify "final" which would be a pain if that's what you want by default, but I'm not so sure it's really necessary if the compiler really does optimize virtual functions away.

BTW, the red code/green code concept sounds like the most promising route towards a generalized solution. I'll try and find the time to watch it as well.

--rt
April 09, 2013
On Tue, 09 Apr 2013 05:09:05 +0200
"Rob T" <alanb@ucora.com> wrote:
> 
> BTW, the red code/green code concept sounds like the most promising route towards a generalized solution. I'll try and find the time to watch it as well.
> 

From what I could tell from a brief glance, it sounded like it's more comparable to @system/@trusted rather than @system/@safe. Still, could be useful though, and then compiler-verified "super-greens" (like @safe) for certain things could potentially be created and tied into it.

April 09, 2013
On 2013-04-09 05:09, Rob T wrote:

> My understanding of this is that while all of your class functions will
> be virtual by default, the compiler will reduce them to non-virtual
> unless you actually override them, and to override by mistake is
> difficult because you have to specify the "override" keyword to avoid a
> compiler error.

Currently DMD does not devirtualize (or what's called) methods.

-- 
/Jacob Carlborg
April 09, 2013
On Tuesday, 9 April 2013 at 03:09:09 UTC, Rob T wrote:
> My understanding of this is that while all of your class functions will be virtual by default, the compiler will reduce them to non-virtual unless you actually override them, and to override by mistake is difficult because you have to specify the "override" keyword to avoid a compiler error.
>
> I'd like to see that understanding confirmed as it was only implied in here:
> http://dlang.org/overview.html
>
> For extra safety you have to specify "final" which would be a pain if that's what you want by default, but I'm not so sure it's really necessary if the compiler really does optimize virtual functions away.
>
> BTW, the red code/green code concept sounds like the most promising route towards a generalized solution. I'll try and find the time to watch it as well.
>
> --rt

Slightly other way around. "override" only makes sure that you have something to override. You can omit it and virtual dispatch will still happen with no error. Error happens only when you mark with override method which does not exist in base class / interface.

"virtuality" can be optimized away from final methods and for symbols that don't get exposed for linkage (so that compiler can check all sources and verify that no override happens). It is not done in dmd currently, of course.
April 09, 2013
> You can omit it and virtual dispatch will still happen with no error. Error happens only when you mark with override method which does not exist in base class / interface.
not anymore: CT error when doing so:
Deprecation: overriding base class function without using override
attribute is deprecated

On Tue, Apr 9, 2013 at 1:00 AM, Dicebot <m.strashun@gmail.com> wrote:
> On Tuesday, 9 April 2013 at 03:09:09 UTC, Rob T wrote:
>>
>> My understanding of this is that while all of your class functions will be virtual by default, the compiler will reduce them to non-virtual unless you actually override them, and to override by mistake is difficult because you have to specify the "override" keyword to avoid a compiler error.
>>
>> I'd like to see that understanding confirmed as it was only implied in
>> here:
>> http://dlang.org/overview.html
>>
>> For extra safety you have to specify "final" which would be a pain if that's what you want by default, but I'm not so sure it's really necessary if the compiler really does optimize virtual functions away.
>>
>> BTW, the red code/green code concept sounds like the most promising route towards a generalized solution. I'll try and find the time to watch it as well.
>>
>> --rt
>
>
> Slightly other way around. "override" only makes sure that you have something to override. You can omit it and virtual dispatch will still happen with no error. Error happens only when you mark with override method which does not exist in base class / interface.
>
> "virtuality" can be optimized away from final methods and for symbols that don't get exposed for linkage (so that compiler can check all sources and verify that no override happens). It is not done in dmd currently, of course.
April 09, 2013
On Tuesday, 9 April 2013 at 08:14:43 UTC, Timothee Cour wrote:
> not anymore: CT error when doing so:
> Deprecation: overriding base class function without using override
> attribute is deprecated

yet another breaking change introduced in git master? Works in 2.062 as I have described : http://dpaste.1azy.net/19f18c72
April 09, 2013
>> yet another breaking change introduced in git master? Works in 2.062 as I have described : http://dpaste.1azy.net/19f18c72


'override' needed to override base class AFAIK, not base interface. the code you posted still works as you're using a base interface.

On Tue, Apr 9, 2013 at 1:23 AM, Dicebot <m.strashun@gmail.com> wrote:
> On Tuesday, 9 April 2013 at 08:14:43 UTC, Timothee Cour wrote:
>>
>> not anymore: CT error when doing so:
>> Deprecation: overriding base class function without using override
>> attribute is deprecated
>
>
> yet another breaking change introduced in git master? Works in 2.062 as I have described : http://dpaste.1azy.net/19f18c72
April 09, 2013
Huh, you are true. Why the difference? It is confusing.

April 09, 2013
On 2013-04-09 10:54, Dicebot wrote:
> Huh, you are true. Why the difference? It is confusing.

You're not overriding, you're implementing. If you misspell a method when implementing the interface it will complain anyway since the interface isn't implemented. That's how it always been working.

-- 
/Jacob Carlborg
April 09, 2013
On 9 April 2013 11:32, Nick Sabalausky <SeeWebsiteToContactMe@semitwist.com>wrote:

> On Mon, 8 Apr 2013 17:57:57 +1000
> Manu <turkeyman@gmail.com> wrote:
> >
> > But yes, also as you say, the move towards 'casual' games, where the
> > performance requirements aren't really critical.
> > In 'big games' though, it's still brutally competitive. If you don't
> > raise the technology/performance bar, your competition will.
> >
>
> I can't help wondering how big the "big games" world really is anyway, though. I know there's huge sums of money involved, both cost and revenue, and lots of developers, but...well, let me put it this way:
>
> Maybe I'm just projecting my own tastes into this, or maybe this is just because I don't have sales/profits/etc charts for the last 10-20 years to examine, but lately I'm finding it difficult to believe that "AAA" games aren't becoming (or already) a mere niche, much like high-performance sports cars. (Ie, big money, but small market.)
>
> Part of this is because, as I see it, the "big/AAA games" *as they used to exist* up until around the early 2000's don't seem to be around much anymore. The big business development companies have, for the most part, split their non-sports product lines into two main areas:
>
> 1. Mobile, Casual IP tie-ins, "Free-2-Play", etc.
> 2. Interactive movies.
>

Where is Call of Duty? Grand Thieft Auto? Starcraft? World of Warcraft?
Is Uncharted an interactive movie? What about Tomb Raider?
Mario? Zelda?
Gears of War? Bioshock? They have lots of cinematic presentation, but
clearly complex and involved gameplay.
God of War?


Note that *neither* of those two categories include the sorts of games the
> "big games/AAA  developers" were commonly making from around late-80's to about 2000 or so. Those sorts of games are now almost exclusively the realm of the indie (Although there are still some exceptions, mainly from Japanese developers - which incidentally is why I still respect the Japanese games industry more than their western counterparts.)
>

None of those games I list above are in any way 'indy. That's certainly not
an exhaustive list.
Granted, the last couple (~2ish) years have been suffering, the industry is
sick, and it's also the end of a hardware generation.
New consoles will come soon, the bar will raise, along with a slew of new
titles the major publishers have been holding back, to launch with the new
systems to try and win the early-generation system war.


Now, of those two categories currently made by the big name developers,
> only the second category, "Interactive movies", are actually AAA/big-budget titles.
>
> So my question is, who really plays the current crop of AAA/big-budget titles, and can it really be considered much more than a niche?
>

The volume of games release is decreasing in recent years. This is due to a
lot of factors, and the industry is suffering at the moment.
But that does not suggest people are playing less video games. They're only
playing _less_ video games.
Fewer developers are selling much higher quantities. If your studio is not
in the top tier, it does suck to be you right now...


First off, they cost $60. Plus $100's for hardware (a standard "email
> and MS Word" machine isn't going to cut it). And often either no
> or minimal demos. And it typically takes at least half-an-hour to even
> reach any core gameplay (Yes, I've timed it). So right there it's
> already looking a bit more "muscle car" than "sedan". High
> cost-of-entry.
>

Games console generations have a 5-10 year lifespan, so it's not exactly an
annual investment. And they're cheaper than phones and iPad's amazingly!
Demos are a known problem, that will be addressed by the coming hardware
generation.
I think it's only 'niche' by total volume. The percentage of
'core'/'hardcore' gamers is decreasing, but that's because the overall
sensis is increasing. There are a lot more gamers now. Girls are gamers
now! 51% of the population who were not previously in the statistics...


So is it the "core" gamers buying the modern AAA/big-budget titles?
> Honestly, I'm not seeing it. From what I can tell, these days they're
> mostly switching over to indie games. As for why that's happening, I figure
> "Core" gamers are core gamers *because* they play videogames. Modern
> AAA/big-budget titles, are *not* videogames except in a very loose sense,
> and core gamers *do* frequently take issue with them. Modern
>  AAA/big-budget titles are interactive movies, not videogames, because
> their focus is story, dialog and cinematics, not gameplay. So core gamers
> have been moving *away* from AAA/big-budget titles and towards indie games.
>

Tell me Call of Duty and friends don't sell. They make squillions. There
are less successful titles than in recent years, and that's largely because
the industry is sick, and kinda antiquated...
You may be right, traditionally self-identified *core* gamers are moving
indy, because it's an innovative sector that's offering what they like
about video games. But they've had their place taken by... 'normal people',
you know, the kinds of people that go to the cinema and watch movies.
There's a lot of them, and they still buy lots of games. Core gamers still
buy games too, even if they don't enjoy them as much these days.


So is it the "casual" crowd buying the modern AAA/big-budget titles?
> Definitely not. They're the ones who tend to be intimidated by 3D environments and game controllers and spend their time on Words With Friends, Wii Waggle, PopCap, etc., rarely spend much money on gaming and rarely venture outside iOS, Android and Web.
>

What's your point here?
Yes, it's a MASSIVE emerging market. But since they buy fewer games than an
enthusiast, and they cost 99c, rather than $60, only the 5 biggest titles
in the appstore are wildly successful. It's probably worse than 'big games'
in terms of number of participants that can do well.
There is a lower cost of entry, and since the industry is collapsing, there
are a lot of unemployed/disgruntled developers trying the indy thing out.
This is great mind you! The chronically risk-averse industry has been short
on innovation recently.
The more quality engineers from major studios go the indy direction though,
you can expect the pressure to increase on delivering top-notch
presentation in even 'casual' titles. I think it'll see technological
bar-raising seepage from ex-AAA developers trying to gain a foothold in the
new industry.


I know there is and will always be an audience for the modern
> AAA/big-budget cinematic interactive-movie "games". But I don't see where there's a *large non-niche* audience for them. There's maybe the multiplayer-FPS enthusiasts, but that's a bit of a niche itself. And I don't see a whole lot else. It's the "Italian sports-cars" of videogaming: Just a big-budget niche.
>

Well, a 'niche' that's bigger than the entire film industry is not a niche
that one can ignore.
I don't think the number of big-games players has significantly decreased
though. It might have peaked, I haven't checked numbers like that for a
fair while.
What has happened, is the concept of the 'video games' industry has
dramatically expanded. Basically everyone is a 'gamer' now, and everyone
has some 99c games in their pocket.
It's a whole new industry that is being explored, but since the statistics
are all conflated into 'the video games industry', I can see how you might
see it that way.

The business model is changing shape too, thanks to the indy/casual thing.
$60 is silly (and I'd love it if I could get games for $60 btw, we pay
$90-$120 here. yanks get fucking everything subsidised!), people aren't
happy to spend $60 on entertainment anymore, when something that can
equally entertain them costs 99c.
I reckon AAA will start to sell in installments/episodes, or start
leveraging in-game sales of stuff a lot more to reduce the cost of entry.
But the budgets are so huge that it's slow and very conservative to
experiment with new business models . If someone tries something new and
makes a mistake, their studio will go out of business. It'll be the
mid-tier, the A and B+ games that nail that first.

One thing I've heard reports of, contrary to your assertion that AAA is
losing participants to the more innovative indy area, is 'casual games' are
actually bridging previously non-gamers into big games. People who may have
been intimidated previously are becoming more comfortable with games in
general, and are joining in on the TV screen. Particularly true for new
women gamers who managed to generally avoid it before.
This will have an interesting effect on the format of AAA offerings. You
suggest games are becoming interactive movies... this isn't an accident,
they sell extremely well! And I think this trend will continue as a larger
percentage of the audience are becoming women...
I don't think Call of Duty or Grand Thieft Auto are going anywhere just yet
though.


3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19