PDA

View Full Version : 2nd PGD Challenge - "Platformation"



paul_nicholls
13-04-2012, 12:17 AM
Hey all,
In my remaining time, I am going to attempt some sort of 2d side scrolling platform game using the Oxygene for Java Trial version :)

For want of a better name, I have decided to call it "Platformation" (just popped into my head!!) :D

paul_nicholls
13-04-2012, 01:51 AM
I have decided to do some quick proto-typing in Lazarus first, and then port ideas across to Oxygene to speed things up :D

pstudio
13-04-2012, 02:41 AM
so will you be using lwjgl or something else? maybe slick?

paul_nicholls
13-04-2012, 02:52 AM
so will you be using lwjgl or something else? maybe slick?

I will try lwjgl first and see how I go. I haven't heard of slick though what is that?

I guess you are using jMonkey?

paul_nicholls
13-04-2012, 02:56 AM
Ahhh...I guess you mean this?
http://slick.cokeandcode.com/

EDIT: hmm...neato! I had forgotten about this game engine, I think I will try it instead of using lwjgl directly...we will see :)

paul_nicholls
13-04-2012, 06:22 AM
Well, I think I have some ideas for my game <GASP!>

I am going to have a ball that can roll around, or fly (limited fuel...collectable) using keyboard, and fire at enemies/targers using the mouse cursor.
I am also thinking that I may have an 'elements' theme for each location - earth, fire, water (could include ice), air, neutral central hub location, and then some combination locations like fire/water, earth/air...

Different enemies (in locations) might shoot heat rays (fire location: set fire to player for short time - extra damage), freeze rays (water location: slow player down temporarily)...do you see a pattern here? hahaha :D

paul_nicholls
15-04-2012, 09:32 AM
Finally!! I have gotten some output going using Oxygene for Java...not that is what my game output is going to be, it is just a test :D

http://img827.imageshack.us/img827/6040/platformationscreenshot.png (http://imageshack.us/photo/my-images/827/platformationscreenshot.png/)

I had to wrestle with getting various libraries working and not crashing...pstudio was nice to supply me with a JMonkey template that worked and which nightly builds worked (thanks!!), but I have decided to go with lwjgl (http://www.lwjgl.org/) for a shallower learning curve for me (Oxgene for Java + new game library) haha


cheers,
Paul

Jimmy Valavanis
15-04-2012, 05:36 PM
I have decided to call it "Platformation" (just popped into my head!!) :D

Cool! Very inspiring name :) :)

WILL
15-04-2012, 07:25 PM
Very cool Paul! :) I'm glad you are having success.

Will you be releasing source code so that others can have examples of how to make games using Oxygene for Java?

paul_nicholls
15-04-2012, 09:07 PM
Cool! Very inspiring name :) :)

Thanks! :D


Very cool Paul! :) I'm glad you are having success.

Will you be releasing source code so that others can have examples of how to make games using Oxygene for Java?
I believe I will release the source code to help others...will probably not be the best code in my rush to finish the competition though! haha :)

paul_nicholls
15-04-2012, 11:47 PM
Hey all,
any chance of trying the same simple demo (drawing blue box, Escape key exits...) on your computers (windows only ATM)?
815

I think that all you need is Java.exe installed and somewhere on your path...

I need to know if other people can run my Oxygene programs before I progress any further :)
Just unzip it (makes a folder), and run the platformation.jar file; either double click if associated with Java, or open with and select Java.

Thanks guys!
cheers,
Paul

paul_nicholls
16-04-2012, 03:14 AM
Ok, I have done some more of the game and have hit a runtime error that I just can't figure out:

Loading module
Please note: some java.lang.ClassNotFoundExceptions can be expected during project startup.
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An exception of type: java.lang.ClassNotFoundException occurred
An uncaught exception of type: java.lang.VerifyError occurred
Message: 'java.lang.VerifyError: (class: paulfnicholls/game/platformation/GameLevel, method: SetBounds signature: (IIII)V) Illegal creation of multi-dimensional array'

At:
paulfnicholls.game.platformation.GameApplication.I nitGame
paulfnicholls.game.platformation.GameApplication.R un
paulfnicholls.game.platformation.GameApplication.m ain
The program 'C:\Program Files (x86)\Java\jre6\bin\java.exe' has exited with code -1 (0xffffffff).

paul_nicholls
16-04-2012, 03:16 AM
Main file in project:

namespace paulfnicholls.game.platformation;

