Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 13 Jun 2001
Online Last Active Today, 04:34 PM

#5168486 Concern on "paying to enter" a project

Posted by Madhed on 22 July 2014 - 04:22 PM

Maybe he just wants to bum off a free game from you? dry.png

#5167174 Trying to reduce the massive amount of variables in my struct

Posted by Madhed on 16 July 2014 - 10:20 AM

Have you thought about using unions, possibly anonymous unions?

Depends on which compiler you are using but I could imagine something like this:

typedef struct ModuleEffect {
    ModuleChannelEffect primaryEffect;
    ModuleChannelEffectSpecifier primaryEffectSpecifier;
    union {
        uint16_t note;
        uint16_t speed;
        uint16_t depth;
        uint16_t something_else;
        uint16_t and_another;
    // ...
} ModuleEffect;

Also I don't think the original format with parameter1, 2, 3 is too bad. After all that's how the file format is laid out. How many hours are you going to spend editing these in code.

#5166765 UI "Draggable Components" question

Posted by Madhed on 14 July 2014 - 12:03 PM

Usually the mousemove event handler is attached to the body or document for dragging. That way it doesn't matter in which order the elements are as the event always bubbles up the DOM tree.

#5166320 (Super) Smart Pointer

Posted by Madhed on 11 July 2014 - 05:32 PM

Okay, I see where you are coming from.


Pointers are so pervasive in C/C++ that one often doesn't realize that there are better ways to refer to entities.


Refering to units by memory address is very low level and implies that they are not relocated between calls, or deleted.

So something like a uid handle might be better. This would also make it possible to serialize the state of the unit, for network replication for example.


The handle itself could be an intelligent type that keeps an "automatically" updated pointer to the unit as an implementation detail.

#5166286 (Super) Smart Pointer

Posted by Madhed on 11 July 2014 - 02:15 PM



You mean the target-pointer shouldn't persist between frames, but the unit should decide every frame which one is the current target?

#5166031 optymizations by self modifying code

Posted by Madhed on 10 July 2014 - 09:21 AM

Abrash. Kool (at least the one who is not sharing antioptimizatio0n propaganda)) Didnt know he was doing that, Indeed there is detailed interesting description - I readed only half of it by now, but will try to absorb all and can back to comment this a bit


And yet in the article he writes about assuming nothing and that his first instinct to optimize the inner loop with assembly didn't improve the performance nearly as much as simply rewriting a function that was implemented naively. Oh the irony...

#5163813 How do multyple people write code for one project?

Posted by Madhed on 30 June 2014 - 06:25 AM

If you have a small team, I recommend using assembla.org.

It has a good set of tools, and for free, it can help you acquire a svn repo, ticket system, etc for a project and a team of (I think) up to 10 people.


assembla.com should that be interesting for you.


+1 for Assembla. I have used it in the past for a small private project.

#5163721 sse-alignment troubles

Posted by Madhed on 29 June 2014 - 05:09 PM




#5162321 -march=pentium3 -mtune=generic -mfpmath=both ?

Posted by Madhed on 23 June 2014 - 07:51 AM

inline void TransformPointByModelMatrix(float* px, float* py, float* pz)


Um... you supply the vector as three separate pointers?

Something is telling me that this has to be extremely slow.


try changing the signature to

void TransformPointByModelMatrix(float* p)

and use the array element operator [] to access the separate elements and see if it makes any difference.

#5161675 threading the scanline rasterizer

Posted by Madhed on 20 June 2014 - 04:55 AM

You could use a tiled renderer. Like the PowerVR series of GPUs.



#5161360 Explosive tangent impulses causes extreme rotation

Posted by Madhed on 18 June 2014 - 01:23 PM

The circle-circle friction seems to be inverted. In the first video you can see, when the circle that gets pushed up falls onto the fast spinning circle, it starts to turn in the wrong direction,

#5160909 float or double depth buffer?

Posted by Madhed on 16 June 2014 - 01:33 PM

try both, then make an informed decision

#5159603 Refactoring if-conditions for player turn code

Posted by Madhed on 10 June 2014 - 03:10 PM

I want to add something to my last post.


If you have a function that returns 4 distinct values but there are some code paths that return the same value this is a very good indicator that the function can be refactored into a simpler solution.


When doing calculations in vector space I'd always recommended to scribble up a diagram except for the simplest of cases.

#5159598 theoretical of practical safety of binary (www) plugins ?

Posted by Madhed on 10 June 2014 - 02:55 PM

Microsoft did it with ActiveX, which was... bad, very bad.

Not only is it a huge security risk but on top of that you'd have to provide different executables, at least for x86 and ARM

#5159591 Refactoring if-conditions for player turn code

Posted by Madhed on 10 June 2014 - 02:13 PM

Yep, this does indeed work, thanks a lot, thats a whole lot easier. Except that I somehow got up and down mixed up, at least its easier to fix in your version So the general advice for such monstrous if-statements would be "look for an easier algorithmn", or is there some recommandation in case there is no easier algorithmn scheme?


I started by drawing a crude diagram and looking for a mathematical solution. Sometimes it's easier to visualize that way.