hey, so i want to make an flash AS3 plataform engine from zero.
This will suport H-games, like the mario-rape style.
Hope the engine will work good. Thats why i'm planning alot, before start to code (downing flash CS5 right now). This engine will be fast and smooth, but it will not have alot of features.
So, i'll describe what development kind i'll use, below:
______________________________________________________________
I'll work on 2 project:
- The Engine
- The Cene Maker
The engine (aka. game) will have, inside it, all the 'cenes' that will be used. The 'cenes' is nothing more than code, saying what and where images, characters and collisions will be used, all information that an cene needs.
What will 'generate' that information will be the 'Cene Maker'. Using it will be easy:
Just on the flash, with the CeneMaker.fla, you will import images, characters and collision boxes to the stage. Then you run the .swf, and you will recive the generated texto from that cene, informations like:
- Char used. Char that may be used (explain later).
- Images used (static images [background, plataform, etc], animated images (animated plataform, etc).
- Boxes (where chars can walk).
- Events (I havent planned this yet).
Thats all I can get, before i start to code. Thats is necessary, i'll say again, for imagem caching, image merging, image disposing (yea, will have some BitmapData class work). Also, collision will be independent from images, so we can optimize that.
So, for now i've seen how the CeneMaker will work. Lets take a look in the main Engine.fla:
- Splash screen, menu, etc.
- cene list.
We also will have more .fla, like:
- Chars.fla
- Images.fla
Not done yet. Each char and imagem will have its own .fla:
- CharA.fla; CharB.fla; ..
- ImageA.fla; ImageB.fla; ..
Finnaly, we will analize the Char.fla and Image.fla, what information must be inside those files. Lets see CharA.fla:
- Name. For example: "CharA", or "CharB", or "CharA+CharB". That kind of name will be noticed, and the engine will think 'ah, looks like the CharA is the hero, and CharB is the monster. When CharA and CharB colide, CharB will rape CharA. CharA and CharB dont exists anymore, and we have "CharA+CharB" as a single character', wich will be the rape animation, noticed as character.
Lets say that "CharA+CharB" (rape) collides with "CharC", then the engine will look for "CharA+CharB+CharC" character, an gang bang.
With the CeneMaker project, he will cache all the characters that is in the cene, also, he will look for all the possible group rape, and cache it. That should make things really fast.
Lets keep going, we are on CharA.fla proprieties (code inside MC):
- Name (already said).
- Box. Just an rectangle. For now, this box is static, just follow the char (if the char moves around).
- Something to care: Timeline animation. The animation must happend only in the charA.fla timeline, not inside another MC's. Thats because the cache system will save every frame of the animation in an BitmapData vector list, and we will have an faster rendering, more fps.
For last, we have the imageA.fla, that have:
- Type. It can be "static" or "animated". Both will be cached to bitmapData's, but in different ways.
- Speed. Its just the speed in relation to the hero. If the image is an background, the speed should be less than 1.0 ; if its part of the platafor, the speed should be 1.0 , that means that the image will move the same portion that the character moves. This propriety will also be noticed on the image cache system.
- Layers. This can be a number, an string, whatever. Some layers example, in order: background1, background2, charLayer, frontground1, frontground2. With that, we have all information we need to make an really good image caching system.
Last words:
With that system style, the development is easy for developers and for coders. I mean, when you have just an 'CharG43.fla' update, the programmer (or other designers) dont need to download everything again.. just that single .fla file, and just have to replace it on the project source.
__________________________________________________________
Alright, this is big. But its just the planning before the coding.
I hope designers and programmers say what they think about the engine, basead on theyr experience, or ideas.
if u dont got something, ask and i'll try to fix it.
When the planning is 100%, we just 've got to code :3