Archive | October, 2005

Things I learned at Torque Boot Camp Day 3

— Variable name prefixes:
— m – member variable
— s – static member
— g – global variable
— BitRock is the/an installer GarageGames uses and comes highly recommended
— Manits comes recommended over bugzilla
— Forums make a good communication tool because it has history and persistence
— Make a Vision Statement for your games that is 2 or 3 pages because no one is going to read a 100 page Design Document. You also need flexibility to create a game that is fun to play, not one that meets the design document.
— Face to face communication is critical, put a mechanism in that gets your team together
— Dynamic Risk Assessment helps you determine what to focus your time and energy on. You should deal with the risky parts soon, because they are the things that could kill the project and you want to address those problems as fast/soon as possible
— Any process or method you use to manage your projects has to be flexible
— Commercial game makers have to work ungodly hours because they are trying to shoehorn in the stuff the game needs to be fun into the schedule. The schedule was created to get the feature list handed down from marketing and management implemented.
— ThinkTanks design doc was only 8 pages in the beginning
— It only got bigger to meet the needs of the team
— It stopped being updated once the game itself was the best reference
— had a Vision for Game Play
— had a Vision of the Target Audience
— I was so focused on what Joe Marushak was saying… that… uh… okay I was a wus and didn’t ask him what he meant by the term “Shell flow.” I think it is a way of referring an event driven program’s control flow?
— Consider a schedule using an “effort unit” or “work unit” and then adjust a unit’s time value as actual tasks time of completion are discovered.
— SCRUM
— It takes a longtime to build a good working relationship with a contractor
— Think what you target audience wants and then shoot lower, you are going to over estimate things
— 2% of users need support
— if you spend more than 30 minutes fixing a users problem you are losing money
— Good contractors are hard to find so don’t drive them away trying to low ball them
— What does a freelance artist need from you?
— Scope of work
— Defined beginning and end
— Chunk it up, defined list of tasks
— Include at least one revision or adjustment step/round
— Cost $35-80 a hour
— Around $3000 for a model
— Around $800 for a texture
— Concept art is $100-500 a drawing
— You need Social Security Numbers or Tax Identification numbers from your contractors for proper records
— Consulting/contracting isn’t a starting point for individuals trying to break into the industry
— study the engine’s parts, play with change its behavior
— turn out a few small game you can make fast, because the hardest part about making games is finishing
— create resources and/or fix bugs for the community, if you do good quality work someone will probably notice and approach you with work
— Connection Sequence Overview a step by step break down of what happens between the server and the client when networking
— clientCmdMissionStart() is where you would add code specific to your project
— There is a SimGroup called MissionCleanup and by adding objects to the group when you are done with them. It is a way to guarantee they get deleted at the end of a mission
— TorqueScript doesn’t have true array, the array looking syntax resolves to basic string manipulation
— T2D has Continuous Time Collision which means that collisions are swept through time, meaning it checks to ensure collisions a properly created when the speed of the objects makes it possible for the collision to occur between frames.

Things I learned at Torque Boot Camp Day 1

