Chunky by FelipeFS
Chunky by FelipeFS
GPWiki.org
It is currently Fri Aug 29, 2014 6:04 pm

All times are UTC




Post new topic Reply to topic  [ 16 posts ] 
Author Message
 Post subject: Contributing Bananas!
PostPosted: Mon Sep 10, 2012 5:04 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
I wish to contribute, but new Wiki accounts seem prohibited at the moment. Boooo!

I think there should be a new section under Game Programming plainly called 'Theory', as the first item listed, with introductions to the core principles behind game programming and comprehensive explanations to common theory. On each page, there may be "Further Reading"-like links to implementation specific details (with the information provided in all the other sections).

e.g.

Theory
  • Game State
    • State Models
      • Online Rendering
        • Key Concepts
          • The Viewport (Related: Raster Image, Screen Refresh, Display Management, V-Sync)
          • The Active-Frame System
            • Framerate and Time
            • Motion (Related: Delta Speed)
            • Animation Techniques
        • Content
          • Instances
          • ...
      • Render upon request
        • Text Based
        • Turn Based
    • Input
      • Control Models
        • Keyboard/Mouse
        • Joystick/Buttons
        • Multi-Touch
    • ...
  • Game Material
    • ( i.e. menus, maps, resources and general gameplay etc...)

Don't worry, I wouldn't make such massive changes without prior discussion. Also, I'd like to point out that the Game Design section is extremely unhelpful. Isn't anyone else here familiar with real game design theory? It's just silly to merely list genres of games and the kind of features they should have. There should be information about actually designing (not scheming) core gameplay mechanics which are capable of really bearing a fun game in the end result. I've heard lots of shiny game ideas which burned out quickly because their core concepts were too flat and vague, eventually requiring excessive effort substantially beyond the projects' initial expectations to develop any gameplay that is capable of routinely satisfying its players. Sure, anyone can identify what's in a 'video game', but it isn't as easy to make something more of that. Fortunately, it's not extremely hard, at least if you know what you're doing. A lot of people don't.


Top
 Profile  
 
PostPosted: Mon Sep 10, 2012 7:20 am 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7109
Location: Wilts, Englandshire
Contributions to the Wiki content are always welcome. I've created you an account, you have a PM.

As you say, major changes will probably require some discussion. Will post more later when I'm not rushing off to work.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Tue Sep 11, 2012 7:17 am 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7109
Location: Wilts, Englandshire
Moved to Projects for further discussion.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Wed Sep 12, 2012 11:41 am 
Cubic Contributor

Joined: Sun May 27, 2012 6:01 pm
Posts: 67
Id love to help,

(Opinion) - There are some questions in here, please feel free to answer them.
I think there is a big question that needs to be understood, before anything can be done. What is it people want gpwiki to be? What services do they want?

It seems to be generally accepted that gpwiki should be (atleast) some kind of learning service. To teach people how to program games. But in practise, this is a very fuzzy idea.

What is the difference from learning games programming to normal programming? Fundamentally, there is no difference. The little differences there are tend to be from tools used to aid in data authoring, and from very niche algorithms.

There is a "Tools" section, and some more information under "General Information". Maintaining the list of Tools (http://content.gpwiki.org/index.php/Tools:Content) is no easy task, And i personally believe adds little value. There is no reviews, no tutorials on using the tools etc. It feels like a static search engine results page.

Do we add information about General Programming? This is already a large topic, made harder with quirks of the languages when providing examples. This was tried and tended to be small descriptive paragraphs of what it was, normally lesser shadows of Wikipedia or other resources on general programming, a blob of example code, and with little information on when to use what.

"Futher Reading" suffered, because the links tended to be about structure, rather than function. E.g. a link from "Hash Tables to Linked Lists" does not answer the question "Which should i use to store my enemy units?"

Pieman wrote:
I think there should be a new section under Game Programming plainly called 'Theory'

A question for you, Would your suggestion produce pages which had more than just a paragraph description?

I believe a descriptive "Dictionary" style does not fit gpwiki too well; And we need to move back to the roots of gpwiki. The original author's website was tutorial based, a diary or step-by-step guide to building a game. Explaining reasons why each structure or technique was chosen, etc.

Mikey


Top
 Profile  
 
PostPosted: Wed Sep 12, 2012 4:13 pm 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
@Mikey

Hi, I haven't finished the draft outline yet (it's a txt file containing a reply to this topic which I wasn't able to finish when I started. I'll try to finish after this reply). I will give a lot of details and clarifications, but I think you should see this now:

