Schrijver
| Ancient knowledge for free! (sort of)
|
Maggoo msx professional Berichten: 576 | Geplaatst: 28 Maart 2006, 00:22   |
Hi Cas, nice to see you around here, really like thework you've been doing over the years.
2 questions:
1- What is the average speed of the CD scroll (FPS wise) and what was the size of the game area ?
2- Can you talk a bit about how enemies are managed (level of AI they have, etc...) and how they are managed (chained lists or ?). Any particular optimization trick you've been using?
|
|
parallax msx user Berichten: 60 | Geplaatst: 28 Maart 2006, 07:58   |
Maggoo:
1. Oh dear, I don't know if I remember by heart, but somewhere around 12.5/20 fps (for 60Hz). Size of the game area is erm (I now simply look this up on the Parallax pages): 240 x 136, it seems. (Checking gallery page 5, or the promo) Note that this is optimized for loads of (big) enemies onscreen. In general, the engine will drop special effects (water splashes, bubbles, bullet impact animations) when the load is very high, to keep the framerate constant.
2. Enemies. Storage-wise it's a table; some tricks are described in the CD diary: in particular, you can code them as if they had their own 'thread' (they have internal program counters and storage). Small bullets move by increments of 4 pixels (even within the 8x8 block framework), also explained in the diary. Although they still 'exist' when they are off the visible screen, many are disabled to save CPU power when they get to a certain distance and are not visible anymore. Notice they have explicit visibility checks, because of the multiple cameras you cannot simply take 'distance from the player' to indicate whether they can safely 'go into hibernation'. For this, it is of course essential that things like 'get distance', 'get map block info' are of course as fast as possible.
About AI, if you have limited CPU power, it is of course essential to make them seem smarter than they are. But in this case they will track you. If they cannot follow you, e.g. because an upward block is in the way, they scan the map upwards slowly: each frame they look a block higher. If there is only one block, they just progress (which makes them look as if they climb the stairs). If they find a number of blocks that is below their jump height, they attempt a jump. Because of the delay in scanning, it makes them look as if they hesitate or 'charge' longer before a big jump.
Similar things apply for gaps they encounter. They explicitly do not scan for thinks like mines because that would take the fun out of dropping mines  However, this is all chained to their level: each enemy has a 'level' of difficulty between 0 and 255. 0 means cannon fodder, 255 means it's going to kill you. The engine determines where you are in the game, and ranks the enemies accordingly: if you progress very fast through the game, it modifies the curve so that it gets harder. This means bad players should encounter easier enemies halfway during the game than good players. However, the first enemies are always easy, and the final enemies are always hard  |
|
parallax msx user Berichten: 60 | Geplaatst: 28 Maart 2006, 09:33   |
Additional note: if it weren't for the sprites it would easily run on at something like 50Hz, but you compensate for the worst case (which occurs quite often) when you have a lot of software sprites onscreen.
|
|
Latok msx master Berichten: 1722 | Geplaatst: 28 Maart 2006, 09:38   |
parallax, honestly, how on earth is it possible you are not motivated anymore to do game development. You are MAAAAAAADE for these kind of things......Admit it, it's ultimate coolness
In other words.....What hobby apparently creates even more fun than MSX?.....There must be something, obviously!
And don't say wife and children, please ^_^ |
|
parallax msx user Berichten: 60 | Geplaatst: 28 Maart 2006, 11:55   |
As said, I really enjoyed it, but there are so many more challenges. But currently I'm doing actual research ( www.win.tue.nl/~ccremers/), which is also great fun.
After my MSX period I actually started on a Flash 5 version of Blade Lords, but I never completed it. It's still around somewhere I guess. |
|
wolf_
 msx legend Berichten: 4658 | Geplaatst: 28 Maart 2006, 12:02   |
