"built-in loop" question

Started by
43 comments, last by Ronnie Mado Solbakken 10 years, 5 months ago

Malabyte, I think you're getting overly defensive here.

I gotta apologize to you guys. I got some issues from my past that I'm learning how to tackle. I also had a horrendous day, and I'm sorry that it came out on you. I'm aware that I need to learn to chill out at times, and I don't usually take criticism this bad.

I guess some of you just got me riled up when you pointed out certain things that are verifiably untrue within the context of the videos that I want to post. But you couldn't possibly know that when you replied. All I'm asking is that you judge me for my actions and that you don't assume thing just because of how they immediately appear. I don't mind you guys stating your positions or just addressing the general problem of people posting bogus information on Youtube or the internet in general. All I'm saying is that I got that journey to travel with regards to when people attribute certain things to me (I guess I have a stronger need for feeling accepted or something). The only thing I ever asked about was the technicality of something that sounds very strange compared to what is actually seen. Now that I know that technicality, that opens up a whole world of other understandings as well. It's like that missing piece of the puzzle, in a way.

It's those puzzle pieces I'm currently looking for.

What do you feel you can add?

Well, to give you some history:

I've been studying games and game design abstractly (i.e. the core creative, logical and economic aspects that lie outside of the coding realm - with a major emphasis on the philosophies of several top developers, including Will Wright, John Carmack, and others) for the last 15+ years or so, across most genres etc. I started thinking more seriously about programming and I did some datamining on it, as well as computer science in general (among other things less related to CS). I found Stanford University on Youtube, and followed Mehran Sahami's lectures. I then went more concrete and learned about thenewboston about a year ago (although Java has regretfully been more of a side project the last year). His videos were just fine, at my level, but eventually I needed to understand more because I had some confusions. TheCherno's Game Programming recently, on the other hand, helped me understand more Java in 5 days, than I had ever understood up until that point. The main reason was because TheCherno taught a lot of compositional stuff (indirectly), combined with me having learned a certain learning technique (which works kinda like minor photographic memory).

Herein lies the problem I'm seeing with the videos I've seen on Youtube and the articles and books I've read (although I've likely missed a majority of the good ones, as a self-taught). TheCherno was one who just happened to teach me how to actually compose the code and how to understand how to use the methods under which circumstances, simply because he showed us every line of code he wrote (and I did the rest). But as of video no. 77, he still haven't addressed it specifically. And neither have any of the more professional lectures etc. By large, the two things I've seen people teach is (1) the syntax of the code, (2) the science and general conventions of programming and (3) circumstantial compositions without any clear red line.

Ok, cutting to the point:

Authors of all kinds, even musical composers and songwriters, constantly struggle with one main theme - composition. How to take one body of something and making it fit with another body of something else without destabilizing either one. Harmony, in other words. In game design, we see it in many different areas - from the simple methodological conventions of programming to game testing/balancing and debugging. Even running an MMO metrics system of where each player is located at any given time, can help and itself benefit from your ability to compose the world in a way that's harmonious to that activity (or disharmonious, if you want to discourage the activity).

This is what I've been looking for, and I've felt that the theories of more holistic composition is somehow missing or inconclusive. As someone who wants to understand deeper game design, it's not enough to learn how to compose individual functions/objects. I want there to be something or someone that teaches us about systems composition as well. But the stuff I've seen thus far feels too vague and ambiguous.

