Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (511)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (577)
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  
  GameProgrammingPatterns.com is finished  (Read 1174 times)
0 Members and 1 Guest are viewing this topic.
Offline BurntPizza
« Posted 2014-04-23 21:27:53 »

http://gameprogrammingpatterns.com/



I've known about this site for a while, and it (and the guy's book) is complete!

Lots of great info here in an easy to understand format, all the way from game loops to homebrew VMs for scripting, and all in a gamedev-relevant context. Brilliant!


Announcement on Reddit
Offline Spacebeans
« Reply #1 - Posted 2014-04-24 01:37:47 »

God this is useful, I'm just glad there is finally some kind of book about game programming architecture.

Thanks!
Online Riven
« League of Dukes »

JGO Overlord


Medals: 816
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #2 - Posted 2014-04-24 05:32:51 »

For the sake of cute fluffy bunnies, don't write your own VM and skip this chapter entirely:
http://gameprogrammingpatterns.com/bytecode.html

This is the only chapter I read (well, skimmed), so my impression is that it's a push in entirely the wrong direction for 99.99% (maybe 99.999%) of the target audience.

I hope I missed some sentence in there that explained how this is only an explaination of the concept of a VM, and one should never ever do this, while writing a game, or game engine - even AAA engines are dropping their support for scripting languages, forcing the mods to be programmed in plain C.

Anyway, the more I read of that chapter, the more it seems he's seriously suggesting others to make their own language (parser, compiler, interpreter). Clueless Most people would fail when parsing the code, let alone handling operator precedence correctly, and those are the basics. (Classic example of having lost touch with the target audience, expecting them to be experts like you?)

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Online HeroesGraveDev

JGO Kernel


Medals: 269
Projects: 11
Exp: 2 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #3 - Posted 2014-04-24 05:44:40 »

@Riven:
Quote
Of course, there’s nothing wrong with making a full-fledged language. Just make sure you do so deliberately. Otherwise, be very careful to control the scope of what your bytecode can express. Put a short leash on it before it runs away from you.
                                                     

Offline LiquidNitrogen
« Reply #4 - Posted 2014-04-24 05:49:29 »

making a simple scripting mechanism which can be edited in a level editor to control events for each individual level seems like a good idea to me.. i didnt read that article though so ill assume its not talking about something so simple

Online Riven
« League of Dukes »

JGO Overlord


Medals: 816
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #5 - Posted 2014-04-24 05:59:57 »

Even a minimal (not even remotely close to full fledged) scripting language is a huge undertaking, and once you're doing it, you will keep adding features.

If you want to write a game, write a game! Don't create an environment with custom tools. True experts have done it before you, did it better than you will ever do it, and open sourced it. Use it, and finish that game, make it entertaining for the player, not technically impressive.

If this was GameEngineProgrammingPatterns.com I'd be the greatest fan (kinda), but this is just plain bad advice.

His main reason for rolling his own language is working around C compile times, which can take a few minutes per... tweak. In Java we don't have that issue, and we can even hotswap code. Regardless of his motivations, he should have used (and advised) an existing scripting language. We have enough indies that never get to publish a game.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline BurntPizza
« Reply #6 - Posted 2014-04-24 06:11:16 »

Yeah, I only really included that particular in the OP to, uh, pique interest? It is, as you say, almost never a good idea and I'd say is pushing the envelope of a "design pattern."

I had a good time writing a CPU emulation (more of a instruction set simulator I guess) and it's assembler inspired at first by that article, but only as a pet project. I wouldn't ship in a game or anything else for that matter, it's not mature at all. And that's good.

If you need some kind of scripting, write an API for mods to interface with, or use Nashorn or something. A VM (and it's language, it's implementation of that language, the list goes on...) is an enormous time sink if you want to even begin to have anything more than a really hard to use assembly language. And you most likely won't get a lot of it right, like security, which was one of the main points in this context.

I think it's a great little curiosity project, but that's it.

Edit:
I'd listen to Deutsch:
"Every now and then I feel a temptation to design a programming language but then I just lie down until it goes away."
Offline Grunnt

JGO Wizard


