Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Member Since 13 Jun 2001
Offline Last Active Today, 10:47 AM

#5180136 Code organization without the limitations of files

Posted by Madhed on 13 September 2014 - 06:06 PM

I think this is one of those cases where an implementation detail forces you to use a tool in a specific way. ie. code stored in a hierarchical filesystem forces you to structure your program in such way.

The problem with hierarchies is that they are strict and rigid and force you to put your code in a dichotomy that is very ill suited for a multi dimensional problem like computer programs.


What you want is to abstract away the file system from the programmer and treat it as an optimization problem for the IDE to feed into the compiler.

Ultimately the source code would be stored in database that is closely modeled after the language specification, as a normalized, canonical representation of the program.


All the features that you wrote about would then be views on top of that database. That way you can choose a representation that fits the task you are currently trying to solve.


Big problem I see with this, like others have said, is the tight coupling to the IDE.


But it could be interesting nevertheless, I actually thought about this exact thing before.

#5178669 How difficult(or not) do you find these C++ tests?

Posted by Madhed on 07 September 2014 - 06:26 AM

I really don't like these kind of tests. Yes, they are called "c++ tests", but what is really tested here is specialized knowledge of a few very specific langauge concepts probably containing more than one gotcha. Almost like a trick question, and I don't like trick questions.


What I'd be more interested in a candidate is quickly grasping large-scale code structure, ability to visualize class dependencies, debugging, refactoring, all in all skills that are not bound to a specific language.

#5176088 Moving from dinput to RAW input (mouse)

Posted by Madhed on 25 August 2014 - 04:30 PM

Handling windows messages is not that hard though. And you are guaranteed to not miss anything.

#5176082 Moving from dinput to RAW input (mouse)

Posted by Madhed on 25 August 2014 - 04:03 PM

I personally never bother with Windows messages and use the API functions directly. Look up GetCursorPos() for mouse movement and GetAsyncKeyState() for keypresses. These will give you immediate values which you can process at your own will.


GetAsyncKeyState() can miss key presses when the framerate is low or the key was pressed very quickly.

#5176076 Moving from dinput to RAW input (mouse)

Posted by Madhed on 25 August 2014 - 03:54 PM

Can someone explain what exactly happens there and what the cons are of doing it with a while loop?
(will this cause delay when there are no messages, since if waits?)


No cons really. That's the way it's supposed to be handled:

You should process all pending messages before you run the game logic. Otherwise you will see the lagging that you described because the message queue will fill up with stale input data.

#5174571 How do you make these "long" web sites?

Posted by Madhed on 18 August 2014 - 04:41 PM

The things that seem to be "en vogue" right now(?) are Parallax backgrounds and responsive design. ie. One layout that adapts to every possible screen width in a more or less nice way.

#5171601 First project (pong) code review

Posted by Madhed on 05 August 2014 - 05:06 AM

I noticed one thing while looking through your header files:


There are no includes and/or forward declarations in there. Apparently they work only because you include all needed stuff in the main.cpp before including your own header files.


While this works now, you will have to do the same if you want to use them in another project. IMO these headers should be self contained and not rely on the structure of the source file in which they are included.

#5171458 Game coming out that is similar to mine: How to deal?

Posted by Madhed on 04 August 2014 - 12:45 PM

Lie down.

Try not to cry.

Cry a lot.

#5171175 Dune II Track Cover

Posted by Madhed on 02 August 2014 - 03:03 PM

The individual elements of the song sond good. But you need to work on the overall composition.

The beat is dragging along all over the place (slowing down/speeding up again).


Do you record the beat with an actual drum kit? If automatic quantization doesn't help here you will have to get your hands dirty and fix the timing problems manually.

Also I feel that the guitar is a bit out of tune.


If you fix these issues this could sound pretty cool. I especially liked the electronic sounds at around 0:50.

It felt like they would lead into a more straight forward pounding industrial beat, but didn't...

#5170980 Isn't "delete" so pesky to type? Wish there was a better way?

Posted by Madhed on 01 August 2014 - 04:02 PM

Don't spread your propaganda.


The reason why it's faster is because the delete is optymized into a sse vector operation like Servant explained.

#5170957 Isn't "delete" so pesky to type? Wish there was a better way?

Posted by Madhed on 01 August 2014 - 02:57 PM

Memory leaks are a big problem with manual memory management.


So I propose this new syntax.

delete *;

BAM! No more worrying about leaks. 


Anyone know how I can get in contact with the c++ standards committee?

#5170291 Stuck in a rut, need some advice!

Posted by Madhed on 30 July 2014 - 05:51 AM

On the subject of portfolios, is it a bad idea to include projects from game jams such as ludum dare?


What? These would be perfect. blink.png  Of course, given they have a certain minimum amount of quality.


Also, and I know this is a hard decision, have you thought about moving? You write that there are very little job opportunities where you live.

I don't know your family situation but maybe it would be worthwhile to apply for jobs elsewhere and consider relocation.


Maybe you don't even have to move very far away.

#5170279 Stuck in a rut, need some advice!

Posted by Madhed on 30 July 2014 - 05:26 AM

Just my opinion:




Arguably useless. You already have a masters in software engineering. Which is worth a lot.




Very important. If you want to put games on your portfolio, focus on small games that you can do alone or with a small team.

You could tackle different technologies with every project. So for example, use NodeJS for a server based project. That way you will not only show that you have the dedication to finish a project but also widen your horizon as far as programming languages are concerned.




See #2. Learning by doing is IMO the best way to do this.




As for the "meeting all required criteria" thing. From my experience employers will not immediately reject you if you can show that you are eager and quick to learn.

If I was an employer, the fact that you have a masters degree and some personal projects to show, would get you at least a consideration and invitation for an interview.

If you are not applying for a senior position you will probably be given a supervisor who will guide you while you are learning to be productive in the company.

#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.