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.


Pink Horror

Member Since 02 Jul 2013
Offline Last Active Today, 12:20 PM

#5186111 Your thoughts on me hiring a game developer/studio

Posted by Pink Horror on 09 October 2014 - 09:52 PM


I believe I'm creative enough to come up with ideas that are an improvement to the games out there in terms of how the game is played and balancing and all that. I've played many games and I just tell myself, "man only if they made the rules this way or that way, then it would be a hit," so I think I have a lot to offer as an "ideas" guy only.

 

In my experience, almost everyone who thinks this way, but cannot do anything with art or code, is practically useless, overvalues his own ideas, and devalues other people's effort. For example, you're bad-mouthing the effort put in by engineers hired for previous projects you've worked on, when you admit you're not capable of even comprehending whatever they did. So, chances are whatever artists or engineers you hire would be better at designing a game themselves, and they will likely have to design many of the details themselves, because your ideas will be incomplete and ill-conceived. But who knows, maybe you're the exception, and you are that one-in-a-million ideas-only guy who actually has good, original ideas.

 

There are probably quite a few not-horrible or maybe even decent developers out there willing to a take a pay check to make whatever you want, and there might even be some OK engineers out there with such low self esteem that they will require barely any compensation or creative input. In the end, it's not motivating to work for an "ideas-only" guy.

 

However, if you truly cannot even understand programming, you cannot create a good game design. There is no way to design a game without being able to put something logical into words. That's pretty much the core of programming. If you do not get the idea, you cannot understand how game systems work, you cannot plan because you will not understand the scope of any problem, you cannot communicate with engineers, you will be unhelpful at filtering or documenting how to reproduce bugs, and you will be very unreliable at evaluating the talent of anyone in a technical role. Engineers will not respect you, because you do not respect them enough to try to understand their work. You will likely favor the engineers selling you snake oil and hold grudges against the ones trying to get you to take your medicine.

 

The good news is, you sound like you'd be perfect as a producer at a major game studio.




#5185761 porting procedural c++ to oo syntax

Posted by Pink Horror on 08 October 2014 - 09:38 AM


but then i have a list of object pointers... not an array of structs...

 

I don't understand. What does this have to do with making your code more object-oriented?

 

I would do it piece by piece. For example, change CMrec to use the class keyword, but start out with everything public. Then maybe make clear_CM_cache call a clear() method on each element in CM instead of calling clear_CM for each index. As you move code into CMrec, you won't need every member to be public, so you can start making things private. Eventually, you'll have the syntax you want.




#5184998 C# trouble obtaining a decimal value.

Posted by Pink Horror on 04 October 2014 - 01:12 PM

C# has a type named decimal that's meant for currency.

 

http://msdn.microsoft.com/en-us/library/364x0z75%28VS.80%29.aspx




#5181413 comdat folding

Posted by Pink Horror on 18 September 2014 - 07:03 PM


and the two structs are not identical....   most strange.
 
"Indeed, most curious", as Spock would say...

 

They both have D3DXMATRIX, which is not a POD type because it has a constructor. Its constructor doesn't actually happen to do anything, though. So, your two classes are not technically POD types either, and they get default compiled constructors.

 

I took a stab at building a project on debug, with comdat folding, with this set of structs (the names lie, none of them are close to "Big"):

 

struct BigTestStruct1
{
    BigTestStruct1();
 
    int a, b, c, d, e;
};
struct BigTestStruct2
{
    BigTestStruct2();
 
    int a, b, c, d, e, f, g;
};
struct BigTestStruct3
{
    int a, b, c, d, e;
};
struct BigTestStruct4
{
    int a, b, c, d, e, f, g;
};

 

I put the constructors in their own .cpp files. Anyway, I got this output:

 

1>      Selected symbol:
1>          "public: __thiscall std::allocator<char>::allocator<char>(void)" (??0?$allocator@D@std@@QAE@XZ) from ConsoleRandomTest.obj
1>      Replaced symbol(s):
1>          "public: __thiscall std::allocator<struct std::_Container_proxy>::allocator<struct std::_Container_proxy>(void)" (??0?$allocator@U_Container_proxy@std@@@std@@QAE@XZ) from ConsoleRandomTest.obj
1>          "public: __thiscall BigTestStruct1::BigTestStruct1(void)" (??0BigTestStruct1@@QAE@XZ) from BTS1.obj
1>          "public: __thiscall BigTestStruct2::BigTestStruct2(void)" (??0BigTestStruct2@@QAE@XZ) from BTS2.obj

 

3 and 4 weren't in the comdat folding log or the map file.




#5179233 std::unique_ptr issues

Posted by Pink Horror on 09 September 2014 - 10:19 PM


Yeah, I get that, but on the same time it appears inconsistent that having a reference or unique_ptr as member will implicitely disallow copying without any warning/errors (unless you try to copy, duh) but having it in a container will generate compile errors, even if I never try to compile the class. I also kind of disliked it because at first I thought using unique_ptr would remove a lot of unnecessary code... which it does in the cpp-files with all the deletes gone, and now that I know the cause for the undefined-type-warning I can get rid of all the empty dtors, but still I have to bloat the interface a little with all the default/delete-methods. But I quess you could argue that it was a fault for me not doing this before anyways, since being able to copy a class with dynamic memory with default copy-ctor sucks by itself.

 