Medals: 84
Projects: 8
Exp: 5 years


Complex != complicated


« Reply #7 - Posted 2014-04-24 07:36:00 »

A design pattern book like this is best read like a normal cook book. You don´t compulsively cook every single dish in the book, and you should most definitely not use each and every pattern in the book. Some may be useful, some may be very bad for you in your situation.

So although this website is an awesome resource, it is kind of lacking in some essentials of design pattern descriptions: in what situations is this pattern a good idea, and in what situations is it a bad idea?

I don't really see the point of writing my own virtual machine when I'm already bundling the awesomest of all virtual machines with my game...

Offline delt0r

JGO Knight


Medals: 27
Exp: 18 years


Computers can do that?


« Reply #8 - Posted 2014-04-24 13:22:01 »

I read it this morning. There is more than just the byte code that is not good. But there is good stuff in there as well. And the GoF patterns are better explained with perhaps more relevant examples.

What i would recommend: Design Patterns Revisited, the whole section. The is really a good intro for programmers looks to get started with design patterns.

What you should read with a grain of sand: The Rest with exceptions below.

What you should ignore: Bytecode, Spatial Partition (that's not a design pattern), Object pool (we are not using C++).

There is probably more to ignore really. And you should always consider the criticisms of the GoF book and design patterns as well.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline actual

JGO Coder


Medals: 23



« Reply #9 - Posted 2014-04-24 14:58:35 »

I found the Type Object and Subclass Sandbox chapters to be interesting and useful. I thought the Decoupling Patterns section interesting as well even though I am not directly applying them to my game.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline delt0r

JGO Knight


Medals: 27
Exp: 18 years


Computers can do that?


« Reply #10 - Posted 2014-04-24 17:06:57 »

Thing about Subclass sandbox, is that its just a plain old class hierarchy. Its not really a pattern per say. At least in a usefully defined way.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline Roquen
« Reply #11 - Posted 2014-04-27 13:39:21 »

Anyone that's been around here for awhile should know I'm a "patterns concerned harmful" kinda guy.  Why on earth do pattern-heads have to take existing techniques (usually reducing them down to a special case) and tag the word pattern at the end without bring anything new to the table?  Why I ask?

I skimmed all the pages in "Design Patterns Revisited" and I have to admit that's I don't have many complaints.  Looks like it's reasonably accessible to the target audience and isn't dogmatic.
Offline aldacron

Senior Duke


Medals: 9
Exp: 16 years


Java games rock!


« Reply #12 - Posted 2014-04-28 05:03:00 »

Anyone that's been around here for awhile should know I'm a "patterns concerned harmful" kinda guy.  Why on earth do pattern-heads have to take existing techniques (usually reducing them down to a special case) and tag the word pattern at the end without bring anything new to the table?  Why I ask?

He actually talked about that in the introduction. IIRC, the GoF talked about it as well. Patterns are intended to establish a common vocabulary for people to discuss software architecture. Instead of giving a long winded description of how someone might implement something, you can just advise them to "use a flyweight implementation." I makes it much easier to hash out ideas, describe projects you've worked on, and so on. In practice, many have come to view them as cookie-cutter recipes, but that was never the intent at all.
Offline Roquen
« Reply #13 - Posted 2014-04-28 05:22:33 »

Indeed.  Like "Gotos considered harmful" and "premature optimization is the root of all evil"...people don't understand what the authors were talking about.  The concepts has been extrapolated well beyond their original intent.
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.

Longarmx (50 views)
2014-10-17 03:59:02

Norakomi (39 views)
2014-10-16 15:22:06

Norakomi (31 views)
2014-10-16 15:20:20

lcass (36 views)
2014-10-15 16:18:58

TehJavaDev (66 views)
2014-10-14 00:39:48

TehJavaDev (65 views)
2014-10-14 00:35:47

TehJavaDev (56 views)
2014-10-14 00:32:37

BurntPizza (72 views)
2014-10-11 23:24:42

BurntPizza (44 views)
2014-10-11 23:10:45

BurntPizza (84 views)
2014-10-11 22:30:10
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

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
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!