Medieval Fantasy Online Role Playing Game

Site News

Updated Jan 25, 2009

Check our Photo Gallery for screenshots of both our old engine and our new one. More coming soon!

Blog - Progression 3

Zen Engine Era (February 2008 - present)

This is a frequently-updated history blog containing development information and various tidbits, as written by the Arcanoria Project Lead, Arcanor. Where there are images embedded in each entry, you can click them to see an enlarged version. If you'd like to read the most current events, start at the top. If you'd like a trip down memory lane, starting at the beginning, please read from the bottom up. Have fun reading!

This history focuses on our recent development efforts using Zen Engine. For other Arcanoria blogs, see below.

December 1, 2012 - Project Resurrected!
Engine Switch to Unity 3D, and New Blog-Based Website

This website has been replaced with a new WordPress based site. As such, many of the links here may be broken, and will not be maintained.

Please head over to the current site using this link: Arcanoria Games website for more details about ongoing developments.

Thanks for sticking with us!

October 17, 2009 - Project on Hold!
Temporary Pause in Development

A MMORPG is a huge undertaking. We're putting this one on the back burner for now, pending a few updates to Zen Studio which will make it easier to do what we want to do, and also in order to focus on some smaller projects for a while to gain experience producing games for public consumption. Please take a look at our new Arcanoria Games website for more details about that.

We'll have more updates here once our MMORPG project is back on track. Thanks for sticking with us!

January 25, 2009 - Engine Updates & More!
Ogre 1.6, Consolidated Development SLN, Hydrax Water, Database access from Lua script, Scene Object Gravity, Landscape Shadows, Dynamic Quests

hydrax-above1.jpg

Sorry for not putting up an update blog here sooner, but it's been very busy and I've been a bit slack about getting it posted. That said, we do have quite a bit of news for you today...

First of all, we've updated the Arcanoria client to use Ogre's new version 1.6, which gives us an even faster rendering platform, along with lots of other advantages (you can read more about this at the Ogre website). What's even better is that we're now using this in a single development "solution" file, along with all of the other "dependencies" that Arcanoria is based on (i.e. Zen Engine, and underlying technology libraries for Newton physics, CEGUI, Lua scripting, SQLite, etc.). This will save us huge amounts of time and trouble in all future development. Yay! (And big thanks to Tony Richards for that!)

In other major news, Matthew Gray has brought the ocean to Arcanoria, by implementing Hydrax, a fantastic Ogre plugin that gives us dynamic water, including realistic looking waves, dynamic shoreline, underwater effects, refraction/reflection, caustics, foam, etc. We've made 4 screenshots to show you how Hydrax looks in our game. Please review our Photo Gallery for those pictures.

Another big update is the ability to apply gravity to objects created not only from Lua script, but that Lua script is in turn now getting its data directly from an SQLite database. So our scene creation is nearly 100% data driven now, which is a huge benefit for scalability.

Yet another significant update was the ability to use Ogre's texture based shadowing algorithms, which are much faster to render as compared to the stencil shadows we had been using previously.

Last (for today) but certainly not least, we've now got the ability to interact with our NPCs using mouse clicks, including selection, and two way interaction. This allows us to do things like quests, shopkeepers, and more. Thanks to Tony Richards for that hookup!

We're really excited about things to come as the Zen Engine has already released its 0.4 Alpha, and is heading forward to the 0.5 Beta release in the next couple of months. This will allow Arcanoria to release our initial demo around the same time. More about that as it comes...

November 12, 2008 - New Team Members; World History Progressing
Fishing Village 1 Renamed as Sennah Cove

The big news this past week has been the appointing of our new Lead Storywriter ShaNeil Harada, who is already doing a great job and has skillfully written our initial backstory for the Human region's starting village, formerly known only as "Fishing Village 1", and now named Sennah Cove. In addition to outlining the village history, geography, economy, and characters, ShaNeil has created the concept for our first new original monsters, which we'll say more about in a future blog. We really love the new village and characters, and this will really help us to create exciting quests and dialogs for new Human players.

