New developers, please read this (common mistakes)

A place for people with an interest in developing new shmups.
User avatar
Udderdude
Posts: 6266
Joined: Thu Feb 16, 2006 7:55 am
Location: Canada
Contact:

Re: New developers, please read this (common mistakes)

Post by Udderdude »

Playing a Strategy RPG for score is not entirely out of the question, especially if the game grades your performance for each mission.
User avatar
S20-TBL
Posts: 440
Joined: Mon Jan 18, 2010 6:48 am
Location: Frying over a jungle and saving the nature
Contact:

Re: New developers, please read this (common mistakes)

Post by S20-TBL »

Sumez wrote:Well Crimzon Clover does it right because it doesn't tamper with the actual gameplay of the game.
Neither is it an RPG element per se. All it is, is a set of unlockable extra features that you had to purchase by scoring more points in the main game. A shop with RPG elements would be more like the one in Lords of Thunder, which had direct effects mid-game.

I was approaching the "RPG vs. Arcade" issue in the respective contexts of each genre. Worstplayer's note on RPG/Shmups merely tackles a certain design convention, which only scratches the surface and doesn't deal with the root of the problem. The root of the problem is not bad design choices. The root is that many developers do not know why people play certain kinds of games, including RPGs and shmups. The result is them creating shambling Frankenstein's Monsters. Sometimes it works if the developer knows what he is going for and why. Most other times, it doesn't, especially if he only looks at design conventions. Often the result of such a surface-level approach is a load of tacked on gimmickry. And what is the audience response? They immediately see it as either a poor copycat or something trying too hard to be....well, something, and move on to better pastures.

The thing that really complicates this matter more is that nowadays, a lot of people mistake "RPG" to mean "games with deep storylines and characterization" thanks largely to studios like Square-Enix. Ever play the RPG-shmup "Wings of Genesis" on Kongregate? The intro alone had me shaking my head with the characters having a nice time chatting before entering the dream realm or something. The game didn't last me one level before I went and played something else.

Anyway, I'll stop here. :P Moving forward.
--Papilio v0.9 Beta now on itch.io! (development thread)--
Xyga wrote:Blondest eyelashes ever.
User avatar
Ixranin
Posts: 39
Joined: Mon Nov 16, 2009 8:54 am

Re: New developers, please read this (common mistakes)

Post by Ixranin »

worstplayer wrote:too long boss battles
Think of a boss battle as chorus of a song. It's a climatic moment, but you can't simply loop it over and over or it becomes annoying like the ringtone of that asshat living next to you. When your boss exhausted all of it's attack patterns, it's time to let him die and move on, repeating them over and over is about as interesting as said ringtone. Repeating them over and over is about as interesting as said ringtone. Repeating them over and over is about as interesting as said ringtone. Repeating them over and over is about as interesting as said ringtone. Repeating them over and over is about as interesting as said ringtone.
I'd probably mention something about giving bosses more then 1-2 attack patterns too. It seems to be a recurring theme in many amateur games that bosses never switch things up and just sit there looping the same pattern over and over again, which is part of what causes the "too long boss battle" problem.
User avatar
Sumez
Posts: 8061
Joined: Fri Feb 18, 2011 10:11 am
Location: Denmarku
Contact:

Re: New developers, please read this (common mistakes)

Post by Sumez »

S20-TBL wrote: Neither is it an RPG element per se. All it is, is a set of unlockable extra features that you had to purchase by scoring more points in the main game. A shop with RPG elements would be more like the one in Lords of Thunder, which had direct effects mid-game.
Well people have very different opinions on what makes out "RPG elements".
I mean you're never going to have character progression and indepth conversations in shoot'em ups.

But simply hack'n'slashing your way through a game in order to gain "exp" enough to beat it is enough "RPG elements" for some people, and that's basically what Crimzon Clover allows by awarding successive plays with money to buy enough credits to "beat" the game without having the required skill to 1cc it.


I know it's not exactly the "RPG elements" people would expect, like an ingame store of sorts and ability to level up your craft, but I'd imagine it successfully does the job of enticing people who aren't hardcore "shmup'ers" by giving a sense of constant progression to people of any skill level.

