20081127

One year later...

My last post to this blog was over one year ago.

At that time, I made the decision to drop TorqueX (and therefore 2DMMO) and focus on game development using XNA directly.

So my friends... was it worth it?

Well, judging by the games released using TorqueX, I'd say yes.

My team (still 6 guys total, including me) learned a tremendous amount over the last year, and have released our first commercial game (Biology Battle) to the XBox360 last week. Our game is similar to Geometry Wars or others in the "8 stick" genre, and is highly rated.


If you'd like to continue to follow my work, check out my new blog: http://blogs.novaleaf.com There I talk about all things game development, and you'll hear from a few other people here at novaleaf too.

And you can check out my game site!: http://games.novaleaf.com

If I ever get around to doing an MMO again, I'll start up this blog again though :)

20071008

Anyone here? what the hecks going on?

Ahh, I havent posted anything reciently. So what's up? the project dead?
Nope, not at all. I have 6 developers (including myself) and 1 artist working full time on game development.

It's just that the purpose of this blog, which was to fulfill a manditory posting requirement for the DreamGames contest I was (hint) is no longer a requirement.

See, I dropped out of the contest!
Why? Well honestly, it's because Torque(X), to put it midly, isnt the most "mature" piece of software on the planet. The requirement for the DreamGames contest is that you MUST use a game engine created by GarageGames, and because of certain inadiquacies with TorqueX, I have decided to abandon it, and focus development efforts directly using XNA.

It's too bad I cant compete in the contest, but honestly, the long-term benifits from using XNA instead of TorqueX make the switch justified.

Why no more TorqueX?
  • TorqueX is buggy
    • For example: sprites that jitter due to trivial floating point rounding, this was actually the crippling blow for my usage purposes.
  • TorqueX code is overly complex
    • TorqueX is c++ ported to c#, DirectX ported to XNA. It is functional, but the coding style and patterns used in the dev process show an extremely unorthodox coding convention (from a C# perspective). That, and the need to be "one engine to serve them all" means abstractions and redirections that are difficult to follow without a total understanding of the engine.
  • TorqueX is opaque in it's development process
    • It is extremely difficult to find out when TX, an immature engine, will be getting documentation, code, or sample updates. If it was mature, it requires these releases less frequently, but alas, it is not.
  • TorqueX has horrible documentation
    • I'll mention this later in the post when I talk about my experiences working with the GG crew directly, but documentation for what should be core features of the engine are entirely missing. For example, how do you sort sprites using the Y axis? The functionality is there, and it actually works great, but there is no documentation provided.
    • The same goes for virtually all aspects of the engine. Rich in functionality, but almost zero code documentation. This is actually my biggest complaint with TorqueX, and it is absolutely tragic that the project team (Clark and John especially) failed to realize it's importance.
  • TorqueX is shifting away from 2d already
    • I was excited about TorqueX because they were focusing on a nitche that is unfilled, meaning a state-of-the-art 2d game engine.
    • Unfortunatly, they have dropped active development/improvement of the 2d aspects of TorqueX, and have instead been working on 3d, making it compete directly with the already existing 3d engines, and XNA directly (via it's fairly complete sample and tutorial code)
Why XNA?
  • XNA is robust, fully featured, and well documented.
    • Basically it fixes most of the rants I had about torqueX above.
  • XNA has fantastic dev communities, sample code, tutorials
    • A year ago, TorqueX had much better documentation and samples than XNA. Unfortunatly now, XNA has caught up, and passed TorqueX by an order of magnitude. The documentation was one of the main reasons why I choose my company to use TorqueX in the first place, but now, it's limiting us. Time to change.
So, now that we have moved off of TorqueX, what are we doing? 2dMMO?

Since we are moving to XNA, a number of factors needed to be taken into account, and since XNA has much more community driven support for 3D game engines, we have decided to take the jump to 3D.

So, that means a few things, mostly it means building the technical competency in-house for 3d development.

Short term: Biology wars

So we are first starting with a geometry wars clone "Biology war".

This is written using 3d concepts, and will allow us to further incubate our technology.

Medium term: ThreadStorm
I'm writing a 3d engine we will use in-house, codenamed "ThreadStorm" (one guess what it's main principle is)

Long term: SpaceMMO
I'll post more info about this as time continues, but basically working off the technologies we are developing in the short and medium term, and turning it into something much bigger.

So in closing:
I will be setting up a blog system for my company (Novaleaf Software), so that my other devs can have a soapbox, and we will be focusing on providing more community materials of our own.
Thanks for your time, and I will be posting more on this blog, at minimum, to tell you the location of my new blog at novaleaf :)

20070826

one more week of idling...

still alive here at Novaleaf (my software company)