We've also added April Aeschbacher as a team writer, based on ShaNeil's recommendation. ShaNeil and April have written collaboratively in the past, and we're very excited about the potential for this dynamic duo to create an exciting world for your enjoyment. April has already contributed some new ideas for the world backstory, and is currently working on some deeper backstory for the human region, which we're very much looking forward to.

Other new team members are Jason Smith (programmer/scripter/database) and Gina-Marie Hammer (artist), who don't currently have specific assignments, so we'll have more about them in a future update.

You may also have noticed we've made some minor changes to this website, including a couple of new buttons on the menu bar, and a reorganized Blog section. Check out our new Story page, which gives a detailed background history of the dramatic formative events leading up to Arcanoria's present day.

November 5, 2008 - Game System and Content Development
Significant Shift in Development Effort

Now that the engine basics are more or less working, we've shifted our focus towards content development. Being a game of large scope, there's a lot to do to create enough content to make the world fun and interesting, and different wherever a player may go. To that end, we've been dusting off the old wiki design pages and revamping, revising, and retiring some old material, while keeping the best stuff of course. This marks a significant shift in our daily efforts, as we're no longer working on C++ engine code. We're also no longer working in Lua for the moment, since the new tools that are in development will preclude the need for most of the scripts we had been writing, in favor of a visual interface. I think. Anyway, there's a lot of content to deal with so we'll figure out how to get it into the engine after the toolset is released, which should be some time in early December.

On the Art side, we've begun work on our "Art Bible", which is a thing used to communicate artistic ideas among team members. It gives sample photo references, color palette, concept artwork, etc. so that every art asset that's developed can be "cut from the same cloth", so to speak. We're grateful to have Chris heading up our Art effort, as he's got plenty of experience in both creating art assets (both 2D and 3D) and also managing artists. In fact, he even wrote a short paper on ways to deal with artists in an indie game development team. Quite useful stuff!

I'm sure it doesn't sound like much, but we've done some significant reorganizations to our internal development wiki. Add to this some new pages on Quest classifications and new thoughts on player Classes, and we've been quite busy lately! Unfortunately, there's not much to show publicly yet, as it's mostly just ideas and documentation at present. We may not have a lot to show for the next few weeks, but once the new toolset is ready, hopefully we can get some more screenshots for your enjoyment. Talk to you guys again soon!

October 14, 2008 - Gravity, Materials, and Joints
New Behavior system and Physics Updates

Sorry there's no screenshot to go with today's blog post. The truth is there's not a lot different visually, so I figured we'd save it for next time. Gravity, physics Joints and physics Materials are all invisible. How boring! Well, not boring really. There's a lot to tell.

The big news: gravity is up... and then it's down again! Great news - that's how gravity is supposed to work! Thanks to Tony for implementing the new gravity Behavior, and for creating the whole Behavior system as well!

So the first thing I noticed was that my player avatar would hit the terrain and fall over, usually quite violently. Games don't usually have player objects fall over, especially not when the camera is directly attached. The traditional way to deal with this is to have the physical (invisible) object (and the corresponding "node" in the renderer) remain stationary while the visual object does an animation of falling/dying/whatever. This meant that I needed a way to have the physical object always stay in the same orientation, face up. To do this requires a physics concept known as a "joint". A joint connects physics objects in various ways... to each other, to the environment, etc. The kind that I implemented is called an "up joint", and its function is to require that the physics body never leaves the +Y direction of orientation. It now works that way. Yay!

Now that we've got gravity working, and my player standing up straight, it became obvious that my player avatar was actually being moved using the wrong method! I was directly moving the visual entity (using Ogre), while leaving the invisible physics object (usually called a "physics body") behind. The correct way to do it is to move the physics body, which then automatically updates the position/orientation of the visual entity. This is now sort of working properly, although I'm still having some issues with walking and turning my avatar, so more work is needed here. Eventually we'll have a full-blown move manager to work with though, so I'm not sure if this is worth a lot of time to fix. It may have to wait.

