I was going back and forth whether or not I should post what little I have of my game here, but I figured I should just go ahead and jump right in since there were no guidelines anyway regarding how far along a project should be before you could post it.

I've been studying how to program games in Java for the last three weeks, and I'm using this game as a vehicle to apply what I learn. It's a 2D Platformer and I want it to come across as distinctly physics-based (it uses libgdx/Box2D). What else it's going to be is up in the air... I put in a little experience bar there and some objects one can gather to gain experience, but I only have a vague idea of what I want to do with it so far. Also not sure if I want it to be action-based (like Cave Story for example) or puzzle-based (like LIMBO) or a little of both.

I wasn't able to do much for July because *cough*steamsummersale*cough* I was "a bit busy" *cough*steamsummersale*cough*, but I think I made significant progress in some areas.

(1) I added gamepad support for the xbox360 controller. The input device detection is a bit crude for now, but it will have to do... for now. It simply selects gamepad as the input device if it detects one, and selects the keyboard otherwise. NOTE: I find that the game plays better with a gamepad, so I would recommend that if you have one, use that instead of the keyboard.

(2) I reworked the controls significantly in pursuit of "tighter" movement. So, compared to the version last month, I would say this new version features significantly tighter and much less floaty controls.

(3) And related to #2 above, the player can now double-jump and wall-jump.

(4) I played around with animations. So the enemies are now animated. It seems a bit amateurish, but I think I did more than I think I could, tbh.

(5) I increased the screen size to incorporate the status bar. So the game is now at 1280x720 (a relatively standard resolution) instead of the 1280x640 it previously was.

(6) Where the game took a step backwards is the mechanics. It's not that I don't have anything planned for the mechanics; but rather, I haven't implemented it yet. Also hope to start adding a lot more new levels.

(7) The point of the game, just to explain, since the game doesn't explain it yet:

[Goal] The goal of the game is in two parts: First is to control the gray circle and maneuver it around the level to find and come in contact with the pink circle. After you come in contact with the pink circle, you will meld into a single gray-and-pink circle. The second part of the goal is that once both circles have melded together, you must maneuver your way into the pink door. This ends the level and moves on to the next one.

Please try it out and kindly provide feedback if you feel that your suggestions would make the game better Thanks!

i like it, the control looks smooth and i think it would be more better if you make it a little bit faster, the scrolling is very good too, i just have a little question was it "very" hard to implement box2D into your game ? and is it Java2D only or you're using another library ? (beside Box2D of course)

"It's not at all important to get it right the first time. It's vitally important to get it right the last time."

^ Box2D was a bit challenging, especially the part where you have to convert meters-to-pixels and vice versa... it's a bit tricky, but once I got a hang of it, applying it in the game got progressively easier.

I'm planning to start reading up on joints next, so I hope that will have some practical application in the game.

Sorry I didn't make it clear in my OP: I'm using libgdx, which has Box2D included in it Aside from that, I'm using JInput to handle the controls.

Box2D is very simple to implement, you have a World, a Body, FixtureDef, and BodyDef for each physics object, just plug in values and it works magic. For Java2D there's JBox2D but it's not as good as libgdx's box2d which draws directly from the original box2d.

Box2D is very simple to implement, you have a World, a Body, FixtureDef, and BodyDef for each physics object, just plug in values and it works magic. For Java2D there's JBox2D but it's not as good as libgdx's box2d which draws directly from the original box2d.

I ended up overhauling my game concept. Because if not, it'll take me a year to get things done with everything I want to do now. There's a lot of other game ideas I want to pursue that could only be done by starting other game projects, so I'd like to finish this and move on, which makes me realize that maybe there's some wisdom in starting with making a lot of small games before moving to something bigger.

All the things I have done so far will be elements in the eventual final version of this game, but will likely work in a different way.