The default methods are also a problem.

 

Any code that constructs a unique_ptr<T> has to also construct the default deleter of T, which has that static_assert with the sizeof(T), which means it needs the complete type of T. Putting a default constructor in your container class causes the problem just as much as the default destructor. Your constructor, destructor, and really anything else that requires any detail of the class T should go into the .cpp file that implements your container. By putting the constructor and destructor into the .cpp file, you should be able to save compile time (they'll only be compiled in one place) and solve this problem. 

 

This compiles (if you don't call the code, it doesn't need to exist):

class Member;
struct Test
{
    //Test();
    //~Test();
    std::unique_ptr<Member> mPtr;
};
int main()
{
    //Test t;
    return 0;
}

This is just a linker error (you can fix the problem with another .cpp file):

class Member;
struct Test
{
    Test();
    ~Test();
    std::unique_ptr<Member> mPtr;
};
int main()
{
    Test t;
    return 0;
}

And this is a compile error (compiling the default constructor needs to actually try to implement parts of the unique_ptr with an incomplete type, which opens a whole can of worms):

class Member;
struct Test
{
    //Test();
    ~Test();
    std::unique_ptr<Member> mPtr;
};
int main()
{
    Test t;
    return 0;
}



#5171295 potatoe

Posted by Pink Horror on 03 August 2014 - 01:49 PM


Actually, in Lua all numbers are FP32. And it's a pain in the ass, because all of a sudden you loose the ability to store a 32-bit hash or a 32-bit Unicode codepoint as a regular number. Indices for an array can not only be negative, but can also be fractions or NANs.

 

I don't know the history or what version of Lua you're talking about, but in the version of Lua that I downloaded source for around a year ago, the base lua_Number is a double, and it is configurable.




#5167289 Vertex shader value is not interpolated in pixel shader

Posted by Pink Horror on 16 July 2014 - 08:19 PM

How do you compute your tangents? My guess is that your triangles all have unique vertices, even when they are adjacent, and the flat shading is an accurate reflection of the situation. I would dump the buffers out to a file and inspect manually.


#5166898 Storing position of member variable

Posted by Pink Horror on 14 July 2014 - 09:22 PM

const ComponentDeclaration::AttributeVector vAttributes =
{
{ AttributeType::FLOAT, "x" },
{ AttributeType::FLOAT, "y" },
{ AttributeType::FLOAT, "z" },
}


I came on here to mention offsetof, though I see that you've found that. Instead of trying to get fancier, I would start out by implementing your original idea. Maybe it'll be a little annoying to type class names over and over, but it'll get something working that you can refactor:

const ComponentDeclaration::AttributeVector vAttributes =
{
{ AttributeType::FLOAT, "x", offsetof(Component, vPosition) + offsetof(Vector2f, x) },
{ AttributeType::FLOAT, "y", offsetof(Component, vPosition) + offsetof(Vector2f, y) },
{ AttributeType::FLOAT, "z", offsetof(Component, vPosition) + offsetof(Vector2f, z) },
}



#5164828 I've got problems with interviews

Posted by Pink Horror on 04 July 2014 - 07:33 PM

In my opinion core algorithm development on computer (not on paper) should be the best way to test the competence and intelligence of a developer


I have to be brutally honest here: I know a few people who think they are great programmers and scoff at basic interview-style questions and knowing the definitions of things, and who cannot code on paper. The code they produce at their computers is all average or worse. I can understand there might be exceptions, but I haven't met any yet. I can also understand how an interviewer would be skeptical about whether you're an exception.

This doesn't just sound like you don't know specific things like the linked list loop problem. It sounds like you don't place much value in understanding more than whatever it takes to get your code to run. That doesn't make you a person who I would want to work with.


#5164824 So... I'm a Molecular Biologist....

Posted by Pink Horror on 04 July 2014 - 07:11 PM

I figure I would try to get the game coded in C++ and for mobile devices, but I want it to be as cross platform compatible as possible and the code to be as open source as possible. I'm not sure what my options are in that regard.


Why is it "C++ and mobile devices"? Does that mean you do not expect the mobile devices to use C++? Why do you care if the game is in C++, if you're not programming it?

What do you think it means to be "as open source as possible"? Do you mean you want to make your source code public? Do you want to let volunteers contribute to your source code?

Honestly, as a programmer, one thing that somewhat bothers me is when someone who does not know what he or she is doing with software still wants to make all the high level technical decisions, and then force the actual programmers doing the work to use the programming languages, libraries and tools of their choice, based on some light Internet research, instead of letting the people who may have actually written games in several different languages and environments decide which ones to use. But that's just me.


#5161988 DirectX

Posted by Pink Horror on 21 June 2014 - 06:30 PM

My question is, in which particular version of visual studio did the work? I am reading Frank D. Luna's book about directx programming and in the book they are using the xnamath library which I can't do in microsoft visual studio 2013/2012. I tried to install VS2010 but it is not compatible with windows 8.
 
It is a pain in the as* that microsoft keeps removing/add stuff and changing old things so they don't work anymore, which makes the learning proccess much harder than it should be.
 
 
What should I do now? Any suggestions?


I wouldn't go back to Visual Studio 2010 just because of this problem. I would use directxmath instead of xnamath. Here's a guide I found by searching for "directxmath vs xnamath":

http://msdn.microsoft.com/en-us/library/windows/desktop/ee418730(v=vs.85).aspx

Ok, the learning process isn't easy, but this is the learning process you need: I'll assume that in your year of learning C++, you actually learned something about how to write some code. Someday you have to learn how to solve problems with compilers, build configurations, breaking changes in APIs, and finding information for yourself. You don't simply lack DirectX experience.

You clearly lack experience doing all of these non-coding tasks. It probably wouldn't have mattered which API you picked first. It's ok - you're just getting started. But you have to make a decision: do you want to be the kind of person who switches tools every time you run into a problem and/or complains about the tools you have, or do you want to be someone who can adapt to whatever circumstance you face? I've been unfortunate enough to work for the first type of engineers a couple of times - teams that have jumped between server platforms and databases and operating systems when they have run into problems, quitting instead of figuring out what happened.

All of the information for what you want to do is available to you is out on the web, just like the information you've found about html and programming languages. It's probably also available to install to your computer, from wherever you got Visual Studio 2013. It might be over your head, but that doesn't mean that it doesn't exist.


#5161191 A Dream at Work! Starting up a Studio.

Posted by Pink Horror on 17 June 2014 - 07:03 PM

-I am aware that the cost can go up to 10’s of millions, so I risk in being candid that my projected proposal is between 3 to 5 million US dollars.  Have you heard of Studios that have done so with such a limited budget?


Wow. I wish I knew someone who was willing to hand three to five million dollars to somebody who needs to go online to forums to ask what the budget should be for a "AAA Open World" game.

I'm sure this is one of those things where if you gave us the information we really need to find a comparable game to determine the budget, you'd be giving away your big idea, but your big idea is probably all you have. It's probably something like, GTA, but with X!, or in Y! Of course the latest sequels to GTA, Assassin's Creed, The Elder Scrolls, Infamous - those are all games that have all the tools and engines and assets from the previous iterations, but I doubt they could pull off what you're asking to do with the budget you have.

Maybe my definition is not the consensus, but to me "AAA" is not a quality measure. It means, to me, a game that actually has a huge budget, so in a way I'd consider your proposal impossible on a technicality. Also, IMO, a "AAA Open World" game is the sort of game that has tons of little side quests and mini-games to round out the experience, the kinds of things that can be easily farmed out to many separate teams and studios, but with only one small studio, and considering the hit-and-miss quality of that sort of thing, it doesn't make much sense to me to even try to make a game like that on a smaller budget.

Of course, I'm not going to deny that it's possible to do what you want. However, for some new studio to come out and do what Ubisoft or Rockstar does, only much more efficiently, I cannot imagine how that would happen unless the company was founded not by someone with an idea for a game, but someone with an actual conceptual process for how to make that type of game faster and cheaper than the competition. If your only idea for how to do that is to license an existing game engine, the best you can expect to do is what other game studios have managed to do, on average, with the same budget and engine. If you have a better idea than that, well... I really, really doubt you'd have to ask any questions.


#5160674 Why does this code snippet not work when i take it out of function scope

Posted by Pink Horror on 15 June 2014 - 12:31 PM

1. If you need an array of a small number of chars, I would default to putting them on the stack, i.e. "unsigned char buf[4]", instead of using new. Your sizeof would work if you did that.

2. If you want to test your function's ability to pack and unpack an int into a char array, you might want to choose an int that actually takes more than one byte to store.


#5160176 Checking if a bit is set in a byte

Posted by Pink Horror on 12 June 2014 - 06:09 PM

The whole BIT enum idea is practically pointless once you get binary literals:


You're still going to want to give them names, right? I don't want to have put in a comment explaining what bit "0b001000" is when I could have used something with a name instead. And writing "0b001000" doesn't look any better than writing (1 << 3) to me.


#5158805 Access violating reading 0x00000C44?

Posted by Pink Horror on 06 June 2014 - 04:53 PM

Nothing is ever solved by just adding an output to the log.


I once worked on a bug that came down to denormalized floating-point values getting zeroed out when they were loaded into vector registers, while keeping the original values when used as bytes or loading into normal registers. Adding some sort of side-effect, such as a log, in one particular constructor or assignment operator we had (I cannot remember which) was preventing the compiler from using the vector load and stopping the bug.

I learned this when I thought I had fixed the bug when I made two changes at the same time: one to try to prevent some other behavior which I thought was the cause, and one to log out when the copied values didn't match the originals, so I could verify the fix. When I was ready to submit my code and removed the log, I decided to test one last time, and the problem came back.




PARTNERS