Sunday, December 20, 2009

Mud Designer Script Considerations

I spent all night last night messing around with the Unity3D game engine and I have to say I really like how they handle scripted objects in their engine. You place an object in the world, and then attach existing scripts to it. This is a nice concept, as it lets you re-use a script file over and over for several other objects.

Currently the Mud Designer allows each object to have a single script, and the script is owned by that object and not shared by any other objects in the game. After messing with the Unity engine’s scripting setup, I'm currently thinking about changing how the engine handles scripts. I’m considering a script repository that the Designer holds, and developers can drag and drop the scripts onto objects within the game. I’m not quiet sure how I want to go about implementing this concept, as it works great with a single IDE interface, that allows drag and dropping from object to object, but the Designer is broken up into several editors and thus making it a little more difficult to achieve.

Thursday, December 17, 2009


I finally ran into a fellow developer on the Creators Club site that had interest in starting a 3D Engine project with me. While I have been fairly busy lately and unable to spend much time working on the Mud Designer or any other projects, I’ve managed to get things straightened up and release some free time to work on a couple projects. Hopefully development on both projects can progress smoothly.

Monday, December 7, 2009

Serious Design Flaws

As I began working on linking rooms together with the Zone Builder I ran into several issues with the design of the toolkit. Serious design issues, and it is forcing me to re-work a pretty large chunk of the editors and engine to fix the issue. One of them being that the filenames are not modifiable by the users, I have forced them to be read-only, with the engine assigning a filename to each object. This creates an issue with room names, as what if I want a Room called Bedroom but 4 different variations of it, I can keep the Room title as ‘Bedroom’ but have the 4 variations saved as different filenames.

The next issue I ran into is what if I want to have two Zones with the same name, but within different Realms? This isn’t possible as Zones are contained within their own Data directory.

Another problem is that Realms contain a collection of Zones. The collection contains the entire Zone class. Wait a second though… Zones contain a collection too. A collection of Rooms, holding the entire Room class. What’s this mean? It means that even though the Zones and Rooms are being saved out into separate files, the Realm files where also saving every Zone and Room it contained. Duplicate saving was happening, and having a Realm save every zone, with every room, is going to take a lot of time up during the loading and Saving process.

Lastly, the linking of Rooms was going to seem cumbersome with the installing and uninstalling of doors into Rooms. It was a neat concept at the time, but I have since decided to do things differently.

So what am I planning? I will allow for custom filenames, move the Zones data directory into the Realms directory that owns them, provide Realms with a link to their Zones, but not an actual copy of the Zone, along with removing the copy of the Rooms within the Zones collection, and providing Zones just a link to the Rooms. Lastly I am deleting the Room Designer from the project, and giving the responsibility of creating rooms to the newly renamed Zone Designer. This is a couple days worth of work to get ready and finished, along with adjusting my namespaces within the classes. Hopefully by the end of the week I will have the Zone Designer working fully, with the creation and linking of Rooms completed.

Sunday, December 6, 2009

A little perspective

This image shows how everything is linked together and what has been developed so far. Everything shown here is added in the solution, either fully working or not working.

Mud Designer ToolKit


Now that I have the Room Designer, Zone Builder and Realm Explorer all linked together and working with one-another, I have started working on adding Room Linking within the Zone Builder. I’ve spent a lot of time thinking of various ways to implement this feature, and I still haven’t decided on a solid method of doing it yet. I really like the drag and drop method of it, but I’m not sure how to build on to that idea. It’s not a new concept for me, as my previous Mud Designer IDE that I replaced with Mud Designer used a drag and drop approach, and it’s really simple to implement, however it would require me opening up the Zone to accessing the Realms. It would need to in order to allow Rooms to be linked to Rooms/Zones within other Realms and I don’t want that. I’m trying to keep each editor segregated from their parents. Realms can access Zones but not Rooms as that is a child of the Zone. Zones can access Rooms but not Realms, as Realms manage and control the Zones.

So how should I approach the Room linking? I’m still not sure, I’ve started with trashing 80% of the Zone UI, as it wasn’t going to cut it. Not that there was a whole lot to the UI in the first place, but it had to go. I’m thinking of adding a ‘Realm Exit’ property to doors, or something along those lines, at which point the Realm can select the Zone and view all of it’s Realm Exits. Users can select a Realm Exit and link it to a Realm Entrance within another realm. I think this is the best approach to take, but implementing it is going to take some serious thought. It sounds fairly simple, but I need to make sure that the implementation of it is well planned. I don’t want to do a whole lot of re-work on this, and I want to make sure that the classes are built correctly. It’s very time consuming to do re-work within the editors when I remove or change an engine class. I spent close to 2 hours re-working the editors after I decided to remove the Engine class earlier this week. I’m trying to avoid that this time around with some better planning.

I was hoping to release a tech preview of the toolkit in a binary form this weekend, but that’s not going to happen sadly. Hopefully next weekend something will be ready, but until then people will just need to download the source and compile it in order to take a look at it.

Thursday, December 3, 2009

Congratulations Garage Games. I am pleased.

Last week I wrote about the state of Indie Game Development and my disappointment in Garage Games due to them charging $1,000 for their new engine while Unreal and Unity released theirs for free.

While I still stand by my statement that Garage Games should be setting the Indie pricing and content standard instead of following corporate pricing modals (such as being out done by UDK), they have done a good job in changing the Torque 3D licensing fees. You can now purchase a binary version of the engine with all of the same features the $1000 Pro version contains (without the source code) for $250. If people purchase it during the month of December they can get it for a cool $100.

Nice job Garage Games, this is going to help indie developers get their hands on a high quality engine with a low budget. Hats off to you.

Tuesday, December 1, 2009

Merged Projects

I spent tonight merging projects together with the Mud Designer. Previously all of the editors where contained within a different project, segregating each editor from another, but this created issues when trying to debug the project and test features, as the Zone Builder would place its files within its debug folder, then the Realm Explorer couldn’t see them due to being in a different project directory.

This has been fixed by moving all editors and the engine itself, into a single project. I was actually surprised to see the project file size be reduced from 3.9mb to 575k, not that it really matters now-a-days, but that was something i hadn’t expected.

Some of the items within the project is broken due to the change, as this was a pretty heavy overhaul. All of the namespaces have been restructured and editors that where previously calling files to load (like the Realm Explorer executing the Zone Builder.exe) are now working in a hacky manor until i get something better setup, which shouldn’t be to long. Hopefully by the end of the week I will have the Realm, Zone an Room editors all synced up and ready for a preview Release on Codeplex.

Monday, November 30, 2009

Nearing my first release

I worked quiet a bit on the Mud Designer over the weekend and managed to get the Realm Explorer, Zone Builder and Room Designer Built up. The Realm and Zone editors will be fleshed out some more and finalized over the course of the week, get everything working together and publish a preview release of the engine and it's toolkit hopefully this coming weekend.

- Posted from my iPhone

Sunday, November 29, 2009

Free-To-Play games vs. Subscription

Jeff Strain gave his opinion on Free-To-Play games earlier this week, and while I was reading it, I could feel myself becoming a little perturbed. His argument is, '”Developers working on free-to-play projects are too preoccupied with in-game revenue opportunities and don’t have time to focus on making games fun.”