interface
uses
org.lwjgl,
org.lwjgl.input,
org.lwjgl.opengl,
org.lwjgl.util.glu;

type
//
// GameApplication class
//
GameApplication = public class
private
const cScreenWidth = 800;
const cScreenHeight = 600;
const cTileWidth = 32;
const cTileHeight = 32;
var
FScreenWidth : Integer;
FScreenHeight : Integer;
FLevel : GameLevel;

method InitGame;
method CleanupGame;
method InitGL;

method RenderTile_Ground(aTile: GameTile; aX,aY: Single);
method RenderFrame;
public
method Run();
class method main(argv: array of String);
end;

implementation

//
// GameApplication class
//
method GameApplication.InitGame;
begin
FScreenWidth := cScreenWidth;
FScreenHeight := cScreenHeight;

FLevel := new GameLevel;
FLevel.SetBounds(10,10,cTileWidth,cTileHeight);

FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Earth ,@RenderTile_Ground);
FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Air ,@RenderTile_Ground);
FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Fire ,@RenderTile_Ground);
FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Water ,@RenderTile_Ground);
end;

method GameApplication.CleanupGame;
begin
FLevel := nil;
end;

method GameApplication.InitGL;
begin
GL11.glViewport(0, 0, FScreenWidth, FScreenHeight);

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GLU.gluOrtho2D(0, FScreenWidth, FScreenHeight, 0);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

GL11.glEnable(GL11.GL_DEPTH_TEST);

GL11.glClearColor (0, 0, 0, 0);
end;

method GameApplication.RenderTile_Ground(aTile: GameTile; aX,aY: Single);
var
x1,y1,x2,y2 : Single;
w,h : Single;
begin
GL11.glColor3f(0.5,0.5,1.0);

w := cTileWidth;
h := cTileHeight;
x1 := aX;
y1 := aY;
x2 := aX + w;
y2 := aY + h;

// draw tile quad
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(x1,y1);
GL11.glVertex2f(x2,y1);
GL11.glVertex2f(x2,y2);
GL11.glVertex2f(x1,y2);
GL11.glEnd();

GL11.glColor3f(1,0,0);
GL11.glBegin(GL11.GL_LINE_LOOP);
GL11.glVertex2f(x1,y1);
GL11.glVertex2f(x2,y1);
GL11.glVertex2f(x2,y2);
GL11.glVertex2f(x1,y2);
GL11.glEnd();
end;

method GameApplication.RenderFrame;
begin
// FLevel.Render;
{ // set the color of the quad (R,G,B,A)
GL11.glColor3f(0.5,0.5,1.0);

// draw quad
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(100,100);
GL11.glVertex2f(100+200,100);
GL11.glVertex2f(100+200,100+200);
GL11.glVertex2f(100,100+200);
GL11.glEnd();}
end;

method GameApplication.Run();
begin
InitGame;
try
try
Display.setDisplayMode(new DisplayMode(FScreenWidth, FScreenHeight));
Display.create();
except
on e: LWJGLException do
begin
e.printStackTrace();
System.exit(0)
end;
end;

// init OpenGL here
InitGL;

Display.Title := 'Platformation';

while not Display.isCloseRequested() do
begin
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT or GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity;

RenderFrame;

Display.update();
Display.sync(60);

if Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) then Break;
end;
finally
CleanupGame;
end;

Display.destroy()
end;

class method GameApplication.main(argv: array of String);
begin
var App: GameApplication := new GameApplication();
App.Run()
end;

end.

classes 'unit':

namespace paulfnicholls.game.platformation;

interface

type
//
// GameTile class
//
GameTile = public class
public
const cTileType_Space = 0;
const cTileType_Ground = 1;
const cNumTileTypes = 2;

const cTileTheme_Earth = 0;
const cTileTheme_Air = 1;
const cTileTheme_Fire = 2;
const cTileTheme_Water = 3;
const cNumTileThemes = 4;

var
Id : Integer;
Theme : Integer;
IsSolid : Boolean;

constructor(aId,aTheme: Integer; aIsSolid: Boolean);
end;

//
// GameLevel class
//
RenderTileRoutine = delegate(aTile: GameTile; aX,aY: Single);

LevelRow = array of GameTile;
LevelLayer = array of LevelRow;

GameLevel = public class
private
FLevelWidth : Integer;
FLevelHeight : Integer;
FTileWidth : Integer;
FTileHeight : Integer;
FLevel : LevelLayer;
FRenderTile : array of RenderTileRoutine;
public
constructor;

