Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 31 Mar 2012
Offline Last Active Sep 30 2014 02:33 PM

#5102659 # games released as of yet?

Posted by Malabyte on 19 October 2013 - 11:30 AM

Folks said before that your quest was unclear. Your clarification makes it even more unclear! Folks asked why you want to know, and you answered "Well, I'm thinking of maybe make various graphs".  That's not an answer to the question.


Good point, I guess. I think this is one of those things where it's impossible to even ask one question and expect any conclusive answer, because that answer will only reveal a piece of the puzzle. But for now, I just want to know what titles of games have sold for which platforms. In some cases, I know that's impossible to know. I'm just trying to figure out what makes it impossible to know these things, as well as get whatever information that is possible to know about.


As for why I want to know these things, it's mostly something that I think could help me design better games. Knowing which games have released, won't itself help me much. But whatever I can subsequently produce out of that information, could potentially be helpful. Like comparing two games of the same genre and setting, one that succeeded and the other bombing terribly - and why those things happened.



Is this a Ph.D. project?  Are you hoping to publish this study? Are you hoping to sell it (the way statistics and market research are sold)?


I'm asking according to a line of thought, really. I might publish it as various hypotheses at best, and I've never considered making money on this. I'm likely just gonna make it publicly available on my upcoming website. As of now, I've been just writing down a game list that I thought I'd extend upon as far as possible. Mostly games that I've played myself (roughly estimated to around 600 total), but then I got this Gumpish idea of "I'm already doing this, so might as well do that...". So, I'm gonna see where that takes me.


I also appreciate that you point out the issue with clarity. I'll think about that, because I don't want to ask redundant questions. But I feel like I've gotten some good answers already, and google, wikipedia and yahoo are definitely my friends here. smile.png


(I'm also looking into how to get better at datamining.)


Edit: Fixed the OP somewhat.

#5102290 "built-in loop" question

Posted by Malabyte on 17 October 2013 - 09:14 PM

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).

#5101271 "built-in loop" question

Posted by Malabyte on 14 October 2013 - 06:23 AM

Maybe you should try to see it from a different point of view than your own. From the professionals (or experienced hobbiest) point of view, every single day you have to deal with someone who has been spoiled by bad tutorial or other 'learning material'.


Yeah well clearly there must be an astronomic amount of people out there who's been spoiled by bad tutorials, judging from the replies in this thread. Anyways, peace out. I take as much feedback to heart as I can, but right now I think my brain has short-circuited so I need to process the information I've gotten thus far.



Yeah, I dont think those crazy youtube commenters will stop cursing you for telling them "oh interger that means its just all whole numbers" after they try to put some large number in their variable and it doesn't work, because actually they just get a subset that forms a subring modulo n of the ring over all integer numbers (I hope that was the correct wording in English), where n depends on how many bits are actually inside that variable type.


I never said that integers were "just" whole numbers. But if someone asks about the difference between an integer and a double, then I'm pretty sure it's enough to say that "among other things, integers are whole numbers and doubles are decimal numbers". If they want to learn more, then I don't mind going on Wikipedia and other internet sources, or talk about the range of values that integers go between or whatever, while still maintaining that there could possibly be deeper things about integers that one needs to look out for. But if such deeper things are completely irrelevant to the problem at hand (because the problem is too simple for it to be relevant), then they don't need to hear it. An elementary school student doesn't need to know about advanced vectors and matrices in order to understand conclusively and definitively that 1 + 1 = 2.


And if some crazy youtuber wants to argue for the sake of argument and chastise someone like me because he was too lazy to test things out and actually think about the stuff he's taught and not just copy-paste it like some kids do in high school, then that's not something I or any other teacher, amateur or professional, can do much about. At some point, people need to take some personal responsibility for what they're learning, as well. All that we can teach them is scientific literacy and how to be sceptical to things, and then try out stuff without going mental on everyone if things don't turn out exactly like you thought. Not just eat a steak raw because someone told them that "Steak is good". Oh wait, did I forgot to mention that you actually need to cook it as well? ok, my bad. "Cook the damn steak, you idiot... and be sure to wait a couple of minutes so that you don't burn your fingers and mouth". Survival of the Incompetent, ftw. If someone wants to shove their poodles inside their microwave ovens without even asking what that does first, then that's not my fault. I think I was about 8 years old when I learned that microwaves are hazardous to flesh. And I figured that out all on my own, after watching how food got cooked inside it and putting two and two together.