in regards to the 2dmmo project, things will be quiet another week or two weeks. After that, I have 2 more developers starting, which will bring the "game dev" team up to 5 people total.

In the meantime, I'll be focusing on finishing some contract work, and helping some of our newest devs ramp up on XNA and C#.

So, expect another week of quiet, and then a total reformulation of plans to take in a much bigger (but less experienced) team.

happy deving people!

20070814

Ahh, to begin anew....

So, lots of stuff going on... where to start? well, lets start with starting over!

So, I have amassed a pretty impressive technology base for server operations (MMO speaking).

However, as I'm now having to work on some contract work, I've spent the last 1.5 weeks hiring developers and artists. So far, I've done pretty good on the developer front. I've hired two developers who will start (full time) September 1st, and the other two game developers I've hired (a few months ago) are going to be moving over to my project next week. So that will give me 4 devs working on games full time.... which unfortunatly doesnt include me. So, since I am not going to be able to be a direct contributor, especially since I have a fairly complex framework partially completed, I think I'm going to have to make good on my hint that I'll be re-scoping the project, into some kind of single player extravaganza. Over the next few weeks (while we wait for the 2 new hires) I am going to have my 2 current devs help out with the contract work, and start exploring different game ideas, probably through a lot of play testing, but reading various books I have purchased from amazon.

Once sept 1st comes, I'll be doing a week or so of game design/producer brainstorming with the team, and come up with a 6 month project that will be the "new and supposedly improved" entry into the dream games contest. I will not speculate further on what that idea might be, as I dont want to further bias my devs who might be reading this :)

Okie... so more news later of course!

ciao

-J

20070730

how does a 1 person team deal with member churn?

Hi All,

lots of stuff happened over the last week.......

First, a summary:
So, I've been working on 2dMmo (a client-server simulation with TorqueX as the client visualization engine) for about 3 months now. During that time, I have been actively prototyping the server side, and have a good idea on how it should be setup architecturally to support at least a few clients (no stress testing done yet). However I haven't had time (me being a 1 man show) to do much on integrating the client visualization yet. I started to do so a week ago, BUT....

company focus
To back up a little bit first, the company I started (Novaleaf Software) here in Thailand is focused on two areas, Entertainment (XNA game development), and Enterprise. The entertainment part is 3 developers at the moment, myself working on this nebulous "long term plan", and 2 junior game devs working on prototyping short-term projects (puzzle, etc). That's good, and this is honestly what my long term vision is for the corporation.. entertainment focused.

However, a short-term hedge was to also attempt to position Novaleaf as an outsourcing provider. To that effect, we have been pretty successful, landing a web app contract, tripling the company size, and changing our forecasted break even point from 4 years to 3 months.

Sounds rosy (for the company), but unfortunately for me (speaking as a game dev) we are doing a bit too well on the outsourcing, because now the customer wants us to assemble a team to create a full client app, which will require my direct management. Granted, it lets us double our income, and double the enterprise team yet-again, but what time will that leave me for game dev?

That brings me to the important fact that we all know, but still find so elusive:

running a business is about management, not about implementation

That might sound weird, but (in my opinion) very true. To focus on implementation is to micromanage. As a manager, or business owner, it's not the product's implementation that you need to be concerned about. It's about managing the people, to ensure that THEY implement products effectively.


So to that regard, I've decided that this will be a great opportunity for me to put my actions where my mind is. Since I'll be busy with this new project, i'll be hiring 2 or 3 additional game developers to fill the role(s) I'll be vacating. Honestly, I wont be abstracting myself out to a purely administrative role, I'll still be doing architectural work (one of my strong suits), and otherwise taking more of a "game producer" type role. Hiring additional game devs also gives the ability of hiring people with focused areas of expertise in the areas we are weakest, that being mostly graphics programming.
In other game dev news, what i've been working on last week:
I took a 1 week break from actual coding to ramp up on game development theory, by reading such fine resources as "Designing virtual worlds" and "Chris Crawford on Game design". I did this because the further I get in the development of 2dMmo, the more and more game specific the functionality gets, and so i decided that before I go further, I should understand a bit about what should, or should not be attempted from an overall design perspective.

So for the (near) future:
  1. Hiring: I'm going to be spending the next few weeks hiring developers for both the Game Dev, and Client Dev teams
  2. Researching Tech: I'm going to look at various client app tech such as the new Acropolis framework.
    • and also researching/ramping up on WPF, Silverlight, and Expression Suite.
  3. Rescope M1 2dMmo game design: Since I wont be putting all my efforts on this, I need to scale back the M1 plans to be a subset of current requirements (lower complexity for devs still ramping up on the tech) In fact, I might end up modifying M1 to be a single player RPGish game. (as opposed to networked) ... and much confusion/chaos ensues :)
