Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 26 Feb 2007
Online Last Active Today, 02:11 AM

#5184832 anyone have experience of selling Android game?

Posted by Ravyne on 03 October 2014 - 02:53 PM

Basically all of the open mobile platforms are economies with a very long tail -- In other words, a relative handful of the most popular apps make "real money" and revenues fall off exponentially from there. Without having actual figures to back it up, my impression based on experiences and studies I've read are that 98% of developers are making "pizza money" at best -- $100 US a month, or less. There are millions of developers and millions of apps -- hundreds or thousands of new apps each day.


Even good, high-quality games fail to find a market every day in these economies, for whatever reason. They maybe lack marketting, or launch against other software that grabbed all the mindshare the morning they launched. Less scrupulous publishers hire shadowy firms to inflate their initial download numbers so that they can raise into the public's conciousness, in hopes of cracking the top-10 list where the real money is.



All that is not to say that success is impossible, but it certainly is improbable. There are still success stories, but the biggest among them tend to be games that have 'gone viral' like flappy birds -- the polish and appeal of such games play a part in starting the viral reaction, but its not really something you can design to influence. Flappy Birds could have ended up making no money at all, had the winds simply been blowing a different direction that day. Frankly, I would *plan* on not making any money to start, and take your first games as a learning experience. You might get lucky, but more likely you'll establish a small but growing fanbase who will have an increasingly large back-catalog of your games to buy and recommend to their friends. Over time this can grow into a sustainable business, but under almost no circumstances today are sustainable businesses springing forth from a single game launch.


Also, a 'box price' (where you buy the game up-front for a set price) is a complete non-starter on mobile in general and on android specifically. The ease with which (cracked) games can be side-loaded on android means there's a vibrant android warez community who simply never pay for the software they use, and even among the more honest android users, the ecosystem provides 10s or hundreds of free alternatives in nearly any category, no matter how niche. Instant, meaningful success on these platforms has almost nothing to do with the quality of your product -- although a quality product is a minimum barrier to entry -- and everything to do with factors you can't control, like getting some good organic publicity or serendipitously stumbling onto a top-10 list on the back of viral forces.


The easiest way (most easily grafted into any kind of game with minimum effort) is to build your game to support adds and have it be completely free, then, as an in-app-purchase, offer an item that disables adds and sell it for $1. Crackers will even remove the adds, probably, but usually people will just take the official free version with adds rather than risk whatever other malware a cracked copy might contain. So, you'll get a trickle of revenue from anyone who plays your game, and you'll have the opportunity to make sales to those who like your game enough to want to skip the interruptions. Another idea is to simply give away the first few levels or hours of content entirely free with no adds, and then sell the remaining content via in-app purchases -- that's essentially how iD software established their business back in the day with Wolfenstien3D and Doom using the then-common shareware business model; of course, the shareware markets of the day were much less crowded, your only competition were the other floppy-disks sharing the wall at your local radio shack or mom-and-pop computer store.

#5184447 Can I design & develop a game with a sub $500k budget?

Posted by Ravyne on 01 October 2014 - 06:30 PM

The first question is where and how you plan to get your $500k budget, and the first-first question (because really you should have an idea before spending $500k) is how do you plan to make it back, and then some?



A seasoned programmer probably expects in the neighborhood of $100k/year salary, give or take $20k, with benefits like healthcare and 401k on top of that. plus there's equipment and facilities if you plan to work in a central location. All told, $150k/year for a developer is about right at the lower end. You can probably pick up a reasonably bright recent graduate or someone with maybe one game under their belt for maybe $70k-$75k salary, so call it $100k all-told. That's half your budget.


For another $200k, or perhaps a bit more, you can probably find 1 seasoned artist a promising artist who's recent grads or wanting to break into the industry, and a level designer. That's 90% of your budget, at least.


Whatever's left can probably buy you a decent soundtrack, foley, voice-recording, and a reasonable level of production on those, if you don't need a ton of individual pieces. That's all of your budget.


That doesn't include a marketing budget, or any budget for project management, game design, or marketing, or any pay for yourself whatever role you intend to play. It bought you about a year's worth of burn time to get your project done, or at least to a stage where you can seek additional funding.


That's just one example configuration that I think would be reasonable.


I don't think the coding would be that much work, especially if you used an engine like Unity. You could probably get by with just one programmer if they are seasoned and well-rounded. They might cost a more per head, but less than a senior programmer + one that's more-junior. It might free up enough for another level designer, a project manager, or some marketing.



