Mentor Needed!

Hi there,

Let me start off by introducing myself.
My name is Lars Carré, a 17 year old, last year student at TSM Mechelen (Belgium) studying Industrial ICT.
For my Integrated Project I chose to make a tilemap java game. Basicly, it is my final
project/thesis on which I’ll be evaluated to pass this year (amongst other factors such as grades).

Now for this project I need an ‘official’ mentor, sadly no teacher at my school can mentor me since lack
of knowledge (kind of sad really) and the teacher who can does not want to mentor me due to the amount
of work that comes with. Therefore I’m asking if there’s a Java programmer with some spare time
(each wednesday, or saturday, whichever day really) once a week, to review my progress and correct
me along the way. The whole point of being a mentor is to communicate with me and review my progress.
You don’t write code (I’m not even sure if that’s allowed), but I do… You get the concept.
My official mentor (on paper) will be my class’ responsable teacher. But he can’t really handle all our
students so he asked us to look for a mentor. Sadly I’m the only ‘programmer’ in the family so that’s why
I’m asking here if there’s anyone that would like to help.

Now for the legal purposes we’ll have to exange some info, about what, why, when and this can be achieved
trough this forum, or my email larscarre@gmail.com.

The project itself consist of getting controllers (PS3, Gamepads…) to work (with JInput) on a tilemap based game.
The category has been set to fantasy RPG, but that doesn’t really matter as it works.
My current progress is learning to work with Graphics2D and Graphics togheter with Frame, JFrame and JInput.
I would like to create this project with as few external libraries as possible. (It doesn’t matter if it takes up more time)
For graphical content I’m relying on the internet and my friends who are happy to design for/with me.
If you could spare some time to correct me, or help me out. You’re always welcome!
All my code will be commented in English (duh) and will soon be found here:


Note that my code takes 1-2 days to push. So it won’t be up to date, or current issues might’ve already been fixed.
.I currently do have some test code in Eclipse to learn some more about Graphics.
I’m using the space invaders 101 tutorial (currently) to learn how to work with Graphics in Java.

The full goal (or minimum requirements) is to:
-Have a standalone working game
-2D 45° Tilemap Game
-Controller Support
-Write a thesis about it.

My current experience is 2 years of MS-DOS(Batch), 1 year of QBASIC, 1 year of Python, a few weeks of PHP, a year of HTML and CSS, some MySQL knowledge and 2 years of working with Java SE.
I am only 17 so don’t expect me to know a lot. Let’s say that currently we’re (in school) still learning to define custom Objects in java and we haven’t even learnt working with classes yet — BUT no worries as I’ve learnt those things and more outside of school. My most proud achievements are a Isometric engine in QBASIC that reads matrix’s layer
per layer and eventually draws a 3D ISO object. Next is a library for Python Pygame to simplify a Graphical menu.
Then follows a word generator in Python. That’s really “it”. Most of my time programming was learning and making useless programs such as command line oriented games or even a variant of PassKeeper. I understand Java quite well
and I have a basic understanding of how it works. You can give me some game code and I’ll understand most.

For my thesis about the project, you do not have to worry, since that’s in Dutch and will be corrected and reviewed
by my Dutch teacher. If you would like to teach a kiddo some good things or two give me a ring!
I’ll get everything set up so my responsable teacher can communicate with you and vice versa.
So if you could spare 1 day a week to help and review my progress (until may/june) it would be greatly appreciated!
If you wish to skip a week or even make up a custom scheme all’s is fine with me!

Many thanks for the read! :slight_smile:

I posted this in the wrong section sorry :-\

My recommendation – try out Unity, Unreal
And when you have more experience - you can try create own engine from packs of libraries :wink:

I’m familiar with Eclipse, inside out and have no trouble learning the Java classes, so I’ll make an “engine” but it won’t be worth calling that as it’s just a class with some graphics functionalities. Unity not really what I wanted to use but I’ll look into it. And Unreal, have seen it heard of it, but not my type of butter either.

