Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (736)
Games in Android Showcase (223)
games submitted by our members
Games in WIP (813)
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  
  Working on "How to plan and design a game engine" and I'm looking for feedback  (Read 967 times)
0 Members and 1 Guest are viewing this topic.
Offline ClickerMonkey

JGO Coder


Medals: 26
Exp: 10 years


Game Engineer


« Posted 2017-04-15 20:14:07 »

Greetings friends of old, I request a fragment of your time to borrow your experiences using and creating game engines.

Here's the reddit post:

https://www.reddit.com/r/gamedev/comments/65itl3/working_on_how_to_plan_and_design_a_game_engine/

Why am I posting it here?:

The game engine I've been working on for the past 9 years is in Java, I plan on using the knowledge I gained from that to make a series of sorts showing designing and creating a game engine.

And the content:

Greetings!

I have a presentation I'm using to organize my thoughts:

https://docs.google.com/presentation/d/17XGUV4XnJ0amohoEh8vikZjAP_Enl2Q5IIiA0ybI7ec/edit?usp=drivesdk

I'm looking for criticism on the overall endeavor, if I'm missing a component, or if I'm missing any features that one might want in a game engine. Anyone should be able to comment on the presentation above.
I'm also trying to figure out what the best medium would be to communicate this. My ideas thus far:
  • A video going over the entire presentation offering explanations and examples of everything. This is the simplest but also lacks actual API design.
  • A series of videos or articles, one for each component, that goes over everything in the slide and also offers high level designs on the solutions one might choose per feature.
  • A combination of 1 and 2 so one offers a complete overview and the second allows more detail if the person is interested.
  • Doing #3 except with actual code being developed in a few different languages (Java, C++, C#, TypeScript) and something that shows off the code working.

Now as you can tell it really could escalate in how much work could be done. This is something I've been very passionate about for the past 11 years (have been refining my own GE for that long) so I'm up for the challenge. If I get enough support for #3 or #4 I'll need to figure out how to convince my wife its worth the time, not sure how to do that yet.

I'm already actively working on the end result game engine so #3 or #4 is doable, I just need to determine if it will be worth my time.
Thanks for reading and any input you may have!


Offline justRoss

Senior Newbie


Medals: 1
Exp: 6 years



« Reply #1 - Posted 2017-04-16 19:25:58 »

I just don't understand one thing.
why do you work on a game engine?
do you willing to create game with it in the end?
if so then you're better to stick to something that already works and not try to invent to wheel.
you're better create games and not engines.
general purpose code is worthless
Offline Longor1996
« Reply #2 - Posted 2017-04-17 12:19:00 »

This was the most interesting thing I read this month, and will help me greatly making the foundation of my game.

-snip-

He is writing a general guide to game engines, so where's your problem?

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ClickerMonkey

JGO Coder


Medals: 26
Exp: 10 years


Game Engineer


« Reply #3 - Posted 2017-04-17 20:32:40 »

I just don't understand one thing.
why do you work on a game engine?
do you willing to create game with it in the end?
if so then you're better to stick to something that already works and not try to invent to wheel.
you're better create games and not engines.
general purpose code is worthless

Not everyone has the end goal of creating a game - some of us enjoy the art of crafting code, applying designs we've learned over time to provide solutions to problems that no one has before. I'm actually far better off creating engines - I lack the resources to finish a game (art, sound, etc), I always stop when the interesting problems are solved.

General purpose code is worthless? I get it, you must be new to programming. It's built on general purpose code. Also, a game engine isn't general purpose code... it has very specific purposes, specific time and memory constraints... produces very interesting problems to solve for game engines.

Who said I plan on reinventing the wheel? There are parts of my work that NO other game engines available have...

Thanks for taking time on reading the presentation and providing some constructive criticism!


Offline FabulousFellini
« Reply #4 - Posted 2017-04-17 20:39:06 »

I just don't understand one thing.
why do you work on a game engine?
do you willing to create game with it in the end?
if so then you're better to stick to something that already works and not try to invent to wheel.
you're better create games and not engines.
general purpose code is worthless