Well, I can agree to a certain point with him on that. There are a few games out there that I’ve played where the company is more concerned with making money off the store transactions than making new free content for the players, but there are also a lot of games out there that employ the modal and still look out for their user base. The game is free to play and thus needs to generate revenue in some form, so that is to be expected and should be acceptable to a degree, provided new content and still provided to users on a free level as well. Something that Jade Dynasty has done, or Perfect World. Both have released several expansion packs for free to their users with a large set of changes and new content.

So Strains statement is an invalid statement, especially when you look at World of Warcraft, a game that focuses on it’s free 'patches being aimed at helping the lower level players, because they complain about things and Blizzard doesn’t want to loose their business. How about their expansion packs? Those aren’t free, and it’s another way of pulling subscribers that have canceled their accounts, back into playing paying for their subscription again.

Both sides of the MMO world is the same, they are both trying to feed their pocket book, and have a right too, provided it doesn’t take their focus away from the users and giving them a good experience. Something that Perfect World games have always done.

I’m have no problem paying a subscription fee for playing a game, I limit myself $20 a month in microtransaction fees, so my rant isn’t because I don’t want to pay the monthly fee. I paid for warcraft for 5 months before i canceled it.

One last thing I’d like to point out is that microtransactions usually employ character customization options such as new outfits or hairstyles that aren’t available in the standard game, and I like this approach as it provides users with a way to be different from others playing the game. Everyone can find something they like and wear it and be different.

Saturday, November 28, 2009

RIP Visual Designer

I had to delete both the Visual Designer and the Visual Components projects from the MUD Designer Solution tonight. I was tired of trying to manage two different sets of editors for the same project, and had to make a decision. Which would be the easiest to build, and let me get something to the community fastest? The current setup, as the Visual Designer was going to rather elaborate and take awhile to work on, although it would be less code in the end, and probably easier to maintain, it was going to take to long to implement all of the dynamic components of the engine.

The current setup is quickly getting someplace, as tonight I managed to get the Realm Explorer built, Zone Builder started and Room Designer stable. The Realm Explorer allows users to launch the Zone Builder to build rooms that they can place within Realms. The Zone Builder lets users launch the Room Designer and create Rooms for the Zones to hold.

At the moment, both the Zone Builder and Room Designer is accessible via the Mud Designer Main Window, but once I get the Realm and Zone Builder in a stable state, I will remove the Zone Builder and Room Designer from the Mud Designer window. Users will access them in a hierarchical fashion, starting by launching the Realm Explorer.

Friday, November 27, 2009

What happened to Indie development?

I remember a dozen years ago, Indie game developers where using game engines or rendering engines such as Ogre 3D, Irrlicht, Blitz 3D or building Mods for games such as Unreal, Quake, Starsiege Tribes or Half-Life. We didn’t really have complete engine kits available at the time like the Unreal Engine, Unity or Torque, heck most AAA game titles weren’t even made with an all-in-one development kit like we have available today.

I was really disappointed in Garage Games when they began charging $1,000 for their new flag ship engine Torque 3D, which while is impressive, is cutting out a huge portion of the Indie community. Remember when Torque Game Engine was just $100? Yes, Torque 3D is a lot more impressive looking and state of the art, but the Torque Game Engine was state of the art at it’s time. It had most of the major components featured in major AAA titles at the time, and it was still only $100.

Why does Garage Games move to charge a solid grand for their new engine bother me? Because they are taking away from the ‘Garage Gamers’ who might want to spend $100 on a game engine, but can’t afford  $1,000 on one. Indie game development has started to become a mainstream item, with a lot of potential for financial success in it. Indie gaming is no longer cost friendly for a vast majority of people who could have easily spent $100 on the engine.

Unity 3D and Epic’s Unreal Engine has now been released for free, and this is a solid move by both. While you can’t sell your game’s really without purchasing a license, I can guarantee you that 80% of the indie games released out there on the market, where not self published. They are sold on the Garage Games marketplace, Steam, Xbox Live ect. The publisher can easily pick up the tab on purchasing the commercial license to the engine in order to sell the product. Garage Games requires developers to buy the engine before building their games, while Unity and Epic allow developers to build their games before buying the license.

While I still prefer the Torque Toolsets, I favor the Epic and Unity pricing model, and applaud them. I’ve heard rumors that Garage Games might do the same, but come on now, these guys are the pioneers of Indie game development tools, they should be setting the standards, not competing with new standards set by major corps.

Clarifications & Concepts

I wanted to take a few minutes to clarify a couple things.
First, the Mud Designer is a complete IDE for developing Mud games. It's currently composed of several editors, such as the Room Designer and Project Manager. A new edition to the Mud Designer is a tool called the Visual Designer. This is a test editor, that will replace all of the currently existing editors if it goes right. What's different about it? It contains editors for every object, with a single designer. Instead of launching the Room Designer, and the Zone Explorer, you will have a single designer. The Visual Designer will replace every editor with a single editor that manages everything.

Now, I remember saying I didn't like this approach originally, as it creates a mess with the code. It's an even bigger mess when you start generating objects and building the editor dynamically during runtime. So why am I still pursuing this as a viable option for the Mud Designer? I've figured out a way to keep everything dynamic, and keep the code easy to maintain.

With that being said, what are some of the pros and cons between the current setup, and the future Visual Designer? Let's take a look at them individually.

The current setup is pretty static. Each editor was originally planed to be independent of each other, but that ended up not being the case as keeping things simple, required cross-editor interaction. Not a bad thing though, and the code to add it was small and easy to implement. The editors have a generic look, and if a new object is created within the engine, I will have to go build a new editor for it. That's not a big deal either, but I will have to go to every editor that will need interaction and add the support. Again, this is not to big of a deal, however what if 3rd party members want to add onto an existing editor? They will be required to modify the source. What if they want to create new assembly project and build custom objects that inherit from the standard engine classes in order to make managing Mud Designer updates easier. None of their code is overwrote. This isn't possible with the current setup and I don't think it ever will be due to how it was designed.

Enter the Visual Designer. This designer loads the engine and builds a list of all game objects. Those objects are displayed in a toolbox that users can have access too. The engine will have the plugin support implemented, allowing for developers to create their own libraries containing their own objects and having it loaded into the engine. The designer will then place all engine and plugin objects into the toolbox without any extra code needed for the 3rd party addons. This also removes the need for me to keep going back to the editors and adding the new objects to the editors manually. The Visual Designer handles it for me. If I create a new class called NPC, the designer adds it to itself automatically. I don't have to touch it.

How will I design the editors for each object? I've Created a base control called VisualContainer, and given the BaseObject class that as a Property called Control. Developers can build their own user control that inherits from VisualContainer, and the editor will automatically place the control in the designer. Developers can have access to the control by accessing the property
"Room.Control.Title = My Control"
This let's me focus on building editor controls for each object in a modular fashion, and the designer generates all of it's content during runtime.

It's a concept still being worked on, and mostly works, I just need to work out a few of the kinks before deciding this is acceptable, and removing the current set of editors from the solution.

- Posted from my iPhone

Wednesday, November 25, 2009

Still trying to tackle scripts

