Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Does anyone need a LibGDX Programmer?

A topic by Bytes created Nov 02, 2017 Views: 1,541 Replies: 22
Viewing posts 1 to 10

Hey I guess the title says everything.

I'm a programmer searching for  a project to work on :) 

Submitted

Hey Bytes,

I'm looking at using libGDX to make a 2 player co-op (1 player mode too) puzzle platformer (probably challenging/hard style)- I have a code base started, but lots of coding (as in the majority) and level design to go. I do some work with a local artist and sound studio. Not 100% sure they're in for this Jam, I've started - and I'll talk to them this week.

Anyway if you're interested, I hope to get the project into github this evening. Have you built anything with libGDX before?

My toolset is typically libGDX, Tiled for map/level design, and TexturePacker for building the sprite sheets/texture atlases. I wrote some standard code around libGDX for game layers, game sprites, controllers, and animations (I didn't use Scene2d at the time).

Anyway if you're interested let me know. You can also fire me an email at grant@fivemedia.ca

- Grant

Hey,

Sounds very cool, do you plan on making the game online or local co-op?
If you want to do some online co-op I could host a server for the month and write some net code for you.
I've been working a lot with LibGDX and have written some unfinished 3D engines using it.
I am very interested in working with you since its my first real game jam I'm joining.

I hope we can do some cool stuff together :)

Submitted

I was thinking local player co-op - just for puzzle solving I think the type of game I was thinking that would make the most sense.

Core mechanic is one tall character, with higher jumps, and one shorter, with lower jumps character - both powered by a single, shared power 'unit' that you can pick up, throw, drop - so each character moves and then can throw the power unit to the other and trade off solving puzzles and escaping. So on the theme throwback you throw back the power supply to the other player. I was thinking in one player mode it worked much the same as two, except you can toggle between the character you control simply - maybe with a single button push. I have the basic tile map rendered and am just adding character movement now. It's programmer art for the moment- will be talking to the sound/art team this week.

Have you ever worked on 2d or platformers before? (or done any level design) - what I find with games like this is level design is usually where 60% to 70% of my time goes, 30% - 40% to actual programming, even more to level design if there are not to many enemy types or bosses. Bosses tend to take a lot more programming time to make them interesting. So help with both programming and level design would be great!

If you're interested why don't you grab Tiled and have a look - I'll get the code up before I goto sleep tonight on github and you can have a look and let me know what you think!


My time is somewhat limited, I have a large family and full time job (and then some) - so on these game jams I always have to thread the line between too ambitious.

You can see one game I did on itch.io for a libGDX game jam. 99 Clones - https://fivemedia.itch.io/99-clones - I'm going to steal a bit of code around the movement and collision detection from there! I did the art for that one, I hadn't met the artist yet.

- Grant

reminds me a little bit of thomas was alone just with the power unit added to it which could be a game changing aspect.
as of level design I think it could get pretty difficult to make working levels while keeping them individual and challenging but that would be something we could talk about together I guess.
Do you have some tilesheets or something to work with already? I have been using tiled a few times but never really  used it in a game. And my knowledge in platformer games is very limited to super mario etc :,D  
I've mainly worked on Top-Down, Isometric, 3rd Person(3D) and FPS(3D) games.

Submitted

Ok, well no worries- if you're still  interested based on this rough idea, I'm happy to collaborate and we'll see how it all works out! Yes, a lot like Thomas was alone actually- I hadn't clued into that until now! I think with the power unit mechanic, and I'm hoping to amp up the difficulty and have a mix of levels where some it's a little more speed driven/twitch, so a mix of puzzle, co-op, and some speed/twitch levels- and maybe even a boss of some kind (or a special type of level), it'll be unique enough.

I'll get something up on github late tonight, including a level or two (place holder levels) - but it'll give you an idea of how levels are built and objects are added and used in the levels. From doing a few platformers in libGDX I have a decent pattern that is pretty simple but works.

- Grant

great :) i'll take a look at it 

Submitted

Hello there grant, my name is John. I was a part of the libgdx jam that your clone game was also a part of :)

I havent really ever worked in a team where i wasn't the only programmer and I think it would be great to gain that sort of experience.  Most of the games on my page are made using libgdx. Most of them are more prototypes than anything but work for the most part lol. I also worked on a game with my younger brother which i coded in libgdx. It can be found here;

Let me know if i can be of some use :)

Submitted

Hi Bytes,

I pushed a very early first draft as a start.

https://github.com/grant-strayvoltage/gameoff


If you look in Core/Assets you can see the first level: level_1-1.tmx. It gives you an idea how a level would be designed. It is not a 'real' level, but rather a sample level with very basic tiles and meant to include a few of the standard objects I'm thinking of adding.