So in summary,
it'll be interesting to see how this project transitions to a "team" project, i will probably have to sacrifice my mid-term vision of MMO, and scavenge the tech I've been creating and turn it into something less for the time being, but hey, game dev is an iterative process, and who knows how it will turn out.. all depends on the talent :)

20070719

The silent one speaks!

if you get the hinted reference in the title, that's actually from the game world that's currently "the plan" for implementation after the M1 phase is done...

I havent posted in a week!
Wow this is the longest I've gone without a post, so what have I been doing? two things mainly:

Implement the server architecture

I've been slowly implementing the backend, i'm honestly probably about 20% done, and a lot of what i'm doing is "rough" (example: i created a visualization framework that is mostly just throw-away code, we need to be able to see the world on the server to make sure things are "correct")

Generally, the server is setup the same way as stated in my last post, though as i get around to implementing the core features, it undoubtedly changes a little bit. I'm planning on working the architecture up until I get a generic "MMO" architecture (including a rough client visualization) and then branch off into the game-logic specific implementation. This is so when I get new people working on the project, they can ramp up to speed with the much simpler "bare bones" logic before moving into the meat of the game implementation.

Reading up on MMO design

The other primary thing i've been working on, which honestly has been taking priority over implementation, is MMO design. As I've been implementing the server, I had a nagging feeling, something like "what will happen when we try to implement the game on top of all this? will we have to gut everything?" So i decided to read the most critically acclaimed book on MMO design "Designing Virtual Worlds" by Richard Bartle (who wrote the first MMO: MUD). I'm glad I decided to stop and think about the general concepts, because though i dont think it's really helping with my current architecture plans (i think i implement things in a fairly good way, and in a way that agrees with the concepts in the book) but this is very helpful, because while I architect, keeping in mind the issues that a "live MMO" will face are important.

Honestly, I'm tempted to flesh out the game logic right now, but I will hold that off as long as possible, not only to solidify the server architecture backend, but to encourage participation in the game design by new team members, when they come on board (delayed until Aug 20th)

In other news
the company I started, Novaleaf Software, now has 11 employees (10+1 intern) so we are growing a bit faster than I originally anticipated. This unfortunately has resulted in a shift of direction away from game development by some of the employees, but that's an acceptable cost, given the additional monetary inflow we are getting from their new focus (contracting) plus it gives me time to do more architecture work before tackling the game further.

In regards to the dream game project

This project (2dMmo) is complicated, I expected that I wouldn't have a full game done in the 1 year time frame for the contest, and honestly, the more I look at it, I probably am right. However, when additional team members come on for this (and I hire some game client developers) that might change, but right now, I'm seeing this as taking a good year before we even get a playable beta, (minus various tech demos done in the time prior) so I will definitely be running into the contest due date (April 1st) very hard.....

Until next time, have fun all... for me? it's work work work work work work work work work work work work........

20070710

implementing the architecture!

My architecture, so pretty... is being soiled by the crude factor of "implementation"

Well actually, the architecture is holding up pretty well so far, real well actually.

Warning: here lies web dev buzzwords....

Right now, I'm implementing the basic visualization architecture (having just finished the simulation implementation). I am using something similar to a "Model View Control" (MVC) design pattern... if you dont know what MVC is, well a lot of people throw that pattern around as quite a bit of a buzzword, but there really isnt any meat behind it. (it's kind of like someone who says "I know XML!" if you have dealt with XML before, you go "well duh" but if you have never seen or used XML before in code, you think "OMG this guy is teh mad skillz!" ... well the same with MVC. I wrote up my architecture, then went posting on places like gamedev.net and xna.com asking what a best practice would be, and MVC seems to be it.. thats great and all, but without knowing what MVC was, I had already implementing my architecture in the "MVC" way... it's basically just common sence from an architecture stand point.

For a more detailed (nebulous) definition of MVC, go check wikipedia. Lots of blah blah, but no meat. (including any of the references linked to the wiki article)

Art architecture

I have an idea of the kind of stylized art I want for the game, basically a vector graphics type look that gives a fairly close approximation to various manga cartoons you might have seen. Unfortunately, both TorqueX and XNA dont support vector graphics, so I defiantly wont be prototyping this art idea any time soon, i'll just keep it in the back of my mind, and suck it up with the usual rasterized scaled art we all expect in our non-flash games.

The contest

In other news, Dave @ dreamgames is going to do an IRC based summary of contest rankings at about 8am Friday BKK time. This will be interesting, because I basically have been ranting about vaporware for the last 3 months, and ironically, so has everyone else in this contest. so how you going to find out who's "in the lead"? well by seeing who pimps their vapor the best I suppose.. I guess we find out on Friday :)