But at any rate, it sounds vaguely like you're lining up several carts in front of one very and increasingly anxious horse. If you're seriously considering financing this somehow, you should really develop the design more fully, do some market analysis, project sales, and build out a prototype on a much smaller budget.


Of course, all of that is the route of throwing money at it to make it happen. If you can succeed at selling your vision, this kind of project is not beyond accomplishing with a few years time from some dedicated hobbyists. Easier said than done, of course, but possible.

#5178368 Programing language for 3D games

Posted by Ravyne on 05 September 2014 - 12:32 PM

I really wish we would stop using this description, as it is not actually correct.
C++ is flexibly and low level.  


I agree entirely with the thrust of your post -- in particular that we do newcomers a disservice by giving them the impression that C++ is simply the logical choice while white-washing its difficulties and learning curve.


But--and perhaps you and I are playing semantics between 'powerful' and 'flexible'--I think its apt to describe C++ as being powerful -- almost uniquely powerful. Really, the only languages that can compete in that arena are C++ and its kin C, D, or Rust, but the first of those three offers less in the way of abstraction and library-building, and the latter two, both of which I find imminently interesting, are effectively babes-in-arms -- too new, still evolving. Practically speaking, this makes C++ uniquely powerful (and also uniquely tempting, and uniquely dangerous); as a single language it can touch hardware on the very lowest levels and also build fantastic, high-level, generic libraries.


Of course, the trouble is that many people read about the potential benefits of C++, and its widespread use in the games industry, and parrot the story to newbies to the point where its become something of a cargo-cult: Everyone *knows* that C++ gives you the best performance, but rather few know how to get it, and fewer still know how to get it without creating a horrible mess for themselves. Worse, some in this cult continue to spread active misinformation to newer generations -- giving them the impression that coding 'to the metal' is what makes C++ performant without a care for who the audience is. For an experienced programmer, "the metal" is a sort of dangerous place where she knows she can go to find performance, but which she knows well enough not to stick around more than she has to; to the inexperienced programmer, he's told "the metal" is a magical playground where sun-ripened performance grows on every tree, bush, and park bench -- he looks forward to going there, and no good sense of when he should leave. That's the myth the cult sells.


I love C++, but I'm cautious of its mythology and I try not to pass it down to new generations without qualifying it. There usually are far better uses of your time -- indeed, better optimizations that can be understood from a higher level -- than simply worshiping at the alter of "the metal".

#5178165 wanna publish a game, but keep my privacy intact

Posted by Ravyne on 04 September 2014 - 03:56 PM

It somewhat depends on a question of how you want to fund yourself -- successful crowd-funding campaigns pretty much always have a personal component. They're selling the notion that you're not just buying a product, or even funding its development, but that you're funding these *people* to live their dream of developing a product that you'll enjoy. In that sense, the crowd-funding world is a much more personal economy, where the stock and trade is just as much about personalities and reputations as it is great ideas and unrepresented products.


To have a completed product that you can just sort of throw out there to sell, its possible, but hard to be successful. The harsh realities are that no product succeeds on its merits alone -- not products from a lone indie developer, not products from Sony or Microsoft. You need presence (aka Marketing), the big guys can simply buy that, but you probably can't. So most indie devs who get press trade in their story as a kind of currency -- I give you good press, you give me a good story to tell in return. Otherwise, the indie gaming press get's bombarded with largely-anonymous review requests for games in every shade of quality all the time.


My honest advice is that if you're committed to making this game, it would be a crying shame for it to fail not on its own lack of merit, but for your own desire to hide from the limelight. It might be very astute of you to think or to know that you don't want any part of that for yourself, if so, that's a very good thing -- but if that is the case, you might want to consider whether your lifestyle preferences and the demands of breaking out are able to co-exist. So, in my mind, you have a few choices -- If you have your mind set on not just doing this thing, but being successful, then you probably have to re-think the level of media attention that you personally are going to embrace; If just the doing is the greater part of success for you, then by all means do and sequester yourself away from the press -- just be content to accept that you may not find financial or critical success, finally, if you cannot do without financial and critical success and you truly cannot tolerate being in the limelight at all, then perhaps you might want to consider occupations and hobbies that better mix with your quiet life.


All of that being said, you may simply be worrying overmuch about how this endeavor could leach over into your private life, or vice versa. Its terribly unlikely that you'll ever be recognized on the street or find fans making pilgrimage to your door. If you find any success at all there will be fans and haters, of course -- welcome to the internet -- and those things can add to or take away from your emotional well-being, but if you can whether the bluster, its unlikely any of those things will ever really intrude into your 'real' life.