Of course, in the case of Crimzon Clover, there's no chance it'll ever reach the "casual" audience :)
EddyMRA
Posts: 798
Joined: Wed Jan 26, 2005 9:36 am
Location: San Diego, CA, USA

Re: New developers, please read this (common mistakes)

Post by EddyMRA »

mice wrote:Playing a RPG for score? That's just...wrong.
The closest thing to that:

World of Warcraft. Gear score for getting in the heroic dungeons. Also, Rated Battlegrounds and Team Arena ratings. And Blizzard added all that to a game that ORIGINALLY was pure PvE.
The age of Alluro and JudgeSpear is over.
User avatar
TrevHead (TVR)
Posts: 2781
Joined: Sat Jul 11, 2009 11:36 pm
Location: UK (west yorks)

Re: New developers, please read this (common mistakes)

Post by TrevHead (TVR) »

Im a little late to this party due to me not been a dev and only finding out about this thread when Udderdude linked it in other thread.

My too cents to devs is:-
Learn your bullet patterns; just throwing aload of random bullets on screen doesnt make a good shmup, instead play a few Japanese shmups of a similar type to what your making and take note of what kind of bullet patterns the enemy is shooting. Notice that most of the patterns in many shmups are pritty similar but have slight variances that make it intresting for the player. Also unless your in a boss / sub boss fight dont regulary have just one or two baddies shooting bullets try to mix in different enemies with different shot types all shooting at once, but dont go overboard and make it too chaotic. In the end of the day you want to make it intresting enough that the game is fun to play by just dodging bullets on its own with all the scoring and gimmicks removed.

Lifebars; this is often the first thing I think about when I think of euro shmups. Shmups with badly designed difficulty / bullet patterns which are almost impossible to dodge of use the health bar as a lazy way to get past the problem. Since the player is getting hit by so many bullets the game becomes less about dodging bullets and more about just blowing shit it, removing all the depth and the skill that Japanese shmup players love so much. The worst thing about heathbars and euroshmups is that a whole generation of western players have been playing shmups but cant dodge bullets to save their lives which in turn puts them off arcade shooters. If your only reason to add a health bar is for the noobs and not as a puncture repair kit then try to make the health bar very small so that the player can only takes 2-3 hits before losing a life. Look at other shmups and how they've deviated from the 1 hit kill 3 lives per credit norm that arcade shmups have. Eg Blue Wish Resurrection and other x.x games shooters use no heathbar but instead the autobomb where each hit automatically uses an smart bomb if one is in stock. Gradius and Demolition Gunner ISAD with the shield mechanic. Crimson Clover and Touhou just uses the one hit kill system but makes the game easier by rewarding players allot of extra lives (extends) if they score well. Basically all these systems are the same that they allow ppl to make a few mistakes but not enough that they start to play lazy.

Balancing; You've finally written your last line of code and your game has all the elements that you want in it, so its finished right? nope your only half way through as now comes the playtesting and balancing which is just as if not more important then other genres. Unless your some kind of godlike shmup expert and know 100% of whats to know about the genre ( and if you do why are you reading this :P ) then your game is going to be broken in some way. So you need to give it to other players for playtesting, and the players cant all be just casual players the best ppl to have playtest your shmups are the regular shmup fans who will have the skills and the experience to stress test your game to destruction. Ive never made a shmup myself but ild imagine that a novice dev will learn more about making a good shmup through playtesting with the pros and getting good feedback then when he was designing and programming it.

Infact playtesting can be very usefull for making good solid shmups and is a good idea to get outside help from the shmup community when your still in your alpha stage. For example many of best Japanese doujin shmup circles is to release demos at each new comiket with each new demo changing the scoring system slightly and adding new parts. Some of the best shmups can be doing this for years making little tweaks here and there making the end product as well balanced as any commercial made shmup. Also if you really are a noob take a leaf out of Kento Cho / Cactus' book and create an simple freeware shmup thats just playing around with the basic mechaincs
User avatar
ShmupSamurai
Posts: 473
Joined: Fri Jan 15, 2010 2:15 am
Location: Texas

Re: New developers, please read this (common mistakes)

