Home

Welcome to IndieZen.org, home of the Indie 2.0 Revolution

This is where a variety of Indie game development studios and individuals collaborate on a suite of custom built game development tools and middleware:

Zen Engine
- high performance 3D game engine client framework.
Zen Studio - integrated game development environment.
Zen Worlds - virtual worlds, online community, and massive multiplayer online game framework.

FracU Rebooted - The Official Kickoff PDF Print E-mail
Written by Tony Richards   
Wednesday, 11 November 2009 17:35

A little over three years ago I started working on Fractured Universe as part of the 90 day MMORPG contest.  This "reboot" blog will be my second attempt at making an MMORPG in 90 days.

During the course of the original project, my primary goal was to win a contest, which we did, but at a cost.

We wanted to win no matter the cost, and the price we paid was a lack of innovation

The game we made was simply a clone of every generic multi-player RPG game we had ever seen.  Simple quests, simple NPC interaction, simple leveling, etc.

The game wasn't terribly fun to play for more than just a few minutes and it had zero promise of ever becoming a great game.

This time around I want things to be different.

Last Updated ( Wednesday, 11 November 2009 18:11 )
Read more...
 
Introducing Zen Worlds PDF Print E-mail
Written by Tony Richards   
Thursday, 23 April 2009 16:46

Zen Worlds is the most recent addition to the middleware being created at IndieZen.org.

This lightweight but industrial strength middleware provides all of the necessary infrastructure for building virtual worlds, MMO games and online game communities.

Although it's primarily being created by developers from Hatboy Studios and  Games by Sarge, it will be included with the rest of the game development middleware using the same, unrestrictive open source license.

Read more...
 
Zen Engine game engine frameworks 0.5.0 (beta) released PDF Print E-mail
Written by Tony Richards   
Tuesday, 24 March 2009 14:59
IndieZen.org is pleased to announce the release of Zen Engine 0.5.0 (beta) and related plugins.  Zen Engine is a game engine framework that makes it easier to create your own custom game engine.

Finally, we're out of our alpha testing stages and we've begun beta testing!

The completed plugins include:

  • ZBoostNetworking (Boost.ASIO TCP, UDP and HTTP networking)
  • ZInput (OIS Input System)
  • ZLua (Lua scripting)
  • ZMicroPather (MicroPather A* pathfinding)
  • ZMySQL (MySQL database)
  • ZNewton (Newton physics)
  • ZOgre (Ogre3d rendering engine)
  • ZPython (Python scripting)
  • ZSQLite (SQLite database)

Through the use of the framework, plugins and the "base starter kit" you can quickly and easily put together your own game engine client complete with shaders, animation, particle effects, physics, scripting, databases, A* pathfinding, and much more.

Visit our downloads page and get started making your own custom game engine, or use our starter kits, tutorials and templates and use one of our pre-built game engines make your own games.

Last Updated ( Tuesday, 24 March 2009 15:55 )
 
Keeping Interfaces Clean - Iterators PDF Print E-mail
Written by Tony Richards   
Wednesday, 11 February 2009 21:21

In Object Oriented Design, one of the goals is to hide our implementation, so that if you make a modification to the implementation, nothing else needs to be recompiled.

One of the problem areas with this philosophy is how to expose collections.  You cannot directly expose an iterator as that causes several problems.

What happens if the container goes out of scope before the iterator?  What happens if for some reason you need to change the underlying container type, such as from a std::list to a std::vector.  Or worse, what happens if your collection gets to large and you need to re-write it so as to have the collection be records in a database.

Using generic programming, one could choose to write some templates that will help solve the problem, and I think that's a fine approach if you want to use generics.

I use generics quite a bit in my implementation because they reduce the amount of coding required to do certain types of things, especially while using STL or Boost.

But that is my implementation. If I can keep my design consistently Object Oriented and avoid generics in my public interfaces then I will, even if it means a little extra effort. 

This follows the MIT approach of Worse is better, where I'm choosing consistency over simplicity while still maintaining completeness and correctness.

Contrast this approach to the one in Thomas Becker's "On the Tension Between Object-Oriented and Generic Programming in C++" article where he solves the problem using generics.

Last Updated ( Wednesday, 11 February 2009 22:51 )
Read more...
 
Zen and the Art of Game Design PDF Print E-mail
Written by Matthew Alan Gray   
Friday, 25 July 2008 01:27

What good is a tool if you don't know how to use it?  Simply knowing that a nail-gun can help you build a house faster than you could using a regular hammer doesn't mean you're not going to shoot a nail through your big toe if you're not careful. But if you knew how to handle that tool correctly, you could reap numerous benefits in terms of quality and efficiency.

That being said, I suggest to you to think of the Zen Core Framework as a tool, and a powerful one at that.  It can be used with the Zen Engine plugins to develop a FPS game in Python script, used in conjunction with a custom plugin that enables the visualization of measured phenomena in real-time, and even used to create a server-side application that services a multitude of clients for an MMORPG.  In short, the Zen Core Framework can be an extremely versatile tool in our "Programmer's Toolbox."

 But the question still remains, "How do we use it?"

 Over the next few months, we will be posting some articles dedicated to this topic ranging from how use the Zen Core Framework and Zen Engine to script a simple application to developing a custom plugin that can be dynamically loaded by the Zen Framework.  These articles will not only provide correct examples of how to use the framework, but also the reasoning behind them.

It is our hope that these articles, and the growing community here at IndieZen, will help ease the adoption of the Zen Core Framework and other Zen components by novice and experienced developers alike.

Last Updated ( Friday, 01 August 2008 01:59 )
 
« StartPrev1234NextEnd »

Page 3 of 4
 

Who's Online

We have 5 guests online