It's been 3 weeks or so now, and I have went back and forth on how I want scripts implemented into the MUD Designer. I spent last night trying to build a UI that would let me piece together the scripts with the script engines class builder tools, but now I think I'm going to do something different. Jus let users write their code. Breaking the scripts down into smaller pieces will probably make it harder to manage than jus having the entire script available. I will allow scripts to be wrote classless. Meaning users will write the code needed, and the script engine will wrap the code in a namespace and class during runtime. The whole point of he designer is to simplify MUD development, and removing the need to encapsulate your code in a class and namespace helps simplify the scripting aspect of it. If users want more control and freedom then can write their game with c# instead of using the editor, as the engine will support several compile styles. This just happens to be the style I'm going to choose for the designer.

- Posted from my iPhone

Plugin support

As I was working on adding scripting support to the Room Designer last night I began messing with loading content on the fly, and found that it was really simple. I liked how easily .NET has made loading .dll files into memory. I could do it with the Scripting Engine but it's not designed to load several assemblies into memory for plugin support. It's designed to hold a single script assembly. I fleshed it out and got a nice plugin feature implemented. It currently only works with the Room Designer, but that's just due to me testing it. Once I get it fleshed out all the way I will move it into the engine so that all editors can access the plugins if needed without re-writing the code for each editor.

I want to wait on moving the code into the engine until I figure out how I want plugins to be implemented. There are several ways I can do it, and I want to make sure the best way is selected. In the future it would be nice to build plugin support into the editors themselves so users can write editor plugins, extending the designers. It would be nice for users to create custom classes that add new functionality to the engine, then add that functionality into the editor with a custom plugin. Or perhaps build it all as a single item. A custom class and custom editor or extended editor, that the engine will jus load and use. The engine will load the class, the editor will load the custom editor plugin. All contained within the same plugin library.

Just some thoughts I'm floating around. Plugin support won't get any serious attention till later. As I'm wanting to focus on completing a few designers first, to get the editors useable and release a Preview release on codeplex.

- Posted from my iPhone

Visual Designer shelved

I spent last night getting doorways working in the Room Designer. I am much happier with how the progress is going using a seperate project for each editor. The Visual Designer concept was nice, but I spent two weeks messing with different GUI designs instead of coding. I decided to just shelve it for now and focus on building editors independently from each other.

Last night went well, I got installation and uninstallation of doors into rooms working, implemented plugin support into the room designer and began work on the design script editor. I'll touch on the plugin support and scripting in a different post, but it works pretty good at the moment.

All in all, the Room Designer is coming along smoothly. I'm hoping to have it finished by this weekend.

- Posted from my iPhone

Tuesday, November 24, 2009

Mud Designer Scripting & thoughts

I'm working hard at coming up with a way to implement scripting support into the Mud Designer. One of the problems you encounter with a visual approach to anything is constraint. All MUDs will act the same, and feel the same when created using a visual tool. Scripting breaks that issue, and provides MUD designers a way of expanding or changing the way things work within their game, a way to make it unique. The interface provides new comers and seasoned pro's a quick way to prototype and build a base game, and then build ontop of that via a script system.

I'm pretty sure the route I'm going to take is to give The BaseObject class a script Property. This way every object in the MUD can have a script attached to it. Doors, Rooms, Zones, individual items and even characters.
All scripts will have an OnCreate(), OnEnter(), OnExit(), OnDestroy() function. Additional functions will be added overtime as I think of them.
Each script object will inherit from BaseObject, and have all of those functions contained within BaseObject. Then users can create their own OnCreate() functions that get called and still use base.OnCreate() in order to have the stock OnCreate function executed. This is the best approach, as it allows users to piggy back the existing code, or omit the 'base' call and write their own.

Another thing I'm planning is to build a BaseCharacter class, all characters will inherit from that, regardless if it's a monster, player or NPC. The goal is to build Party Support, communication and fighting all within the BaseCharacter class. Monsters, NPC's and Players classes can be tweaked on how things are done, but still have the bulk of the code already contained within BaseCharacter.
It would be neat to have NPC's able to join the players party and fight, or have monsters fight in Party's, with supportive and offensive monsters working together. This can be achieved if they all share the same Party code found in BaseCharacter.

- Posted from my iPhone

Saturday, November 21, 2009

Seeking an XNA Team.

I posted a new topic on the creators club today seeking developers to join a new team, and build an editor for creating 3D games using XNA. The editor will be the sole source of editing for 3rd party users using it, as they won’t ever need to develop in Microsofts Visual C# like XNA requires you to. Instead, we will implement Managed Scripting into it, and provide developers with a real time script setup allowing them to develop their games from within the editing environment.

So the UI is already being designed by myself, and as team members join, it will get tweaked as suggestions roll in. I’m currently setting up the scripting engine to run with it, and I’m going to take the Unreal Engine approach with it. I have a BaseObject class that all scripts will inherit from, and I think I will have a DrawableObject and GameObject class that inherits from it as well. Then developers can decide which object their script will inherit from. DrawableObject will inherit GameDrawableComponent and GameObject will inherit GameComponent from within XNA, allowing any script wrote to be initialized via the Component’s Initialize() methods.

Next I am going to work on Content importing. This is something I want included in the editor engine instead of the editor itself, so that any game using the engine can import content during runime if it wants to, allowing for custom 3rd party content such as avatars or skins to be added to their games without the developers of the game needing to ship the game editor with their product.

Monday, November 16, 2009

Shell Replacement thoughts

So after making a post about replacing my Vista shell with a custom shell, I stopped and thought a little more on it, and decided that it would be a nice challenge to try and attack. So I created myself a new project tonight and I’m going to mess around a little bit with it.

What goes into replacing a shell? A lot of things. I will need to recreate the start menu in some form, and I’m not sure how I want to do that just yet. The standard Vista start menu needs to go, and I’m thinking for something along the lines of how Mobile phones work. I really like the Expose for the iPhone, and might consider going with something along those lines. I wouldn’t exactly go the same route, as an icon based home screen would be cluttered for a desktop PC that can have 10 times the amount of apps an iPhone can carry. However, creating an icon based container with categories is a nice idea, as user’s can create categories or tags to store their applications within, much like how we manage our Music and Photo’s. Applications shouldn’t be any different, and it seems that no one has thought outside of the box, and realized that we have improved how we managed our media, but managing our installed applications hasn’t changed much since the 90’s.

So there’s one thought, what’s next? I need to be able to access currently running processes, allow users to change their windows settings and provide a better alternative to file management than the standard Windows Explorer. Much like Gnome 3, I want users to manage their files without having to browse the hard-drive all over the place. I like the Favorites links that Microsoft introduced in Vista’s Explorer file browser.

One of the important things I need to get built in right away is method to re-instate the original Explorer shell. If I can get the replacement shell far enough along to be simi useable, I will start using it in my day-to-day use, but just incase something goes badly wrong with it, I can at least get my Vista shell restored.

There’s quiet a bit of work that goes into a Shell replacement, accessing currently running services, task managers, settings, file management, working with user accounts, ensuring one user can’t access another users information, and lastly, trying to keep it as cross-platform as possible.

Enter Mono 2.4, the Linux and Mac OSX port of the Microsoft’s .NET Framework. If I can keep the Shell fairly modular, and keep it as Object Orientated as possible, then I can write OS specific pieces independent of the Shell, and allow me to easily get it ported from operating system to operating system. While Gnome and KDE is the primary IDE’s on Linux systems, there really isn’t anything out there just yet that grabs my fancy like Gnome 3, and Windows users don’t have anything close to it yet.

