Advertisement Jump to content
Sign in to follow this  

Unity Forum FAQ [Under Construction]

This topic is 4909 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

[ This thread is under construction. You're welcome to poke around, but it's not finished yet. Check back later! ] Revision 1.0.0022 (last updated Friday 12/16/2005 @ 14:15 EST) target completion date: one of these days, I swear!
The goal of the General Programming Forum is to serve as a nexus for asking and answering questions related to programming. Because the subject matter of "programming" is overwhelmingly broad, I've tried to classify the common questions into four categories: Best Practices: Questions of this sort categorize the best or most commonly accepted way to do something. This can range from simple stylistic suggestions (whether to use spaces or tabs in indenting) to the proper way to serialize an object graph. In general, questions whose answers require the straightforward application of generally accepted wisdom or experience, rather than any particular technical considerations, belong in this category. Questions related to general performance or optimization also probably belong in this category.
What's the best way to do Q? Is R a good idea? Is S the generally accepted strategy for T? Which language is most suited for doing W?
Constructs and Concepts: This category describes questions which ask about language features or programmatic concepts in general, though the concepts themselves might not be specific to any given language (e.g. inheritance, pointers, continuations). Questions in this category might also ask about how to translate between constructs across language barriers or to emulate a language feature that doesn't exist elsewhere. "Concepts" also includes things that might not necessarily be used exclusively in programming, such as the binary number system.
What does Q do or mean? What's an R? How do I translate the concept of an S into a T?
Patterns and Structures: This category deals with the layout and storage of information, and the hierarchical structure of programs in general. Design patterns, data structures, collections, and related questions all form the crux of this category.
If I need properties Q and R and performance S, what data structure should I use? How do I use design pattern T?
Metacreation: This class of questions deals with writing and understanding programs that deal with programs -- lexers, parsers, compilers, linkers, operating systems, and so on. Questions about IDEs, debugging, build configurations, linking libraries, and the like all belong here.
How do I write my own Q to do parse R, and what do I need to know? What does compiler switch S do? Why won't code T compile when I switch to release mode?

Best Practices + Start to Finish Q.) I'm overwhelmed about X, I don't understand how do to X, or I'm not sure that my understanding of X is correct (where X is a General Programming-related topic), but I don't want to ask a question in the forum just yet. I need a starting point. Where do I look? This topic enumerates a collection of good places to look. Q.) I want to make something cool but I don't have a lot of time to devote to it. How do I do it? Q.) I had big goals, but reality is getting in the way. How do I decide how to prioritize and finish on time? A.) Figuring out what to keep and what to scrap in your original designs is key if you want to stay on target. See here for some good advice and here for the comments. Q.) Programming isn't easy, but a lot of smart people that came before me have already figured out how to do the hard stuff. Do I need to learn how to do these things myself to be an effective programmer, or can I still be good without knowing how to do everything? A.) A tricky question. Certainly, you should understand the basics of how data structures work and their associated internals, but is this absolutely necessary? No. In fact, almost every correctly designed object-oriented class is supposed to function in such a way that you should know nothing about its inner workings. Personally, I'm of the opinion that more knowledge and understanding never hurt anybody. Ultimately, the key to being a good programmer isn't how much you know; it's how creative and effective you are at applying solutions. See this thread for a more in-depth discussion. Q.) My program's getting bigger and more detailed each day. How do I manage this added complexity without spending a lot of time worrying about it? A.) The overriding principle should be to aim for modularity, which is an advantage in most modern languages. See here for a step-by-step breakdown of how to accomplish this in a C++ project, although the concepts themselves apply to almost any language. + Classes and Structs Q.) Should I use getX() and setX() methods for my class fields? A.) It depends, but the answer tends to be no. Ask yourself why you're doing it in the first place; if you merely have pass-through to the private fields, you should consider using a struct instead of simply adding an extra layer of indirection via method calls. See this thread and here. On the other hand, a trivial pass-through will be optimized out by modern compilers anyway, so it may actually make no difference in terms of performance. + General-Purpose Optimization Q.) (C++) Which is faster: switch or if? A.) It depends on the vagaries of your particular compiler. The difference is probably negligible anyway, and if your cases are substantially similar, you might want to a more code-reusable approach. See this thread for a more in-depth discussion. Constructs and Concepts Patterns and Structures Metacreation + Debuggers and Debugging Q.) I've tried the basic strategies, but I'm having trouble finding a starting point for debugging an anomalous failure or fault in my application. Where do I begin? A.) You're probably going to want to learn the ins and outs of debugging with an external tool. This post is an excellent jumping-off point for getting your feet wet in a Windows environment. + Operating Systems Q.) How do I get started writing my own operating system? A.) At a fundamental level, an operating system controls the interactions between hardware while providing an environment and framework for application-level software to run. If that sounds like a tall order, that's because it is. A fully-featured operating system comprises a very powerful and highly complex piece of software. Even the most trivial operating systems are not trivial pieces of software. To get a feel for what a basic operating system looks like, take a look at NACHOS (Not Another Completely Heuristic Operating System), which is generally used in operating systems classes. Once you feel comfortable with the terminology, you might take a look at a start-to-finish bottom-up guide to writing a moderately functional OS, like the one located here. This thread and these (1, 2, 3) posts should provide a good starting point. + Visual Studio Q.) I want to use Microsoft's free Visual Studio Express Editions to make Win32 projects, but these options are disabled in the Express Edition. How do I fix this? A.) Pretty easily. You can either follow the directions here, or check out this thread to use CpMan's .NET 2.0 application that enables the options for you.
unlinked resource files/threads: [Edited by - kSquared on December 16, 2005 1:16:43 PM]

Share this post

Link to post
Share on other sites

This topic is 4909 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

This topic is now closed to further replies.
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!