Post by ShmupSamurai »

The segment about the boss patterns made me realize just why bosses in Thunder Force III die so quickly...All of them only seem to have a maxium of 2 to 3 actual attacks; Gargoyle(FireWhip and Spread Fireballs), Twin Vulcan(Bullet Spread), King Fish(Doughnut Lasers and Arrow Shot), G Lobster(Claw Projection, Electro Balls, Aimed Shot), Mobile Fort(Fighter Deploy and Spread Arrow)and ChaOS(Fruitloop Ring and Fast Pulse). :o

If they lived any longer than two minutes, the player would've been bored outta their skull. :P

Case in point- if your boss only has a few attacks, he shouldn't take a hour to kill.

But that's too easy!-

Thunderforce III and its knockoffs get away with this because the bosses' few attack methods are designed to keep players constantly on their toes, and their weakpoints are medium to small-sized, requiring the player to multitask between dodging and lining up with the weakspot which often placed in a tricky location such a radar scope or the groin. Some, like King Fish, also employ the classic 'shutter-eye' stick where the weakpoint is covered by a casing that opens and closes at regular intervals. There's plenty of ways to make a boss fight hard and intense WITHOUT dragging it out for eons, be creative!
:wink:

there ya go, my comment on bosses.
Use Shumpman's advice!

"USE A BOMB!"
User avatar
Sumez
Posts: 8061
Joined: Fri Feb 18, 2011 10:11 am
Location: Denmarku
Contact:

Re: New developers, please read this (common mistakes)

Post by Sumez »

As proved by 30 years of game evolutions, there are many awesome ways to do boss fights, so obviously it's not as simple as "keep the fights short". Of course, a boss fight lasting an entire stage is another classic trick that's always fun for the whole family. But variation is a given.

I like Cave's typical short "core-less" boss fights with a few patterns that increase in rank if they're allowed to complete. But that doesn't mean I don't love the more "strategic" Gradius/Ikaruga bosses, or something entirely different. Just because there are rules about what NOT to do, it doesn't mean you're supposed to do things in just one way - this is one of the points where you are able to make your game stand out and still be awesome.

Just don't ditch the boss fights altogether - everybody LOVES boss fights. :P
User avatar
tiaoferreira
Posts: 252
Joined: Fri Aug 21, 2009 9:29 pm
Contact:

Re: New developers, please read this (common mistakes)

Post by tiaoferreira »

Good games can be made with any tools. The people behind game project are responsible for quality.

ALLURO is an example.
Ex-Cyber
Posts: 1401
Joined: Thu Oct 25, 2007 12:43 am

Re: New developers, please read this (common mistakes)

Post by Ex-Cyber »

tiaoferreira wrote:Good games can be made with any tools. The people behind game project are responsible for quality.
That's true as far as it goes, but realistically part of ensuring quality is choosing tools that fit the needs/goals of the project. Sometimes testing a tool's limits is part of the project's motivation, but that's generally the exception rather than the rule.
User avatar
tiaoferreira
Posts: 252
Joined: Fri Aug 21, 2009 9:29 pm
Contact:

Re: New developers, please read this (common mistakes)

Post by tiaoferreira »

Indeed. But the people behind the project still will have more importance than the tool. RIVER RAID original is better than their new versions in 3D.
User avatar
Dave_K.
Posts: 4567
Joined: Wed Jan 26, 2005 5:43 am
Location: SF Bay Area
Contact:

Re: New developers, please read this (common mistakes)

Post by Dave_K. »

I'll just leave this here, since I noticed a few devs are trying out scanline options...

If your game is a vertical scrolling shooter emulating 3:4 aspect ratio (black bars or fancy artwork along the sides), make sure your emulated scanlines are VERTICAL not horizontal. Unless of course, you plan to offer tate option, then feel free to implement horizontal scanlines.
User avatar
Sumez
Posts: 8061
Joined: Fri Feb 18, 2011 10:11 am
Location: Denmarku
Contact:

Re: New developers, please read this (common mistakes)

Post by Sumez »

Why would anyone make scanlines in a game created for PC use?
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: New developers, please read this (common mistakes)