In short, I'm trying to figure out if there's some way to present top-down composition to beginners that could potentially help them understand a programming language a lot faster and more intuitively than what's currently the case. The technique I'm referring to deals with what biologists refer to as emergence (ok, that probably doesn't tell you squat lol).

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

Advertisement

One idea is to consider submitting the transcripts and code examples you plan to video here, or elsewhere, for review before recording.

Yeah, that's the second step.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

This is what I've been looking for, and I've felt that the theories of more holistic composition is somehow missing or inconclusive. As someone who wants to understand deeper game design, it's not enough to learn how to compose individual functions/objects. I want there to be something or someone that teaches us about systems composition as well. But the stuff I've seen thus far feels too vague and ambiguous.


The problem I think you'll run into is that, in general, there simply ISN'T a globally accepted 'do it this way' method of composing code.

Software engineering as a whole remains a young discipline and while there are 'accepted' ways of doing things in certain areas sometimes all it takes is a new language to gain traction or a new bright idea and the old ways get thrown out.

I personally think it's a good idea to make videos. I would howeover not recommend stamping these videos as "tutorials" and telling everyone that your way to write Java is the right way (I think this is what everyone in the thread has gathered from your motives). Instead, you could make them a series of "diary entries" labeled "Learning Java the hard way - Part <x>" or something. Be careful with the way you speak in the videos (i.e. always use personal phrases such as "I would do it this way" or "From my understanding, <whatever>", not "This is how you do it" or "You should not do <whatever>").

This way people can give you legitimate, constructive feedback on your videos, and not bash you for doing things wrong, and the videos will have a very positive influence on your learning curve.

"I would try to find halo source code by bungie best fps engine ever created, u see why call of duty loses speed due to its detail." -- GettingNifty

The problem I think you'll run into is that, in general, there simply ISN'T a globally accepted 'do it this way' method of composing code.

That depends entirely on what piece of code you're actually writing for what task, does it not? Maybe not for certain complicated processes. But there already are (to some extent) "the right way" in the syntax to write lower-level code segments because if you don't, then the program returns exceptions. Not all of the syntax, but much of it. Note: I know you weren't referring to this in your reply, but please read on below.

In other words, there's the "economy of programming" (which itself implies that some ways to code are sub-par to other ways, for a given result).

For instance, suppose you want to sort something. Well, depending on what you want to sort, there could be better and worse sorting methods for that one task (if not always, then at least depending on what you're actually intending to sort). Likewise, creating unecessary code that is demonstrated to be redundant for a given process to be successful (i.e. making a class for each sprite instead of just adding parameters in a sprite class) could possibly be considered a "worse way". And several of you veterans here on Gamedev.net have yourselves referred to this as "sloppy coding".

So clearly, there are "right ways" to write code. Just look at how Silverfall was made, and then compare than game with God of War. Just looking at "games" like Dear Esther or similar, and you can immediately deduct what's wrong about it. Horribly wrong. Maybe that deduction isn't globally accepted, because some people like to write code or design software their own way. But personally, I would rather learn to know the computer(s) and then write my code the computer's way - alternately design a game the gamer's way (referring to specific playstyles that correspond to given features, and not individual people in this case). In other words, the way (or one of them) that the computer is able to handle best, or the gamer finds the most interesting. If I wanted to do things my way, I would simply do it and not become a programmer in the first place.

I was wondering if it's possible to make a system (any system, not necessarily a software) that helps you, as a programmer, differentiate between these. It obviously presupposes that you have some intrinsic inclination to learn with a sceptical mindset, and not just nitpicking things out of context, for the sake of having something to argue about (because if you do, then you'll be able to naturally adjust yourself to your actual experiences along the road, instead of getting hung up by individual teachers). Even when talking about bigger processes, I know that there are quite often "better" and "worse" of writing a given code structure for a given task or process. Not because I say so, but because the computer itself expresses it through rendering, memory allocation or whatever. And of course, different computers express different things, but let's talk about first things first.

It's still "possible" to do things in many different ways, but I'm talking about what is "best" for that given job (whatever "that" is).

Software engineering as a whole remains a young discipline and while there are 'accepted' ways of doing things in certain areas sometimes all it takes is a new language to gain traction or a new bright idea and the old ways get thrown out.

Yes, but that's because they constantly find better ways to do things, or else there wouldn't be a revision needed because everyone just has a personal opinion and no opinion is better (unless, of course, they're shuffling between what's the most popular approach and calling that "better"). Also, have in mind that I'm not just talking about coding. But either way, whenever I say "better way", I would exclusively be referring to the present moment for the present task. Because that's all that should matter for anyone who ever tries to solve an actual problem (which programming is all about, primarily). But I can definitely agree that some ways might as well be decided through a coin toss, too.

I personally think it's a good idea to make videos. I would howeover not recommend stamping these videos as "tutorials" and telling everyone that your way to write Java is the right way (I think this is what everyone in the thread has gathered from your motives). Instead, you could make them a series of "diary entries" labeled "Learning Java the hard way - Part <x>" or something. Be careful with the way you speak in the videos (i.e. always use personal phrases such as "I would do it this way" or "From my understanding, <whatever>", not "This is how you do it" or "You should not do <whatever>").

This way people can give you legitimate, constructive feedback on your videos, and not bash you for doing things wrong, and the videos will have a very positive influence on your learning curve.

Yup, that was the idea, although I did notice that I wrote "tutorial" specifically. I guess I didn't realize how much difference 1 word makes on these forums. laugh.png

Edit: Fixed the OP, thanks.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

This topic is closed to new replies.

Advertisement