Thanks for your recommendations though!

Super 1337 info

::slight_smile:

You’ll need to buck up and drop the Java 2D API and get your hands dirty with libgdx.

The “super 1337 info” above will provide plenty of links then check out Tiled.

Get coding / then perhaps ask specific questions you may have on the libgdx forums or here on JGO.

I was just progressing with Java 2D and don’t mind spending too much time and do it less efficiënt. I’m mainly not using other libs so I don’t have to include it in my papers. It is also a personal achievement doing this mainly with the standard Java libs. But if it gets too hard I’ll make sure to use either LibGDX or LWJGL3 or even Slick. And for the mapeditor I was already planning on using that one! Thanks alot though for the reminder, I’ll start learning asap.

And thanks for commenting. I think that I’ll try to ask my questions seperatly.
But I’ll keep trying to find a mentor since it’s kind of ‘necessairy’.

Thanks again for the advice :slight_smile:

Hi,

I´ve been doing a lot of forum answering and pieces of game-development for other users since I just want to help people into things I know.
I was thinking about offering you to be your mentor but I think I´m not the right person for it, especially because you want to do things I never cared about, controller support for example. Also I haven´t really done games, I often helped people to finish their games on game jams for example tho.
I like that you don´t want to use too much libs, I´m kinda the same person and since I think I´m not really the mentor you want, I might still help you a bit I hope.
I made a little game engine just using Swing/AWT and some pixel manipulation. I also added simple animation support and some things like input handeling and stuff, so if you want to have some reference code, I could share the git project so you have access to the code, just message me for this if you want.

Best regards,
Major

As your mentor in absentia…

Re: >I was just progressing with Java 2D and don’t mind spending too much time and do it less efficiënt… It is also a personal achievement doing this mainly with the standard Java libs.

Is failure an acceptable outcome for this project for a passing mark / grade?

To meet “The full goal” as outlined in your first post you need to choose the right tools. You’ll be using the standard Java library along with an additional graphics library; whether that is JavaFX (not recommended!) or libgdx or … The Java 2D API is not well suited to this task at all. Ignore Slick2D as it is outdated.

Consider that you’ll need a vector math library regardless of what you are going to do and that is an additional library over the standard libs. This comes as part of libgdx.

You’ll either need to drastically reduce the scope of “the full goal” or use additional libraries suited for the task at hand.

Creating just a Tiled / TMX map loader from scratch that ham-fists everything together with Java2D and a vector math library just to load and sort of display a level will take you to June if you’re lucky.

Or you could use an outside library if you want to stick to standard libs: libtiled-java.

If the requirement remains to actually produce anything close to a working game you need to use the right tools. Even with using libgdx and the tile map support it provides you are going to have a hell of a time to create something that resembles an actual game by June and this is if you are working full time on it all which I assume is not the case.

Re: >But I’ll keep trying to find a mentor since it’s kind of ‘necessairy’.

I also wanted a mentor at your age, but one never materialized, so be prepared to keep your head down, buck up, and get coding. You’ll find that folks will help you with concrete / individual problems on various forums, but a dedicated mentor worth their salt is hard to come by even if you could offer compensation for time involved. Regardless if the mentor requirement is partially attached to your school / class at hand it’s going to be dodgy at best to find anyone who will sign on for that role. Also be prepared for dead ends / failure if you find the wrong one.

I would offer to help, but I haven’t dealt with controllers directly, and have not built a tile-map game myself. My interests are more around sound-effect programming.

I’m wondering if you considered using JavaFX instead of Java2D/Swing or the more powerful Libgdx. I’m finding JavaFX easier to use for GUI’s than Swing or 2D. Also, it is now an official part of Java and being more recently built, likely more efficient. too. I would think the basic tile-map algorithms should translate from 2D to FX just fine. I have a tutorial that you can probably work through in an hour or so if you want to get a taste of JavaFX on Eclipse.

