CC-licensed Ruboto presentation...
Here’s the latest version of my Ruboto presentation… An earlier version of these slides was used by Charlie at JRubyConf 2010, and I updated them for my talk at Philly Emerging Tech.
Source (for Showoff presentation software)
These are Creative Commons-licensed, so you’re encouraged to steal these slides for use at your favorite technology user groups!
Read more...The Reference Games Manifesto
A couple nights ago, I was playing Score Rush, a twin-stick shooter on XBox, and thinking what an exemplary game it was. Simple, but with highly polished gameplay. Something that other designers and developers could stand to learn from.
That started me wishing there was an open-source game in each genre that was playable and fun, but was first and foremost a reference for developers to learn techniques from. Web framework standards have reference implementations, why can’t games? All the needed infrastructure is out there - freely available game libraries in a variety of languages, GitHub and other source code sites for forking and improving on projects, and a great many motivated (but largely disorganized) open-source game developers. What if we joined forces to make something bigger than any one game?
And so resulted this initial draft of The Reference Games manifesto:
- We seek to meet the needs of both casual and experienced gamers where possible.
- We believe that affordances for casual gamers should never be obstructive to experienced gamers.
- In the rare event that needs are mutually exclusive, we strive to provide for both markets through multiple configurations of the same game.
- We prove our assertions through appropriate testing.
- Example: A/B testing to prove that a particular control scheme reduces player error.
- Although we support innovation, we are a platform for sharing proven best practices first.
- The reference game codebases can be forked and customized, but only proven techniques usable by a wide audience should be incorporated into core reference games.
- We value gameplay over graphics.
- The majority of maintenance and development time should be spent on game mechanics.
- We support users with low-power or low-cost hardware.
- We allow graphical improvements through abstracted rendering interfaces.
- We are open.
- We do not rely on proprietary frameworks or formats that are not freely available or could become unavailable in the future.
- We work with the tools most commonly used by the development community.
- While respecting the openness principle, we choose the tools and languages most widely used by game developers.
I don’t know if I’ll have an opportunity to go anywhere with this, but it’s something I’d love to see. Any enterprising developers out there that want to take this and run with it?
Read more...RubyOnAcid: More fun with enhanced CombinationFactory...
This time, hooked up to Ruby-Processing. I should have logged the factories assigned to each attribute, but didn’t, so the titles are my best guesses as to how they were generated.
Factories chosen are still completely random, so I’m throwing away ten times as many images as I’m keeping. I bet the really mind-blowing stuff will happen when I add a genetic algorithm.
Read more...RubyOnAcid: CombinationFactory::REBOUND...
Added a simple constraint type to CombinationFactory that causes values to “bounce” off of the upper and lower bounds:
-0.2 -> 0.2 -0.1 -> 0.1 0.0 -> 0.0 0.1 -> 0.1 0.2 -> 0.2 ... 0.9 -> 0.9 1.0 -> 1.0 1.1 -> 0.9 1.2 -> 0.8 ... 1.9 -> 0.1 2.0 -> 0.0 2.1 -> 0.1
So when scaled to screen dimensions, for example, x and y coordinates can seem to “rebound” off the edges of the screen, or an object can “bounce” back and forth between two colors, or minimum and maximum sizes. The SineFactory did some of this before, but this gives an abrupt reversal of direction instead of a smooth curve (and sometimes the former looks cooler).
Also, I had the ExampleFactory randomly choose an operation and a constraint mode for its component CombinationFactory. Since it only used the defaults before, and since it seems I never use any functionality that isn’t wrapped up in the ExampleFactory, these rather cool features were woefully under-utilized. This should fix that.
Here’s a few sample SVG files, generated with the updated ExampleFactory:
Read more...This is cheating at live-coding - I just replayed my re-do buffer in TextMate. I figured the result would be interesting if I ever want to go back and analyze my technique, though.
Read more...