Additional Options

Page Navigation:
Previous Page  Next Page
  • Sections:





  • Your accented quote and dictionary feed
    Paying tribute: giving the boss a cut of the deal.
    The Sopranos: Mobspeak

    Headlines


    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.




    Coins Vs. Zombies 06/12/2011 23:10

    This smartphone title for the iOS and Android is my first professional project for the mobile market. Upon joining Nubee Pte Ltd, I was assigned to join the team making this game. The game is actually a rehash of the previous games of the company. I did some gameplay-related programming, debugging and refactoring. I implemented the Sound Manager, Tutorial System, Achievement System, and a quick implementation of the VFX.

    Buy it from AppStore
    Buy it from Android Market




    Burn Zombie Burn 06/12/2011 22:39

    This is a porting project from Doublesix. My partner and I are tasked to port the PS3 game to PC for distribution on Steam. Most notable issues of the game were the controls, the video, and the sound. I have fixed the sound issues for the PC. I formulated a solution for the controls to be PC-playable. In terms of video, I solved the resolution switching. The rest were adding and modifying game play tweaks, and building installer and configuration helper applications.

    You can purchase the game from its page in Steam.




    Circus Games a.k.a. Funfair Party 06/12/2011 22:31

    This is actually a Wii-fied version of a game originally made for the coin-op machine. In the construction of the project, I took part in designing the game at the beginning and finished implementing it till the end. I am the Lead Programmer for this project and I had experienced various “hats” in order to make this game a reality. Technically, using C++, I’ve done engine modifications tom improve the engine and make it do things it originally couldn’t handle. I used TorqueScript, the engine’s cross-platform scripting language, to program the gameplay in.

    More game details at: http://www.mobygames.com/game/wii/circus-games_






      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