#5177755 A Single/Multi-player RPG Made by You

Posted by Ravyne on 02 September 2014 - 05:53 PM

As long as there's mummified zombie bears with shark heads, I'm in.

#5177606 For-loop-insanity

Posted by Ravyne on 02 September 2014 - 01:43 AM

I am curious if there is an elegant way to achieve the same result with a for loop, so that the loop counter would be limited to the scope of the loop.


Elegant, I don't think so. This is the least ugly thing I could come up with.


    for (uint8_t test = 1; test > 0; test++) {
      printf("%i\n", (test - 1));


But please don't try this at home :)


You could also just create a scope around the variable definition and do-while in your example. It would limit the scope 'appropriately', but its ugly, non-idiomatic, and another programmer who comes along might be tempted to delete the extra braces and not think anything of it -- likely that just puts you back in the same potentially-sub-optimal boat as before, but it could break a build or change the behavior of the code if the variable name aliased another.

#5177602 For-loop-insanity

Posted by Ravyne on 02 September 2014 - 12:55 AM

Don't you mean ++j?


Yes, he does :)

#5177601 For-loop-insanity

Posted by Ravyne on 02 September 2014 - 12:52 AM

Classic mistake. There is a generic way to make it work, if you really want to, though:

uint8_t j = 0;

printf("%i\n", j);
while (j++);


To be picky, this works, but it also leaks the loop counter into the surrounding scope (as a "correctness issue"), and might contribute to register pressure for the duration of the scope (as an "optimization issue", though I would hope a modern compiler would do better). If there's a type correctness issue and also a condition at the boundary of that type (</<= ~255 in this case), then its probably best to use the natural word size as the counter variable, and cast to the correct type where needed.

#5177580 For-loop-insanity

Posted by Ravyne on 01 September 2014 - 10:56 PM

Maybe more to the point -- for a local variable, one that will likely be allocated as a register (or on the stack, at worst), you don't really gain anything at all by making 'test' small -- there might be reasons of correctness that are worthwhile, but optimization is basically a non-factor. Maybe if the loop appears in a deeply-recursive function, or on a small, embedded system with 4k of memory or something, but not usually. Just use the natural word-size of the machine, usually plain old 'int'  -- it will be as fast as (faster, more likely) than the smaller value.

#5177577 Making 2D Images

Posted by Ravyne on 01 September 2014 - 10:42 PM

Vector or raster?


Vector images are mathematically-encoded lines laid down as strokes and fills. They can be scaled up or down perfectly, and animations are typically accomplished through a skeletal-style animation system -- Many flash games are examples of this style. Adobe Illustrator, Inkscape, Flash, and AnimeStudio (I believe) are examples of vector art tools.


Raster images are 2D grids of pixels, typical of a bitmap or similar. Sometimes called pixel art or sprites. They can scale well taking into account the size of the source image and the range of sizes it will appear as on-screen, and can be combined with mip-maps for better scaling. Animations are typically accomplished on a frame-by-frame basis. Adobe Photoshop, GIMP, Paint.Net, GraphicsGale, and Cosmigo ProMotion are examples of raster art tools.


Some Raster tools are geared more towards high-resolution, high-color work (Photoshop, GIMP) such as photo editing -- but can also be used to create such images from whole cloth. Others are geared more towards low-resolution, low-color work (Cosmigo ProMotion, GraphicsGale) and often include built-in support for frame-based animations; these are great for the kinds of 2D sprite-based games typified by the SNES, GBA, or 2D arcade games.


I personally really like Cosmigo ProMotion for 2D pixel art in that retro style, which is what I like. I'm not a big fan of 2D vector art, so I've never looked at or considered those tools. 

#5177558 Types of Programming

Posted by Ravyne on 01 September 2014 - 08:05 PM

You're not really talking about programming at this point, but domain-specific knowlege. If programming is carpentry, then being a AI programmer is like being a carpenter who specializes in building stairways, or being a network programmer is like being a carpenter who specializes in installing windows. They're trades based on the same foundations, but with some additional specialized knowledge, tools, and experience.


I would suggest that going into your second year of university might not be the best time for you to choose a life-long specialization; instead, look at it as an opportunity to grow as a *general programmer* through pursuing *specialized problems* that interest you. For now, choose something that interests you to help motivate your studies, rather than trying to set your life's path. Besides, there are very few people of any occupation who make a living strictly from a narrow specialization, especially in technology. You need to be a strong generalist as well as having one or more areas of specialist knowlege and skill level. Don't be afraid to spread yourself out while you're young, it may be the only time in your life that you're free to change your own direction without having to justify your decision to your obligations -- it may not be possible to change course in the future to pursue a life as a game programmer if it means having to leave your well-paid but unfulfilling life in data mining when you have student debt, a mortgage, or a family to support.


