Additional Options
  • Sections:





  • Your accented quote and dictionary feed
    Omert?: the much-vaunted Mafia vow of silence. In other words, don't rat on your friends. Transgression is punishable by death.
    The Sopranos: Mobspeak

    Game Development


    Here are some articles regarding Game Development that I want to share. It includes my experiences, discoveries, and strong opinions regarding topics in the Development Process and the Industry in General.

    Instant Game Programming 07/26/2011 23:54

    Right before the end of January 2010, IGDA Manila Chapter, participated in having the first ever Global Game Jam in Manila. It was a success and more details about it can be found here. A few days before that, we’ve been receiving a lot of inquiries from people who aren’t into Games Development yet who wants to join in, but asking how can they prepare themselves in game programming.

    Lucky for them, I’ve started to post a short guide on how to prepare and educate themselves on game programming that focuses on the basic skill sets needed for a very short time-constraint event such as the Gl0bal Game Jam, a 48-hour game-making event!

    I am a re-posting a revised version of that article here. Hopefully this article will orient a programmer at early or beginner levels on how to prepare themselves in game programming without feeling empty-handed and misdirected on what normally is a long journey of learning. Please note that this is not a rule. This is more of an advice or suggestion.

    What Programming Language Do You Know?

    This is not work — this is Game Jam! It’s about the game’s unique design and speed of delivery. So it would be best to use the programming language that is most familiar and comfortable to you. Based on what you know, the following are my suggestions:

    Background: C# / Java / JavaScript / C/C++
    I suggest using Unity Game Engine. This is the most fastest way to prototype a game nowadays. With Unity, you already have an engine and tool set that works without too much hassle of setting up. As a programmer using Unity, you should just concentrate now on making gameplay scripts in C# or Javascript and integrating art assets. The interface and work-flow is almost near to Flash Game Programming. This is very friendly to artists and designers. If you’ve decided to go for this, I suggest to practice on the Lerpz tutorials found on the Unity website. It’s free by the way.

    Background: C# / Java / C/C++
    If you’re into pure C#, and would like to have more programming control over the construction of the game, yet you want to have all the necessary libraries instantly for your programming needs, I suggest that you use Microsoft XNA Framework. Once you have that ready, head over to Riemer’s XNA Tutorials. It’s free.

    Background: C/C++ / Pascal / Hard-headed Old School Guy
    There is still hope for guys like you. And yes, C++ is still the primera lingua of Game Development for tons of reasons. However, we’re on a time-constraint game jam and results are more important than your elitism. If you don’t like the two suggestions above, and like the overall control on your programming, then there’s no doubt about C++. But, I would suggest for you to take a look at SDL, which is low-level but rids of the unnecessary lengthy code for windows management, sounds, images, and time. It’s like a bit of XNA but not entirely like XNA. Also, you might want to integrate existing libraries such as OGRE, Irrlicht, fmod, etc. Since you’re so L337, I assume you already know how to proceed.

    You know what, I suggest you go for learning C# for just a half a day using this free online C# book and use Unity or XNA!

    What Else Should I Know?

    If I were a student programmer with no prior knowledge in game programming and with a global game jam time-constraint, it’s good enough if you can visualize and program the game at your will and how you perceive it was programmed. You can neglect the idea of hows pros do it. But, it would never hurt knowing the following items I am about to tell you. In fact, you have no excuse since I’m spoon feeding to you the resources now. Go ahead and learn:

    What Should I Make For Practice?

    I know, I know, you feel like that you’re just a programmer who wants to make games but no idea what for you to practice on. I understand. (Oh poor fella) Well here are the things I would suggest. At first, don’t concentrate on graphics. Concentrate on how it works and make it work. Don’t worry about your programmer art, it’s still ART! Think simple, like the following:

    • Pong
    • Space Shooter (Galaga, Galaxian, etc)

    The good thing about these two games is that they’re very interactive, they require less graphics, and would make you practice programming game logic and apply some math and physics.

    Ok, that’s my $0.02 for those who want to learn game programming quickly and I hope you would enjoy the experience! Of course, I welcome other suggestions from the readers.

    May the bits be with you.




    Design Patterns: Path to a Solution or a Path to Over-Engineering? 06/27/2011 14:01

    I guess every programmer needs some guidelines in designing Object-Oriented (OO) software. Especially when you’re dealing with programming languages such as C++, which isn’t very syntactically friendly as compared to your high-level object-oriented programming languages such as Java or C#. If you want your code to be readable, re-usable, flexible, scalable, and perhaps solve real-world problems, a good start would be reading about Design Patterns. In my own experience, reading about design patterns will aid you in realizing the following items:

    • See how you can make objects out of everything — even your own code!
    • Gain insight of what available design strategies in coding are already available.
    • Turn your code into something both elegant and efficient.

    With that said, many programmers are often misguided by reading about design patterns as well. Quite contradictory ain’t it? It’s primarily because of the programmers who read about it are trying too hard to put their problems into patterns, whereas they should be trying their best in solving their problems in the first place. Programmers are often engrossed with design patterns after knowing about it, and would like to apply them in their arsenal forcefully. This is wrong and should be avoided. If you haven’t noticed how many times I’ve placed the word “guidelines” in describing design patterns. That’s because that’s what they really are — guidelines. They are not rules that you strictly follow. You shouldn’t even implement the patterns 1:1 as how they are in literature. You must first check your problem first and see if some techniques in existing patterns would work out.

    For instance I’ve been wondering if I should really apply Singleton and Abstract Factory to handle the creation of my classes of the same kind but with different implementations like so:

    class ObjectFactory : public Singleton< ObjectFactory >
    {
    public:
        Object * Create( eObjectTypes p_type )
        {
            switch( p_type )
            ... // cut for brevity
        }
    };

    True, I need a factory to simplify object creation of classes of the same kind but with different implementations. However, I need it such that I can accessibly call it in most areas of my code, and I just needed one instance of it. Here, comes the Singleton pattern.

    After a few minutes of thinking. I realized that the Singleton is unnecessary because it acts just like a namespace! Another problem to using Singleton is you have to bother yourself with handling the instance of the singleton (creating and destroying). Namespace can make it differentiate from other possible implementations with the same name. Namespaces also provide the bounds provided by class but with lesser memory footprint. No need for instatiation and destruction of the factory. So, in the end I have this much simpler implementation:

    namespace ObjectFactory
    {
        Object * Create( eObjectTypes p_type )
        {
            switch( p_type )
            ... // cut for brevity
        }
    }

    Same purpose, same functionality, and same accessibility but easier and shorter to write, and less memory consumed. A fine example wherein you just have to see Design Patterns as a guide and not as a rule.






      Who is it?
      What's the password?
     Don't forget.
    Still a nobody? Register
    Lost password

    Shoutbox
    05/22/2011 21:12
    Welcome real humans! Shoo spammers and bots!

    Only members can participate.

    Blogroll