Post by BPzeBanshee »

Dave_K. wrote:I'll just leave this here, since I noticed a few devs are trying out scanline options...

If your game is a vertical scrolling shooter emulating 3:4 aspect ratio (black bars or fancy artwork along the sides), make sure your emulated scanlines are VERTICAL not horizontal. Unless of course, you plan to offer tate option, then feel free to implement horizontal scanlines.
Some people must think I'm completely retarded or something. :lol:

This is in fact the very first thing I thought of when attempting scanlines in GMOSSE, closely following by implementing scanlines in appropriate proportion to screen resolution (but this I may leave out or have as a separate fullscreen option). Udderdude has recently implemented this in XOP Black.
Sumez wrote:Why would anyone make scanlines in a game created for PC use?
Because they can. ;)

If a game is trying to look like an arcade shmup it should have options to aid in doing just that, scanlines in proper directions to accomodate people physically rotating their screens included.
User avatar
alastair jack
Posts: 115
Joined: Fri Dec 11, 2009 3:32 am
Location: australia
Contact:

Re: New developers, please read this (common mistakes)

Post by alastair jack »

Sumez wrote:Why would anyone make scanlines in a game created for PC use?
Cause upscaled pixelart looks like crap.
User avatar
Sumez
Posts: 8061
Joined: Fri Feb 18, 2011 10:11 am
Location: Denmarku
Contact:

Re: New developers, please read this (common mistakes)

Post by Sumez »

Upscaled pixel art with scanlines is still upscaled pixel art.
User avatar
tiaoferreira
Posts: 252
Joined: Fri Aug 21, 2009 9:29 pm
Contact:

Re: New developers, please read this (common mistakes)

Post by tiaoferreira »

I like pixel art, and scanlines too. If scanlines are needed, use them.
User avatar
ZarroTsu
Posts: 10
Joined: Thu Jul 15, 2010 4:05 am

Re: New developers, please read this (common mistakes)

Post by ZarroTsu »

too easy
It's definitely true you want your shmup to cater to shmupers, but there's also the very real possibility that your game might be the first of the genre that someone had played. One of the real, while entirely selfish and childish reasons for so few shmup players is the lack of a correct introduction to the series, which is often that the first they play is far too hard. (Plausibly because the player is an overzealous person, and immediately selects the hardest difficulty mode to every game they play.)

It depends entirely on your ideal 'market' while making the game. If you're catering to shmupers, you can go all-out should you so choose. If you feel you want your game to be the first in the genre that everyone should play, it would be a valid choice to go for a much easier game. Regardless, it's always an invaluable idea to include multiple difficulty settings structured around your audience decision.

Besides, just because a shmup is easy doesn't mean it can't be fun, or memorable, for everyone.
dead air
I'd personally feel dead air is good in small doses. It shouldn't occur very often, but it can occur after a massive torrent of bullets, to give the player a moment to recuperate from the clusterfuck that just happened. This dead air shouldn't last longer than 10~15 seconds, though.
stupid scoring system
While I've never played for score, there aren't any genuine 'bad' scoring systems that come to mind, save for perhaps popcorn enemies being worth more than larger enemies (which I really REALLY doubt has ever happened).

Scoring systems to try, however, would be rewarding the player specifically by how long they've survived on a single life, rewarding the player with an 'overkill' grind on larger enemies (while not obstructing from killing OTHER enemies), and one I'm not sure has been done before, awarding the player for NOT killing enemies for a large amount of time. (Name me an instance where it's EASIER to not kill a massive number of enemies. I think the risk of pacifism is worth a massive reward, considering the insane difficulty this presents.)

Are there any examples of 'stupid scoring systems' you could present?
too long boss battles
Depending on the number of patterns and/or stage number, it would be a good idea to make earlier bosses killable without having to see the entirety of their tricks. This isn't to say their patterns should be randomized, but rather that it is entirely possible for a newer player to kill the boss before the boss begins their 'last pattern' of the set. Very early bosses should/could also be rendered killable almost instantaneously if the player were to bomb aggressively, or activate 'hyper mode', should the option be present.

On the flip-side, it's a (VERY) good idea to add a timer to the boss as to either have it 'leave', or to kill itself after a set period of time (say after the third pattern loop). If you need a viable excuse for this, assume the boss left to refuel for the former, or that their weapons overheated and exploded for the latter. (Note that the timer doesn't have to be shown, and the option to toggle the showing of this timer could also be present.)
interrupting gameplay
I just thought I'd bring this up: A LOT of kids today do not read any of the stories to any game. PERIOD. While this is understandable, if your story is something of a life-changing philosophical presentation, you miiiiight want to have it so the skipability of the cutscene is reduced slightly for the first (but only the first) play through. Yes, this makes me sound like a douchebag, but it has a double-positive: Hurried, while still intrigued players won't accidentally skip the first dialog box of each cutscene, while more rushed, don't-give-a-crap-how-much-time-and-effort-you-put-into-this-masterpiece players will be given an actual, WELL REQUIRED breather.

