Posts Tagged ‘Game Development’

Flash gets Low-Level 3D API, golden Times for Game Devs ahead

October 26th, 2010 6 comments

I’ve heard plans and rumors about this before but it seems now it’s official: The next versions of the Flash and AIR runtimes will have a low-level 3D API on board that utilizes DirectX, OpenGL and OpenGL ES. Maybe this racing demo video will convince most game devs who were skeptical about the Flash platform before.

The demo was coded by the guys who maintain Alternative3D, one of the the few software-rendered 3D engines for Flash that are better suited for 3D game development. The engine has recently been made free of charge for commercial development. The makers only require a back link to their product website in your game now.

I find Alternativa3D quite attractive, in particular after seeing videos and screenshots of, an online multiplayer Role-playing game that reminds me of RPGs classics like Wizardry, just with better graphics. Unfortunately the whole game is in Russian only for now and so far I haven’t been able to log in, the load procedure is very slow and always gets stuck at some point for me.

Still the game looks very promising with some nice looking 3D environments. The actors (NPC’s and creatures) seem to be inanimate billboard sprites though so they only look impressive on a static screenshot but imagine what would be possible with the newly achieved 3D power! I’m looking forward to create vast 3D environments with autonomous actor AIs a’la Oblivion or Fallout 3! The only bottleneck will – yet again – be the content creation.

Random Accessing Zip Files with Adobe AIR

September 20th, 2010 16 comments

I’ve recently re-published a new version of hexagonlib, a universal AS3 class library at Some parts that were originally in the library have been removed, in particular the UI components and the game package. This has been done because I’m working on a game engine (more about that one later) that will probably exclusively include these parts. The hexagonlib is instead targeted at a broader area of development, not just games.

Either way, many classes have been updated and improved (and many still need too *ugh*) and what is particularly worth mentioning are the file IO classes which provide a unified way to work with different file formats. Basically the way how files work in hexagonlib is that you can create file objects of any specific file type (like text, binary, image, XML, etc.), give them a path to a physical file and then add them to a loader (BulkLoader, FileLoader, ZipLoader) which then loads the data of the physical files into the file objects.

While you can use the BulkLoader class to load a collection of arbitrary files in one go with all sorts of comfort (priorities, weighted loading, load retries, multi-connections etc.) the newest addition to the library is the ZipLoader class which can be used in AIR development to access a standard zip file using Random Access. What does that mean? It means that you can create a zip file (a very large one if you want), pack all your resource files that can be loaded by your application and then open it with your app and ‘load’ (= extract) files from it without ever needing to load the whole zip file completely into memory. This makes accessing a large zip file very efficient because only the chunk of the requested, zipped file is loaded.

This is especially interesting for us game developers who desire to use large, nicely packed resource files like they are utilized in a similar fashion in most current day commercial games. For a while I was promoting to add such functionality to AIR over at Adobe Labs but that was before I knew that this can actually be done in AIR since 1.0 thanks to the FileStream class and the position property of it (alas, the property is not available in the URLStream class so random access is not possible on web-based Flash). The ZipLoader uses asynchronous loading to open a zip file as well as ‘loading’ files from it because I don’t like the idea of having the application at the mercy of the file system which would be the case with synchronous access (and which is used in way too many examples on the web).

You can download the hexagonlib distribution over at Google Code, which includes the SWCs and documentation and of course the source code is available for access via SVN. I’m updating the library on a irregular basis. There are already some Wiki pages too with code examples showing how to use the BulkLoader and ZipLoader here but I will hopefully get to write some more in-depth tutorials soon.

hexagonlib at Google Code
File API Wiki

Flash for big Games?

August 26th, 2009 20 comments

Even though I love ActionScript more than my daily meal I’ve recently started to think about if the Flash Platform is actually the right stuff for developing big games. Most Flash game developers write small-scale games for the web which is totally fine and I too like to write a small coffee-break game sometimes but often I’m craving for more! My dream has since long been to design and develop a large-scale role-playing game and I’m usually overflowing from new ideas coming to my mind every day that it’s almost hard to track all of them.

I could go on and make this project an oldschool-style game with 2D graphics like some other indie devs are doing but I feel that going 3D would be the best bet to convey atmosphere and tactical gameplay at the same time (you could use switchable first-person and third-person views). This makes me think if ActionScript is actually sufficient for this but the experience of some of my recent coding tests with Away3D which already start to bog down the CPU with a few hundred polygons on the screen tend to say “no!” to my ambitious plans.

Since this is a desktop game my platform choice is AIR which offers more freedom that the Web Player but there are still many let-downs that make you grind your teeth …

Read more…

Categories: Dev Tags: , , , ,

RPG Design: Choosing the right Graphical Projection

August 11th, 2009 6 comments

Neverwinter Nights 2 Banner