So as I was testing the new gravity, up-joint, and physics body movement stuff, I kept having my player avatar bouncing high in the air off the terrain. This provided for shall we say sub-optimal testing conditions. So I decided to fix it by writing the Zen Physics Materials system implementation from scratch. I'm really proud of how it came out, as it should be able to support not only Newton's idea that material interactions are governed on a pair basis (i.e. you have to set friction, elasticity, etc. for every possible pair of materials that exists), but it will also support the more traditional notion of materials having intrinsic values for these things, such as used by PhysX. Nice!

Last small item... we moved the keyboard mapping functions into Lua script, including the ability not only to have script functions call C++ engine functions, but also to define whole new functions which keyboard inputs can be mapped to. The more we can do via script, the more flexible our development process becomes.

More to come soon!

October 8, 2008 - Player Avatar, Binary Installer, Mouse Inputs!
CEGUI Button Controls, Lua Scripting Functions, More!

avatar1.png

So much to talk about this update that I'm going to have to just keep it short. First of all, we have a new screenshot showing a player avatar, which we got from the Ava Pack (available on the Garage Games website). We ran it through Ultimate Unwrap 3D to transfer it from the original DTS format into the editor, then export it to the Ogre MESH format, including all the animation data, skeleton and textures. Not only did we get the avatar into the game, but we also hooked up the camera to follow the avatar, plus we enabled a couple of the animations and they're working great as well - when you hit W the avatar moves forward and starts the 'run' animation, and when you let your finger off the W key it stops and returns to the 'idle' animation (just some breathing movement).

We still don't have gravity, but that's coming very soon. For now, everything stays up in the air wherever you place it. If you bump into a movable object (i.e. not a building, the terrain, or any other static object) it'll move off and float away from you. Tony's going to be implementing gravity into the engine this week as a new kind of physics "behavior". More about that as it happens.

In other big news, we now have a working Binary Installer package. I've been really pleased with Inno Setup, which has enabled us to create an easy to use setup EXE for windows. This allows our art and script contributors to be able to start working without having to build the whole development environment, which can be a little complicated for artist-type folks. ;)

We've also been busy getting the mouse working properly. Tony got the basics running, but the mouse cursor wasn't tracking properly inside our application because of mouse acceleration differences, so we had to switch to an absolute positioning system (which we anticipated would be needed, since we had the same problem in prior versions of Arcanoria). Once that was working it was a simple matter to hook up the CEGUI button bar to a function that could be clicked by the user to make something happen. So now we can click the Quit button on the button bar, and the game does indeed actually exit properly.

I know this sounds a bit lackluster compared to all the cool and nifty stuff above, but probably the most time consuming thing that's been done since our last update is that there are lots more scene setup functions that are available for use in Lua script, and have been tested and example code is working. The more of this we can get done, the more flexible our application becomes, and the more powerful the scripting side of our game can be. At this point we have most of the object setup functions scriptable, including physics and visual entities. We still need to move lots more game initialization functionality into script though, including terrain and general world setup, keyboard mapping, etc.

September 24, 2008 - Terrain Physics & Animated Assets
And Other Front End Improvements

scene-24sep08.png

This last couple of days have been very eventful as far as visual updates to Arcanoria. We now have working physics for our terrain! This was a major challenge to debug (there were a couple of issues with our original implementation) because by its nature, 3D physics for virtual worlds is invisible! The way it works is we actually create two objects - one visual, and a corresponding invisible one in the physics engine. Then each frame we ask the physics engine which visual objects need to move and update them accordingly. It's a bit complicated, especially when the physics and the visuals don't line up, but that's how it's done, and we're happy to report that we don't have to go through that painful "finding of the invisible physics objects by throwing balls around in random directions" again! :) This is a pretty major update to the Zen Engine, now that that's been debugged.

Of course, I can't take all the credit for the physics fix, since I had invaluable help from Tony Richards (SgtFlame) in getting our camera working smoothly. Thanks again Tony!

