Archive

Archive for the ‘Dev’ Category

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 War.ru, 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 code.google.com/p/hexagonlib/. 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
Documentaion

Setting up Eclipse for Flash Development

February 18th, 2010 18 comments

This guide explains how to set up a Flash and Flex development environment with Eclipse, FDT, Flash Builder and a couple of other editors that you want for ActionScript coding and Flash development with style! This guide is based on Windows because that’s what I’m using but I’m sure you Mac and Linux guys can figure out the parts that differ on your OS! Let’s get started …

Read more…

From the Labs: Tetragon Tile Engine Early Preview

February 11th, 2010 2 comments

An early tech demo of the tetragonLib Tile Engine on which I restarted work on recently again. Click the image to view. There’s not much interaction yet though. You can scroll around with the cursor keys and apart from that open the Rhombus App Framework built-in debug console with F8 and the FPS monitor with SHIFT+F8. Everything is still under heavy development.

However the demo already shows some of the special features of the tile engine. It’s a blitted multi-layer engine which supports animated tiles (but it doesn’t use MovieClips or Sprites for this but animated Bitmap tiles). The demo shows two layers, one as a backdrop and the other with the maze on it. Additionally layers can use layer effects like the second layer here uses a drop shadow filter which is also defined in the tilemap file.

The engine tries to be resource friendly. If there is nothing to update it will not waste render cycles. E.g. if you move to any area without animated tiles on the screen the engine will shortly after start to consume less CPU.

tile_engine_2_early_demo.png

Quite a list of features is still planned to be implemented, for example map-wrapping (to create endless maps), auto-scrolling and support for hexagonal as well as isometric tiles has already been started before but these implementations are going to be completely overhauled.

If you’re interested in having a look at the engine’s tileset and tilemap data files, they can be found here.

RPG Design: Character Development Example

November 19th, 2009 No comments

Welcome back to the RPG Design series where I try to talk a bit about the work and progress on my game project, the development of the darkish, space -themed computer role-playing game Stellar Conspiracy: Entanglements Of The Marenis Sector (working title).

eliza5In the last part I’ve introduced the character design template I’m using and mentioned to post a character example next time which I’m doing hereby while introducing you to Eliza Retinienne, a Gessjanian security systems expert from the planet Shielle, a small world bordering on the fringe of the Suulun Sector which in turn stretches over a large area of the southern galaxy.

Eliza is one of the key characters in the game’s story and one of the characters whom the player is supposed to encounter and who eventually joins the player’s party. She is also supposed to receive her own side-quest in which the player can engage to help her out of the threatening situation she is currently in.

Note that this sheet is basically just here to give an example of how the character design template can be used to shape out a character so I suggest not to look too critically into the details. Things can (and will) still change and also the sheet is not filled out completely, for one reason because some details are irrelevant for this character and for another that I haven’t found any other suitable details for her yet. Either way I hope this gives a good example of how to utilize the template!

Read more…

RPG Design: Character Development

September 24th, 2009 2 comments

char_banner

And back to the game design topic! The part I love most about game design is that you can create worlds full of life, intricacy, intrigue and interesting characters, experimenting with scenarios and situations (that would otherwise probably have negative  repercussions in RL™).

As a programmer you’d ever only write your code and if you are happy with it that’s fine but we one-man-game-developer types are more like Jack of all trades who want to create complete worlds … and stories. And then tell those stories by means of the game. And maybe throw a bit (or a large chunk) of dynamics in there again … as programmers.

One extremely satisfying aspect of game design (for games where narrative is important) is the development of characters that should act throughout the game. Creating characters is just as much fun as the other bases! If you do it right and create deep and sympathetic characters people will love them.

And even villains can be sympathetic. In fact they should be! Who likes an antagonist that is completely unsympathetic? Nobody, right? But why should you even like a villain, after all he’s the guy who needs to be defeated? The answer to this is that the guy who is the villain is so only in the context of our story. Maybe he’s not so bad after all in a different context. Or in short: Antagonists also have a life, feelings … but guess what? Now I totally digress! I actually wanted to show you my new and all fresh character template that I came up with to shape out characters for my game.

Read more…

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…

ActionScript: Beaten like a ginger stepchild

August 10th, 2009 19 comments

Recently there has been a lot of uproar about ActionScript from some of the more nominated ActionScript developers. People like Joa Ebert, Nicolas Canasse, Andre Michelle and Peter Elst spoke off their dissatisfaction about the current state of ActionScript, that’s it’s stuck in the middle of nowhere, that Adobe isn’t open enough about their plans with the Flash platform, that ActionScript has become too OOP, etc. etc. And though all this bashing hurts, they all got a point about their complaints.

Read more…

Categories: Dev Tags: , , ,

FDT Template: Quick-create Child DisplayObject

July 18th, 2009 1 comment

Let’s burrow some in my FDT templates crate … how often do you have to add a child display object to another display object? If the answer is ‘very often’ then this small FDT template might save you some time.

${property} = new ${cursor};
addChild(${property});

It’s very simple but effective. Usage: Let’s for example name this template “newDisplayObject” and after invoking it with CTRL+SPACE you start typing the name of the display object property that you defined as a class property before which then should be auto-completed, then you hit TAB and then CTRL+SPACE to quick-insert the type after the ‘new’ operator (FDT is finding the correct type for you) and Voila, you’re finished, no need to add that extra ‘addChild’ manually.

Categories: Dev Tags: , , ,