Kind of off topic, but to be honest, since you were talking about Java, Integers can be kind of hard to figure out. Try the following: *snip*


You're taking my statement out of its context. Besides, you're not trying to figure out an integer here, but rather an "Integer" class. Try using int (variable) instead of Integer (object), and it should solve it (at least it did for me). And I never said that the Integer class was a whole number, in fact I don't even know the first thing about the Integer class and I actually learned of its existence just now, because I've needed to use it yet. (And as such, I would never teach anyone about using it, until I knew more.)


There's not just 1 level of abstraction in science. You got everything from concrete definitions and basic math to holistic, philosophical hypothesis that border to the pseudoscientific.


Anyways, peace out. You guys can have the last word.

#5101156 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 07:55 PM

The fact that you still think it's something " that's happening under the hood of the program and has nothing to do with the code you're actually writing" shows you are still barely understanding the concept you're asking about and are certainly in no position to teach it. 


By that sentence, I was referring to what SimonForsman wrote, about the Main function running only once. Clearly, if that's what happens at default regardless of what code you write (unless you specifically tell it to run multiple times), then there you have it. It's "under the hood", albeit controllable by you as a programmer.



When you're starting out in any field, simple guidelines are a great help. But there is a world of difference between deliberately teaching a simplified (possibly even inaccurate) version of a complex problem and actually believing it oneself. You can only lie to your students if you a) realise it's a lie, b) understand why you're lying and c) know the truth yourself.


What makes you think that I'm planning on doing anything other than simple guidelines that are demonstrably true, regardless of who's teaching it? And what makes you think that I'm not going to also point out my own fallibility to the viewer and that everything I say can and will be used against me in a court of law? cool.png

I'm just wondering where you and phantom get those ideas from? Please, don't just assume a bunch of stuff about me just because I've happened to overlook how the computer reads a main class file on a technical level. That's purely incidental and I understood SimonForsman just fine, the way he explained it. If anything else, I'm a horrible forumer for dwelling on things excessively, but that can be easily explained by my insecurity, confusion and general bipolarity. Not to mention low social IQ.



I doubt it. "Don't trust your teacher" is not a useful lesson to impart to beginners. For an intermediate student looking to advance, possibly...


I'm not trying to discourage you from programming, and I equally am not trying to belittle your programming knowledge. Everyone was there once and we all had some stupid assumptions. I looked over some of my earlier posts here the other day and cringed. The point is simply that you are really not ready to give anyone any kind of tutorial. 


I don't feel discouraged or belittled at all. I honestly prefer the "brutal honesty", but tutorials aren't just about giving deep, abstract advice. More often than not, a youtube tutorial series is mostly about giving people a heads up to what they're able to do. The "what" of something can be taught by anyone who knows it. What you're talking about is the "why" of something, which definitely demands a solid background of real experience.

#5101146 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 06:49 PM

The point is that you don't know how what the data means or how to apply it. Data on it's own is meaningless. Context matters.

Whether I know what the data means or how to apply it, depends on what data we're talking about and under which circumstance it is used. So yes, context matters.

#5101110 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 03:08 PM

And there is lies the problem; until you are a well practised and know the subject inside out you don't know if it is accurate. But the people 'learning' from you also don't know if you are right or not, they just assume you are, so if you don't know the subject well then you are going to teach bad things and, frankly, the internet has enough bad information on it as it is and doesn't need more 'noobs' (to use the word from your signature) putting out more information they don't fully understand.