Quote:
Note, this isn't exactly an article layout. It's merely an outline (many of these listings will be on the same page when appropriate).

In fact, that outline is just a taste of how I suppose various subjects should be organized. It shouldn't map into wiki content one-to-one ... and especially because it's a wiki. Wikis are designed to be edited, extended and revised by other insightful contributors for the better.

Quote:
Do we add information about General Programming? This is already a large topic, made harder with quirks of the languages when providing examples. This was tried and tended to be small descriptive paragraphs of what it was, normally lesser shadows of Wikipedia or other resources on general programming, a blob of example code, and with little information on when to use what.

"Futher Reading" suffered, because the links tended to be about structure, rather than function. E.g. a link from "Hash Tables to Linked Lists" does not answer the question "Which should i use to store my enemy units?"


This is an interesting issue you've brought to my attention. Though, my biggest problem with the Wiki is precisely that, which is the very reason I believe there is a strong need for a 'Theory' section. We should integrate a lot of functional-detail into our description of concepts, which I intend to mean something like this (a non-serious and irrelevant example):

Quote:
Bob's Chef Cooking 'N Stuff Wiki

Title: Cheese
Cheese is often used as an ingredient for cooking. Cheeses usually complement preparations composed with the food groups of grain, vegetables and meat; however, they tend to mix poorly with non-ingredient dairy foods. For example, most people would consider the combination of cheese with icecream rather disgusting, though there are many people who find dishes prepared with noodles and cheese to be delightful.

rather than

Quote:
Wikipedia

Title: Cheese
Cheese is a generic term for a diverse group of milk-based food products. Cheese is produced in wide-ranging flavors, textures, and forms. Cheese consists of proteins and fat from milk, usually the milk of cows, buffalo, goats, or sheep. It is produced by coagulation of the milk protein casein. Typically, the milk is acidified and addition of the enzyme rennet causes coagulation. The solids are separated and pressed into final form. Some cheeses have molds on the rind or throughout. Most cheeses melt at cooking temperature.

After I finish my outline, I will try writing a few sample articles. I suppose we can relay our thoughts over the samples until we figure a definite way to ensure this quality you are emphasizing, and avoid pointless lists of general information. The whole purpose I see to informing readers about core game-programming theory is to address this very problem. Thank you for highlighting it in a more precise way.

Edit:
One more important idea: we have forums. I think these forums may function well as a safety net to the Wiki.

Quote:
a link from "Hash Tables to Linked Lists" does not answer the question "Which should i use to store my enemy units?" ...

A Wiki Footer: Not sure how to apply this? Please feel free to ask your questions in our forums!

After looking at the Game Programming Discussion categories, I doubt the organization we have now is particularly useful for addressing questions after the Wiki. Also, after we get questions such as this in the forums (e.g. "I'm not sure which technique would be the best to use for my purposes?"), I'm hopeful we'd have our articles built in a way that enables the following recommendations and answers which are demonstrated most reliably to be somewhat integrated into Wiki content (even implicitly). Most of all, I hope this never happens. I hope we cover the concepts in the Wiki with such an explicit relevance and robustness to diversity which manifests the nature of their practice to regularly attentive readers. Otherwise, I'd say we've horribly failed.

Quote:
What is the difference from learning games programming to normal programming? Fundamentally, there is no difference.

Actually, I think you're asserting that if game programming were to be anymore than "normal programming," then it should be completely different. Why is it that we can use the addition operator so abundantly? Does that mean everything we use addition for is obvious, and the form of such an application is manifested merely by the implicit nature of addition? So then, you should only need to learn how to arithmetically perform addition, right? Well, there's a group of theory called 'Algebra', which is one of many groups of theory strongly suggesting otherwise.


Top
 Profile  
 