method SetBounds(aLevelWidth,aLevelHeight,aTileWidth,aTil eHeight: Integer);
method RegisterRenderTileRoutine(aTileType: Integer; aRenderTileRoutine: RenderTileRoutine);
method Render;

method GetTileX(aX: Single): Integer;
method GetTileY(aY: Single): Integer;
end;

implementation

//
// GameTile class
//
constructor GameTile(aId,aTheme: Integer; aIsSolid: Boolean);
begin
inherited Constructor;

Id := aId;
Theme := aTheme;
IsSolid := aIsSolid;
end;

//
// GameLevel class
//
constructor GameLevel;
var
i: Integer;
begin
inherited Constructor;

SetBounds(10,10,32,32);

FRenderTile := new RenderTileRoutine[GameTile.cNumTileTypes];
for i := 0 to length(FRenderTile) - 1 do FRenderTile[i] := nil;
end;

method GameLevel.SetBounds(aLevelWidth,aLevelHeight,aTile Width,aTileHeight: Integer);
var
x,y: Integer;
begin
FLevelWidth := aLevelWidth;
FLevelHeight := aLevelHeight;
FTileWidth := aTileWidth;
FTileHeight := aTileHeight;

FLevel := new LevelLayer(FLevelHeight);
for y := 0 to FLevelHeight - 1 do
begin
FLevel[y] := new LevelRow(FLevelWidth);

for x := 0 to FLevelWidth - 1 do
begin
if (x = 0) or (x = FLevelWidth - 1) or (y = 0) or (y = FLevelHeight - 1) then
FLevel[y,x] := new GameTile(GameTile.cTileType_Ground,GameTile.cTileT heme_Earth,True)
else
FLevel[y,x] := new GameTile(GameTile.cTileType_Space,GameTile.cTileTh eme_Earth,False);
end;
end;
end;

method GameLevel.RegisterRenderTileRoutine(aTileType: Integer; aRenderTileRoutine: RenderTileRoutine);
begin
FRenderTile[aTileType] := aRenderTileRoutine;
end;

method GameLevel.Render;
var
x,y : Integer;
t : GameTile;
begin
for y := 0 to FLevelHeight - 1 do
for x := 0 to FLevelWidth - 1 do
begin
t := FLevel[y,x];

if (t.Id <> GameTile.cTileType_Space) and assigned(FRenderTile[t.Id]) then
begin
FRenderTile[t.Id](t,x * FTileWidth,y * FTileHeight);
end;
end;
end;

method GameLevel.GetTileX(aX: Single): Integer;
begin
Result := Integer(Math.floor(aX / FTileWidth));
end;

method GameLevel.GetTileY(aY: Single): Integer;
begin
Result := Integer(Math.floor(aY / FTileHeight));
end;

end.

I can't see what the issue is with the 'multi dimensional array complaint' and GameLevel.SetBounds()...

Any idea Oxygene experts?

paul_nicholls
16-04-2012, 03:18 AM
When it crashes and I hit break, it stops at this line:


method GameApplication.InitGame;
begin
FScreenWidth := cScreenWidth;
FScreenHeight := cScreenHeight;

FLevel := new GameLevel; **** <------------------- stops here --------- *******
FLevel.SetBounds(10,10,cTileWidth,cTileHeight);

FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Earth ,@RenderTile_Ground);
FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Air ,@RenderTile_Ground);
FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Fire ,@RenderTile_Ground);
FLevel.RegisterRenderTileRoutine(GameTile.cTileThe me_Water ,@RenderTile_Ground);
end;

HELP!!!

Eric
16-04-2012, 06:46 AM
You have an array of array, maybe that isn't supported?


LevelRow = array of GameTile;
LevelLayer = array of LevelRow;

you could try changing it to a fixed-size array, or a single-dimensional array, and then access it by LevelLayer[y*nbColumns+x] ?

paul_nicholls
16-04-2012, 10:33 AM
You have an array of array, maybe that isn't supported?


LevelRow = array of GameTile;
LevelLayer = array of LevelRow;

you could try changing it to a fixed-size array, or a single-dimensional array, and then access it by LevelLayer[y*nbColumns+x] ?

LOL! By Jove...you are right, that IS a multi dimensional array...I will change it to 1d and see if it works then :)

EDIT: That worked, thanks Eric!! :D

paul_nicholls
16-04-2012, 10:53 AM
Hey all,
any chance of trying the same simple demo (drawing blue box, Escape key exits...) on your computers (windows only ATM)?
815