ClickerMonkey beat me to it, but some people don't want to make a game.  They want to make something that other people can use to make games, which in my opinion can be f**k load harder than making a game.  Are you Hydroque?

-FabulousFellini
www.fabulousfellini.com
Offline Catharsis

JGO Ninja


Medals: 73
Projects: 1
Exp: 21 years


TyphonRT rocks!


« Reply #5 - Posted 2017-04-18 07:19:35 »

>Now as you can tell it really could escalate in how much work could be done.

Perhaps consider linking to or including a supplemental reading list to others work. The two I'd look at first Game Programming Patterns (free web version) and Game Engine Architecture

I think the biggest benefit to anything you'll create is the comparative implementation of the different components of a game engine particularly if you can pull off doing it in several languages. The biggest criticism I've read about Game Engine Architecture is that it doesn't include source code for a complete engine; it is rather thorough in broadly going over the major components though. I'd find it hard to believe that you'll be able to come up with a 1000 page treatise and that's just one book out there. You could link to supplemental material that is topical and more in depth as well for AI, audio, networking, etc. 

>There are parts of my work that NO other game engines available have.

This is an extraordinary claim, but if so then certainly include thorough descriptions of your work and working code examples if you intend to enlighten.

Check out the TyphonRT Video Suite:
http://www.typhonvideo.com/

Founder & Principal Architect; TyphonRT, Inc.
http://www.typhonrt.org/
http://www.egrsoftware.com/
https://plus.google.com/u/0/+MichaelLeahy/
Offline ClickerMonkey

JGO Coder


Medals: 26
Exp: 10 years


Game Engineer


« Reply #6 - Posted 2017-04-18 08:44:58 »

> The biggest criticism I've read about Game Engine Architecture is that it doesn't include source code for a complete engine

This was definitely a bummer, I've used this book as a resource to ensure I'm covering features that other games have.

> This is an extraordinary claim

- The existing steering behavior libraries out there are a joke - very poorly designed and lack an alarming number of features. I don't have the current version of that library published but you can check out Steerio to see my previous work. The current version of the code is a mishmash, I was in the middle of redesign. You should still be able to see it though.
- The existing path finding libraries out there aren't terribly generic - don't really support partial & incremental path finding, a good way to rate limit, and good support for dynamic maps where nodes can change traversability and have all existing paths re-evaluate
- My animation library is extremely generic, you can have the most advanced animation control for anything (color changing, camera movement, to skeletal animations)
- My entity component system allows the dev to swap between implementations (there are ~4 different ways components & entities could be stored, and depending on your game one might outperform another)
- My debugging utilities make live on-screen performance/event charts extremely simple. Using Round robin databases they can capture an entire game's metrics while using a fixed amount of memory - and then dump the charting data for offline investigation.
- The networking component takes lessons learned from GafferOnGames and UDK and offers additional validation, RPC, and performance oriented features into an open source library
- You can define which entity management system (OOP vs DOP) you want to use for update & render (you can use a mixture since your entity update logic often doesn't represent the structure necessary for efficiently rendering a scene)
- All of my systems allows the dev to define their game based on tasks - these are used to control how much time is spent per frame, and can also be used to multithread
- Most importantly, my engine focuses on allowing any of its components to be included into an existing game and provide simple ways to integrate them. Only want to use the steering behavior API? Awesome, you can use your own object and your own Vector classes, just implement 2 simple classes and you're golden.

This is a lot to claim, and some of my claims may be on outdated knowledge - but if time permits I can explain anything in more detail.

Pages: [1]
  ignore  |  Print  
 
 

 
cybrmynd (124 views)
2017-08-02 12:28:51

cybrmynd (146 views)
2017-08-02 12:19:43

cybrmynd (142 views)
2017-08-02 12:18:09

Sralse (158 views)
2017-07-25 17:13:48

Archive (628 views)
2017-04-27 17:45:51

buddyBro (737 views)
2017-04-05 03:38:00

CopyableCougar4 (1265 views)
2017-03-24 15:39:42

theagentd (1245 views)
2017-03-24 15:32:08

Rule (1221 views)
2017-03-19 12:43:22

Rule (1274 views)
2017-03-19 12:42:17
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51
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!