Really quick, just a little about my career:>Watched Chuck as a teenager -> wanted to work Geek Squad>turned 18 -> got job at Geek Squad for 2 years >Geek Squad -> HealthCare I.T. Phone support for almost 3 years

5 years after high-school, I’m making around 60k/year and it took me 4 years to complete just an A.S. and cert for java/mobile software development because I’ve been working full-time. Learned a lot along the way, but have no REAL programming projects under my belt. I've been thinking-starting-stopping-getting nowhere with game development since 2013, but I think I’m finally miserable enough working I.T. to flex my creativity and publish something... but where to start!

Clearly this is the java game dev forum but I’m so conflicted about what to do, I figured this is a good place to ask. I've messed with jmonkey and made a few scenes a couple years ago, same thing with unity and with gamemaker studio, as well as pure slick2D for a little brick breaker remake. I would like to create something that will fulfill my personal desires but I also want it to be a project to put on my portfolio in the hopes of getting a software dev job at some point.

With that said, should I go full tilt and learn how to design a LWJGL engine and gain deep programming experience, or should I use an engine and just worry about completing something?

start from pong with libgdx.easy to do, you can learn a lot. Then ask yourself: "do you want to create a game or a library?" general advice here is not to waste time and go with "create game path", but you are free to do what do you want

The only thing i can suggest is that at some point. Start working on a game that you AND ONLY YOU would enjoy. Don't try to make one that will make you millions or would have the biggest market or is on the most popular platform as you will unlikely finish it.

Think of a small/simple game that your making for your yourself, and you'll be pleasantly surprised on how much enjoyment you get get back from it as you slowly work through the hurdles and watch it come to life. My personal favorites are the tile-based game that you would get on the old Nintendo DS. Games like 'Advance Wars'. Games like these are totally do-able in java and can be built by one person.

For libgdx, should I just look over the javadocs to try and understand, or would you recommend a tutorial course like udemy?

I think part of my conflict comes from my roommate. He actually has been doing little game projects in unity by himself and he's just about to publish one to Steam, but he doesn't really have a deep understanding of any single language, so unity works for him.

Sounds to me like you are itching to learn more. Some people have a game idea that they want to bring to life, and not so worried about gaining programming skills. It makes sense that they would not wish to "waste" a lot of time learning coding to any great depth.

I've been amazed at what can be done with the "Blueprints" stuff that comes with Unreal. The tool set is incredible. I assume the same is true for Unity. I could see making all sorts of games within the bounds of what they have made available.

Completing a game and marketing it is a considerable accomplishment. But it is going to help more with design work and showing you can see something through to the end than it will show programming skills.

I really don't know what to advise, beyond checking out Gamasutra, perhaps, for the job listings that are current, and deciding if some of them are worth targeting when you decide what to study or do next.