Thanks Sauce!

YES I would love to see some pieces of your code since that’s what I always do.
I look at examples and make my own from scratch.
And thank you for understanding the mentality of not using too many libs,
but since other members already suggested it, I’ll use libgdx
but only if I run into a wall I can’t pass.
I can also see that people are willing to help but not to devote time, which is perfectly normal.
So if I encounter some problems I’ll make a thread about it I guess.
Then my reference will be all those people who helped me.
I guess that’s legal/acceptable too in terms of my thesis.

Thanks for your time!

Failure is not acceptable to pass but the fact that it can be worked with afterwads, or worked on, its due date can be replaced to august.
And also get’s extra points if your project is continuous. I already have the TileMap loading working, now it’s a matter of getting some small things done.
Such as graphics, but my friend is helping me with sprites etc… For the game itself I’ll try using libgdx, but only if I can’t progress anymore and
if it’s really nescessairy.

The full game is just a working tile map loader a movable sprite, external controls and interactions.
That’s really the full scope and that’s what I’m doing right now.

For the mentor part, I’ll think I’ll try to go with your plan, of asking help for each problem. But it’s not really help I need, since most problems
are solved with some research. It’s progress evaluation and “re-track” me if I wander off too far.

Thanks for your advise I’ll be sure to look into the options I have, as I’ve done before.
Thanks for your time!

I would always love some help!
But I wonder if I can ask things from you such as evaluations? That’s why I need a mentor really.
And for controllers it’s quite easy really, I just ordered a gamepad and with JInput I’ll invoke
a data polling method to recreate something like keyEvent. (Not concrete yet!)

And thanks for the suggestion, as others already said I should use libgdx.
I’ll use that library, but only if I run into walls I can’t pass.
Right now I’m not having any issues doing what I need to do.
But if I start with it I’ll make sure to use and read your tutorial!

Thank you for your response and time!

As for Jinput, this website got me started: https://theuzo007.wordpress.com/2013/10/26/joystick-in-java-with-jinput-v2/

The sample/test program he made is great. It might be confusing to actually get it up and running (you will have to put the dlls in your build path and stuff like that), but once you do, it’s really easy to integrate into your games.

Already got some test apps working with JInput, but thanks for the examples, but it won’t be until a month that I CAN use it.
I ordered the controllers from AliExpress so… :smiley:

Thank you for your time and answer :slight_smile:

No problem, one thing to note is that a joystick and gamepad will register buttons and sticks differently. I had programmed my game for a logitech controller that registers as a joystick, but it broke, so I started using a 360 controller which registers as a gamepad, and had to remap it. Not that big of a deal, but if you don’t know which controller the player will be using and don’t plan for that, it can mess up the user’s experience.

Yep I know. I chose gamepads instead of controllers, AND I ordered 2 :D.
Can’t wait for them to arrive thanks for the tip :slight_smile:

I highly suggest you set a firm cut off date to stop going down “the wrong” path. If you can’t make suitable progress by the end of the year with Java2D seriously switch to libgdx ASAP in January. A mentor should direct you to the right tools and path, but you got to listen and take heed as well.

Then start posting code in your Github account.

Nothing is trivial or small per se especially at your assumed experience level. Once again as a mentor in absentia I highly suggest that you purchase assets. With a non-exhaustive search
here are likely free assets, but check the licenses. I found 2 $40 sets here:


What is really nice about the latter tower defense assets is that there are 27 characters that already have Spine animations in all iso directions; for $40!

Tools are important and you shouldn’t eschew using them. If you are going to be doing any animations I highly recommend Spine. Just like there is an API and support for loading tile maps in libgdx there also is a library addition that handles runtime concerns of using Spine animated models for libgdx. For $40 you can get all those assets and the animation support which can more or less be dropped into libgdx. Spine would be a worthy purchase as well for continuing to tweak or create anything animated.

Don’t waste time waiting for custom assets.