Juggling Three Projects

There’s one thing that I’ve learned while writing iRingtones, Managed Scripting and Mud Designer and that is maintaining three different projects is rather time consuming. I’m glad that they are all free and thus I’m not totally obligated to devote 100% of my time to maintain and improve on them, and considering that iRingtones has so far be the most popular project of mine by far, I’m beginning to re-think how I write my applications and what kind of projects I will take on in the future.

In what direction will the three projects I’m managing start driving towards? Well, iRingtones is pretty much going to remain as-is. There will be an update soon providing batch conversion, and if I can get the chance to look into MP3 conversions, I will try to allow MP3’s to be converted as well, instead of WAV files only.

Managed Scripting has a couple things that I need want to do with it, and that is Domain support, security policies and finish up the VB support. Once that is done I really won’t have a whole lot of work left to do on it besides just add additional functionality, which at the moment isn’t a huge rush considering the script engine has only been downloaded 15 times. There doesn’t seem to be much interest in it. Or I’m just not doing a very good job or spreading the word about its release. Considering all I used was Twitter and this blog to advertise iRingtone, and a couple website signatures being updated to include it, I got 170+ downloads in less than a week. Managed Scripting I actually went to various websites and posted a new topic showcasing it to people, and got less than %10 of the downloads iRingtones got. Simply put, the demand for a managed scripting engine isn’t as great as an iPhone ringtone conversion utility.

Where does this leave Mud Designer? I’m still wanting to build an IDE for MUD Development and the project isn’t going to be left out either. Once iRingtones and Managed Scripting have had the updates done to them I’m wanting to do, then Mud Designer will get it’s share of the lime light from me as well. I’m still messing with the WheelMud framework and thinking about implementing it into the IDE instead of building my own engine, but that is still up in the air. While the WheelMud author has been nice in answering posts of mine, I never really got an answer from him about me joining his team to build the IDE.

There’s a couple things taking shape over the horizon for me, one being the possibility of developing a game editing environment for someone advertising on the creators club site for a team to help build a game together. I’m also sick of looking at my Windows Vista Interface and I’m considering writing my own Shell implementation that follows along the same concepts that Gnome 3 has introduced.

For now, I’m off to play some MMO’s.

Sunday, November 15, 2009

Mud Designer hang ups

More changes for the Mud Designer are planned, as the re-build continues. Change set 40304 introduced a new Project called Visual Designer that is a test project of mine. I get tired of the same Windows Look & Feel that all of the editors currently have, and I wanted something more disconnected from a standard windows application, and so enter Visual Designer.

Visual Designer makes heavy use of  the Managed Scripting engine I wrote and released. It uses it to instance objects and access their properties in a visual way. However the current design is just for testing purposes, it’s working out pretty nicely. I’m planning on the engine being script based, and having the IDE generate Hybrid Scripts that the script engines hybrid compiler will use. It will allow me to generate C# scripts that can be stored and loaded allowing for it’s objects to be edited once again.

One last note that I want to make is that I’m looking into using the WheelMud engine as the Designers engine source instead of developing my own. It appears to be a solid engine already miles ahead of something I would write, and seems pretty flexible.

Saturday, November 14, 2009

Slow release

Managed Scripting has been out for three days now but has only been downloaded 10 times. That's a little dissapointing considering I spent a solid year learning and developing it. My iRingtones was downloaded nearly 100 times within it's first three days, and I did less promoting on it. Perhaps I should spend more time promoting my ringtone app rather than my script engine.

- Posted from my iPhone

Thursday, November 12, 2009

Managed Scripting goes live!

Today marked the official release of Managed Scripting Beta 1, and with it comes support for source compiling, batch script compiling, runtime code generating, C# and Visual Basic language support along with the libraries needed to run it on both Windows and Linux PC’s.

Beta 1 was supposed to have XNA support but that will be included in a future update, as there where a few more kinks to work out of it, but for the most part that feature is functioning and should be released soon in an update. Go grab your copy and get yourself a script engine implemented into your project today! Tags: ,,,,

Wednesday, November 11, 2009

IRingtones 1.1 changes

I will begin working on v1.1of iRingtones later this week adding a batch conversion for converting multiple files at once, then I will be changing the iTunes library location to accept Library.XML file instead of the Music Library folder. I will also look into possibly converting mp3's into wav files for users that want to convert mp3's. I'm not sure I see the point of this yet, as users have to load the mp3 into an audio editing program to edit their mp3 and then re-export it as mp3. Exporting it as WAV doesn't add any additional steps to the process.

- Posted from my iPhone

IRingtones hits 100+ downloads

That number is more than what I was expecting when I initially put it out there on Codeplex. I'm also surprised that iRingtones has been mentioned in 4 different blog posts so far. Fairly good for me doing no advertising really, 100+ downloads and 4 blog mentions in 4 days.

- Posted from my iPhone

Monday, November 9, 2009

iRingtones is getting recognized!

Sandip over at blogsdna wrote a blog regarding the iRingtones app I uploaded to Codeplex this weekend. I’ve noticed between the tweets regarding it and now his blog, that my downloads have jumped. Pretty pleased with it. You can read his blog on the app HERE

Room Designer & Zone Builder thoughts

I've spent a good chunk of time thinking on a different way to develop the Room & Zone editors, and I think I've figured out the best method for it.

When you break the two editors down, it's actually fairly easy to come up with a design plan. The Room Editor is just that, a Room Editor. Build rooms and add the content needed to fill the room. Does it have doors? Add doors if needed. Building a room shouldn't consist of linking two rooms together. That's what the Zone Editor should do, as it is a collection of linked rooms.

I've decided that the Room editor will let users add doorways for specific directions, then let the zone editor connect the doorways to other rooms.
With this approach I can now adjust my Room Editor UI to allow for tabbed editing, letting users create multiple rooms at once, similar to how Visual Studio works.

The Zone Editor will allow you to link rooms together by connecting them the each rooms available doorway.

- Posted from my iPhone

Sunday, November 8, 2009

Mobile Signatures

I'm not sure what other peoples takes on the topic is, but I like attaching a signature with the content I send/post from my iPhone. A lot of the apps you download automatically attach a signature for you, although I tend to edit the signature to remove any app references from it unless I really like that app. I try to keep a generic Sent from my iPhone signature.

Why do it though? A lot of us have socialized our lives via outputs such as Facebook and Twitter, everyone knows what everyone else is doing, where they're at and now they can know what app they're using to do their socializing. I don't really see it as a bad thing, as I use signatures on all of my out going mail, blogs and other methods of communication that supports it, such as auto-reply features of an MSN client. Message from iPhone. I'm AFK and will reply shortly.

Brings me back to my question. Why should I do it? Personally, people are accustomed to instant communication or fast responses. Attaching a signature to an email showing I'm on my phone is a way of showing the mail recipient my response will/can be delayed due to me being mobile. An indication I'm not at my desk and probably busy. It's another form of AFK that I can use. There's other reasons I use it too, and I'll use my blog as an example. Typing lengthy blog post can be difficult on a mobile platform. No spell checking. No grammer checking. No URL checking. Attaching a mobile signature to the post will inform people that hey I was mobile so it's goin to have typos