If you don't already have a strong feeling that there's one of these that you want to do, don't feel like you have to make a decision now. Try out different things until something draws you in. 

#5176800 Why don't gaming companies release past SDKs publicly?

Posted by Ravyne on 28 August 2014 - 06:57 PM

Servant has it pretty-well covered -- For console development, in the past, the development kit was comprised of both an SDK (software which you run on your workstation, system libraries, etc) and hardware elements -- for example, on the XBox 360 there was a hardware unit that plugged into where HDD would normally sit on a retail console and the purpose of the unit was to emulate the optical disc drive, among other things.


Companies would have to bare the cost of manufacturing and supporting all this hardware long after it made financial sense to do so. Usually, software development for a platform stops ~10 years after its launched, and in the meantime the next-generation platform has already been out for 3-5 years and all major third parties have moved onto that platform -- most customers by that time, too. Releasing development tools free and clear, even unsupported, would be a nice gesture but it still entails some effort on their part -- they would still need to operate and offer their quality assurance and disc-signing services in order for you to create retail discs, they would need to provide developer support for the times you had questions about the hardware or software. Those things cost quite a lot to do, and occupy resources that could be better spent supporting the new platform.


Some of this might change with this generation -- arguably, the fact that you can still publish and sell XBox Live Indie Games on Xbox 360 even though the XNA platform is dead shows this -- but I expect the current generation will be more open soon, and stay that way. I also would expect that a vibrant indie community will outlast the support of major 3rd-party developers in this generation's twighlight years. 

#5176552 Legality question concerning a program and cars

Posted by Ravyne on 27 August 2014 - 06:15 PM

I'm with Tom 100% on this one. A very subtle question that depends on details of what you're doing. One possible outcome would be that you're effectively a journalist, which gives you a certain degree of leeway, but also doesn't protect you from things like libel if a car manufacturer believes you've misrepresented their product. But much depends on what exactly you're doing.

#5176534 Abstract away the API?

Posted by Ravyne on 27 August 2014 - 04:48 PM

Abstraction is a sane approach, but a complicating factor here is that D3D12 is quite a lot different than D3D11 -- More different from D3D11 than OpenGL is, in many ways. The threading stuff and more-manual resource management is very different than previous graphics APIs. In practice, this means it will probably be impractical to unify the two styles under a single low-level or mid-level abstraction, there's just not enough wiggle-room there to hammer out the differences -- I mean, you could almost certainly implement a D3D11-style low-level API in D3D12, but you'd loose many, if not most, of the benefits of D3D12 in doing so.


A better approach would probably be to have a higher-level abstraction that's possibly based on multiple lower-level abstractions itself -- think of one low/mid-level graphics abstraction over D3D10/11/OpenGL, and another low/mid-level abstraction over D3D12/Mantle/Console APIs, and both of those abstracted together under a higher-level rendering API.

#5176533 How does one create flexible pixel art?

Posted by Ravyne on 27 August 2014 - 04:37 PM

With 2D raster art (or 3D voxel art, for that matter) there's very little you can do to stem the sort of combinatorial explosion you're describing. You can reduce the number of base variations by imposing certain standards -- say, "the hands are always placed in this position when the player carries a two-handed weapon, and in this position when the player caries a one-handed weapon." and then you animate the weapons, individually, based on that. 


Another trick you can do is to reduce the number of variants by not encoding final colors into the images directly -- then, you only have to animate the wizards' robe once, and you can color it differently inside a pixel shader, or with palette tricks.


There's no way to avoid the combinatorial nature of the number of assets you have. Its just math. All you can do is A) reduce the number of variables in the equation (fewer axes of customization), and B) reduce the magnitude of those variables (fewer customizations within each axis). The above are two ways of doing that.



3D rendering can help, because you then have 3D objects and animations (eliminating the need for rotation as one of the axes), textures and shaders can be changed independent of geometry, and skeletal animations separate geometry from animation. Still, it has its own set of problems -- for example, if you animate a character for using a sword, but he's holding a long staff instead, the animation might cause the staff to awkwardly impale its holder mid-animation -- in other words, even though you have the benefit of skeletal animation, you still might have to have a set of animations for wielding a sword and a different set for wielding a staff. You still might have to have different animation sets for different characters, depending on how different their body styles are. In general, 3D is less affected by combinatorial explosion, but its not a magic bullet.