Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!

Josh Petrie

Member Since 11 Jun 2003
Offline Last Active Today, 01:56 AM

#5244092 Is using a GUID (Globally Unique Identifier), a good idea for storing rpg ite...

Posted by Josh Petrie on Yesterday, 09:11 PM

It might be overkill; if each item really needs to be distinct (because it can be individually modified in some fashion, for example), than a GUID is a simple way to do it. It takes up more space -- almost certainly more than you'll need -- but it does have the nice property of being locally-generatable, without requiring any sort of authoritative source for IDs that other, smaller ID forms may require if they need to be unique.


However if items are not distinct -- if you can't modify them, so that once instance of the Shovel of Demonslaying + 2 is always exactly the same as another, then you don't need a GUID. You only need to store the item template that this particular item is derived from. Seven instances of the Shovel are just seven handles referring to the one Shovel template in memory elsewhere.

#5244004 Is it considered unprofessional for a game designer to be a fanboy?

Posted by Josh Petrie on Yesterday, 10:11 AM

It's somewhat inappropriate to negatively "rant" publicly if you are also identifying yourself publicly as a professional in the industry. This is especially true of games or products that your own could be seen as in competition with. Well-reasoned arguments and discussion are fine, and the occasional burst of frustration on Twitter when some bug renders your game un-completable are probably forgivable, but frequently descending into histrionics and bad-mouthing is likely to be viewed unfavorably.



If you're ranting in the sense of "overjoyed adoration of same particular game," then maybe some people will raise a few eyebrows at your fervor but otherwise it shouldn't be an issue.

#5243854 Making games as a portfolio to join the industry

Posted by Josh Petrie on 31 July 2015 - 12:07 PM