Do I like using signatures? Yes. Is it a good idea to? I'll leave that up to each individual to decide.

- Posted from my iPhone


I’m pretty happy with iRingtones, it got a whole 9 downloads this weekend! While that’s not a large number, it’s still better than what I was expecting. I need to look into spreading the word more about the release of it. A free iPhone ringtone converter! More people need to know about it so they’re not wasting money buying applications to do it when they don’t really need to.

Re-thinking the Room Designer

In my quest to keep things simple, I’m beginning to wonder if I am taking to correct approach with the Room Designer. Currently it’s UI is designed to allow for dragging and dropping existing rooms onto the current rooms doors, allowing them to be instantly linked together. That feature works out pretty nicely, but now I’ll have to include a list of all the realms, zones and rooms within the room designer. It’s not that big of a deal to add, it would really just take a couple minutes to implement, but I was trying to keep objects created with each editor separate from other objects unless they are parent of another object. An example would be that the Room designer can’t touch anything related to Zones, but Zones can display and load various details about the Rooms it contains. With how the room UI is designed at the moment it means the Room editor will need to interact with the Zones and Realms.

Should I just build a Room Designer, then allow the Zone edit to link rooms together? Or let the Room Designer handle it… I’m not to sure yet.

Saturday, November 7, 2009

iRingtones goes live

I went ahead and opened sourced the iPhone ringtones project I had been working on for awhile. It’s been posted on CodePlex and can be seen HERE Tags: ,,

Friday, November 6, 2009

Currency Editor & additional changes

Well I actually got the Currency editor up and running rather quickly tonight. Since Currencies are a rather minor element to a game, I decided to just rely completely on a PropertyGrid to get the job done, and it worked out pretty well.

Once the Currency Editor was completed I went back and began doing some cleaning up. When I was working on the HUB I had it searching the Project Managers directory instead of every directory within the solution for .exe files that could be editor applications. At the time I only had the 1 editor (Project Manager) and so I really didn’t worry about it. I spent about 30 minutes tonight revising the code and getting it working properly and I’m pretty pleased with it. I also added some exception handling tonight to the HUB incase it tries to start an editor app that does not exist for some reason.

I moved the Environments namespace into an Objects namespace so now it reads as Objects.Environments. I also created a BaseObject class that will contain basic information that all objects in the game will share, such as a Name & Description. I then changed the Realm, Zone and Room classes to inherit from BaseObject.

With the Currency Editor already completed, I think I will spend some time tomorrow if I can working on the Realm Builder. I need to take the time and think out how it needs to look visually, as it’s not going to be a very detailed editor. Realms are simply put, a container that holds Zones for organizing purposes only, so nothing fancy will be needed.

So far so good, the Mud Designer is really coming along pretty well.

File Type Backend, Project Site & Updates

I’ve had a busy night tonight working on the Mud Designer, and I’m not quiet sure where to start. I think I’ll start with the projects new site over at CodePlex. It’s been setup and is running pretty nice. I got the home page configured, setup the Discussions and Documentation tabs and finally created a 'Help Wanted’ ad, which it must be a new feature to CodePlex as I don’t remember it having that back when I was working on the Mud Creator. I requested help with the Networking side of the designer along with assistance in writing the documentation for the project. I also noted under the Documentation the requirements needed for downloading the source and compiling it.

Next up is the File Type Backend, which is a pretty clever idea that I ran across while browsing the web tonight. The engine contains an XmlSerialization class that saved and loaded all of the designers files to XML. Nice right? What happens though, if I wanted to offer SQL support? How about adding support for a scripting language? Saving and Loading of the files will need to be changed, and it will need to be changed across every editor within the designer. That would be a pretty big pain to mess with, and as I’ve mentioned several times already, I’m wanting to keep the code for the designer and its editors simple and clean. So how do I fix this situation? I created a backend class called FileSystem. The editors now call Save and Load from the FileSystem class at which point the FileSystem checks to see what File Type the project is using, XML, SQL ect., and calls the class necessary for saving it in that file type. For now I only have support for XML serialization, but if I offer SQL the editors wont know any different. They’ll continue to call FileSystem.Save() and the FileSystem class will handle switching between XmlSerialization.Save and SQLData.Save. One location to make the adjustments and that' saves a lot of headache.

I’ve done a lot of work to the Project Manager and the MUD Engine and it’s starting to make some headway. One of the most notable changes would be the finishing of the Project Manager and changing the Zone class to inherit from Realm and Rooms to now inherit from Zones. This allows me to create default properties such as Name and Description within the Realm class, and all Zones and Rooms will have the same property. No re-duplicate coding required.

What’s next, I guess I can begin working on the currency editor, and better refining how the engine will handle the currency. Tags: ,,

Realm & Zone thoughts

Realms won't be to hard to program really as they're just acting as a container for Zones. A way of breaking up Zones into groups and make it easier to find a Zone when your project contains thousands of them. Realms will have a few Properties but not many, I think they'll only need a Name & Description Property, along with a List to hold a collection of Zones.

Zones won't really be much more difficult than the Realms, they will need to hold a large number of Rooms, and have some default settings that can be used on all rooms when first created. Things such as Always Dark, Always Light, Cycle Day/Night, Default Smell/See/Hear/Feel descriptions, a SafetyZone option that can ensure the player is never attacked by monsters and a collection of NPCs and Monsters that can roam the Zone.

I'm still debating on the NPC collection, I'm wondering if that should be something setup within the NPC editor instead of assign the NPC to the Zone, this way one NPC isn't placed in multiple Zones by mistake. Monsters is acceptable because users can fight the same monster across multiple Zones, but typically you won't see the same NPC in multiple Zones. While assigning an NPC to a Zone during NPC creation prevents duplicate placement within the world, it will require the engine to scan every NPC in the game during startup to place the NPC as needed. It would be faster to just load the NPC list from the Zone, and load only the NPCs needed. Leaving it to the developers responsibility to ensure duplicate NPCs aren't placed in their world, so in the end i'll probably end up having the Zone editor add NPCs to the environment.
Now that Im thinking about it, there could be thousands of NPCs in a game, I'll need to work on either a search feature or a grouping feature to reduce the amount of time spent searching through NPCs

-- Posted from my iPhone

Setting changes doesn't need code!

This was something I failed to mention in my previous blog, and that is the nice fact that PropertyGrids allow the editors to change properties and not need any code to do it. When I was using text boxes in the I i initial source code upload I had to write code to handle the text being changed and update the classes property. Using a PropertyGrid removed the need to write code updating class properties. It's handled by the Grid for me. This means a simpler approach and less code. Easier to maintain.

-- Posted from my iPhone

Thoughts on Scripts & design conepts

I've been putting a lot of thought into the idea of using my Managed Scripting engine with the Mud Designer. It would be a nice feature to have so MUD developers can extend on the engine, but I'm starting to not see the point in it. It's open source. Developers have unrestricted access to the toolkit source and so thus don't really need a scripting engine.
Another reason i think I will avoid it is due to the added level of complexity with coding the designer. The whole point of the re-write is to build the designer and the engine using clean simple code that can be easily read and modified when needed. Generating code during runtime within the editors for script engine compiling would create a mess internally.

