Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (542)
Games in Android Showcase (133)
games submitted by our members
Games in WIP (604)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Questions about game development cycle  (Read 599 times)
0 Members and 1 Guest are viewing this topic.
Online CopyableCougar4
« Posted 2014-07-06 14:18:02 »

Hi

The last month or so I have been trying to make my first real game with just LWJGL. When I am working on it, I keep getting caught up in a loop of starting to add in some basic functions and then either deciding that I could write it better by restarting or deciding that the game is poorly coded and restarting. I was wondering if some people could give me some pointers (as there are some very accomplished developers present on this forum) that would point me in the right direction for how you go about starting a game and adding in features. Thanks for your time Smiley

CopyableCougar4

Either wandering the forum or programming. Most likely the latter Smiley

Github: http://github.com/CopyableCougar4
Offline kevglass

« JGO Spiffy Duke »


Medals: 221
Projects: 24
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #1 - Posted 2014-07-06 15:09:23 »

Simple, resist. Starting from scratch once you have something working is pointless, massage your existing code into something that you do think is right to fix the problems. Always remember, players of your game don't care how it's coded.

Cheers,

Kev

Online CopyableCougar4
« Reply #2 - Posted 2014-07-06 15:13:01 »

Hi

Thanks for your advice, Kev Smiley

CopyableCougar4

Either wandering the forum or programming. Most likely the latter Smiley

Github: http://github.com/CopyableCougar4
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline PandaMoniumHUN

JGO Coder


Medals: 32
Exp: 3 years


White-bearded OGL wizard


« Reply #3 - Posted 2014-07-06 15:38:32 »

Well, to put it simply there is no need to reinvent the wheel, that's why LibGDX, Slick2D and many other Java game engines exist.
Those libraries have been extensively tested by a large audience so there are almost no bugs, most of their functions are highly optimized but they still provide you a nice high-level interface for interacting with hardware and they're highly portable with many options (LibGDX has like 5 or 6 rendering backends and can be used to export to desktop, web, Android and iOS).
Most of the people here who make their own engines (me included) only do it for the learning experience. Once you're over that and you fully understand what's going on under the hood of a game framework there is really no benefit in rolling your own engine. I wrote like 3 game engines since I've started my game development journey, none of which comes close to the functionality to the above mentioned frameworks even though I put a lot of time and effort into them. Smiley

You have to choose what you're interested in: Making engines or making games.
It's really hard and time consuming to do both at the same time. Pointing

My Blog | Jumpbutton Studio - INOP Programmer
Can't stress enough: Don't start game development until you haven't got the basics of programming down! Pointing
Online Rayvolution

« JGO Spiffy Duke »


Medals: 272
Projects: 2
Exp: 1 year


Resident Crazyman


« Reply #4 - Posted 2014-07-06 16:58:46 »

What I do is make lists:
- Have a laid out plan of "core" absolutely required features
- A second list of features I think should be added, but aren't required for basic core game play.
- A third list of features I don't need, but would be cool to add.

From there, I start coding the core game. I do tons and tons of refactoring as I go, including just code optimizing and general cleanup. Usually this is how I work on something new:
First: Get it working, even if it's rough and coded poorly.
Second: Optimize the hell out of it, make it run as fast as humanly possible.
Third: Refactoring the hell out of it so it's easy to read and makes sense.

After that, if down the road I discover a way to do it better, I go back and play with it again when I'm bored. (or when I'm bored is when I start playing with adding fun side-features from my cool-to-add list) But it's no longer a priority because the current working model is "good enough". But I'm constantly trying to improve things. For example, I've discovered an interesting way to speed off my off screen rendering in my lighting engine, I haven't tried it yet because my lighting works really well anyway. But if I need a break from writing new code I'll go back and play with it.

Usually the only time I head into a 100% functional/completed class is if I either am forced to due to adding a feature elsewhere that requires me to modify it or if I come up with a way to improve performance. But after the initial code cleanup, I seldom return to clean up some more just for the sake of cleaning and reorganizing.

Really though, since you're fairly new, I actually *do* recommend rewriting your code 500 times every single time you discover a new way to do something. Reason being, the first 10 times you do it will probably suck. Once you become a skilled coder you'll get that "warm fuzzy" knowing you did it the best way you feel is possible. Right now though the best way to learn is to do exactly what you're doing. Write it, write it again, put it aside, learn something else, come back to it and rewrite it again, over and over. You'll take 20 times as long to complete a game, but you'll learn so much more that way and it'll make the game you make after it that much better, faster and easier to develop.

- Raymond "Rayvolution" Doerr.
Retro-Pixel Castles - Survival Sim/Builder/Roguelike!
LIVE-STREAMING DEVELOPMENT: http://www.twitch.tv/SG_Rayvolution
Online CopyableCougar4
« Reply #5 - Posted 2014-07-06 18:35:22 »

. . . Really though, since you're fairly new, I actually *do* recommend rewriting your code 500 times every single time you discover a new way to do something. . . You'll take 20 times as long to complete a game, but you'll learn so much more that way and it'll make the game you make after it that much better, faster and easier to develop.

That's good advice Smiley Thanks Smiley

CopyableCougar4

Either wandering the forum or programming. Most likely the latter Smiley

Github: http://github.com/CopyableCougar4
Offline ags1

JGO Wizard


Medals: 78
Projects: 3
Exp: 5 years


Make code not war!


« Reply #6 - Posted 2014-07-06 21:54:13 »

Make small changes and test frequently. Learn how to refactor your code, simple things like extracting methods or interfaces can improve your code a lot. Try to make as much of your code as possible independent of your user interface so you can create test cases.

Pages: [1]
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

BurntPizza (15 views)
2014-12-27 22:38:51

Mr.CodeIt (13 views)
2014-12-27 04:03:04

TheDudeFromCI (17 views)
2014-12-27 02:14:49

Mr.CodeIt (25 views)
2014-12-23 03:34:11

rwatson462 (56 views)
2014-12-15 09:26:44

Mr.CodeIt (46 views)
2014-12-14 19:50:38

BurntPizza (92 views)
2014-12-09 22:41:13

BurntPizza (113 views)
2014-12-08 04:46:31

JscottyBieshaar (86 views)
2014-12-05 12:39:02

SHC (97 views)
2014-12-03 16:27:13
How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21

Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50
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
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!