I mean it's not like those latter people ever play the same game twice if there isn't a multiplayer mode attached. :|
non-standard control scheme
AND FOR THE LOVE OF GOD, DO NOT USE CTRL, ALT, OR SHIFT. THANK YOU.
RPG elements
Technically the act of leveling up your ship's weapon, even if the only level system presented, is an 'RPG Element'. But what do I know.
User avatar
Sumez
Posts: 8061
Joined: Fri Feb 18, 2011 10:11 am
Location: Denmarku
Contact:

Re: New developers, please read this (common mistakes)

Post by Sumez »

ZarroTsu wrote: I'd personally feel dead air is good in small doses. It shouldn't occur very often, but it can occur after a massive torrent of bullets, to give the player a moment to recuperate from the clusterfuck that just happened. This dead air shouldn't last longer than 10~15 seconds, though.
I don't mind dead air either, but for a more hectic gameplay style, it can be a real mood killer, so I understand some people here dislike it.
10 seconds is WAY too long though. Try creating that yourself and you will see how much 10 seconds is in a shmup.
While I've never played for score, there aren't any genuine 'bad' scoring systems that come to mind, save for perhaps popcorn enemies being worth more than larger enemies (which I really REALLY doubt has ever happened).

Scoring systems to try, however, would be rewarding the player specifically by how long they've survived on a single life, rewarding the player with an 'overkill' grind on larger enemies (while not obstructing from killing OTHER enemies), and one I'm not sure has been done before, awarding the player for NOT killing enemies for a large amount of time. (Name me an instance where it's EASIER to not kill a massive number of enemies. I think the risk of pacifism is worth a massive reward, considering the insane difficulty this presents.)

Are there any examples of 'stupid scoring systems' you could present?
I think it's obvious you haven't played a game for score, as your examples are based on typical "survival" games.
Giving more points for popcorn enemies than big enemies wouldn't really be a bad thing, IMO, but sort of weird yeah.
Try playing a Cave game like Futari on Maniac and read about the scoring system. It's pretty ingenious, fun to play and adds both risk-vs-reward as well as a depth that allows a much greater difference between the scores of expert players compared to beginners.

Now, the thing is, many new developers could be trying the same thing without realising how difficult it actually is to balance a scoring system like this, and end up with a broken system that will either make the game annoying to play or very exploitable for pointless scores.

And while I can't think of any (shmup) game that directly awards you for keeping enemies alive, a lot of systems do involve this on a smaller basis - chaining systems like Guwange or Dodonpachi require it in order to avoid short segments of dead air that kill your combo, while games like ProGear and EspGaluda (especially 2) want you to keep the enemies alive until they fill the screen with bullets for you to cancel.
User avatar
null1024
Posts: 3810
Joined: Sat Dec 15, 2007 8:52 pm
Location: ʍoquıɐɹ ǝɥʇ ɹǝʌo 'ǝɹǝɥʍǝɯos
Contact:

Re: New developers, please read this (common mistakes)

Post by null1024 »

Can I mention making the player move sqrt(2)*shipspeed on diagonals?

If your input routine just sets your x and y-deltas to the ship's speed constant when you press the keys, doing diagonals will make the ship go slightly faster than it should [eg, the sqrt(2)*shipspeed I mentioned]. Instead, check for diagonals and set the delta values to shipspeed/sqrt(2).

I am extremely guilty of this myself [see: every shmup I've ever made, although in at least one, it was a conscious design decision after I found this out].


Also, lifebars are an extremely bad idea. Most with a lifebar involve patterns painting the screen with random bullets/making the player sustain aimed machinegun fire/some other undodgeable mess [also, full-ship sized hitbox/larger than ship hitbox sometimes]. The lifebar was invariably placed there to cover up the terrible design choices the developer made. There's exceptions [Forgotten Worlds!], but those are far and few between.
Hell, in one of my earliest shmups back when I just started using Game Maker [GM5.0 had just come out and was featured on TechTV, that should give some perspective on how long ago this was], I made a shmup that did just that -- lifebar and all of those messy terrible things listed. Thank God I didn't release it... :Y

Also, shop systems can be done well [see Forgotten Worlds again], but are also usually pretty crap.
Come check out my website, I guess. Random stuff I've worked on over the last two decades.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: New developers, please read this (common mistakes)

Post by BPzeBanshee »

I don't think the diagonal speeds are all that important frankly. They are an option in GMOSSE but only because Nimitz implemented them when he implemented joystick support via a rewrite of the keypress functions, and when I realised that he was taking away the existing speeds by 1 I set it to its own diagonal speed variable and in turn making that the same speed as the existing speed variables.

I did that because the difference was not only noticable but annoying. In games like Xeno Fighters I've never noticed any difference even though that has weird factors like vertical speed being separate from horizontal speed (manipulation of y as opposed to x). Bottom line here: if you're going to do it, do it right, and make it so the player doesn't feel restricted by it.
Sumez wrote:
ZarroTsu wrote: I'd personally feel dead air is good in small doses. It shouldn't occur very often, but it can occur after a massive torrent of bullets, to give the player a moment to recuperate from the clusterfuck that just happened. This dead air shouldn't last longer than 10~15 seconds, though.
I don't mind dead air either, but for a more hectic gameplay style, it can be a real mood killer, so I understand some people here dislike it.
10 seconds is WAY too long though. Try creating that yourself and you will see how much 10 seconds is in a shmup.
10 seconds of doing absolutely nothing at all on the screen including background effects is too long. Having said that I wouldn't exactly be putting in enemies that require significant focus while such stuff is happening either. If memory serves ESPGaluda 2's first boss has a dead air moment from the powerup ship to the point of you being able to deal damage to it of about 6 seconds tops, and it doesn't have you there sitting and being bored either.
One solution to this can be to have small controlled moments of "dead air" ie to fill that charge meter up or spawn a powerup and bomb restock ship. Or even a warning sequence.
null1024 wrote:Also, shop systems can be done well [see Forgotten Worlds again], but are also usually pretty crap.
Tyrian's shop system works just fine but is considered broken along with most of the game due to the balancing of the weapons. Deathsmiles for iPhone has a working shop system for its Arrange Mode but milking the customer for real cash via the shop isn't going to get you anywhere either.

As for healthbars, 1943 has that. And it works. What people need to realise is that the healthbars themselves aren't bad if done correctly (see Guwange) but get a lot of bad rap solely because developers use it to cover up various other mistakes of their own doing. You'd think the ignorant Cave fanboys wouldn't whinge about healthbars since Guwange and Deathsmiles do it properly.
User avatar
Udderdude
Posts: 6266
Joined: Thu Feb 16, 2006 7:55 am
Location: Canada
Contact:

Re: New developers, please read this (common mistakes)

Post by Udderdude »

The only good "Dead air" is a short break right after you've defeated a boss/midboss. Anywhere else it's just bad.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: New developers, please read this (common mistakes)

Post by BPzeBanshee »

Udderdude wrote:The only good "Dead air" is a short break right after you've defeated a boss/midboss. Anywhere else it's just bad.
lol xop sux cause it got dead air b4 boss there4 "it's just bad" :roll:

Whatever it is, it's only "bad" because the developer fucked up when he/she implemented them. You don't see people bitching about Cave games when they have dead air.
User avatar
Udderdude
Posts: 6266
Joined: Thu Feb 16, 2006 7:55 am
Location: Canada
Contact:

Re: New developers, please read this (common mistakes)

Post by Udderdude »

BPzeBanshee wrote:You don't see people bitching about Cave games when they have dead air.
You can't bitch about something that doesn't exist.
Pulsewidth
Posts: 83
Joined: Fri Apr 03, 2009 4:14 pm
Location: UK

Re: New developers, please read this (common mistakes)

Post by Pulsewidth »

Ex-Cyber wrote:]I don't see what's particularly wrong with any of:

Java/LWJGL

C/OpenGL

Python/PyGame
All good shmups run at a fixed frame rate synchronized to vertical retrace. There is no other way to get good feeling controls. Garbage collected languages are unsuitable, because garbage collection adds unpredictable delays which can cause dropped frames.
Ex-Cyber
Posts: 1401
Joined: Thu Oct 25, 2007 12:43 am

Re: New developers, please read this (common mistakes)

Post by Ex-Cyber »

Pulsewidth wrote:Garbage collected languages are unsuitable, because garbage collection adds unpredictable delays which can cause dropped frames.
Garbage collectors don't necessarily run at arbitrary times or for arbitrary lengths of time. Some can be explicitly disabled/enabled or told to perform a collection at a specific time (with Java you can only "suggest" that a collection be performed, but the actual behavior may be guaranteed by a particular JVM/configuration). I've been told that even ones that can theoretically run at any time and stop the world indefinitely can often be tamed in practice (by e.g. being careful about your references and not creating new objects when you don't want the GC to run).
User avatar
Udderdude
Posts: 6266
Joined: Thu Feb 16, 2006 7:55 am
Location: Canada
Contact:

Re: New developers, please read this (common mistakes)

Post by Udderdude »

Ex-Cyber wrote:
Pulsewidth wrote:Garbage collected languages are unsuitable, because garbage collection adds unpredictable delays which can cause dropped frames.
Garbage collectors don't necessarily run at arbitrary times or for arbitrary lengths of time. Some can be explicitly disabled/enabled or told to perform a collection at a specific time (with Java you can only "suggest" that a collection be performed, but the actual behavior may be guaranteed by a particular JVM/configuration). I've been told that even ones that can theoretically run at any time and stop the world indefinitely can often be tamed in practice (by e.g. being careful about your references and not creating new objects when you don't want the GC to run).
Having to do all that dancing around the GC is a huge pain in the ass and nobody should have to deal with it.

Chances are most devs won't even bother and will just ignore the GC issues.
Ex-Cyber
Posts: 1401
Joined: Thu Oct 25, 2007 12:43 am

Re: New developers, please read this (common mistakes)

Post by Ex-Cyber »

Udderdude wrote:Having to do all that dancing around the GC is a huge pain in the ass and nobody should have to deal with it.
Memory management in general is a huge pain in the ass and nobody should have to deal with it. I'm not saying you should be happy about dancing around the GC, just that it's a bit shortsighted to think that malloc()/free() is going to actually abuse you less in the long run, given similarly complex uses.
User avatar
retlaf
Posts: 31
Joined: Mon Jun 13, 2011 5:33 pm
Location: Canada
Contact:

Re: New developers, please read this (common mistakes)

Post by retlaf »

Udderdude wrote:Chances are most devs won't even bother and will just ignore the GC issues.
If they want their game to run at a stable frame rate, they definitely won't ignore them. Garbage management actually is predictable and once you understand it, not very complex to deal with: you really just have to allocate all your memory on game initialization, as opposed to unmanaged code where you have to free the memory you allocate at runtime.
Pulsewidth
Posts: 83
Joined: Fri Apr 03, 2009 4:14 pm
Location: UK

Re: New developers, please read this (common mistakes)

Post by Pulsewidth »

retlaf wrote: If they want their game to run at a stable frame rate, they definitely won't ignore them. Garbage management actually is predictable and once you understand it, not very complex to deal with: you really just have to allocate all your memory on game initialization, as opposed to unmanaged code where you have to free the memory you allocate at runtime.
And then you might as well not be using GC at all.
Post Reply