I decided to go my own way with audio coding, and have learned a lot, about both audio and Java. I had some notions that by getting off the beaten path and building something myself, from scratch, I would learn interesting things and gain perspectives that were different from people who follow the main roads. Part of where coming from: working with gear as a composer (e.g., Yamaha DX-7 or the Native Instruments FM-7/FM-8, or various DAW's) and being annoyed that I couldn't experiment with ideas unless the capabilities were implemented. Didn't like the notion of my creative ideas being constrained by decisions made by engineers. Wanted, therefore, to make my own tools. Unclear yet whether it will lead to a job in the industry. I'm not exactly regretting the choice, but feel like I have a long ways to go yet to earn income from game coding. But part of that could just be the near impossibility of competing in an industry flooded with content.

With that said, should I go full tilt and learn how to design a LWJGL engine and gain deep programming experience, or should I use an engine and just worry about completing something?

Don't design an engine. Use an existing engine, like libGDX.

If your goal is to start building up a portfolio, the harsh truth is that nobody is going to look at a game engine. You've said that you're still a novice programmer, and that's completely okay! But that also means that most of the code you write right now is going to look like crap to you in 6 months- that's a sign of you growing, and it happens to all of us. But the point is that there really isn't a point in starting out creating an engine, since you'd probably end up rewriting anything you did right now anyway.

Start small. Smaller than you think is interesting. Don't think Call of Duty, don't even think Minecraft. Don't even think Angry Birds. Think Pong. Maybe Flappy Bird. Learn the basics of game development: game loops, user input, drawing, events, object oriented programming, etc. Work your way forward in small steps. Finish those small projects before moving on to the next one. A portfolio that contains 3 tiny but finished games is much more impressive than a portfolio that contains one half-finished big game or engine.

And at the risk of being accused of blasphemy, I'd also urge you to take a step back and look outside of games as well. Games are fun, but they aren't easy. Learning a framework like libGDX is very hard if you don't already understand the basics of Java, object oriented programming, events, etc. So I'd really advise you to take the time to learn the basics before trying to take on more advanced stuff. You might even find that you like something else more than games anyway: maybe app development, or server development, or data visualization, or even art.

For learning the basics, I really like Processing. It lets you play around with the basics in an animated and interactive way, without all of the boilerplate that more "advanced" game engines require. Shameless self-promotion: I've written a series of tutorials that take you from the basics in Processing to more advanced topics in Java, available at HappyCoding.io. I'd be happy to talk more about that if you think it sounds interesting.

You've said that you're still a novice programmer, and that's completely okay! But that also means that most of the code you write right now is going to look like crap to you in 6 months- that's a sign of you growing, and it happens to all of us. But the point is that there really isn't a point in starting out creating an engine, since you'd probably end up rewriting anything you did right now anyway.

I don't know about this advice. It seems to me, if you don't take the time to write what turns out to be "crap" code, how do you grow?

Coding is a lot like a muscle--you have to engage in the problem solving activities in order to improve your ability to problem solve.

If you are just going to "template code" (and avoid any heavy lifting), might as well just use a builder tool and forego coding. Rewrites are both an inevitable and necessary part of learning. Hard to truly understand how important something is until you try and discover why the 'obvious' solution doesn't always work.

If game-engines are a passion, why not? There is a lot to be learned there. I'm not saying it is any better or worse a career path than making games, though.

It seems to me, if you don't take the time to write what turns out to be "crap" code, how do you grow?

Coding is a lot like a muscle--you have to engage in the problem solving activities in order to improve your ability to problem solve.

I agree with all of that.

To be clear, I wasn't telling the OP to avoid writing bad code- I was telling them to avoid writing bad code that they're planning on reusing, because the truth is that they won't actually reuse it. Write bad code, definitely. But that bad code should be a small game or app or demo that they can treat as a completed whole and move on to the next thing, instead of perpetually needing to go back and rewrite everything.

If you are just going to "template code" (and avoid any heavy lifting), might as well just use a builder tool and forego coding. Rewrites are both an inevitable and necessary part of learning. Hard to truly understand how important something is until you try and discover why the 'obvious' solution doesn't always work.

I think it's more important to learn "the process" behind programming: taking a big problem and breaking it down into smaller pieces. The only way to learn that is to do it, over and over again. With that experience comes all of the stuff you need to be a "real" programmer. Break a problem down, finish it, and move on to the next thing. Repeat that until it comes more naturally, then move on to more advanced stuff. I don't think it's super useful to constantly rewrite what you've already written. But maybe this comes down to personal learning style, so to each their own. Writing and rewriting engine code sounds horrible to me though!

If game-engines are a passion, why not? There is a lot to be learned there. I'm not saying it is any better or worse a career path than making games, though.

OP never said game engines are a passion. My guess was that they knew that games were made in engines, so assumed they needed to use one to make a game (you don't, by the way). Then they saw that a lot of people make their own engine, so the question becomes: do I make my own engine? Is that the "correct" way to make a game? And I think the answer to that, like most things in programming, is that there isn't a single correct answer. But I cant definitely understand how confusing it can be: do I learn an engine? Which one? Do I create my own? How do I get started?

And my personal answer to that is, don't do it that way. Work in smaller chunks until you have more experience with the process of programming. Get something that works, throw that up on your portfolio, and get the next thing working. Even if your end goal is to make games, you need to learn the basics first anyway.

You're right, I sort of am. I'm stuck at what I consider to be a dead-end job and i'm really sick of taking college courses because the structure in my opinion is flawed. So i'm looking to take a break from structured education in that regard.... but alas, degrees rule the professional world .

Don't design an engine. Use an existing engine, like libGDX.[...]And at the risk of being accused of blasphemy, I'd also urge you to take a step back and look outside of games as well. Games are fun, but they aren't easy. Learning a framework like libGDX is very hard if you don't already understand the basics of Java, object oriented programming, events, etc. So I'd really advise you to take the time to learn the basics before trying to take on more advanced stuff. You might even find that you like something else more than games anyway: maybe app development, or server development, or data visualization, or even art.

I have actually done all of those things during my schooling; developed an j2ee web page, a mockup android application, and fiddled with server-side java application development. I didn't find myself hating any of them in particular, but after trying to revisiting android I discovered i'm not really a fan. Really the point that i'm at in my experience is that I go months between programming/not programming. This seems to stagnate my knowledge and there's a learning curve I have to go through before I can start projects. So i'm trying to use game development as a catalyst to keep me consistent and increase my visibility on github or other platforms, and it just so happens that I really love video games. I want to 'attempt' to make something that other people might enjoy and maybe even make some dough, at some point. However, if I never get to the point of publishing my work, I would be more than happy using what I've done to get a software engineer position at any type of business.

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