Could you be persuaded to pixel/draw a game, rather than coding it? (drawing takes less time, one can do little chunks in lost half hours orso)
( yes, all these MSX'ers will never learn or read  ) |
|
parallax msx user Berichten: 60 | Geplaatst: 28 Maart 2006, 12:37   |
wolf_: no. Understatement of the year: I am not bored at the moment.
|
|
wolf_
 msx legend Berichten: 4658 | Geplaatst: 28 Maart 2006, 13:08   |
*sigh* ok .. at least we tried all options
Ok, more serious question then about gfx, that is, it's about Magnar gfx, assumingly you drawed them.
What can you tell about the formation of standard palettes? You know, palettes that can be used for quite alot of things without palette-splits or just screen-related optimzied palettes. In the grey level I noticed 4 shades from darkred->yellow and 3 blue shades. And furthermore a whopping 6 grey shades. Esp. these grey shades, or more precice: '6 shades of whatever' is kinda a luxury if your palette has only 16 colors. E.G. SD-Snatcher has 3 greys, 3 blues and a handful of other colors (not even all 16 colors are used most of the time!). How/when/why do you decide to use 6 greys? How do you decide which colors are for the map, and which are standard/fixed for enemies? Do you -at forehand- limit yourself to only 2 fixed colorshades for all enemies (red/orange/yellow and the blues) and one level-shade which you can use for enemies as well (the grey stuff), so that there're a lot of colors left for the level, or did you first draw red/yellow, blue and grey enemies and figured you could use the rest for the level, and HEY, a smooth grey gradient can be made!?
That's a sentence which is too long ..
In short, what's the situation:
- first the definition of the palette, without any idea of enemies/level
- first draw enemies/level and then find out you have a major unintended grey gradient
- something else
Would you have generic gfx-tips for designers? |
|
ro msx guru Berichten: 2315 | Geplaatst: 28 Maart 2006, 13:55   |
Hai Cas, how ye're doing. Nice to see you around here.
just wanted to say hai.
Roman.
|
|
parallax msx user Berichten: 60 | Geplaatst: 28 Maart 2006, 13:57   |
Palette design starts with those things that you have to share throughout the entire game. If this is only the player, then you only have a few colours to worry about and use the rest throughout levels as you like. This changes significantly in most cases because:
- You have a statusbar onscreen that uses colours (if you don't have a screensplit)
- You want to show items or effects onscreen (explosions, weapons, powerups etc) that are also shared between levels.
So basically you decide which part of the palette will be global: i.e. reserved for players, guns, bullets, and whether there will be varying local colours for each level/world. These local colours are then not used for players, weapons etc.
In practice, you then need as global colours: black/white/red/yellow: borders, text, explosions. That's already 4 colours gone for any game (that involves explosions and text  ). Now you design a main character and powerups; I gues you need at least some blues and/or greys for this.
Within a level, you then decide on the local colours. There is usually no distinction between backgrounds and (level) enemies in terms of colour usage; they can just use all colours. Of course this is different when enemies appear in multiple levels, then you restrict them to the global palette.
With e.g. Magnar, the main stuff is done with the orange and blue hues. Then, for some level, you can indulge in six greys for smoother fades, if you want, and use them for the local enemies as well.
Generic tips? Hmm.
Well, choosing the palette well is indeed a challenging question. Always look at the professionals here, I would say, but e.g. Konami uses wildly different palettes throughout their games. This also depends on the mood of the game.
But in general, careful planning pays of later. Not only with the palette, but also for assigning how much memory (RAM or VRAM) is allocated for enemies and levels, what sort of stuff you certainly want in there.
|
|
parallax msx user Berichten: 60 | Geplaatst: 28 Maart 2006, 13:58   |
Hi Roman *master of wasting screen space*  |
|
norakomi msx professional Berichten: 861 | Geplaatst: 29 Maart 2006, 08:05   |
hey cas, what games did you like most back then?
|
|
Rataplan msx user Berichten: 63 | Geplaatst: 29 Maart 2006, 08:28   |
Hi Cas! Nice to see you share your knowledge. I hope all begging people won't let you down
btw, I see you work at TUe, that's about a few hundred meters from were I work. Such a MSX legend so close  |
|
parallax msx user Berichten: 60 | Geplaatst: 29 Maart 2006, 10:06   |
Norakomi: I think most of that is in the diary but I like the usual suspects. Lesser known stuff I liked: Higemaru. Hmm, not many stuff springs to mind now (maybe I should browse through some MSX game list and it'll all come back to me). At that moment I was definitely spending more time creating games than playing other games.
|
|
ARTRAG online msx master Berichten: 1592 | Geplaatst: 29 Maart 2006, 11:17   |
Hi parallax
how big are the tiles you use for the screen (the background Imean), can their size vary?
how large are the tiles for the animated objects?
do you split the partially transparent objects in many segments in oder to use the fast copy on non trasparent parts?
|
|
|
|
|