Post by RavMahov on Mar 10, 2012 5:30:15 GMT -5
UPDATED: 2012-04-25
I wanted to finally share progress of something I've been working for a while (other screenshot is also available in PK Encached thread). Click image below to play!
It's still WIP (work in progress), and I'll rewrite some stuff now so I know how to do it better (it's always like that, you know how to write something better when you write it once, maybe even before, but it takes too many changes to do it properly now). Examples of what is needed to be rewritten:
-sprite mirroring(flipping)
-level format (from {r,g,b} objects to hex color)
-sound engine (which needs to be actually written instead of using <audio> element)
-timer class, because animation relies on it, and for now changing level breaks it, or items, depending on what I decide to.
-jumping needs to be written properly, for now it's just 5 minute placeholder which allows to play, but does not feel too good.
-menu will have one more pair of variables, to give it position on screen other than the center. Will be handy for Main menu
What's yet to be written/done?
-Walker/Jumper/Lurker and similiar ground-based enemies, because I've managed to resolve collisions properly just recently Now just jumping ones and turrets.
-weapons (althought most of stuff for them is written already, I just had no time left (it was project for school, finished all what you can see on 4:12AM, woke up on 6:00AM) to make it work properly)
-die function,both for player and enemies (for now they would just disappear, and I don't know the guy who does not like F3 mode)
-fire animation (I need to extract it from screenshots/movie frames, because it seems to be procedurally-generated) now just to optimize it even more
-weather effects (THUNDRZZZ, RAINZZZ)
-sounds are not a problem, just a bit time.
-also, original game palette was changed a little, but I'll need to do it again, and re-generate levels because of that. Why? It seems that Boss Endlevel block color is black (0x000000), just like background (d**n palette format allows to use one color for as many indices as you would like, but PNG conversion does not save it, Deluxe Paint II is only hope when you need to change color AND affected pixels)
For all people who still look at these forums waiting for PK3 and liked PK1 as much as me.
Big thanks to Ghor. You taught me more than enough to do it properly ^^
Cheers
-RavMahov
PS. First step for Pekka Kana Mobile is done, right? I hope so.
Edit (2012-04-08):
Current (latest stable) version can be played by clicking screenshot above. Starring:
W,S,A,D - as Arrow Keys
Shift - as Ctrl (Shoot, use teleports)
Esc - as itself. Use it to access menu (save progress etc)
Use DevMode to manually change levels. Useful commands (throught Developer Console in browser):
setWeapon(player1, weapon number);
Note that it's not finished and will require many tweaks (jumping is crappy, until I finish it, there won't be jumping enemies), which are mostly listed above, with couple of them solved. Particles, die() and jumping are top priority.
Works best in Google Chrome, but also works on Opera and Firefox (update them if you have any problems except of little graphical glitches like lines between tiles or mostly transclusent health bar)
Hope that you will like it anyway. Cheers
-RavMahov
Update (2012-04-21):
-5 or more visible gameplay changes (find them all, post every single one you've noticed, unless somebody else had posted it already)
From less visible ones:
-Added CONSTRUCTOR_ENEMY_* and changed spawning mechanism to use it (I was sick of adding enemy "the hard way").
You can now spawn enemies by typing "currentLevel.addEnemy(CONSTRUCTOR_ENEMY_*(x,y));", where:
-* is enemy type
-x and y are map grid coordinates (use printPos() to get current player's position)
-enemyType parameter (put it after y one, of course you need to put "," before it), is unsupported by the most of enemies,
you can use it to switch skins of WALKER, and FLYER monsters.
Accepts integer values from 0 (default) to 1(for now, might grow bigger).
Supported enemy types:
-FLYER(x,y,type)
-FLYER_RANDOM(x,y,type)
-FLYER_ROUND(x,y,type)
-BULLET(x,y)
-BULLET2(x,y)
-WALKER(x,y,type)
-WALKER_RANDOM(x,y,type)
-LURKER(x,y)
-LURKER_JUMPER(x,y)
-Added DEVMAP() command, load my test map
-Added printPos() command, useful for cheats (like enemy spawning, changing position).
Prints entity (if not specified, then player1) position on level grid, both in console and using msgman.
Update (2012-04-22):
-Introducing flames. They are randomly generated, but need to be tweaked to match PK1. For now they look more like PK2 ones.
-TRIGGER_HURT is now entity.
-DEVMAP() allows to test flame animation (in little canvas hidden by DevMode button)
Flames also need to be optimized, because bigger and cooler looking ones are able to slow down my laptop when there are too many on screen. TODO: find better way to draw single pixel than 1x1 rect.
Update (2012-04-23):
(small in changes count, but involving big amount of work):
-Optimized fire enough to make flames like these on screenshot less laggy than smaller ones before.
-Also found a way to make them really fast, but with one, unsolvable (for now) problem: non-transparent background.
Update (2012-04-25):
-Added missing thunder sounds (sorry for not noticing it before)
Known bugs:
-Fire works slower on FireFox, causing lags depending on your hardware
-The brightest part of flame on Opera is greenish (simple fix, but maybe in next release)
Solutions: USE CHROME, for now at least.
I wanted to finally share progress of something I've been working for a while (other screenshot is also available in PK Encached thread). Click image below to play!
It's still WIP (work in progress), and I'll rewrite some stuff now so I know how to do it better (it's always like that, you know how to write something better when you write it once, maybe even before, but it takes too many changes to do it properly now). Examples of what is needed to be rewritten:
-sprite mirroring(flipping)
-level format (from {r,g,b} objects to hex color)
-sound engine (which needs to be actually written instead of using <audio> element)
-timer class, because animation relies on it, and for now changing level breaks it, or items, depending on what I decide to.
-jumping needs to be written properly, for now it's just 5 minute placeholder which allows to play, but does not feel too good.
-menu will have one more pair of variables, to give it position on screen other than the center. Will be handy for Main menu
What's yet to be written/done?
-
-weapons (althought most of stuff for them is written already, I just had no time left (it was project for school, finished all what you can see on 4:12AM, woke up on 6:00AM) to make it work properly)
-die function,
-
-weather effects (
-sounds are not a problem, just a bit time.
-also, original game palette was changed a little, but I'll need to do it again, and re-generate levels because of that. Why? It seems that Boss Endlevel block color is black (0x000000), just like background (d**n palette format allows to use one color for as many indices as you would like, but PNG conversion does not save it, Deluxe Paint II is only hope when you need to change color AND affected pixels)
For all people who still look at these forums waiting for PK3 and liked PK1 as much as me.
Big thanks to Ghor. You taught me more than enough to do it properly ^^
Cheers
-RavMahov
PS. First step for Pekka Kana Mobile is done, right? I hope so.
Edit (2012-04-08):
Current (latest stable) version can be played by clicking screenshot above. Starring:
W,S,A,D - as Arrow Keys
Shift - as Ctrl (Shoot, use teleports)
Esc - as itself. Use it to access menu (save progress etc)
Use DevMode to manually change levels. Useful commands (throught Developer Console in browser):
setWeapon(player1, weapon number);
Note that it's not finished and will require many tweaks (jumping is crappy, until I finish it, there won't be jumping enemies), which are mostly listed above, with couple of them solved. Particles, die() and jumping are top priority.
Works best in Google Chrome, but also works on Opera and Firefox (update them if you have any problems except of little graphical glitches like lines between tiles or mostly transclusent health bar)
Hope that you will like it anyway. Cheers
-RavMahov
Update (2012-04-21):
-5 or more visible gameplay changes (find them all, post every single one you've noticed, unless somebody else had posted it already)
From less visible ones:
-Added CONSTRUCTOR_ENEMY_* and changed spawning mechanism to use it (I was sick of adding enemy "the hard way").
You can now spawn enemies by typing "currentLevel.addEnemy(CONSTRUCTOR_ENEMY_*(x,y));", where:
-* is enemy type
-x and y are map grid coordinates (use printPos() to get current player's position)
-enemyType parameter (put it after y one, of course you need to put "," before it), is unsupported by the most of enemies,
you can use it to switch skins of WALKER, and FLYER monsters.
Accepts integer values from 0 (default) to 1(for now, might grow bigger).
Supported enemy types:
-FLYER(x,y,type)
-FLYER_RANDOM(x,y,type)
-FLYER_ROUND(x,y,type)
-BULLET(x,y)
-BULLET2(x,y)
-WALKER(x,y,type)
-WALKER_RANDOM(x,y,type)
-LURKER(x,y)
-LURKER_JUMPER(x,y)
-Added DEVMAP() command, load my test map
-Added printPos() command, useful for cheats (like enemy spawning, changing position).
Prints entity (if not specified, then player1) position on level grid, both in console and using msgman.
Update (2012-04-22):
-Introducing flames. They are randomly generated, but need to be tweaked to match PK1. For now they look more like PK2 ones.
-TRIGGER_HURT is now entity.
-DEVMAP() allows to test flame animation (in little canvas hidden by DevMode button)
Flames also need to be optimized, because bigger and cooler looking ones are able to slow down my laptop when there are too many on screen. TODO: find better way to draw single pixel than 1x1 rect.
Update (2012-04-23):
(small in changes count, but involving big amount of work):
-Optimized fire enough to make flames like these on screenshot less laggy than smaller ones before.
-Also found a way to make them really fast, but with one, unsolvable (for now) problem: non-transparent background.
Update (2012-04-25):
-Added missing thunder sounds (sorry for not noticing it before)
Known bugs:
-Fire works slower on FireFox, causing lags depending on your hardware
-The brightest part of flame on Opera is greenish (simple fix, but maybe in next release)
Solutions: USE CHROME, for now at least.