Consider that libgdx also has controller support. It has everything you need and you can look at the source code to learn how things work under the hood.

Sounds more like a tech demo than a “game”; depending on how much you can fudge things in respect to the definition of “game” you might be able to get away with Java2D.

What do you mean by interactions? Collision detection, animation, sound / music, story / plot? There is also UI, loading / saving, and a bunch more things to consider in an actual game. Let alone the issues you are going to run into with Tiled / tile maps and rendering order and sprite occlusion.

Once you have the basis of the game / timemap loading and rendering consider opening a “work in progress” thread.

You are already wandering off to start. If I had to describe my understanding of how things are presently it would be: “you don’t know what you don’t know”. Which is fine, but that is why it is crucial to set right now a firm stopping date on your current path, the sooner the better, so that you do have enough time to correct it. I worked in depth professionally with Java2D for 6 years in the aughts before Android dropped, so I do know what is possible there; getting on the OpenGL path via libgdx is pertinent.

Today I received more information about cut off dates etc. And I’ve scheduled and planned all my goals.
I will indeed switch to libgdx if I struggle too hard by Jan, that’s a deal.
And as far as a mentor goes: I have none. So tools etc. are things I never used (like Tiled).
So I’m trying my best to combine the advice from you veterans :slight_smile:

Well, that’s already happening on a 3-day basis as minimum.

Welp, I’m not making a high end game, but I’ll ask if that’s needed. I’ll state that what I’ll be making
is indeed more of a Demo, you can see here were I’m at right now.
Today I received some sprites and my friends are actively working on that.
I do have a spare sprite pack (licensed for free usage) so if I get stuck or want to
change layouts I’m never held up.

Hmm interesting thanks, I did not know that. I already tried a small game made with libgdx to look at how it works.
Not my type of butter but be sure that I’ll go to libgdx as soon as it gets too hard.

Welp, it is going to be a demo, which (I asked) is also acceptable. A Game Demo more of…
And the interactions will be a simple entity and object interaction, some collision detection and that’s
the only nessecairy part of the demo. Music and animations are optional (as is story).
It is the concept of a game that has to be shown to the judges.

I have it going and I’ll take you advice of opening a thread.
My tilemap loading works (as seen in the image link) and my basic movement
has been implemented.
Now I’m writing the main structure and later I’ll restructure the Game.java class
but that’s all detail. The judges want to see a working Game or Demo of such.
Right now I’m right on track/scheme and everything has been going really smooth.
My code is VERY messy when it comes to use of classes. It just has to work like
a mashup :stuck_out_tongue:
I have to thank you very much for taking your time to read and answering my remaining doubts.
I hope you can forgive me being not the most experienced one when it comes to this.

Thanks again, it helped me get some more insight in things. :slight_smile:

I don’t understand why everyone presses beginners to use libgdx so much. It’s only useful when you need it. Nobody needs a wheelbarrow for a bottle of water.

After a while, I only switched to LibGDX because Java2D became too cumbersome for the professionality I was targeting: the drawing didn’t always succeed anymore, the Volatile Image was proun to error, researching game loops became a slumber etc.
But that doesn’t mean that Java2D isn’t a good starting point. It’s good to learn all those things. We first need to carry heavy weights before we realise what the wheelbarrow is for.

A lot of fun with your project Sralse! RPG’s are fun to make, but they need a lot of preparation, hard-coding quests is not an option. It begins with a good architecture document if you ask me (school demands a few documents too I assume). Just find a few reviewers for the documents and you’re golden (teachers are always available for reviewing documents).

Good luck!

Thank you!

I’ll be hardcoding one quest since you know… I have to get it working ;D
But if I have time left, which I’ll have, I’ll (ofcourse) change that and many other things.
Yeah, I’ve abstractly documented the architecture in a document on our Dutch online school platform.
Thanks for letting me try Java2D, or at least not hammering on me for not using libgdx.
I’ll do that if it’s really nessecairy. :slight_smile:

Many thanks for your advice and time!