959 reputation
35
bio website nerdswithguitars.ca
location Toronto
age 31
visits member for 2 years, 11 months
seen Nov 4 at 4:40

Dec
13
awarded  Yearling
Mar
20
comment What effect does the amount of 0 in a stat have.
Actually, I'd make the argument that most early design considerations regarding RPG numbers were ported straight from D&D, Rifts, GURPS, et cetera. Early jRPGs and early cRPGs would cling very tightly to the stat-levels and the engine concepts from the pen and paper equivalents, and instead diverge in the aspect of gameplay, rather than the underlying engines. That doesn't make his question any more easy to answer, but I think the initial problem was dealing with numbers which could be interpreted by a human, on the fly, rather than a 16-bit register.
Feb
20
comment How does QCSAA actually work in nVidia GPUs?
Depressingly, these implementations have changed multiple times, through the years (even multiple times a year, at some points). There has never been a guarantee that the algorithms for any AA style (much like non-standard texture compression, etc) would remain static, and these algorithms were very, very frequently changed in the early days, in order to improve performance, while fudging image-quality/precision, in competition with ATi. These days, that's mattered much less. That said, the current state of the algorithm is wholly unknown to me.
Feb
18
comment EXTREMELY Confused Over “Constant Game Speed Maximum FPS” Game Loop
@tsujp for a game to run at 60fps, its update + draw cycles MUST run at a combined total of ~16ms. So if your update cycle is taking ~6ms and each iteration through the while loop is adding 40ms to the next_tick... The max_skip is there in the case where something HAS farted and the timing is way behind. See my response for more.
Feb
18
answered EXTREMELY Confused Over “Constant Game Speed Maximum FPS” Game Loop
Feb
12
comment Sound activated particlesystem
BPM of a song is entirely different than generating particles based on velocity/amplitude of any one sample. You've got two options: the first is to just generate a particle any time there is a significant sound (whatever that means to your art-direction/song), or pre-read the track and generate a beat-matching algorithm (how long is the song, how many "significant" beats are there, how easy is it to quantize into groups 3/4/6/8/12/16 evenly-spaced beats, filling in gaps where needed ie: beats-per-measure), then find your BPM. Now you have a rate to fire particles, to modify based on samples.
Feb
5
answered How can I make sprites like diablo's for my soon-to-be isometric rpg? Like in all directions
Feb
1
revised Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
added 254 characters in body
Feb
1
comment Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
@Kylotan I extended my answer to more-aptly cover the content of the edited OP, rather than just the content of the original original, including comparison to the concept of the Game class (with a .load and .init or whatever they may be called). Hope that makes things a little more practical in terms of where this technique might see high-level use.
Feb
1
revised Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
added 3531 characters in body
Jan
31
comment Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
So is this a "every component/entity/class/etc in every system in every engine you ever build must have an explicit .init()"? Not remotely. It's: "Here's a situation where you might consider using one". Quickest example of when that might be: you've created Soldier soldier = new Soldier(); because you know you need him, but you need the server's permission to add him -- the server is expected to respond with coordinates for the new enemy, because you're doing networking using the right paradigms. When the future coordinates are given, the soldier has them added, is initialized and added.
Jan
31
comment Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
...or management of construction of these objects might not always be in your control, or might otherwise go against the intent/design of the system.
Jan
31
comment Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
@Kylotan, in these situations, having a monolithic .init method might be plausible, if your object MUST already be instantiated for some predetermined reason, but at least part of its setup (which would have been covered in the monolithic constructor in a 100% procedural environment), needs to be deferred until the loading of a resource, or until an instruction from a socket, or data is retrieved from somewhere remote, has to happen. The alternative would be to break the object into two pieces, do the sync stuff in one, and the async in the other, but private state...
Jan
31
comment Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
@Kylotan, I agree. The reason the answer is worded in such a way is simply because it's based on the assumption you're already doing it that way, but have no idea why... Such was sort of the nature of the OP ("I read these articles that said I should, but didn't tell me anything else"). So these are potential blanks filled in, from that standpoint. Other real-world cases? As a JavaScript dev in my other life, async is certainly a time where if you're waiting on promises/futures, you want to hold off on running your large .init. In the game world, this might be async I/O or loading.
Jan
31
comment Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
Yes, it could be accomplished with constructors and destructors. He asked for use-cases of a technique and why and how, rather than how they work or why they do. Having a component-based system where you have setter/binding methods, versus constructor-passed parameters for DI really all comes down to how you want to build your interface. But if your object requires 20 IOC components, do you want to put ALL of them into your constructor? Can you? Of course you can. Should you? Maybe, maybe not. If you choose not to, then do you need a .init, maybe not, but likely. Ergo, valid case.
Jan
31
answered Why should I use separate initialization and clean up methods instead of putting logic in the constructor and destructor for engine components?
Jan
11
comment Most efficient method to render 1,000s of unique space scenes?
@Rob PixelShaders are instructions for your videocard, to edit an image, based on some instruction (like inverting colours, removing the red channel, desaturating, or much more complex). They're responsible for the majority of the special effects of modern games. Level-creation is a funny beast. Levels are frequently just sets of coordinates with lists of images at that point. And yes, .png is a good way to think of them. So now you're lining up the .pngs and drawing them back to front (if you're laying them directly over top of one another). Colour masks are usually pixel shaders, these days.
Jan
11
comment Most efficient method to render 1,000s of unique space scenes?
That's all wholly up to your developer. The answer to all of the above is yes, based on how comfortable your programmer is. In regard to giving your images a transparent background, you COULD just give them all black backgrounds in space. The reason for NOT doing so would be to have the option of stacking layers on top of one another. Imagine that you have one far-off nebula picture that you reuse. Now, for one area, you want that nebula to have closer stars partially-blocking the view of that nebula. You could either make that by hand as a separate image, or just stack them layered, in-game.
Jan
11
comment Most efficient method to render 1,000s of unique space scenes?
Think of it like layers in Photoshop, I suppose. If you've got a 500x500 image, you can take 20 or 30 50x50 images and position them around the canvas, overlapping and the like. Now, all of a sudden, you've got different views of the universe, depending on how you've overlapped the layers, and instead of 1000 500x500 hand-drawn paintings, you've done 100 50x50 pieces to layer around. Less storage, you can randomize positions of things to auto-generate new views of the far-distant universe, or you can save "maps" which just specify which pieces where, for consistent recreation of a view.
Jan
11
comment Most efficient method to render 1,000s of unique space scenes?
@Rob there are definitely issues with that. Which is exactly why I suggested making lots of smaller groups of those things (with transparent backgrounds), and then randomizing their positions. If your developer is great with math, you might even be able to auto-generate some, and save them out (to prevent drawing them). But if you saved 100 of those far-background images (just small individual hand-painted sections of the whole), and mixed and matched, like a collage, it might be easier. Foreground, do whatever you know looks good and fits the game (2D/3D).