Jack-of-all-trades is not a job title (at least, not an entry-level one). This is not to say that having a broad range of skills outside one particular discipline is bad (it's good), but you still are going to need to decide which actual career path to focus on. From what you've described of your current career, "programmer" is probably the option you want.

#5243809 Making games as a portfolio to join the industry

Posted by Josh Petrie on 31 July 2015 - 09:13 AM

Moving to the Breaking In forum.

#5243272 Defining a struct in a header so that I can use my varaible anywhere

Posted by Josh Petrie on 28 July 2015 - 04:22 PM

Note that inline initialization of myMemberVariable requires C++11 or better. That is, if you don't have C++11 support for some reason, do this instead:

struct MyStruct
  int myMemberVariable;

#5243183 DigiPen: The Game School I Went To

Posted by Josh Petrie on 28 July 2015 - 09:26 AM

Why would you say so many fail to graduate, aside from getting job offers early?



When I was there, a large portion of the kids who didn't make it to year two simply had no idea what they were getting in to. They loved to play games and figured that meant they'd love to (and be good at) making them; they were basically extremely unqualified.

#5243182 What skills is more important for a Junior programmer to master

Posted by Josh Petrie on 28 July 2015 - 09:24 AM

Good programmers tend to have both breadth and depth: they tend to know a lot of things on a basic-to-intermediate level and at the same time know quite a lot about a few more-specific things.


How "about to get your first job" are you, exactly? You're not likely to do something in the next two weeks, for example, that really demonstrates either of those. 


You also shouldn't be learning things with the idea of simply learning them to "do well" on an interview. Learn what you want to learn; if Unity interests you more than Unreal, focus on that. If you don't like FPS games, don't spend a whole lot of time and energy making them. You tend to do better at, and internalize more of, the things you are interested in.

#5242275 Build 3D objects in-game?

Posted by Josh Petrie on 23 July 2015 - 04:22 PM

What have you tried?



Can you perform the first thing shown in that video, looking at a spot and dynamically spawning some object where you're looking with a keypress? If not, consider focusing only on that problem first.

#5242272 Build 3D objects in-game?

Posted by Josh Petrie on 23 July 2015 - 03:55 PM

There's a couple concepts at work, most of which are independent and not all of which have one name.


The overall idea is called "placing objects at runtime." The concept of having objects aligned to nearby objects by default when placing them is called "snapping" or "automatic alignment" or some variation thereof. The technique for determining where in the 3D world the 2D cursor or focal point is looking at is called "picking."


Implementing these algorithms is a broad topic; there's no one way to do so. It largely depends on the information and tools you have available in the codebase or engine you're using, and the shape of your data.

#5242104 My First Game Project

Posted by Josh Petrie on 22 July 2015 - 10:24 PM

That does not make willful copyright violation acceptable.


The laws governing the protection of intellectual property exist, in part, to protect the rights of the creators of that property. They are very important to game developers, and brazenly disregarding them as you're doing is extremely insulting to many developers whose livelihood is buoyed up by the protections you're spurning.


I don't expect you will find significant help here if you're going to disrespect the community that much.

#5242052 Is Extra Credits reliable to learn Game Design?

Posted by Josh Petrie on 22 July 2015 - 05:12 PM

But they talk stuff like Witcher 3 being the best detective game ever made. How is that even logical to think? 



It's not. It's call an opinion. Nobody has, as yet, proposed a standard for determining the quality of a game in an objective fashion that has been independently peer-reviewed and accepted by the industry, and as such any claims that anything is the "best X" are going to be subjective


Also from what I've heard, most of the research and information that they get are false




And I've heard jellybeans grow on trees. What "research and information" are you talking about and what is the basis for declaring that it is "false?" 


It sounds like you're just here to stir up an argument, thus far, and that's not okay.

#5242007 Custom environment macro

Posted by Josh Petrie on 22 July 2015 - 02:16 PM

...but I can't figure out how to define KHATBOX in such a way that it's not going to go along with the project.



You want to /DKHATBOX only if you're building it, and not have that set anywhere in the project options?
To do so you can use the little-known CL environment variables. Set (however you prefer) the _CL_ environment variable to /DKHATBOX, for example, and it will be appended to the cl.exe arguments for every file compiled.
As these are environment variables, be sure to set them in the appropriate context for your use (that is, don't just set them in a cmd.exe window if you want them to persist beyond that window and processes launched from that window, et cetera).

#5241964 How much of my game should be written in a scripting language?

Posted by Josh Petrie on 22 July 2015 - 11:25 AM

After exposing the API it runs all instances of init.lua in all "Content Packs" (each pack is it's own mod, and the "Base" pack is all vanilla scripts). init.lua is only run once, and is basically for setting up all objects for the start. Next all instances of draw.lua and update.lua are run, where draw.lua is run every game loop, but update.lua only happens every x number of milliseconds (every 20ms for example).



The thing that strikes me the as most-concerning here is that the engine "runs all instances of init.lua," and similarly all instances of "draw.lua" and so on. What determines the ordering here? Ordering is important to consider in this kind of scenario. Have you ever tried to run a lot of mods in Skyrim or some other Bethesda RPG? The ordering of mods is important because they can independent set up or stomp on certain core features and thus break eachother if not done in the proper order. The biggest weakness of your system as proposed is the need for this ordering, and the fact that you don't (seem) to have a mechanism to control it.


The next-most-concerning aspect of your system is that you don't describe the method by which data is transferred or access between the init.lua scripts and the corresponding draw and update Lua scripts. It would be interesting to know how you plan to expose that as it might suggest other issues in your system.


Beyond that, it's an approach that seems reasonable and common. Performance may or may not be an issue depending on the specific implementation decisions you make, but that's what profiling and refactoring are for; I wouldn't worry overmuch about it until you've got a working prototype that you can take some actual benchmarks on.

#5241944 Computer science degree

Posted by Josh Petrie on 22 July 2015 - 09:29 AM

Sorry, I was not very clear, I am not asking if it is possible to get a CEO or executive job right after college graduation, but if it would be possible for a computer science graduate to build his way up until that position (entering in an entry level job and build his way up until CEO, executive positions or even a CIO position)


In theory, yes, but the closer you get to that point the less and less it matters that you had a CS degree when you started.

#5241616 Know almost nothing about Game Development; Here to learn

Posted by Josh Petrie on 20 July 2015 - 04:34 PM

The latter is definitely better. The former option -- getting training as a screenwriter is fine, but the idea that you'll find work and build experience by helping out on other's projects by doing screenwriting? That's going to be a long, hard road with very little payoff. There's not a lot of market for that kind of work, even if you'd be doing it for free.


Ultimately, if you want to be the "head of the project guy," you need to have been able to successfully build projects on your own, somehow. This gives respectability more than anything else; nobody is going to want to work on the projects you're heading up if you cannot present any evidence that you're more than an "idea guy" who thinks he can sit back on his golden throne while his minions toil away building his imagined opus of a game. Even if you've got a ton of money to entice these people, competent developers will be savvy enough to avoid you and your pipe dream projects, unless you're dumb enough to pay them lots of money up-front without strings attached.