– Use Doxygen for your own code because one day you might have to hire someone to work with your stuff, or it might be months before you go back to that area of the code
– ShowTool Pro saves a lot of time debugging art asset problems and is worth its weight in gold, and it is written in Torque!
– DTS can have concave shapes
– DIF no concave shapes, this allows BPS trees which perform much faster, but cant fully animate
– LOD is based on pixel height not distance from camera
– Jill pack is a great learning tool
– Atlas is faster than TGE terrain engine
– All of TGE is in TSG, you arent losing any functionality and is probably the way to go for a new project these days
– You must use Mono sounds not Stereo when working with 3D emiters
– DNA replication for grass and tress eliminates server bandwidth problems, this way you can provide the effects without having to simulate every blade of grass and twig in the tree.
– Portals can help a lot with scene frame rate problems on interiors
– 4 is the average number of LOD
– TCL is a scripting language, stands for Tool Command Language
– Two useful console commands: Tree(), [object].Dump()
– The car metaphor: A game engine is like a car, it has all the parts and systems needed to start up, idle, turn, heat, cool etc. But needs a driver (the script) in order to truly be useful moving people around. The script is like the driver pressing the gas pedal and turning the steering wheel.
– SimObject provides smart referencing which is mucho help dealing with pointers, especially protection from stale pointers
– A SimObject maybe a member of only ONE SimGroup
– When a SimGroup is deleted so are all its members
– SimSet has an onDeleteNotify()
– There is a SimSetIterator
– A client is sent a Datablock ONCE when the mission starts this means that if you change a value in a Datablock after the mission has begun the client will never know about it
– Datablocks are like the Ten Commandments, once they got handed down that was that, no changes would propagate to all the copies
– Network scoping is more like the smelling than seeing because something can be in scope even when it is impossible to see
– Hysteresis is a hard word to explain
– There is voice code in Torque, but almost always it is better to use a third party tool like Team Speak
– A Ghost(ed) object is simply a model on the client of an object that the server has authority (ie control) over. The client has to sometimes predict what has happened since the last time it heard from the server, but once the client hears from the server again those predict values are throw out (ie changes to a Ghosted object do not affect the real object.)
– A tick is sent every 32 milliseconds
– 1000 milliseconds = 1 second
– Playing with un/pack can be easy to mess up because one-bit mistakes can bring the whole house down

Things I learned at Torque Boot Camp Day 2

– Successful people just fiddle with Torque for a good while before trying to make a game
– SceneObject bins help limit the amount of collision math/processing that is needed
– Portals are about DIF not DTS
– Gotcha using RenderTransform() instead of normal Transform()
– GameBase datablocks, processTick(), ControlObjects
– ShapeBase
… Assumes a 3D world
… TGE isnt totally thread safe
…… this is one of the improvements in TGS
…… Atlas and IRC needed multi-threading ability
… MountingImages
… Events are not the same as Call-Backs CallBacks are in process, meaning they are part of the Tick process, but Events are processed outside the tick loop
– Player
… ConsoleMethod( Player, MethodName, Const Char*, 3, 3, help string );
… Argv array of arguments, C++ args, not script arguments
… dSscanf d is for dynmaix; cross-platform consistency, but might act a little different than a standard lib function
… Con::executef purpose so C++ can call script, Dont block b/c its during a tick (most likely)
… Schedule 0 means next available moment (After tick and other sensitive work)
… SimEvent would be a good way to hook in a non-Torque application with TCP/IP

Things I learned at IGC Day 3