I'm quiet pleased with the progress I made last night. The Project Manager started out with one design and ended the night with a different approach. The initial decision was to use text boxes for all of the project settings, but I was worried that would clutter the UI up and make it harder to add additional features in the future without re-organizing the UI to fit new things in. I decided instead to use a PropertyGrid control, which allows me to freely add or remove project setting options from within the Project Information class and not have to touch the UI to add the new feature. This was a feature used heavily in the Mud Creator, however I'm trying to avoid having the editors rely only on PropertyGrids. This time around the Grids will be used to help keep things clean, but will not be the only method used to create game content. Using it as an aid for various options rather than relying on it for everything is nice, as now I can build editors to generate game content in an easier manor than propertygrids allowed.
I'm going to spend this afternoon doing some thinking on how I want the Realms, Zones and Rooms to be designed internally and how they will interact with eachother so I can better plan my UI designs when I'm ready.

-- Posted from my iPhone

Thursday, November 5, 2009

A night of coding

Spent a good chunk of tonight working on the re-design of the Mud Creator, and decided I am going to re-name the toolkit while I’m at it. It’s now called the Mud Designer, and I have created the Editor HUB and began work on the Project Manager. The Project Manager saves the project settings when the editor is closed, and loads them when the app is launched.

All of the apps are being wrote to be independent of each other, with a lot of care being taken with the HUB so that it is not a required component to run the other editors. Each editor can be launched on its own without any adverse effects on the project, since they are all kept separate from each other.

This time around I am focusing on reducing the amount of code needed to run the editors. Searching for ways to re-use code, so I can prevent a lot of re-work. The Mud Creator was riddled with duplicate code all over the place and it was clear that the project was a mess when I opened the designer and began scanning over 3,000 lines of code. I’m hoping with splitting the project up into multiple independent editors like I am, the source files will remain fairly small and light which will make it easier to maintain and update.

I also managed to get the project uploaded to a new CodePlex site tonight. It can be viewed HERE.

The source code for the project has been uploaded to the Codeplex SVN and since I uploaded it tonight I’ve commited 2 additional versions of it with modifications and bug fixes. I’m hoping to spend this weekend fleshing out the project manager and get the currency editor up and running, then it’s off to next week and the development of the Realm Builder, Zone Editor and Room Designer, all of which will take a few weeks to complete and will require some thought on how I want to build the UI for these apps.

The MUD Tool Kit HOME app

The MUD Creator tool kit is going to feature a HOME application that can be launched. It will allow users to create a list of tasks that they need to complete with their MUDs and provide them with a proper workflow for how to build their MUDs. I will list all of the editors in the order that I feel would work best for creating your game, starting out at editor #1 and ending at edtor #14 and having the game ready to go.
The HOME won't offer any project specific options that can be edited, and won't tie into any of the tool kits tools so developers won't worry about an update to an editor breaking the HOME or a custom Room editor being used and breaking the work flow.
The task list will let developers create a list of tasks such as "Force the Elven Paladins to only start out in the Bekang Realm". It can serve as notes and reminders for the developer to make adjustments and changes. A possible log system might be put in place as well to monitor changes made to game objects and make note of the changes, developers can then scan the log and pull out what Ganges it would like to include in his/her release notes when they release a new version of their MUD.

-- Posted from my iPhone

Mud Creator Re-design. Revisited.

I have had several problems with getting the Mud Creator to commit to CodePlex's SVN over the last two weeks. It keeps erroring out and giving me a headache. It had been working fine for the last year or so, something happened that screwed up my repository and now I can't get it fixed. With that being said, it looks like a good time to sit back and re-look at how I want to design the engines tool kit. The re-design was already underway when this error occured, but I hadent really put much thought into it. I was flying blind. Today however, I took the time to sit down and right up how I felt the tool kit should be laid out.
I'm going to design the tool kit split into seperate programs. One program for designing rooms, another for creating skills ect.
I'll develop an application that will act as a HUB, displaying all of the editors that can be launched. I've jus spent about 30 minutes on the editor list and in what order they'll be laid out and came up with a decent list I think
1: Project Manager
2: Currency Editor
3: Race Builder
4: Class Editor
5: Realm Editor
6: Zone Builder
7: Room Designer
8: Equipment Builder
9: Item Designer
10: Skil Designer
11: Book Editor
12: NPC Manager
13: Quest Builder
14: Monster Creator

That's my basic list of editors for the moment, with the names and order of work-flow still pending. Most of the editors are self explaining as to what they're for, but I thought I'd clarify what the Zone and Realm editors will do.
A Realm can hold an unlimited number of Zones. Zones can hold an unlimited number of Rooms. Since rooms are what players traverse, you can think of them as a physical room. A zone could be a single house, a city street, an entire city/kingdom, a complete forest or what ever you want. A zone is how you will setup borders for the player. The player can easily find out what Zone they are in, and these can be used to inform the player as they move from city to city or something along those lines.
A Realm can be used how ever developers would like to use them, but the original intent was that they would act as a country or continent that contained several kingdoms/cities (Zones) that the player explored. This way a Race can be tied to starting out in a specific Realm, and each class for that race can have a seperate starting zone for the realm their race is tied to. Traveling outside of the realm into another realm can be done if the MUD developers allow it.
I'm planning on giving a brief overview of each editor over the next couple of weeks as I begin fleshing out the new design.

-- Posted from my iPhone

Wednesday, October 28, 2009

Ok, maybe this isn’t the best route…

I began implementing the Managed Scripting engine into the MUD Creator Tool Kit and found that I wasn’t thrilled with how it was going to work. While the engine provided a simple approach to creating objects, it wasn’t practical for what I needed, and thus I have reverted back to the previous version of the Mud Creator Tool Kit using the XML file formats. I have also opted out of allowing custom expandability as the engine and tool kit are open sourced, so this removes the constraints I had when I was previously working on the Pre-Alpha edition of the kit. The original UI will be re-implemented and the engine will be useable once again by the end of tonight.

MUD Creator redesign underway

I started Monday working on the re-write of the MUD Creator. I uploaded a new copy of the source to CodePlex SVN with all the source files deleted and slowly began commiting new files as I worked on them. The user interface will be re-designed from the ground up with the custom UI being trashed for a more traditional Windows UI. The editors will be seperated into seperate forms instead of having everything contained on a single form like the previous versions where. This should help make things a little easier to find and let me work on building a work flow through the menus.
I'll be spending today working on it, designing the UI and focusing on fleshing out a couple classes that I uploaded to SVN.

-- Posted from my iPhone

Apple Restored my iPhone

So i destroyed the screen on my iPhone the other night by dropping it face down on my driveway. I was expecting to pay $499 for a new one but was surprised when Apple told me my warrenty allowed me to buy one at $199. Still expensive but better than paying retail.
I really love how the iPhone works in regards to synchronizing. I went and bought my new phone last night, brought it home & plugged it into my laptop and once it was done restoring and syncing my phone was back to its old self. While it took almost two hours to do the restore and sync my data, it was worth the wait. No othe phone works so smoothly when it comes to restoring back ups.

Apple 1 everyone else 0

-- Posted from my iPhone

Sunday, October 25, 2009

Custom iPhone Ringtones. Make them Freely

