Welcome to IndieZen.org

High quality open source software by IndieZen's software artisans.

Zen Core - scripting framework, plugin system and general C++ library.
Zen Enterprise - enterprise SOA framework.
Zen Engine - high performance 3D game engine client framework.
Zen Spaces - in memory distributed object oriented database.
Zen Studio - integrated game development environment.
Zen Worlds - virtual worlds, online community, and massive multiplayer online game framework.

FracU Rebooted - Week 1 PDF Print E-mail
Written by Tony Richards   
Sunday, 22 November 2009 15:57

This week I'm still trying to get into the swing of things... some coding, but there still some design work to be done.  Sometimes I just daydream and think about how I'd like to play the game.  It's a bit of an informal way to design, but it definitely gives me good ideas.

There's one feature is something I've wanted in most RPG games, but none have it... at least none that I've played.

Watch the following video while you're thinking about this.  You're a fairly high character, you have a few followers, pets or family members with you in an expeditionary mission.  You have a wagon or two of supplies and you're exploring.  You come across a beautiful clearing and think, "This is it."  You have your followers set up camp while you mark out an area for clearing, and then you set everyone off on the task of building a house, a barn, clearing farm lands, digging a well.... because you know you've come home.


OgreSpeedTree/Grass 8000 trees + 2.5M blades of grass from Steve Streeting on Vimeo.


Last Updated ( Sunday, 22 November 2009 16:32 )
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 )
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.

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 )
More Articles...
« StartPrev1234NextEnd »

Page 3 of 4

Who's Online

We have 3 guests online