PS. has anyone tried the attachement from my other post to see if they can run Oxygene for Java created programs?

SilverWarior
16-04-2012, 11:21 AM
I haven't done it jet becouse I'm at work now. I'll do when I get home.

paul_nicholls
16-04-2012, 11:22 AM
No problem...when ever you can would be most helpful :)

SilverWarior
16-04-2012, 06:10 PM
I just tried your example and it runs without any problem. I do have latest java client instaled on my computer thou. Cant know how it might behave with older clients.

de_jean_7777
16-04-2012, 08:01 PM
Works fine. Windows 7 x64, Java 6u31.

paul_nicholls
16-04-2012, 08:35 PM
Thanks guys! that is very reassuring :)

paul_nicholls
17-04-2012, 06:14 AM
Well, here is the latest screenshot - I am playing around with some graphics and precedurally created floating 'islands':
http://img689.imageshack.us/img689/7844/platformation.png (http://imageshack.us/photo/my-images/689/platformation.png/)

There some graphical glitches (borders between some tiles not meant to be there), and the half-circle at the bottom is supposed to be a smaller full circle (the player avatar!) haha

Rather primative ATM, but at least it is not just a blue box!! :D

paul_nicholls
17-04-2012, 06:16 AM
In the screenshot, the brown color tiles are 'earth' element, the red ones 'fire', and the blue ones are 'air'

de_jean_7777
17-04-2012, 06:50 AM
Perhaps you could do a kind of game like Dangerous Dave. It was a simple platformer and it had 10 levels (or more, I think there were bonus levels). They were unique (and challenging).

paul_nicholls
17-04-2012, 09:45 AM
Perhaps you could do a kind of game like Dangerous Dave. It was a simple platformer and it had 10 levels (or more, I think there were bonus levels). They were unique (and challenging).

Dangerous Dave...I don't think I have heard of that, I will look it up :)
I am going to see if I can make procedurally generated levels so I don't have to make an editor...

de_jean_7777
17-04-2012, 03:04 PM
Dangerous Dave...I don't think I have heard of that, I will look it up :)
I am going to see if I can make procedurally generated levels so I don't have to make an editor...

Well, procedurally would save you a lot of time, if you can get it right.

Ñuño Martínez
17-04-2012, 07:45 PM
In the screenshot, the brown color tiles are 'earth' element, the red ones 'fire', and the blue ones are 'air' Does it means they have different properties?

paul_nicholls
17-04-2012, 08:33 PM
Does it means they have different properties?

Well, I guess their 'properties' are that each type of element block island will have it's own type of enemy - an air island might have a wind elemental or fan for example, fire might have a laser tower or lava pool.

Just some ideas and thoughts so far...I haven't decided anything yet :)

WILL
19-04-2012, 03:27 AM
Very cool Paul! You were always pretty good with the vector style graphics. :)

Well you could create "chunks" that could be automatically matched up and then randomly placed upon loading of the level as an idea. That would "split the middle" for keeping a procedurally based level generator. Never seen it done for a platformer though. Would be a neat idea if you could pull it off.

paul_nicholls
19-04-2012, 04:20 AM
Very cool Paul! You were always pretty good with the vector style graphics. :)
Thanks Jason! Very kind :)


Well you could create "chunks" that could be automatically matched up and then randomly placed upon loading of the level as an idea. That would "split the middle" for keeping a procedurally based level generator. Never seen it done for a platformer though. Would be a neat idea if you could pull it off.
Interesting idea, I will see what i can come up with...thanks!

BTW, after a couple of days I have FINALLY gotten my character jumping physics working now so I can run along the ground or jump up into the air with collisions against the tiles in the world (all static ATM)...yay!
I would love to have a little vector guy to be running around but I don't think I have time to do this so I have a much simpler character right now - a moving circle with eye + spikes (whirling around its body) that will be able to be fired at enemies :)

paul_nicholls
19-04-2012, 10:58 PM
Neat! As well as the jumping and collision detetion working properly now, my little character can now zoom up verticall walls as easily as rolling along walls below him! Woo Hoo!
Once a video has uploaded I will post it here :D

Now I have to pull my finger out and get some enemies into the game, and get the journeying going too! haha

paul_nicholls
19-04-2012, 11:02 PM
Control question for you guys: currently you can move the character around using cursor keys (left, up, down) and keys (a, w, d).
I am now thinking of how I can do the aim + firing...

Do you think it would be too hard to move around with the keyboard and use the mouse to target and fire at enemies?

