Please play the game now – and bring a friend with you! If you have your own site / blog / page, I highly encourage you to embed the game in it as well. Basically, please help me promote this game all over the net!
I had a lot of fun implementing this classic pencil and paper game, writing the client in pure ActionScript using the free Flex SDK, and the server using Visual C# Express. This is truly an exciting time to be a game developer – multiplayer Flash games that can be played across different sites all over the net can now be built easily using free tools only!
To put things back on track, I hope to release the source code of the game in a week or so, but in the meantime, please share this game with all your friends! Thank you!
]]>I am happy that the brothers David and Richard Darling, who started their company in the mid-80′s, were honored for their “services to the computer games industry”. They have blazed a trail for independent game developers to follow, and I am truly grateful to them for their pioneering efforts as bedroom coders.
David and Richard, I salute you.
]]>]]>In fact, the combination of Express Animator with the free Flex or MTASC compiler would make for a pretty good “Poor Man’s Flash” product that could be used to make full Flash CS3 quality games, and for quite a bit less than the $699 that you’d spend on a new license of Flash CS3.
Among the different aspects of game development, I think I’m weakest at sound matters. This is something that has to change though, with the success that audio-based games have been having, such as the IGF winner Audiosurf and the Python-based Frets on Fire.
It’s good that Kunal Joshi pointed out in the comments the amazing DrPetter’s sfxr, an excellent (and free!) piece of software that generates retro-style sound effects. This was used by Kian in his very funny, and VERY ORIGINAL (you have to see it!) game You Have To Burn The Rope.
]]>Fortunately, there are several alternatives to Flash for making Flash content. One of these alternatives is the Flex SDK, a free product which Adobe itself offers.
I’ve spent some time with the Flex SDK over the past months, and I’ve had success in writing games with it. Herder is my first game with the Flex SDK, and I have a few others which I haven’t had the chance to release yet. The Flex SDK is NOT Flash however – the development style is different. But this is good in my opinion, because making games with the Flex SDK is very similar to making games with a traditional programming language like C++, C#, or Python. Instead of the graphical approach that Flash offers, the Flex SDK offers a code-centered development platform.
If you want to make games for the web now, I suggest that you look into the Flex SDK. With this product, you can even make Flash content using Linux!
The article Intro to the Flex SDK on GameDev.net is a good starting point for anyone who wants to learn how to make games using the Flex SDK. Hopefully, I’ll have the chance to make my own tutorials as well. Any suggestions?
I haven’t posted anything in a very, very long time, and I apologize for this. Recently, I have had time to pursue game programming again, and as a result, I was able to learn programming Flash games using the free Flex SDK, a programmer-oriented SWF development tool from Adobe. For my first project, I have decided to rewrite my favorite one-button game, Herder, and it is now available to play on my site, and also on Facebook, if you want to compete with your friends for the highest score. Here’s a video:
The video and screenshots are available on the game pages. I hope to write more about this project and Flex programming in general, but in the meantime, I’d be happy to hear your comments. Enjoy the game!
Hi everyone. I know that it’s been a very, very long time since I last posted. I’ve been doing some thinking about the direction that this site should take, and I was able to make some “preliminary decisions” in the process, which I hope to explain more in a future post.
In the meantime, I would like to present my most recent project, Herder, which you can now play online using any Java-enabled browser. Basically, this is a port of one of the Python/Pygame projects that I did before, and is my first project made with the Processing programming environment, which I’m trying to learn to use at the moment.
I’d love to hear about what you think about the game, and I would really appreciate any comments and suggestions that you may have. Please post them below. Thank you so much for trying out Herder, and I hope you liked it.
Download Arinoid with Sound. Requires Python and Pygame.
The sounds were taken from Flashkit, which I think is a fantastic resource for game developers looking for free sound effects and free sound loops for background music. There are many sound samples to choose from, and they are neatly categorized to make browsing easier. What makes browsing the sound collection fun is the site’s use of preview consoles, which allows the user to play sound samples on the page, with matching visualization. Once you find what you want, you may download the sound sample as an MP3 or as a WAV, which may be used immediately in your game, or edited using an audio editor like the highly-recommended Audacity.
Picking sounds for this project was a very interesting activity – there were so many sounds to choose from! I hope that my choices were okay
.
I would really appreciate it, and I’m sure everyone would, if you know of a resource which can help game developers add sound to their games easily, just like Flashkit, and share it with us!
Just leave a comment if you have something in mind. I suppose that these types of resources will be particularly useful for those who plan to join PyWeek 3
. Thanks in advance!
This is a very rough guide/outline that I put together for my personal use to help me understand TGBX better and faster – you may or may not find this useful
. I don’t claim to have come up with all of this – most, if not all of this material, is derived from:
This document assumes knowledge of the contents of the first two sources, and actually depends heavily on them
. It’s basically just the Blaster/Microbes tutorials minus specifics. I thought that it might be helpful to lay out the things described there more generally.
I’d love to hear what you think about this document – feel free to leave a comment
.
Thank you so much to GarageGames and Microsoft for this amazing product, and to the GarageGames and XNA communities for all the help that you continue to give!
Personally, I like everything on one big page, and if there’s anything I need, I just hit Ctrl+F from within Firefox then type in the keyword I’m looking for, then press Ctrl+G as needed. Very primitive, but it works for me
.
You may want to check the Remove On Finished checkbox.
…you may want to add the following piece of code:
static public Game GameInstance
{
get { return _myGame; }
}
T2DSceneObject _gameObject;
public T2DSceneObject GameObject
{
get { return _gameObject; }
set { _gameObject = value; }
}
public void SomePublicMethod()
{
// look up the template for the object;
// here, SceneObjectTemplate would correspond to the name we gave to the template earlier in TGBX
T2DSceneObject sceneObjectTemplate = TorqueObjectDatabase.Instance.FindObject("SceneObjectTemplate");
if (sceneObjectTemplate != null)
{
// clone the template to create the object
_gameObject = (T2DSceneObject)sceneObjectTemplate.Clone();
// process _gameObject further here...
// register our object with the TorqueObjectDatabase
TorqueObjectDatabase.Instance.Register(_gameObject);
}
}
Alternatively, one can also write (NOT TESTED YET and COULD BE INCORRECT):
public void SomePublicMethod()
{
// clone the template to create the object
_gameObject = TorqueObjectDatabase.Instance.CloneObject("sceneObjectTemplate");
// process _gameObject further here...
// register our object with the TorqueObjectDatabase
TorqueObjectDatabase.Instance.Register(_gameObject);
}
Note that sceneObjectTemplate.Clone() returns an Object object, so it needs a cast, while TorqueObjectDatabase.Instance.CloneObject
For this, the Torque X API.chm help file is your best source of information. Basically, this will allow you to do in code the changes you make to scene objects within the TGBX editor.
Within a method (maybe within // process _gameObject further here...),
_gameObject.Position = new Microsoft.Xna.Framework.Vector2(desiredX, desiredY);
or
_gameObject.Position = SceneObject.Position;
where SceneObject refers to the scene object to which the component is attached to.
_gameObject.Layer = SceneObject.Layer + n; // n an integer
_gameObject.Rotation = 180.0f;
_gameObject.CollisionsEnabled = true;
_gameObject.Collision.CollidesWith = TorqueObjectDatabase.Instance.GetObjectType("objectType");
_gameObject.Collision.ResolveCollision = T2DPhysicsComponent.KillCollision;
_gameObject.Physics.Velocity = new Vector2(0.0f, -80.0f); _gameObject.Physics.VelocityY = TorqueUtil.GetRandomFloat(5.0f, 15.0f);
Within the BeginRun method in the region Private, protected, internal methods in Game.cs:
SceneLoader.Load(@"data\levels\sceneNameHere.txscene");
This line may be followed by Public Methods that initialize the level (probably concerning Scene Objects).
InputMap inputMap = PlayerManager.Instance.GetPlayer(0).InputMap;
int gamepadId = InputManager.Instance.FindDevice("gamepad0");
if (gamepadId >= 0)
{
inputMap.BindMove(gamepadId, (int)XGamePadDevice.GamePadObjects.A, MoveMapTypes.Button, 0);
}
int keyboardId = InputManager.Instance.FindDevice("keyboard");
if (keyboardId >= 0)
{
inputMap.BindMove(keyboardId, (int)Keys.Space, MoveMapTypes.Button, 0);
}
// tell the engine to call our ProcessTick method every clock tick.
ProcessList.Instance.AddTickCallback(Owner, this);
Again, I highly recommend that you refer to the Torque X API.chm help file – it will really help in understanding the inputMap.BindMove method.
if (move != null && move.Buttons[0].Pushed == true)
{
_React();
}
[TorqueXmlSchemaType(DefaultValue="15")]
public float FieldName
{
get { return _fieldName; }
set { _fieldName = value; }
}
[TorqueXmlSchemaType(DefaultValue="8")]
public float AnotherField
{
get { return _anotherField; }
set { _anotherField = value; }
}
public override void CopyTo(TorqueComponent obj)
{
base.CopyTo(obj);
ComponentNameHere obj2 = (ComponentNameHere)obj;
obj2.FieldName = FieldName;
obj2.AnotherField = AnotherField;
}
A more complete discussion on this matter is available in the Torque X Forums.
float GameObjectX = Game.GameInstance.GameObject.Position.X;
I learned about subpixel rendering only very recently after playing the amazing physics-based game BreakQuest, which utilizes the technique to allow great-looking particle effects to be implemented through software rendering. BreakQuest’s author Fèlix Casablancas explains the concept of subpixel rendering very well in a forum thread on his website, and I think it’s a good read for anyone who wants a clear explanation of the concept of subpixel rendering.
Will has other Pygame stuff on his website, and I’m sure there’s a lot more on the way – he’s the author of an upcoming Pygame book from Apress
. I’m excited already!
I’m trying to beat a deadline, and need the space to submit an entry, so I made this entry for me to be able to upload something.
I’m sorry if that previous paragraph didn’t make sense – I’ll add details later.