PostPosted: Wed Sep 12, 2012 8:14 pm 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7109
Location: Wilts, Englandshire
Pieman wrote:
One more important idea: we have forums. I think these forums may function well as a safety net to the Wiki.

Quote:
a link from "Hash Tables to Linked Lists" does not answer the question "Which should i use to store my enemy units?" ...

A Wiki Footer: Not sure how to apply this? Please feel free to ask your questions in our forums!


That's a nice idea, and easy to implement with a template.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Fri Sep 14, 2012 3:50 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
@Codehead
I'm glad I'm capable of thinking up nice ideas! :)

Theory
  • Game State
    • State Models
      • Online Rendering
        • Key Concepts
          • The Viewport (Related: Raster Image, Screen Refresh, Display Management, V-Sync)
          • The Active-Frame System
            • Framerate and Time
            • Motion (Related: Delta Speed)
            • Animation Techniques
        • Content
          • Instances (Common Attributes: Position, Orientation, Velocity)
          • Spatial Essentials (More: Game Programming Math portal.)
            • Coordinate Systems
            • Angles
            • Transformation Basics
              • Translation
              • Scale
              • Rotation
            • Optimization Techniques
              • Hashing
              • Partitioning
                • Bounding Volume Hierarchy
                • Quadtrees & Octrees
                • Binary Space Partitioning
                • Voronoi Diagram
          • Fundamentals of Interactivity
      • Render upon request
        • Text Based
        • Turn Based
    • Input
      • Control Models
        • Keyboard/Mouse
        • Joystick/Buttons
        • Multi-Touch
        • Motion Sensor/Body-tracking
      • Interpretation
        • Trigger State
          • Active
          • Just Activated (Pressed)
          • Just Deactivated (Released)
        • Stimuli
          • Axis (Common Elements: Speed, Index, Power, Angle)
          • Plane (Common Elements: Point, Rectangle, Circle)
          • Vector (Common Elements: Velocity, Angle, Orientation)
    • Networking
      • The Client/Server Model
      • State Messages
      • Quasi-Synchronizational Techniques (Related: Delta Speed)
        • Dead Reckoning
    • Management
      • Top-down State Control (State Manager)
      • Containment (Maps)
      • Storage (Saved Games)
  • Game Material
    • Gameplay Paradigms
      • Free World-Navigation
        • Controllable Characters
          • Interpreting input into movement
          • Advanced Motion
          • Collision Techniques
        • Artificial Intelligence
          • Decision Algorithms (I honestly don't know the formal term for this... a high-level algorithm which controls behavior abstractly corresponding to gameplay)
          • Pathfinding
            • Grid-based pathfinding
            • Spatially-arbitrary path nodes
      • Progressive Location
        • Point-and-click
      • Other (???)
    • Menus, Graphical User Interfaces and HUDs
      • Spatial Layout
        • Nestable Content (Attributes: Padding, Alignment)
        • Orthogonal Flow
      • Elements
        • Rectangle Buttons
        • Text Fields
      • Menu State
        • Navigation and Control
        • Transitions
        • Handling Diverse Behaviors
      • RPG User Interface
        • Character Conversation
        • Array Inventory (1-D list, 2-D grid)
        • Quest list
      • RTS User Interface
        • Unit-Training Queue
        • Build/Train Buttons & Control Options
      • HUDs
        • Health information (Health bars, Screen injury/damage-effects)
        • Mini-map
        • Circular-Ring Stats
        • Firearm/Ammunition Details
          • Weapon Information
          • Graphical Clip
    • (... i.e. menus, maps, resources and general gameplay etc ...)
  • Graphics
    • Color Models and Theory
      • RGB (Also encoding details; i.e. bytes, floating-point, variations in byte order)
        • Opacity: RGBA
        • Blend Modes
        • Advanced Color Operations
      • CIE 1931 (Related: Tonemapping)
    • Coordinate Systems and Essential Math
    • Raster Images (Describe general structure, operational techniques)
    • Primitives
      • Point (More: Circle/Sphere, Cylinder, N-Gon)
      • Line (More: Rectangle/Box)
      • Triangle (Representational Generalization: Simplex)
      • Polygon Mesh
        • Implicit Composition
          • Vertex
          • Common Patterns
            • Lists (Point, Line, Triangle)
            • Strips (Line, Triangle)
            • Fans (Triangle)
          • Indexing
        • Attributes
          • UV Coordinates
          • Vertex normals
          • Material properties (Diffuse color etc.)
        • Explicit Primitive Structure
          • Vertex/Face Table
          • Adjacency List
    • Graphical Rendering Techniques
      • Image Order vs Object Order
      • Rasterisation (Related: Digitial Differential Analyzer)
      • Probing
        • Ray Tracing
        • Beam Tracing
        • Cone Tracing
      • Spatial Traversal (Related: Digitial Differential Analyzer)
  • Audio
    • ...

I suppose this overview would appear quite daunting to beginners. At the moment, I believe one of the best solutions involves creating a discrete "Beginner's Guide to the Theory of Game Programming" and inserting a link to it at the beginning of the outline's top-level. It's always important to connect programming-language specific tutorials regarding implementation into the articles, among the other resources of technical information we provide:
  • Tutorials and Source Code
  • Programming Techniques
  • Languages
  • Libraries
  • Engines

Also, I'm sure most people start their core learning by diving into tutorials and shaking-up examples with experimental twists. So, it's also good to keep upward-links from tutorials into the broader theory.


Top
 Profile  
 
PostPosted: Fri Sep 14, 2012 4:50 pm 
Grand Optimizer

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 364
Location: Here (where else?)
I am somewhat pondering how much use it is to write all those pages; wouldn't it be easier to just link to other websites/articles?

Alternatively, link to the core material and then explain how to apply it to a game?

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Fri Sep 14, 2012 7:25 pm 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7109
Location: Wilts, Englandshire
Yep, there is a lot of content to be generated there. We haven't had that level of contributions for quite some time.
I'm not saying it's impossible, but perhaps a subset would be a good starting point?

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Fri Sep 28, 2012 4:40 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
Update: Unfortunately I've been too busy to continue this discussion forward unto collaboration, so it will be a while until I find the time, once again, to return. I will (hopefully) come back sometime to resume this. Sorry.


Top
 Profile  
 
PostPosted: Fri Sep 28, 2012 7:13 am 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7109
Location: Wilts, Englandshire
Life happens, I'm sure we all know the feeling. I was going to know up the footer template the other day and got completely sidetracked.

Hopefully, we can pick up again sometime.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Tue Nov 06, 2012 12:28 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
Let's see if I can find some time these coming holidays. :D


Top
 Profile  
 
PostPosted: Mon Sep 23, 2013 9:46 pm 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
Draft in the works. I originally wrote this many months ago; near the start of 2013. I finally put it live on the Wiki (my user page)

http://content.gpwiki.org/index.php/User:Pieman

I recommend you do not give much regard for its composition until I post the first draft. I was planning to attempt integrating a lite-weight HTML5 sample framework designed for this special lil' tutorial.

Time for lunch. Have a look. bye!


Top
 Profile  
 
PostPosted: Tue Sep 24, 2013 5:18 pm 
Bibliotherapist
User avatar

Joined: Wed Nov 03, 2004 1:28 pm
Posts: 7109
Location: Wilts, Englandshire
I like the images, the Wiki needs more decent images. Programmer art is such a curse.

keep up the good work.

_________________
10 PRINT "Bad Monkey ";
20 GOTO 10


Top
 Profile  
 
PostPosted: Wed Sep 25, 2013 7:21 pm 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
I'm trying to just recycle from the existing media library -- I look through all the imported GameDev.net crap and try to make use of it. One of the images is borrowed from Wikipedia. I only uploaded 2 new images. :rock


Top
 Profile  
 
PostPosted: Thu Sep 26, 2013 12:07 am 
BANNED

Joined: Sun Jun 24, 2012 12:49 am
Posts: 504
My programmer art-ness shines through! I'm not very satisfied with how crappy I did that frame-by-frame example. :x

It took me at least an hour... I have no idea how much time I wasted on that, but it was a lot! :confused
I hope it helps people after I post the tut :D


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 16 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron

Powered by phpBB® Forum Software © phpBB Group