I got tired of searching for free ways to take my existing music collection and create ringtones for my iPhone in a manor that did not cost me $19.99. There really isn’t that much involved in it, just cut up a song, and convert it to an AAC file that iPhones can play back. Seems simple right? Well I guess all the companies out there feel it’s a difficult thing to do, and so they charge you for the conversion process.

After doing some research I found that Nero offers a free set of command line based AAC tools for encoding WAV files into an AAC file. Sweet! Only thing I needed now was to cut up the song, which I can do easily with Audacity. Another free application.

What did I do? I wrote myself a quick little application called iPhoneRingtones that would use the AAC toolset and convert my WAV files exported from Audacity into AAC ringtones, rename the M4A filename to M4R (iPhone ringtone extension) and then copy the ringtone into the iTunes Ringtones folder, launch iTunes and add it to the iTunes library. It’s simple, quick and takes literally seconds to convert and add to the library.

I bundled the whole thing together in a zip file, including Audacity, the Nero AAC encoder Tools, and my iPhoneRingtones application. They can be downloaded HERE

The download includes instructions on setting it up and getting your music converted into an iPhone ringtone, for free! You can use MP3, OGG, AIF or WAV files to load into Audacity, cut the song up till you have what you want for a ringtone, and then EXPORT the song as a WAV file. Once exported run the iPhoneRingtones.exe application, browse to the neroAacEnc.exe which is found under the Encoder directory included in the downloaded ZIP file. Then you will need to select the directory of your iTunes Music Library. This MUST be the ‘iTunes Music’ folder. An example would be C:\Users\Scionwest\Music\iTunes\iTunes Music.

Once those two options have been set, click ‘Create Ringtone’ and select your WAV file. Once you have selected your WAV file, the app will launch the Nero Encoder and convert it into an iPhone ringtone, start iTunes, add it to your Ringtones library and tada! You can now select the ringtone from your iPhone Synchronize settings under the ringtones tab, and sync it.

One last note, I’ve found that ringtones longer than 30 seconds wont show up in the ringtones library. Keep your ringtones to 20~25 seconds so that iTunes will make sure it’s placed inside your phones ringtones library.

Technorati Tags: ,,,

Amazon feeling the pressure

Acording to Slashdot, Amazon is prepping a Windows PC application that will allow windows users to read their Kindle books on their Windows PC, iPhones via Kindle for iPhone or the Kindle device.

This is an interesting twist, and something that I’ve felt Amazon has needed to do for quiet some time. Major players such as Google, Sony and Barnes & Noble are competing in the eBook market and Amazon I’m sure will be risking costumers if they do not follow suit and provide a desktop application for reading eBooks.

Personally for the cost of the Barnes & Noble Nook, Sony eReader or Amazon’s Kindle people can purchase an iPod Touch for less money, and download for free the Kindle of iPhone and download the Barnes & Noble for iPhone, both of which will read the entire library of Google Bookes, Barnes & Noble books and any other website that supports the widely popular ePub format.

Amazon is going to see some serious competition from Sony, Barnes & Noble and Google, and will have to offer ePub as a supported format on their Kindle device if they want to compete.

Follow me!

I have two different twitter accounts I have setup, one for random tweets about what I’m doing, and another for the Managed Scripting Engine. Come follow my tweets!

Scionwest Tweets

Managed Scripting Tweets

Technorati Tags: ,

Saturday, October 24, 2009

Blogging\Tweeting from anyplace.

I spent the night setting up my laptop and iPhone so I can blog and tweet from them both while I'm at home or out and about doing things. For tweeting I have three different twitter apps on my iphone but found that Tweet Deck works best on the phone.

They have Tweet Deck iPhone and Tweet Deck PC, and between the two I am able to update my twitter account, and monitor the people I follow without much of a haste. Both applications are free to download and use which is a plus.

For RSS reading, I used Google Reader to act as a hub, allowing me to store all my RSS feeds there, then I downloaded RSS Bandit for Windows and monitor my feeds from my desktop as RSS Bandit allows for Google Reader synchronizing. For the iPhone I downloaded RSS which synchronizes with Google Reader as well. Now all of my RSS readers are synced together and I have all my basis covered. Like my Twitter apps, both RSS Bandit and RSS are free applications to download and use.

For blogging I use Windows Live Writer to post blogs from my PC, and I use BlogPress to post blogs from my iPhone. While Windows Live Writer is a free download provided by Microsoft, BlogPress costs $2.99. It’s well worth the cost, and there is a free version available HERE to try prior to buying.

Technorati Tags: ,,,,

Favorite 5 iPhone/iPod Touch Applications

Technorati Tags:

I currently own 243 iPhone applications, which caught me off guard a little bit when I was reviewing the apps within iTunes tonight. After realizing this, I decided to count the number of apps I actually have installed on the phone. I counted 6 pages, and after doing my math was surprised that the number came to 85. You don’t realize that there’s that many applications installed on your phone until you actually do the math. It’s quiet impressive that the phone runs so smooth with 85 applications sitting on it. Makes me glad that Apple restricts the phone to running only one app at a time. I could see the phone easily becoming lagged down by several memory intense applications running in the background, such as an RSS reader, Tweeter client and streaming radio. The phone would crawl to a stop.

With that having been said I decided I was going to look over my list of installed iPhone apps and plug a couple of them. Five to be exact.

  1. MemoryInfo
    This app works great for quickly clearing the phones memory, I use it several times a day to clear it up and it greatly increases the speed and response time of the phone. As a side benefit it also shows the battery charge remaining and its current state.
  2. Pocket Informant
    For those of you that have a Franklin Day Planner this app works great for letting me create calendar events, todo tasks and it syncs with Google Calendar which makes it even better. I purchased it while it was on sale, but at $12.99 it’s still a pretty good deal considering a Franklin Day Planner will run you roughly $60. They do have a LITE version that’s free, you can give it a test drive before buying it HERE
  3. Pocket Tunes
    I spent the last year waiting for a solid app to come along that let me listen to streaming music in the background while I continue to use my phone for other things, such as sending a text message or reading my RSS feeds. It took 8 months, before I got Pocket Tunes and I have loved every minute of it. It is a little pricey at $6.99, but having the ability to listen to hours of streaming radio from 16,000+ radio stations is the best. Pocket Tunes can only play MP3 or AAC+ content in the background, so not all of the stations in Pocket Tunes can do it, as some are WMA, but for the most part, the stations that I’ve found and enjoyed listening to have all been MP3 or AAC+
  4. Shazam
    Ever been in the car listening to the radio and wanted to know who sings the song that’s currently playing? Shazam takes care of that. Hold the phone against your speaker and it listens and tells you who the artist is, what song is playing, what album its from and even provides links to buy the song in iTunes, watch on YouTube or read the lyrics. It works very nicely.
  5. RSSRunner
    This app works great as a stand alone iPhone rss aggregator, allowing users to search for feeds, import Google Reader feeds and import OPML stored files. It’s free and runs quickly, however if you are wanting to synchronize between Google Reader online, your desktop and iPhone the I prefer using RSS which is also free.

ATT is in trouble

AT&T Mobility CEO Ralph de la Vega mentioned in a conference call earlier this week with analysts that he believes AT&T will continue growing strongly without the iPhone when the exclusivity of it ends sometime in the future.
A statement like this comes as a bit of a surprise after seeing the quarterly numbers from AT&T this past week. 4.3 million new phones were activated on the network -- 3.2 million of which were iPhones. If AT&T thinks it will continue growing at its current rate, it will need to keep dreaming, without the iPhone, the companies growth will be reduced considerably.