code_glitch
19-04-2012, 11:18 PM
Sounds like every fps out there for pc... WASD to move, mouse to aim and shoot ;) so no... not too hard :)

paul_nicholls
19-04-2012, 11:33 PM
Here is that video:

http://www.youtube.com/watch?v=KkNQFpn3HRs

Ñuño Martínez
21-04-2012, 05:50 PM
Can the character climb walls? ;D

WILL
21-04-2012, 07:43 PM
Yeah, it does look like it can climb walls, or at least cling to them for a time. :)

paul_nicholls
21-04-2012, 10:00 PM
Yeah, he can climb vertical walls if right next to them and you push up :)

paul_nicholls
24-04-2012, 01:58 AM
Damn it! I am rappidly running out of time, and still don't have any levels, journeying, or enemies added yet...life (and almost 1/3 of the time gone before I could start) has taken a toll :(

Not sure if I will make the deadline...I will have to see!!

PS. on the other hand, I did receive a shiny new 32GB (WiFI+4G) iPad (iPad 3 or Next iPad) for my birthday!! :D

paul_nicholls
27-04-2012, 05:35 AM
Well, I have now gotten 1 enemy in the game - zap globes. These charge up when you are in range (touching red circle...shows dotted line), and then fires at you for a short time causing damage. They then have a short cooldown period before they can charge back up again if you are still in range. Moving out of range resets the charging/firing phases back to scanning.
I am hoping to get in homing missiles before the time is out...

I do have one level in the game where you collect coins and try to make it to the exit (no exit yet though...), and will have the minimum of 3 (at least) levels (locations) before the time runs out, and will also have a menu to pick different levels.

No sound as yet, might just have time to get some openal sound in there if all goes well :)

You can fire missiles (left click...shoots at crosshairs) and grenades (right click...shoots at crosshairs, affected by gravity, and they bounce around).

Explosions cause damage when hitting zap globes or the player :)

2 days to go!! Tick...tick...tick....

EDIT: pity I couldn't start till around 13 April...this is NOT going to be my best work, but nevermind :D

paul_nicholls
29-04-2012, 01:02 PM
OMG! I have finally uploaded my entry to the FTP site!! :D

Unfortunately it doesn't have sound or more than one enemy type (ran out of time), but it works and I think it is bug free :)
It has 6 levels (locations) in it and you can travel to them from the main menu so revisiting is there too ;)

see:
platformation_binary.zip (4MB zip file) - execute the platformation.jar file in the bin\debug or bin\release folders to run the game...(includes instruction file)
platformation_source.zip (5.4MB zip file) - contains all the source code + the lwjgl library used in the game.

Good luck to one and all! :)

I'm off to bed as I am bone tired from my children getting me up these past 4 nights!

cheers,
Paul

WILL
29-04-2012, 04:00 PM
Congrats on finishing Paul! :)

You know there is still time. You could always upload a new version in the morning?

paul_nicholls
29-04-2012, 08:47 PM
Congrats on finishing Paul! :)

You know there is still time. You could always upload a new version in the morning?

I will (pardon the pun) see if I can get sound added to it before the time runs out...so how many hours are left exactly?
It is 6:43am 30-April here right now...

Ingemar
29-04-2012, 08:57 PM
Here it is 22.56 in the late evening. I need to convince the kids to go to bed, but I would like to fix a few more things...

paul_nicholls
30-04-2012, 01:26 AM
I just uploaded new files:
ftp://pgdchallenge02@ftp.pascalgamedevelopment.com/platformation_source_v2.zip
ftp://pgdchallenge02@ftp.pascalgamedevelopment.com/platformation_binary_v2.zip

These contain some sounds now! Woo hoo!

That will have to do now...I won't be able to add in new enemies now..I am too busy :(

paul_nicholls
30-04-2012, 02:10 AM
Here are dropbox links to the latest files:
http://dl.dropbox.com/u/1805932/platformation_binary_v2.zip
http://dl.dropbox.com/u/1805932/platformation_source_v2.zip

paul_nicholls
30-04-2012, 03:03 AM
I just updated the instructions text file in the binary v2 file...

I forgot the F5 key for resetting levels! haha

WILL
30-04-2012, 03:24 AM
You forgot one of the function keys last time too! :D Keep doing that and people are gonna talk Paul. ;)

I still see April 29th on my computer... *whistle whistle*

paul_nicholls
30-04-2012, 03:51 AM
You forgot one of the function keys last time too! :D Keep doing that and people are gonna talk Paul. ;)