You can also see how the player starting position works, and Platforms show the link between code and the level editor. The Switch, and other objects are missing from code and need to be implemented. Also the moving platforms are just showing up in the starting position, no triggering or movement yet. I'm using reflection (Class.forname) and based on the Object Type field in Tiled, instantiating the object and adding it to the main layer in the game.

I got the player's moving together left and right with no collision, again just to show the idea and where the code goes.

So I'll be talking to the sound and art folks this week hopefully and should know there interest. For now I'm just using the crude placeholder art.

If you're interested let me know - maybe send me a direct email: grant@fivemedia.ca

I can share a lot more details, etc. then! I'm thinking we can do some easy ideas for splitting up work to start- like one of us takes on the player movement and the power cube throwback idea, and the other starts tackling the Game Objects like Platforms, Switches, Moveable blocks, etc. and making those work in the game.

The idea is the 1 square character can only jump a square and a bit high, while the two square tall character can jump around 3 squares high. I was going to go with pretty simple movement, standard move left/right and jump. For the puzzle element, probably no double jumps or wall jumps.

I haven't gotten to adding switching control between the two, any 'physics', or the power idea yet.

Note in Tiled, you can define "Types" - check the menu option "View-Object Types Editor".

- Grant

Submitted

Hi Bytes / kyperbelt,

I did one update last night to github - added a bit more movement. Also I updated the Readme.md for the project on GitHub with some early thinking and brainstorming.

I am going to write exams tomorrow and on thursday in school so I will be taking a look at it tomorrow, learning again on Wednesday and then I should be ready on from Tuesday on :) 

Wish me luck guys 馃槀 

Submitted

Sounds good. Good luck.

(1 edit)

Thanks a lot

Hey I've been looking through the code a bit now and I don't really see through all of it how about sitting together in a discord server or something and talk about it.
Another thing I would like to mention is that it might be better to use box2D as our physics engine instead of all the self made bounding box stuff that would not only keep the code a lot cleaner it also would work even better because as you metioned in the readme there is a lot of glitching around for example if you get under a platform or throw the power unit it can get stuck in a wall.
my discord username is T0x1C_Byte#8833

And I need push access to the repo my Github is T0x1CByte

Submitted (1 edit)

Ok. I'll get you added on github.

Yes, I've been having an inner debate, and I think I agree- the game is turning more into a physics puzzle platformer than I originally was thinking. I used box2d for my last game, it certainly would work well for most objects. My only thought is for character movement might do a few things unique there as I hate the way true physics feels for jumping and character movement! But probably can get it close with some tuning. When I started I was thinking more traditional platforming, less physics and interactions!

What I did in my last game was get the "platforms" tile layer and based on the flags turn those into box2d static objects in the world, then did a simple common method for taking the sprites bounding box (roughly) and creating the body with that. I'll grab some code from my old project and give it a try quick. I'll try to do one more push with whatever I get done on this tonight at some point.

I'm traveling for work, I won't probably get back online (coding wise) on this until later in the week.

Here's a few tips on reading the code:

Anything in the gamelib package is really my re-usable game library code I framed up on top of libGDX. A lot like Scene2d in some ways - layers, etc.

The game itself for the most part is in the gameoff package and right now is only a few files.

gameoff.java is where things boot up, it then adds the SplashScreenLayer and runs that, then does the TitleScreenLayer, then from there it loads up MainLayer.java where in loadLevel is the magic where it loads the tmx file and builds and has the game logic/main game loop. MainLayer is where we'd step the world etc for Box2D.

You can see in loadLevel I grab the "objects" layer from the tmx file/Tiled level, then for each object, I use the Type property and reflection to instantiate an instance of the object- for example "Platform" or "Block". Then I call init on it with the properties from the object in tiled, and it initializes. Then in each objects update is it's main logic. I had the idea that all the game objects would inherit from GameMapObject - which is where the physics live for most objects currently and other common things.

I'll have a look at Discord, I've ever used it, but I can get it installed. I probably can't jump on a call until later this week.

- Grant

Submitted

I added you as a collaborator bytes.

Also kyperbelt if you email your github username I'll add you as a collaborator as well.

Submitted

Quick update. I'm done for tonight, and on the road for work tomorrow until late- check in Thursday some time.

I pulled some code from another project that used Box2d and got it roughly in similar shape to the last build, but using Box2D.

Ran out of time to do what I wanted, so a lot of rough spots still. Platforms for instance don't line up right and will need some improved control logic. Also need logic to confirm player is on the ground- I put a 90 second delay between jumps just for testing. Probably making MainLayer a ContactListener would allow for implementing more logic on contact, such as confirming if the player is standing on something they can jump from.

Anyway feel free kyperbelt/bytes to try your hand at improving anything you see there. Just to avoid duplicating effort, let's send each other either a post here or get some direct emails or something going so we know roughly what each other is working on. 