Thursday, October 22, 2009

Mud Creator Beta 1

The Mud Creator Beta 1 is currently in the planning stages, with a revised user interface planned, an improved in-editor testing setup, a re-write of the way objects will be created and stored and a scripting engine implemented.

Currently the engine supports either hard-coding the objects within the developers game source code, or pre-creating the objects and serializing them out to XML files that the engine can load during runtime and use, similar to how the Tool Kit handles it.

Mud Creator Tool Kit utilized the XML serialization/de-serialization features of the engine, storing all of the games objects as XML files. It worked out very well, but I have since developed a managed scripting engine that supports C# and VB syntax and I’ve decided to implement it into the Mud Creator engine, and I’m considering re-writing the internals of the Tool Kit to support it as well. I’m not sure if this is a good route to go or not, and will need to do some looking into it.

Beta 1 will introduce a scripting engine that will let developers create their game objects via scripts, that the engine will load during runtime. The scripts can be stored server side while the client just receives the text needed to inform them of their current location and surroundings preventing any object modifications. If the project is a single player/local only game, then the scripts can be compiled into a standalone .dll file in order to prevent the end users from having access to developers scripts.

Finally the Tool Kit will be overhauled a little bit as well, working on improving the user interface and adding all of the missing elements. Development on the Tool Kit will resume once the engine has been updated with the changes I have scheduled, and these changes can’t take place until the Managed Scripting engine is updated to support the features I need such as dynamic re-compiling of scripts during an applications lifetime.

Microsoft, Apple & Google

It's pretty unclear when it comes to the future of these three companies, regarding what they'll be doing 20 years from now. In the mobile world, Google has the Android phone and an open development model that will ensure a nice large sum of applications being available across all of the handsets Android powers, but Googles android reminds me a lot of how Linux is. Its open source, available on many devices, but missing the glitz that the iPhone and Apple have succeeded in obtaining. Android will confuse people as they will ask cell phone sales personel, "why do you carry 4 different Android phones? Don't they all do the same?" The answer to that will be a stern no. Each manufacture will design the interface and apps to suite what they feel should be on the phone. So Sussies Android based phone will not have the same functionality as Bobbies. However, Alex and Jason's iPhones will work the same and come with the exact same apps.
What about Microsoft and its Windows Mobile platform? It's a dieing OS, and is badly in need of a replacement. Microsoft needs to abandon the platform in favor of something more user friendly. Something like a Zune based phone. Something glitzy and fast. With the .Net framework and XNA developers will have an easy way of developing cross platform applications and games for Windows 7 and Zune devices. Apples iPhone SDK requires a OS X based system to develop on while both Android and Windows Zune can be developed on Windows, Mac and Linux (Zune via Mono.NET)
Windows is loosing ground in the mobile industry, with Apple, Google and RIM pushing the boundries with each new handset released. Microsoft has taken a standard Windows approach to their mobile platform without taking into consideration the things people really need in a smartphone. They supply an OS that's 5 years old with a face lift.
In 5 years i bet Apple will still be on top, but google and its android will be right there with them, and Microsoft will be considering if they should pull out or trash Mobile for a new approach. If they want to compete, a Zune phone would be the way to go.

Only time will tell.

-- Posted from my iPhone

Saturday, October 17, 2009

Documentation Pains

As i wrap up my first release of Managed Scripting i find myself loathing the task of writing its documentation. Writing good documentation is crucial for an programming library, even more so with something as complex as deep as Managed Scripting.
Im not a good documentation writer, and so working on this part of the project is really time consuming due to the fact that i keep putting it off, and re-working it.
I think if i just sat down for a solid weekend, i coukd get it all wrote, but it's not something i'm looking forward to.

-- Posted from my iPhone

Thursday, October 15, 2009

Smartphone Revolution

Smartphones are becoming increasingly popular with consumers, largely in thanks to Apple and its iPhone.
As consumers see more and more people being able to keep track of their lifes with smartphones, using the calanders, keeping track of stocks, GPS and other features that tend to come standard on a smartphone, they want to use it too.
The iPhone app store has pushed Palm and Microsoft to both open up an App Store like environment for their devices as well, and allowing their clients to have access to 3rd party apps that can extend their smartphones to even new levels of helpfulness.
I wonder if the symbian based phones will start to loose market share soon and everyone will be using a smartphone of some kind.

-- Posted from my iPhone

Wednesday, October 14, 2009

Small Bumps

As I continued working on the game getting a project going from scratch I realized that I had stripped out the games in-game editor, and would not be able to create the environments from within the game. This was not the ideal solution and so I attempted to get the creator directory added back into my project, but in a way that would allow me to toggle it on or off via a global variable. This way I can simply ship the end product with the creator directory missing and not allow support for modifying the games environments.

I had a problem with the engine crashing when it tried to load the creators UI elements, and I realized that it was probably looking for the customProfiles.cs script that was within the demonstration folders that I had removed, so I created a copy of them and placed them within my projects directory structure, executed them and had the engine go ahead and start loading the UI elements.

Sadly it didn’t get far, it still crashes but further down the line, when it tries to load the Lighting UI elements. I’m going to spend some time tomorrow looking at what files I might be missing to cause this too. Once I get the creator up and running, my User Interface design can begin.

-- Posted from my iPhone

Tuesday, October 13, 2009

New Torque Game Engine Project

I've had the Torque Game Engine for a couple years now, and have messed around with it for quiet awhile. I spent the last couple of days thinking about how I would build an RPG game using it, and decided I could give it a try and see what happens. Considering I have the Arcane FX pack already, my skill effects will be easily created, all I need to do is decide on how I want the gameplay to be designed.

I spent the first part of today getting everything up to date, downloading the latest version of the engine and the pack, and also checking out some of the existing content packs at the garage games website. I found two of them that I will start putting some money back for. The Cirrus Sky pack and the Plastic Tweaker Tool for creating Datablocks on the fly with a gui driven toolset.

Next thing I did was setup my directory structure for the project. I will be using all of my own scripts for this project, removing all of the pre-scripted Garage Games content. That meant that the Common folder, the arcane.fx folder, demo folder, show folder, creator folder and the starter/tutorial folders had to go. Once the structure was created I loaded the engine source up in Visual C++ 2008 and adjusted the engine so that the main.cs file could be renamed to game.dat and loaded with that filename & extension instead. I recompiled the engine, and renamed the file and everything ran smooth.

Finally I created a startup.cs script that contained the code needed to load the games preferences, create the canvas and initialize the audio. The game.dat file which will be the only non-compiled file for the project will be kept with the least amount of code in it possible. The file looks like the following:

if(exec("game/startup.cs") != true)
error("Error: Unable to luanch game, content missing.");

The startup.cs file will obviously be a compiled .dso when the game is distributed, so no one will be able to access its contents, and the onStart() is a function within the startup.cs script. This keeps the unprotected code to a minimum, allowing me to hide the remaining startup code within a compiled .dso file.

So now I have myself a blank canvas that starts up, I now need to look into setting up the UI Profiles, and begin creating the startup UI.

-- Posted from my iPhone