I'm hoping that something playable should be out within the month. For now, here's a video of my latest progress (sorry if you're not a fan of annotations since I put in quite a few):

^ This is after the change in direction of the game, some significant tweaking of the AI, plus addition of item drops and slight change in shooting mechanics... So this will likely turn into a level/stage-based action platformer after all.

Your game is starting to look really good!It would be cool if you were able to do something with the orientation of the ball, e.g. the projectile will fire in the direction that little black dot is facing.

It would be cool if you were able to do something with the orientation of the ball, e.g. the projectile will fire in the direction that little black dot is facing.

I know right??

I've been going back and forth regarding the shooting mechanics of my game. That's just a vague idea of what I have in mind; but right now I'm leaning towards the outer layer of the ball and inner layer being disjointed, with the outer circle being more relevant to the movement and inner circle more relevant to the shooting.

not really smooth in a gyroscopic way just that the outer circle will be rolling as the ball moves, but the inner circle will be fixed where the ball is facing, so that's the direction the player shoots.

Since I haven't had time to integrate tutorials/instructions yet, I'll just explain everything here for now:

!!! To start the game, navigate the gray ball in the menu screen to the platform with "New Game" --- when the text turns yellow, hit Enter !!!

(1) [Goal] The goal of the game is in two parts: First is to control the gray circle and maneuver it around the level to find and come in contact with the pink circle. After you come in contact with the pink circle, you will meld into a single gray-and-pink circle. The second part of the goal is that once both circles have melded together, you must maneuver your way into the pink door. This ends the level and moves on to the next one.

(2) [Controls]

W or Up Arrow = Jump

A or Left Arrow = Move Left

D or Right Arrow = Move Right

S or Down Arrow = Thrust Down (if in-air) or Brake (if on the ground)

L = shoot (NOTE: you may only shoot once gray-and-pink have melded together. Gray on its own has no ability to shoot)

(3) [On-screen Text]:

Time = amount of time passed since you started the level (number in parentheses is the target 'perfect' time)

Gold = number of gold coins you have picked up (will be used for something I haven't implemented in the game yet)

Exp Gain = total amount of experience that you will gain from completing the level.

Tot Exp = Total experience you have accumulated in the game.

(4) [Notes]- Exp Gain will decrease while playing the level if (a) you take longer than the target time to finish the level; or, (b) you are hit by an enemy, which decreases the exp gain by 5 points.- The on-screen text is temporary. I plan on making it graphical eventually.- Sorry for the game being totally silent for now. I'm still composing the music and working on the sound effects.- So far there are only three levels. I've put them to loop for five times in this playable sample.- I'll have to tweak the shooting mechanic since as it is right now, it's pretty useless.

Please try it out and kindly provide feedback if you feel that your suggestions would make the game better Particularly in the following areas:

- How do the controls feel? I think it has the potential to be too 'floaty' or a struggle. But I'm thinking of giving the player the ability to improve the control of the ball as the game progresses in a similar way to how players upgrade cars in racing games (improve the acceleration, handling, etc)

- Is the target time for the levels just right? Should it be greater (meaning the target time is too hard to beat) or less (meaning it's too easy)?

Didn't even notice anything about the target time. Target time should be the fastest time you yourself can actually do. Controls really do feel very floaty once you're in the air. On the ground they feel pretty responsive, but in air it's really slow. My Squaball has not responsive controls and yet I find these controls very difficult. Might be just me.

Didn't even notice anything about the target time. Target time should be the fastest time you yourself can actually do. Controls really do feel very floaty once you're in the air. On the ground they feel pretty responsive, but in air it's really slow. My Squaball has not responsive controls and yet I find these controls very difficult. Might be just me.

Ok thanks! I read somewhere that a character should have as much control to move horizontally in the air as it has on the ground. Would you agree? Because my instinct is that it should have less control in the air... and it's just a matter if determining how much less would be best for the game...

Yeah, thanks. Actually, because of all the discussion I've been having about platformer controls, I'm going to try and experiment with movement handling starting from as realistic as possible to more like classic SMB-type movement handling just to get a feel for it all.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org