Thursday, October 22, 2009

Community

Welcome to the CPU Dreams blog. I start this blog to share my experiences as an indie game developer, to share resources with other members of the gaming community, and to share information on CPU Dreams first game, "Wisp". This summer I began my dream of becoming an independent game developer by creating CPU Dreams. My first project, the strategy game Wisp, will use the Unity engine. Even though this is my first time working as a game developer, I have over a decade's worth of experience as a professional software developer. Until now, I have kept my game development a hobby. All the horror stories permeating the game industry kept me away from pursuing my true passion. In recent years, the industry has changed, and there are new and exciting opportunities for small independent studios. Seeing this window of opportunity open, and not knowing when I would get a better chance, I took a leap of faith to start my dream. I know I still have a long road ahead of me, but I have no regrets, and I'm enjoying every minute of my new calling.

In fact, I've been enjoying programming in Unity so much that it is difficult to pull myself away from it, even for a little bit, to start this blog. Without Unity, I don't think working full time on Wisp would be possilbe. The Unity community is equally helpful and I want to give something back by sharing code that others in the community might find useful.

I just posted my MessageRouter module to the Unity Community Wiki. MessageRouter is a subscription based messaging/event system that provides an efficient method for broadcasting game events to interested parties while maintaining loose coupling. There are several other messaging/event systems in the wiki but this implementation has several features not available in the other implementations which some may find useful. I picked this module because it was generic and easy to extract from the rest of my game's specific code. I plan on extracting and sharing as much as I can. I have several other modules already in mind (dolly-zoom component, interpolation module, and a message timeline) and hope to contribute them soon.

Back in September I attended GDC Austin for the first time. I didn't know exactly what to expect, but wanted to meet new people in the community so that I wouldn't feel like that much of an outsider. I had a great time and met many indie developers that I always admired. I was also fortunate enough to meet fellow Unity users and meet some of my heroes at Unity Technologies :D. Meeting just a small part of the Unity community was so wonderful that it made up my mind to go to Unite conference. If you are going, I hope to see you there next week =)

7 comments:

Anonymous said...

I hope it gets working well. ;)

Fernando Zapata said...

Thanks anon =) It's good to get my first comment ever ;)

Anonymous said...

Tried your script. Looks good so far. One piece seems to be missing though.

Unknown identifier: 'DeliveryStage'

Fernando Zapata said...

Thanks :). Sorry about that it looks like I missed an enum when adding the code to the wiki. I've updated the wiki code to include the missing enum. Let me know if your run into any other problems.

This is the enum that was missing from MessageRouter.js. It has been added to the wiki.

/**
* A message can be delivered during the following stages of the Unity
* game loop.
*/
enum DeliveryStage {
Immediate, // Send message right away regardless of current stage
FixedUpdate, // Send message during earliest possible FixedUpdate
Update, // Send message during earliest possible Update
LateUpdate, // Send message during earliest possible LateUpdate
EndOfFrame // Send message during earliest possible EndOfFrame
}

Anonymous said...

Do you have a copy in C# ? If not I will try and convert it.

Fernando Zapata said...

Unfortunately no, but it should be pretty straight forward to convert. Let me know if you run into any problems.

Fernando Zapata said...

You can also put the JavaScript source in a Plugins folder in your Unity Project hierarchy. This should allow you to use the JavaScript classes from your C# code.

Post a Comment