I think for the next week we stick to basic mechanisms and high level level design and puzzles. Hopefully some art work will start rolling in next week which would allow us to do more 'final' level design.

Some ideas on how we could divide up work:

1. I can improve some of the Box2D base code I added - I took some shortcuts as I ran out of time tonight - some grossness with filter and masking and with how I'm using globals essentially as parameters for addToWorld.

1a. Exit and next level mechanic.

2. Someone work on fixing platform logic for movement, so should stop perfectly by stop point etc. and not just motion when player or object blocks it. Some rules to figure out - what happens when block gets in way...player, etc. (Player I think you die)

3. Someone work on player movement...getting it nice and smooth, and the on ground sensor for jumping. Key is short guy can jump just over 1 tile high, and tall guy can jump just over 3 tiles high max. Also don't like how they stick in spots, and some other weird behaviour. Acceleration, and turning also should be smoother.

4.  Any good ideas on the throwing of the power unit.

5. Implement switches - probably both visible switches, one way switches, and hidden ones (so trigger points) - can trigger platforms to start moving etc.

6. Platforms - maybe one way movement then stops, until switch hit again - might be useful puzzle element

7. A moving enemy?

8. The idea of death, and restarting.

9. Trampoline object

etc.

- Grant

Submitted(+1)

Hey Bytes/kyperbelt,

Here's what I'm thinking to organize how we work with our different timezones and working times.

Let's use the Issues on Github to identify tasks and take ownership of tasks would be the simplest way. Does that work for everyone? I've created 11 issues as a starting point.

I'm meeting with the sound and artist team members tonight.

- Grant

Hey Grant
How about using trello so everyone knows what is beeing worked on etc this way we can easily keep everything updated...
I do also want to mention that i dont really understand much of the code that we are building upon maybe a quick documentation of what is inside and what is doing what would be great or we could just rewrite everthing and make the whole porting to box2D etc easier

I personally think it would just work fine if we would start from scratch and make extensive use of Tiled and Box2D what do you guys think about that?

I will be adding a trello board and the link to that will be in the ReadMe on github.

Submitted

Well if you look at the code now, it uses Box2D and Tiled - so I think we're already there! I ripped out a couple days ago all my custom physics logic and replaced with Box2d. So all MainLayer.java does is load the tiled map, create Box2D static bodies for the tiles that are solid, iterate over the Objects layer from tiled and add GameMapObjects for them - which also each can have Box2D bodies, etc.

Did you read my earlier post on the thread - I tried to explain some of the key classes and the general flow/approach.

Sure I can use trello instead - I was just thinking github had issues which can link to commits and also has a wiki and the readme - just didn't want too many places.

So let's decide on one place tasks are identified and assigned.


A few other things to share. Met with artist and sound team tonight, they are on board. Might have two artists, we'll see, he's going to check.

We should have some initial character art Sunday night/Monday, and then some tiles etc next week or so. Sound will be last, we'll start building an asset list as we go.

Also another game design thing - we're thinking we should change the power unit to a 'brain' and the cyborgs actually drop the brain between the two cyborg bodies. Be kind of fun- also the little bit of experimentation, throwing of the power unit and controls was seeming more tedious than fun for the player. Thinking now you can press a button, the brain detaches, and you can move it left/right - it kind of hops with a nice juicy squishy sound - it doesn't jump though- so this allows for it to still play a role in the puzzle element. In two player, whoever drops the brain, controls it, until it contacts the other player. This also opens the option for in a later level adding another character type if we wanted to etc.

- Grant

Submitted

Also John/kyperbelt improved how the tilemaps get converted to static bodies, and a few other tweaks...so I think we're on our way with the current code base.

Submitted

Bytes/John - setup a discord channel chat: https://discord.gg/gn2X8mA

Submitted

Hey guys,


Hopefully everyone get's a bit of time to work on things this weekend - I'll do my best, probably have to take tonight off though.

My plan is to refactor tileset and characters to new final sizes and adjust the test level accordingly -  going to 32x32 pixel tiles, which means larger tiles and characters, and player 2 will probably get wider (skinny guy).

I also want to keep improving player movement and get the whole 'brain' thing working smooth between the characters.

Bytes, I did create a Trello account but I don't seem to have any permission to do anything. I'm going to keep creating github issues and owning them to indicate what I'm doing for now.

I think along with either Trello (and Github for now) - that Discord chat server for gameoff I setup (you should have an invite bytes) is probably a good place to also communicate on where we'll all see it.

Lastly there's lots of work around platforms moving properly, other objects to implement, etc. to do - so don't by shy, dive in! Just make sure via GitHub you're showing what you're working on and on that discord chat as well- we don't want overlap and to waste each others time!

Submitted

I have also made a trello but have absolutely no idea how to use it lol. Looks interesting though.