We've also started bringing in some of our assets from previous incarnations of Arcanoria, for testing at the moment. We've got our trusty steelhead trout from the Ogre demos and we were able to get it moving a bit with a nice swimming animation. This involved some more engine work to integrate the animation code into the rendering process, but again, every time we implement another cool feature into the engine, it's available forever more to anyone else in the future who uses Zen Engine for their project. What a great deal!

Today's screenshot shows our old chapel model (which is normal mapped, but currently the normal mapping is only partially working), and our animated fish. Since it's a still screenshot you'll have to take my word for it - the fish's tail is really moving!

Next up on the agenda, I'm going to be taking a few days to implement mouse inputs into Zen Engine, and then that'll allow me to finish hooking up our CEGUI button bar at the bottom. We should have another update in a few days about that!

Thanks for sticking with us and reading this blog - it means a lot to us that people are following along with our progress. Please don't hesitate to send us an email to let us know who you are and we can put your name on our pre-release testers list. We expect to be making our first testable release some time in December 2008.

September 22, 2008 - Lua & CEGUI in Zen Engine
GUI & Scene asset porting begun

zen-first-gui.png

Things keep progressing in Arcanoria-land! The nifty terrain we showed you last week now has a physics mesh loading from a file, and saving to a binary image for swift loading. This was hard work, involving reading and writing binary values, and constructing polygons from calculated values one vertex at a time. Phew! Glad that part's done with. ;) Of course, the physics terrain still isn't working properly and needs tweaking, but that'll be done soon.

We also now have Lua scripting not only embedded as a language, but it's been hooked up to engine functions which allow us to create new objects using script. Yay! Now I just have to find the time to drop a few things into the scene and I'll make a nice picture for you. Plus this will allow our Art Director Chris Dodson to resume his work on getting normal maps up and running for some fancy cool texture effects. Neato!

Today's screenshot is showing our first cut of the porting effort from our old CEGUI configuration. Believe me CEGUI can be a challenge to setup. But it's in now, and it's capable of displaying colored output text in a listbox (see the upper left window), which will help us with runtime warnings and messages while developing and testing. And we got our nifty Arcanoria logo on the screen again too - hurray!

More to come soon, so stay tuned!

September 11, 2008 - Terrain and Skybox In-Game!
First on-screen assets for Arcanoria using Zen Engine

indiezen-first-terrain.png

The new Zen Engine is definitely proving challenging to work with, since it's in such a state of constant development. This means that every task is 10x harder than it would be if the framework were complete. But the great thing is that every detail we work through is something we can build on in the future, and there's a limited number of those details remaining. The truth is that it's remarkably stable, considering it's only 0.1.0. However in the short run we expect some bumps in the road.

Implementing terrain into our rendering window has been no exception to that rule! Just when I thought I had it tackled I ran into a bug where the rendering service had a circular setup dependency with the scene service. Then there was a problem with resource folders, and I wound up extending the engine to include multiple versions of the resource service for each requestor, i.e. the rendering service and the physics service for this example. Then I discovered that recursive folder searching for resources wasn't working (still isn't, and I don't know why), so I worked around that. Finally, the camera is currently immobile, so I couldn't even look around to tell if the terrain was in the game until I hard-coded the camera to point in the right direction and then recompiled... it was very difficult to even find the terrain at first!

But at long last I found it, as you can see from the new screenshot I've posted here. For good looks I also hacked in a skybox too. Anyway, we're all really excited about getting the terrain implemented!

In other great news, it looks like SgtFlame was able to get the Lua plugin working today, so once the code has been reviewed and put into the main trunk, we'll be able to start doing some scripting. Of course there's not much to script right now, but at least we can script in a nice terrain. :)

September 9, 2008 - Zen Engine 0.1.0 Released
Next Up: Arcanoria Client & Lua Scripting