Data is still data. If you actually know it, especially if it's been confirmed by a seasoned professional, then you know it. You don't need to be a seasoned professional yourself. What you're clearly talking about, has to do with larger (or entire) fields of science where expertise is synonymous to years worth of honing a multitude of different knowledges in order to grasp the full picture. And I can agree that some people indeed claim to know something that they don't.

But I'm talking about simple facts. No more and no less, so I'm just curious as to why you assume otherwise about me, since I haven't been saying anything about what I would specifically be talking about in my series. Learning programming is like learning anything else, you gradually learn more, the more you study. You don't study for X years and then suddenly you come to a point where all the information magically goes from 0-100% in a split second. Knowledge is modular and gradual.


In other words, basic scientific literacy. In this thread, I was asking about a very specific thing that's happening under the hood of the program and has nothing to do with the code you're actually writing (because it's happening at default, the program runs once unless you code it to do otherwise, as Simon and the others stated). So as a self-taught, then it's no wonder that I've missed it.



I'd never heard of that site before, so I went to check it out and had a look at his second C++ video explaining hello world and, honestly, based on getting 6mins into that video there is probably good cause for him not to have been trying to teach C++.... by 8mins in it was no better... by 9mins, oh god... I mean... oh god... '[main] should always have return 0', 'if you added text here [to cause an error] then it will never make it to [the return statement] so it will never return 0'... I mean, seriously... ugh.


Well, I'll admit that you've the advantage here of having watched that particular series. But in general, being a good teacher isn't just about telling people correct information. It's also about being sensitive to the student's mindset. The greatest teachers are able to engage their students and even create the illusion that the student have figured something out that the teachers did wrong. In actuality, the teacher did those mistakes on purpose. It's the same when your Drill Instructor screams in your face. Not because he's angry, frustrated or because he hates you, but rather the opposite. The clue is to motivate students and bolster their deeper learning of the subject in whatever way that is more relevant for the given subject. (Now, whether this is true for thenewboston, I can't really say, but it's possible (albeit hard to actually apply).)


Dr Robert Sapolsky, for instance, literally teaches his students outright false or outdated information before he makes a complete u-turn and throws it out the window. Almost like when a programmer does something silly in the first video and then refactors it in the next. This is possibly done in order for students to understand the sceptical nature of science, and it's also a solid history lesson that sticks with them.


As for Zuckerberg, I used him as an example to point out that authority can risk becoming a fixation with regards to how successful or accurate you are in your endeavours. Mark's not a teacher but, if he were, he would at least know what he's talking about. Even if he too ditched college. tongue.png



Unfortunately that isn't the case; people see two sources they will take the one which looks easiest or quickest to learn from and go with that.

Given the choice between a correct book and a video which claims to be correct most people will, these days, more than likely take the video.

Of course if the internet wasn't full of incorrect tutorials we wouldn't have this problem but apparently its full of people who think "I've been coding for 20mins I must teach others so I can learn too!" which is just... ugh...


How quickly you can learn something is one thing, the credibility of the informatin is another. Both factor in, and there's even more factors involved here, but I won't digress further. I agree on the "...20 mins I must teach others..." syndrome though, it's almost a little creepy to witness at times. That's the Dunning-Kruger effect for you, right there (and it doesn't only happen on youtube or even the internet in general). biggrin.png

#5101076 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 01:08 PM

Good but the key words in my reply were 'authority source' which means that realistically I would say you are still a good couple of YEARS away from being in any position to teach others with any real authority on matters.


A valid opinion, but I honestly don't think people care, as long as the data is accurate and I have the ability to make myself understood. Science is not about trusting authority, it's about getting the facts straight. If anything, questioning authority is more akin to science. By your logic, Bucky Roberts @ thenewboston should've never started teaching his now 565 465 Youtube subscribers, because he wasn't much of an authority when he started out. He even dropped out of college. And Mark Zuckerberg invented Facebook, so authority hardly factors into it.


Granted, I agree that it helps to have a solid background, for credibility's sake and also if you want to be a general, cross-discipline teacher. A lot of people, if they see two possible sources, will obviously adhere better to the source with the greater authority. That's just human nature. We don't always have the time or resources to learn who or what is truly the more credibly source, so we take a calculated "risk" by trusting a known authority.


In either case, I may just follow your advice just a little bit.


Edit: I guess I should also point out that I'm talking about a very basic tutorial that just helps people start making something on their own, without getting that writer's block. Nothing complex, albeit abstract and conceptual.



The program sends "Hello World" to the console, then exits. The console window (separate program) still keeps displaying what was sent to it.


I guess I understood Simon correctly then, thanks for the confirmation.

#5101072 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 12:31 PM

Honestly, based on these questions and your 'understanding' shown in your replies, I don't think you should be trying to teach anyone anything - you clearly don't have the knowledge down at this point to be an authority source on the matter and any attempts to 'teach' others is going to do them more harm than good in the long run.

And you don't think that I will eventually acquire the knowledge, once I'm done with the research?


The bottom line is that there's an inconsistency in what I'm actually experiencing when I program, with the logic that has been explained to me in this thread. At least up until the point where SimonForsman elaborated on it.


Here's an example code:

class test {
    public static void main (String[] args) {
        System.out.println ("Hello world");

"Hello World" will show up in the console and it will keep showing up. No, it will obviously not visually repeat the line, for that you obviously need to create a loop of some sort. There's only a single line popping up. But that one line keeps itself visible on-screen and in Eclipse, the program doesn't terminate unless you specifically click on the terminate button. I'm just asking what causes that to happen, when I know that a screen ultimately consists of x*y pixels that keep updating as long as the PC screen is turned on. And if the program terminates, then what keeps updating the pixels on the screen? It sure ain't a terminated program.


You can be a pretty solid amateur programmer and still wonder about these subtle things, especially if you've been learning stuff through the internet (because there's all kinds of programming lingo and methodology that you have to figure out on your own). They are easy to miss, because they don't have much to do with the actual coding at all (assuming that we're talking about Java, which is the language I'm learning). There's a reason why a good University is sometimes superior to the internet.


So yes, I agree that I shouldn't be making videos until I know what I'm talking about. Which I'm not planning on doing, either. I just want to make a couple of videos (eventually) that I've yet to find on Youtube, because everyone's focused on teaching syntax and specific algorithms for specific tasks (but not teach people how to invent their own). But if someone else can beat me to it, then by all means. A Professional programmer with solid tutoring skills is a much better conveyor of information, anyways.

#5101061 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 11:15 AM

Java just runs its main once, too. If your program keeps running, you're doing something to make that happen.


I'm talking about how the computer reads through the code in the class file. It "scans" through the first line, then the nth line until it reaches the bottom, then goes back to the first line again and reads all lines again. If it ran the code only once, then whenever you start to run the program it would immediately stop running, a millisecond or so afterwards.


For as long as I've been using Java, I've never had to explicitly tell the computer to continue to run the program. It will sometimes wait for some input or other change of its state, sure, but the program itself keeps "pulsing" through the class file(s). I've had to specifically tell it to terminate when I want it to. For instance, if you're using Eclipse to make a windowed Java application, then you specifically need to use the following line to terminate the program when you click the X to close the window (else the program keeps running even if the window isn't):






I'm just very confused right now, I'm not sure what you guys are talking about. Does the Eclipse IDE, or the JFrame class specifically, have some sort of integral method that causes it the program to run continuously?

#5101027 "built-in loop" question

Posted by Malabyte on 13 October 2013 - 08:53 AM

Edit: Questions done, thanks for the answers.



Hey guys, I'm planning on some day making a video series on Youtube, where I talk about certain game programming things. Without revealing too much, I'd like to ask you guys a couple of questions now and then, in order to be as accurate with the given topic as possible. I'm self-taught, so there might be some conventional details that I've overlooked.



So here's my first couple of questions:


1. What do you call the default process that automatically loops through the code and updates, whenever the program is ran? You know, the one where the computer tries to look for the Main function and run that, over and over again? Does it have an actual name, or is it fine to just call it a "built-in loop"?

Answered in thread.


2. Do all programming languages have a main function/method that the computer will look for and try to run? (I'm thinking it's a necessity, but please correct me if wrong)

Answered by Wikipedia.org


3. Do all programming languages (today) cause the computer to loop infinitely through the code by default, unless you control it to do otherwise?

Answered in thread.

#5101016 Should I Redesign and Start Over?

Posted by Malabyte on 13 October 2013 - 08:13 AM

I must confess, I had performed a cardinal sin of programming. I did not comment my code (save a line here or there).


Code commenting is almost an art of its own, because you definitely want to do it, but not too much either. Often, all you need is the right names for your variables and functions and that'll say all that is needed. But on bigger projects, definitely comment your code to quickly find and understand it. You will forget what you just wrote yourself, if you wrote it three months ago and never wrote it again.


Besides, it's better to write too many comments than too few, IMO.

#5100777 Should I Redesign and Start Over?

Posted by Malabyte on 12 October 2013 - 05:54 AM

What I wanna know, is what you've done to organize the code better. Have you tried refactoring stuff and simplifying things into parameters and whatnot, so as to not have to write the same code over again and so on? I'm definitely not a professional myself, but one of the most important things I've learn from a professional, is how to code placeholders when you only need something basic and then be sure to refactor it later, either by extending upon it or tightening it up (or both).


If you feel like you're digging yourself into a hole, then maybe now's the time to go through your code and reorganize it. Programming a game is almost like micromanaging economy-based games, like SimCity. I constantly think about how I can make everything simpler and more economic, looking at every single detail and tweaking it just a bit, not too much. The further you are into the process (i.e. the more complex it is), the more can go wrong. Especially if you got jumbled up code.

#5098892 Guidance for my son...

Posted by Malabyte on 05 October 2013 - 03:13 AM

I thought I'd just reply with some thoughts I have about learning in general here, since others have already answered you excellently:


I think the big mistake to risk making here is to think that programming is somehow unsuitable for people below a certain age. Well ok, if you're 3 years old and still using the pottie, then maybe you should wait with programming. It's definitely true that age factors in, but I still think a lot of people overestimate it. Especially when talking about 9+ years of age.

Throughout my own learning process (and believe me, I'm relatively new to the coding bit, not to mention I'm a total manchild), I've found that - at least for me - it's not as much a question of age or IQ. It's much more important to have patience and diligence. And, if you want to be successful to boot, an ample supply of open mind, social skills and general life experience and scientific literacy.


Furthermore, kids are actually much better learners than adults - a well established fact (or at least a strongly documented and consensual hypothesis). Kids don't have the life experience that would otherwise produce patterns and biases that outright hamper your learning ability. The only real problem with low age is the reduced ability to process the information and seeing the bigger picture (again because of lacking experience). But as your son is learning the stuff, the bigger picture will just naturally come to him in time. That comes with learning and age, and it might even go faster for him than other kids of his age because he's constantly honing it through programming.


Well, in either case I think Unity sounds good. Good luck. :)

#5098869 Using global variables - really so bad?

Posted by Malabyte on 04 October 2013 - 11:27 PM

Getters and setters, anyone?

#5096760 Game's MenuState and Game's Loop

Posted by Malabyte on 25 September 2013 - 01:26 PM

Well, at the end of the day it's all about refresh, memory and the process per refresh. So personally, I don't see why you can't just use a big event-driven wrapper loop for all programs, regardless of them being games or not. It's just for human logic anyways, the computer doesn't care (afaik). Just adjust the currently running processes accordingly, thread or synchronize when needed and stop the loop children that aren't supposed to run at that time (and be sure to store relevant information for later, if needed).


A main menu is just another application that runs when the child gameLoop or any other loops (!running) and the parent mainLoop (running) or am I missing something here?



In pseudo-code:

mainLoop {

menuLoop ();

gameLoop ();

whateverOtherLoop ();



Throw an else if or more applicable statement (e.g. synchronized methods?) in there, so that only 1 loop is running at a time.