– There is a weird battle between “Attach rate” and “Conversion Rate” going on because the consoles are measuring their “downloadable games” by game sold per console instead of sales per download
– Apple claims “$500 million of 3rd Party sales (non-apple stuff).” (I think they meant a year but it wasnt explicitly said.)
– developer.apple.com
– Developing in Linux is so mean streets difficult, it is now is referred to as “Ghetto Linux”
– Dual core systems are the future, so learn more about multi-threading
– I have no idea what “vectorization” really means
– Maybe I should think about buying Apple stock, oh wait I need that money to make my game
– XCode is free
– Shark is the greatest dev tool ever (it is a profiler)
– Chris Crawford thinks about stuff that make my brain wish is was having a beer
– Interactive story telling is such a weird wild concept that I *fate intervenes and the narrator’s brain explodes*
– *destiny intervenes and some how the narrator’s brain was saved from exploding using a lame plot gimmick involving a time machine and coke bottle*
– Casual game will be a $2 billion space by 2008
– Top 10 Causal Game developers:
…spend $50,000 to $150,000
…Have 1 to 3 programmers
…Have 1 or 2 artists
…Develop a game in about 6 months
– Royalties are a fuzzy science:
… Developers get 20% to 40%
… Publisher get 10% to 25%
… Distribution services get 10% to 20%
… Portals get 40% to 60%
… Money appears and disappears between 80% to 145% (Attention, that was humor)
– Causal Games are sold at $19.95 to $24.95
– Some games sell better at $24.95 than at $19.95
– Causal Games sell 5000 to 20,000 units
– Try Media loves Torque
– There are (can be) 11 milestones for a Causal Game Title
… Pre-Production
… Prototype
… Code Complete
… Content Complete
… Alpha
… Friends and family beta
… Beta
… Soft Launch (putting a game out on a small portal and testing different changes effect on conversion rate)
… Launch
… Post-Launch Updates (some portals like Yahoo will take months to put up a patched version of your game if ever)
– Portals are dieing for games and it makes their life easier if you have 12-24 Prototypes to show them (I was kinda of confused on this point but what is meant is that Portal’s don’t have the staff to deal with lots of developers and would prefer a handful of developers with a lot of games)
– Get a Mentor
– There is a great book out there called “Refactoring”
– There is a great testing company called “Testing Testing 123” and they arent over priced
– Get feedback using “Survey Monkey” it is free
– A self-funded games royalty rates are considered low at 15% and high at 42%, average is 30-35%
– Tools youve gotta check-out: Jira, JotSpot and Ning

Things I learned at IGC Day 2

– Business cards are a must, even if you are just a hobbyist
– Microsoft uses interesting phrase when talking about software and computer games like vibrant ecosystems and digital lifestyle
– Xbox live has 2 million subscribers
– Microsoft predicts the PC Game markets expanding from $4 billion (2004) to $9 billion by 2009
– MSN Games players are 70% women
– Xbox 360 has out of the box support for downloadable games, even if they got the model without the hard drive, they call it Live Arcade
– Xbox has seen an average Conversation rate of 8 to 8.5% on its Live titles (this is just insane!) Peak titles doing 21-22% and low titles in the 4% area
– In Korea you can rent games by the hours
– A lot of cash flow in Asia comes from selling power-ups and providing servers not the actually selling of the game (because of piracy)
– It is important to know your story because a good strong story will be picked up by the press
– 21-6 spent two years working on it own game engine in the beginning
– Dont get wrapped up and excited by offer of money for your game, it happens a lot and usually doesnt go any where
– Lawyers are expensive and very important, dont hire one that charges less than $400 a hour
– Make a game you have passion for, consider yourself the target market, youll need the passion to get through the tough spots
– Watch out for feature creep
– A big part of game development is feature creep
– Game development will take Two times longer and three time more expensive than you expect
– Give yourself a couple years to finish a title
– Monster.com is actually a great place to find talent
– Cap royalties and have a vesting schedule for all projects
– Offer ownership in projects NOT the company
– Talk to outsides and get the input on your ideas and work, it is important to find out if what you are doing makes sense
– Usefully tools: IM, CVS, Phone, Conference Rooms in person, Secure forums, Team speak, Twiki, Subversion JotSpot, Dot Projects
– Communication is very very important for a team. Phone conversations and in person meeting help calmly resolve emotional issues

Things I learned at IGC Day 1

– TDN is in beta and open for SDK owners!
– Drink tickets are easier to negotiate for than expected
– Im not the only one who feels like they are fighting uphill to make their dream game a reality
– It is the natural order of the world that all programmers must try to write thier own game engine from scratch so they can see first hand what an ridiculously impossible challenge that is, much less too do by themselves and not to mention a timeline that all but rules out making a game with it one day.
– IGC food is quality eats!
– The polish of the games being shown is awesome (and has set the bar a little higher for us all.)
– Putting the name of the game on the screen when demoing in this environment is a good idea
– Whoa! There is more than one women doing indie games!
– XBOX 360 has some very awesome looking games
– Microsoft sounds like they are embracing the Indie Community, awesome.