I’ve been designing on a rather ambitious Role-Playing game project since a while now (in fact quite a long while but I’m not in hurry to finish it anytime soon) and while I’m in the process of working out the story, technical details like the combat mechanics, skill system etc. and creating interesting characters I still haven’t made a decision on the type of graphical projection for the game so far. I’ve been thinking about five kinds of projection from the most basic one (2D orthographic) up to full dynamic 3D which would be quite an effort. As my development platform of choice happens to be Flash, the resources in terms of 3D are limited.

So with that in mind I thought it would be good opportunity to introduce some of the most-used projections in computer and video role-playing games to get to know them a little better. This is by no means a complete list of all sorts of projection used in games but I believe these the ones most commonly used for role-playing games.

Read more…

PushButton Engine

May 6th, 2009 16 comments

Probably old news but I’ve just found some time to read about the recently released pushbutton engine, a modular ActionScript 3 engine tailored especially for game development. It seems that Jeff Tunnel & Co (of Garage Games fame) were sitting down and wrote some serious ActionScript library overnight.

“…and a component system which lets you easily package game functionality into reusable modules. The component system draws on nearly a decade of game development history…”

This looks very promising indeed and the component structure makes a lot of sense.

I’ve been working on the hexagonLib on and off but time is sparse currently and so it seems I would never get it into a decent release state. I Might as well see how the pb engine works out for me. Let’s see how this engine fits for my current role-playing game project!

ActionScript3 Dice Class

December 4th, 2007 3 comments

In game development randomness is often necessary for certain tasks, be it the random distribution of graphic tiles, a random factor in NPC AI or random stats in a roleplaying game. Especially for the latter purpose the static Dice class provides a set of methods to roll dice as it is common in a Role-playing game, to be exact four-, six-, eight-, ten-, twelve-, twenty-sided and percentile dice.

Read more…

Animated Bitmap Class

September 23rd, 2007 21 comments

The AnimatedBitmap class provides functionality for Bitmap objects that are animated by using a series of still images. When creating a new AnimatedBitmap you provide a BitmapData object that contains an image that consists of the ‘single-frame’ images for the animation.

Read more…

Getting rich with Free Flash Games?

May 30th, 2007 6 comments

Still have a skeptical opinion about using Flash for making games? Read and rethink … at least for earning money it seems to pay off if done right! Check out this interview with Desktop Tower Defense creator Paul Preece! Obviously it is possible to create a monthly 8000$ revenue just by putting together a simple but addictive Flash Game and make it freely available to people.
Even though personally I’m not too impressed with the game (prefer better graphics/sounds) I found myself getting lost by its addictive gameplay for at least 30 minutes today. Why the heck do I sit here designing an overly complex roleplaying game??! To answer that question by myself: Because it’s what I love doing and its fun for me. But maybe I’m better off devoting some time to create a simple blockbuster first!

So what makes this game so addictive that people are coming back en masse? First and foremost it’s simple and straightforward. No long introduction, no necessity to read instructions, you get into the game quickly. Then there is the addiction factor … Maybe its just me but the reason why it is fun to play is because you try to make your defense perfect to stop the intruding enemies. Another factor is that you can shoot and destroy something. Sounds dumb? I know, but I can imagine that many people’s ‘hunting’ instinct is triggered by that. After all many popular games follow the same scheme. In fact you don’t even need to do the shooting as that is what your towers are doing for you. You just have to place them in a strategically good position and watch how well it works out. The author sure made a good choice by picking a Tower Defense game for this!

Now there are hundreds of other well proven addictive games out there. Make your choice and don’t forget to improve it by adding something that makes it even more fun to play! Meanwhile excuse me … I have to dig through my old games collection and do some searching … ;)

(via Tales of the Rampant Coyote)
Categories: Dev Tags:

Hexagon Framework Effects Demo

May 28th, 2007 7 comments

Here’s a small demo that I threw together yesterday which shows how the effects in the Hexagon Framework effects package can be used. The effects package contains classes that are used on display objects to apply an animated effect on them. That is not all however. The effects send a signal back to the calling class when they are finished and there are two more classes with that effects can be arranged, namely the EffectChainer class and the EffectCombiner class.

Read more…

Planewalker Games "The Broken Hourglass" RPG Development Insights

May 26th, 2007 1 comment

A valuable resource for everyone who is thinking/planning to write a roleplaying game … Indie developer Planewalker Games who are currently making their debut RPG The Broken Hourglass are publishing precious bits of insider information about their game engine called WeiNGINE. The Broken Hourglass is a computer roleplaying game with a strong visual relation to late nineties RPG pearls like Baldur’s Gate, Icewind Dale or Planescape: Torment (who all were based on the Infinity Engine).
Some examples of their articles: Inside the Engine – Introduction to Items, Inside the Engine – Introduction to Sprites, Rules and Mechanics – Group Skills … and there’s a whole lot more when navigating through the links at the bottom of the pages. I kind of soak up such detailed information on game/RPG design as such things are sparsely seeded on the web (you will not see such information leaking from commercial developers!)