With the recent release of IndieZen's Zen Engine version 0.1.0, the basics are now in place which allow us to begin reconstructing our Arcanoria demo client, at long last. It's been an exciting time for the IndieZen team as we develop the infrastructure that Arcanoria, and many other games in the future, will use. Zen Engine 0.1.0 already has working plugins for Ogre rendering, Newton physics, FMOD sound, OIS input, Python scripting (we're planning to use Lua), and more.

I'm currently working on implementing the Arcanoria demo terrain into the newly created Arcanoria client application. I hope to have this working in the next couple of days. During that time we're hoping that SgtFlame will be able to get the Lua scripting plugin working, so then we can begin writing configuration scripts which can place objects into the world and allow them to interact. This will be a huge step forward, and will enable our team members who are not fluent in C++ to begin contributing again. Yay!

Now that we've begun work on the Arcanoria Client itself (as opposed to the underlying Zen Engine), we should have considerably more to say about Arcanoria, and so you can expect to see more frequent updates posted here on our website again on a regular basis. More to come soon!

July 24, 2008 - IndieZen Framework Nearing Completion, Massive Influx of Resources

While working on our implementation of the Ogre 3D graphics engine, and integrating other libraries into it (physics, audio, scripting, etc.), we joined forces with like-minded developers from the IndieZen framework development project. This will allow us to take advantage of all the benefits of Ogre3D, PhysX, lua scripting, FMOD, etc. which we were already in the process of building into our own custom engine, but the extra bonus is that we don't have to write all the code ourselves! With excellent and experienced programmers like Tony Richards and his team working towards the same goals, it's a huge shot in the arm for the Arcanoria project.

What's more, Tony's so excited about the Arcanoria project that he's agreed to help us with much more of the game development process than just the engine. Here's a quote:

Tony Richards, founder of IndieZen, LLC announced today that after the 0.1.0 alpha version of Zen Engine is released, the entire IndieZen development staff will be concentrating on helping Arcanor finish his online RPG Arcanoria. "This is what the Indie 2.0 Revolution is all about. We work together to raise the bar of Indie art and technology while we concentrate on completing our own games."

The plan is for delivery of the 0.1.0 alpha of the engine framework by September 1, 2008. Much more to come after that! We'll keep you informed.

February 13, 2008 - Ogre3D is Back; New Engine Development Phase Begins

After thinking long and hard about the (lack of) progress we've made over the last 10 months while trying to get Torque running as a decent game engine, we've decided to scrap it altogether and return to our previous engine, which was based on Ogre 3D. We've got it all building again and it looks great so far! However, it doesn't have nearly as many features implemented as Torque, so we'll need to take a few steps backward in the short run to retrofit the new engine and we should come out much leaner and meaner after that.

On the good side, we DO have the following things already working in the new engine:

  • Ogre rendering engine, including support for both OpenGL and DirectX.
  • Custom camera management system, including 4 presets (chase, 1st person, stationary, top-down), plus a 5th setting with ability to save/recall camera position arbitrarily.
  • character animations
  • on-screen FPS and polygon counts, plus alt-Z to show collision boxes.
  • simple network connect/disconnect with a server process on another machine using RakNet.
  • GUI moveable/resizeable windows with alpha transparency, and also 4-state rollover buttons (inactive, active, rollover, selected)
  • background music, using FMOD sound engine.
  • customizable input mapping to game functions (reading configuration from a text file), including support for up to 8 mouse buttons, any keyboard input (including alt-, shift-, ctrl- combinations), and/or joystick.
  • ArcReporter system for custom display/logging of messages from the engine.
  • TRANSITIONAL - Physics was mostly working using Newton, but was ripped out in favor of Bullet, and now we're changing over to PhysX. Not currently fully implemented, but Coming soon!
  • TRANSITIONAL - Lua scripting language for flexibility during development. The library is built but not yet integrated with the engine.

Other History Blog Pages

Progression 1: Early History - oldest blogs from the beginning of the project. (January 2007 - April 2007)

Progression 2: The Torque Detour - blogs detailing our failed attempts at using Torque TGEA as our game engine. (April 2007 - January 2008)


Valid HTML 4.01 Transitional