Adam's blog game development and casual madness
RSS Feed
  • The occasional spaceshooter

    I went through some old data on my harddisk and came across several space projects I did throughout the years. It’s nice to see how things evolve. You don’t notice it when it happens – but you see where you come from when looking back.

    Here is a part of my path, the “space shooter”-part of it. Click on the thumbnail on the right to view it.

  • Plugin Architecture

    I recently spent some thought about the framework in which I will develop engine and editor. All that follows is concept talk, planned but not implemented yet. First of all, there will be a visual editor. It will ressemble the one that came with Nullpunkt but with a lot more emphasis on usability. As before, it will consist of a main runtime which will provide a basic editor environment and any number of dynamically loaded Plugins.

    Read More »

  • GameObject Doublebuffering

    An interesting idea occured to me last evening. I was thinking about how to split the engines logic into multiple threads to fit better into the modern multi-core environment. Of course I would stream audio data in separate threads as usual. But that’s not at all an equal workload divide. Where else are there opportunities of parallelism? The rendering optimizer (automated batching, culling, ..) maybe? Again, I don’t think it would pay off. So I thought about what the video card’s secret of parallelism might be: Data independency.

    Read More »

  • Logging

    There’s really nothing much to say about logging. I just thought, I’d share some code that might spare you some time writing it yourself. Basically a Log class. Create an instance for each separate Log type (e.g. Game, Core, Editor, …) and assign n ILogOutput instances to each of them. There are ILogOutput classes for System.Console or a TextWriter in general (any Stream).

    Read More »

  • Prefabs and Serialization

    Component-based GameObjects are a really cool concept. However, when it comes to setting one up, you’ll have a lot more to do than in a classic inheritance tree approach. In the latter one, something like that might be sufficient:

    // Create and register a new Tank
    Tank myNewTank = new Tank("/blueprints/some_tank_data.ini");
    SomeManager.Instance.Register(myNewTank);
    
    

    When trying to do the same with a component-based approach, there’s a lot more to do: Create a GameObject, then create needed Components one by one, setting their properties to the appropriate values.. wouldn’t a shortcut be handy? This is where Prefabs come in.

    Read More »