I still see April 29th on my computer... *whistle whistle*

:D I forgot to put the F5 key in the instructions this time and not the game LOL

WILL
30-04-2012, 04:07 AM
How do you feel about the 2 day extension? http://www.pascalgamedevelopment.com/showthread.php?13347-2nd-PGD-Challenge-2-Day-Extension

Would that make a big difference in your entry? Can you take advantage of it?

paul_nicholls
30-04-2012, 04:46 AM
How do you feel about the 2 day extension? http://www.pascalgamedevelopment.com/showthread.php?13347-2nd-PGD-Challenge-2-Day-Extension

Would that make a big difference in your entry? Can you take advantage of it?

Sweet! I just posted in that thread ;) Thanks Jason :)

paul_nicholls
30-04-2012, 11:52 PM
I haven't updated my entry yet, but I now have fixed a bug in my sound code which caused crashing after so many sounds are played (ran out of sources), and added in missile launchers that fire homing missiles at the player! yay :D

paul_nicholls
01-05-2012, 12:44 PM
Awesomesauce!! Thanks to the web page here:
http://www.lwjgl.org/wiki/index.php?title=Slick-Util_Library_-_Part_2_-_Loading_Sounds_for_LWJGL

I now have music (menu only ATM) and sounds in my game using the Slick Util library!!
I have also add some levels and done some tweeking :)

I have updated the dropbox binary, but not the ftp site version quite yet:
http://dl.dropbox.com/u/1805932/platformation_binary_v2.zip

pstudio
01-05-2012, 01:54 PM
just tried out your game and there's only one big issue with it: It's too short ;)

I've just finished all the levels and I enjoyed very much. Great game :)

SilverWarior
01-05-2012, 06:58 PM
I also tried your game and it looks great.
I also found a small bug. Yes it is related to key detection problem same as it was in your The Probe game (my keyboards fires VK_ENTER on pressing of borth enter keys while your game only checks for VK_RETURN wich is normaly used for enter key which is near leter keys).

paul_nicholls
01-05-2012, 08:31 PM
just tried out your game and there's only one big issue with it: It's too short ;)

I've just finished all the levels and I enjoyed very much. Great game :)

Nice! Thanks mate :)
LOL Well, as well as adding in some in-game music while playing I will look at making some more levels too before the extension runs out ;)

paul_nicholls
01-05-2012, 08:32 PM
I also tried your game and it looks great.
I also found a small bug. Yes it is related to key detection problem same as it was in your The Probe game (my keyboards fires VK_ENTER on pressing of borth enter keys while your game only checks for VK_RETURN wich is normaly used for enter key which is near leter keys).

Ahhh...that keyboard issue takes me back :D haha

Thanks dude :)
Ok, I will add in the keypad enter too just like in The Probe :)

paul_nicholls
02-05-2012, 03:31 AM
Ok, I have now uploaded version v3 binary to the ftp site and dropbox:
http://dl.dropbox.com/u/1805932/platformation_binary_v3.zip

I will update the source code later on.

Changes:
* Each level has a random music track when you are playing it.
* Added in the keypad enter key as well as the regular enter key when on the menu screen (thanks SilverWarior).

I might be able to squeeze in some extra changes before the time is up...

cheers,
Paul

paul_nicholls
02-05-2012, 05:29 AM
Here is a video of the game on Youtube:


http://www.youtube.com/watch?v=9ghM5yOok8Q

paul_nicholls
03-05-2012, 12:18 AM
I have made a new version (v4) in dropbox and the ftp:
http://dl.dropbox.com/u/1805932/platformation_binary_v4.zip

This makes it easier to pickup coins!

de_jean_7777
03-05-2012, 07:16 AM
Your game is certainly unique, and not what I expected at first. Nice work.

paul_nicholls
03-05-2012, 08:56 AM
Your game is certainly unique, and not what I expected at first. Nice work.

Nice! thanks mate :)
Because it was so rushed (I didn't start till 13-April) I didn't know what to do either, but I had only thought of a 2d platformer game initially :)
It just mutated and morphed into it's present form LOL

I wanted to do some sort of vector ninja running around (similar to N and N+ on XBox360), but the time constraints forced me to do a simpler character and I came up with the rolling up walls concept ;)

paul_nicholls
03-05-2012, 08:58 AM
It was lucky that I had some 2d platform code lying around that I managed to port over to Oxygene for Java and get working as the basis...