Chad Smith

Members
  • Content count

    1096
  • Joined

  • Last visited

Community Reputation

1343 Excellent

About Chad Smith

  • Rank
    Contributor
  1. This screams like a web application to me.     So for Client Side you will need really at the minimum JavaScript/HTML5 and some type of server side technology (storing your information in some kind of database, and maybe storing some other things on the server).   There are A LOT of JavaScript frameworks that can be used (I actually think there are too many frameworks), each one having their own pros and cons. And really for server side you could choose almost anything.  You mentioned Python and Python would mostly definitely be able to do it. Though from what I gather about what you posted I can see this type of game fitting inside a node.js app with maybe using MongoDB as the database
  2. What book to start from

    If you feel comfortable with C++ I do recommend this book: do highly recommend SFML. Though I do recommend a good knowledge of C++ and even some C++11 (this book gets a +1 from me just because it does use some of the C++11 features)   The reason I really like that book is because I feel it gives you a good idea of how a Game is actually put together and how all the pieces work and function together. It doesn't just go and have you copy and paste code all of your code in main.cpp, and have it work but scare you away from ever programming a game again. In a few places it does "over engineer" some code for how simple of a game you end up making, but it really gave me a lot of knowledge and helped me out a lot in seeing all the pieces of a game can fit together and left me with enough resources to go out and experiment and learn even more complicated things on my own.     Though in the end, the most important resource to learn it all: is you sitting down at your computer and doing it yourself. Just start doing something and don't quit. Just give yourself some really small goals of "get a ball on the screen." Then maybe "I wonder if I can move this ball?"  That leads to "lets to try to get this ball bounce around" and next thing you know you have made yourself a Pong Game by just setting some really small goals
  3. When you realize how dumb a bug is...

    happened yesterday at work:   Writing a quick file uploader for a web app. Put all my form inputs in place, get the section where you can drag and drop files in, write a few simple methods to return a list from the server to dynamically populate a drop down. Populate the drop down and....the drop down doesn't work? What? Why didn't it populated? Spend an hour looking for a stupid mistake in my code and going through documentation. Finally get irritated enough that I literally copy and pasted a hard coded example. Wait? Still doesn't work? The drop down isn't even registering my click event!? Ask someone, he walks over and instantly sees that the section to drag and drop files was overlapping the drop down. I knew their was a reason I hated front end stuff. I'll stick to my server side stuff...
  4. simple java question

    In Java Strings are immutable. Basically there is nothing* that you could do to i that would affect the value of i2. They originally referred to the same object, the string "3." So it is a reference to an object, with "3" being the object. When you set i to "0" it just changes the reference, while the string object remained unchanged.     Note: I will be the first to admit that I do not program in Java. I am a C++ and C# programmer. I am just going off of what I believe I remember when I did learn Java. If my information is wrong I apologize.  *I think you could use reflection to mutate a string (based off my quick research)? 
  5. Learn Java or C#

    Honestly now days any language you choose from those two will be just fine. I myself use C# and is what we use at work mostly. We are actually right now working on a OSX application in C# with Xamarin for a client. But java will be just fine also. We also create java applications. I myself am a bigger fan of the C# language, but my point is really don't spend too much time over what language to use. Each has their own pros and cons.
  6. Is Javascript easy if you know basic C++

    If your interest is to make some cross platform mobile apps using Javascipt then I would say look into Meteor (https://www.meteor.com/)   Microsoft has been pushing Apache Cordova a lot lately with Visual Studio, though I have never used it so do not know a lot about it, or how the performance is on a device.   I saw also somewhere in this thread you mentioning C#. It is also possible to do mobile development with C#. You can use Xamarin. (http://xamarin.com/)   I work as a Web App developer. When I started I was really only a backend developer with almost no JavaScript experience, just experience in server side stuff. I now use JavaScript every day and I did pick it up very quickly as others have said, it's a lot easier to pick up another language once you know the basics of programming. The concepts are pretty much the same. Though what can be confusing is how things work in JavaScript, and changing the way you think about things. It will be a challenge to learn exactly how JavaScript likes some things, and learning that will help a lot in writing efficient JavaScript code (JavaScript very actually be a very surprising language sometimes in the power of it when you dive deep down into it), but in terms of just programming in javascript in general? It's pretty easy to pick up. If you use other libraries with it, like jQuery, it can get even more easier and powerful (though I will say I think some people just run straight to jQuery to help them to some things when it can be just as easy to do it in pure JavaScript).
  7. What the...Ok, that is what I get for coding at 2 in the morning I guess.  I saw that last night and said "ahh, that's the issue, DUH!" Though after I fixed that I could of swore I tried it again on both my Universities linux machine and my Windows machine with gcc and it still gave the wrong output.  Though after doing that again today, setting l2TotalTries to zero works, as it should, and not initializing it to zero doesn't work.   Which I do sort of understand. l2TotalTries would be just garbage data, correct? So I can either get the desired results, or the wrong results. It seems using Visual Studio in both release and debug mode gives me the desired results when it is not set to zero. My friends Mac Book Pro did the same thing. While my University machines just used garbage data, and compiled under GCC on my Windows computer also resulted it in it being set to garbage data.   Little odd that different versions of compilers and different systems did different things to that variable. Though I understand that is not covered in the standard so the results are unknown. Guess I see why you always initialize your variables. Though I still swear that I tried that last night and it still gave unexpected results. Though I can't repeat it today.   I guess lets just ignore this post now. I do feel pretty dumb for making a mistake like that now and not understanding it. *embarrassed* 
  8. Not really sure where to post this, but I thought this made the most sense.   Anyway, last night I was working on something and compiled it using Visual Studio 2013's compiler. The resulting output was exactly as I expected. I then transferred it to my Universities machines and compiled it on their using GCC. The version they have installed is gcc 4.6.3. When running it on their machine compiled using their gcc the output I get is unexpected. The numbers that get calculated are off.   Tried running it on my windows machine with gcc version 4.7.2. Same output as the one on my Universities machines. Finally I had a friend on a Mac Book Pro compile it using gcc. Asked them to see what version they are using, and this is their version: user/include/c++/4.2.1 Apple LLVC Version 6.1.0 (clang-602.0.49)   When the code runs on their machine they get the expected output. The same output that using Visual Studios compiler on my Windows machine gives me. So I got really confused, as I am not doing anything crazy, or anything that isn't covered in the standard. After debugging quite a bit and going through my code line-by-line on both gcc and Visual Studio I pinned down the issue to this one else statement where I increment a number that is used in the calculation at the end.   Here is the code without the fix, the one that generates different outputs between different GCC versions and Visual Studio: Couple quick things: l1 and l2 are just regular std::list<std::string> // we have a read else { bool l1Found = std::find(l1.begin(), l1.end(), tempMemory.tag) != l1.end(); if (!l1Found) { l1Misses++; l2TotalTries++; bool l2Found = std::find(l2.begin(), l2.end(), tempMemory.tag) != l2.end(); if (!l2Found) { l2Misses++; } else { l2Hits++; } } else { l1Hits++; } } The variable l2TotalTries was the issue. On the problematic gcc versions l2TotalTries was ALWAYS being hit no matter what. But on Visual Studio and my friends GCC l2TotalTries was being hit only if it entered that if if(!l1Found)   Now the "fix" that gives the correct output on all machines: // we have a read else { bool l1Found = std::find(l1.begin(), l1.end(), tempMemory.tag) != l1.end(); if (!l1Found) { l1Misses++; // check l2 bool l2Found = std::find(l2.begin(), l2.end(), tempMemory.tag) != l2.end(); if (!l2Found) { l2Misses++; l2TotalTries++; } else { l2Hits++; l2TotalTries++; } } else { l1Hits++; } } Using this l2TotalTries would only be hit on all versions properly. The machines that gave the desired output at the start give the exact same output using this. Though the machines that were not giving the desired output not give the desired output this way. This struck me as odd. Am I mistaken in thinking that they both should do the same thing?   Does anyone have some theories on why different versions of GCC would generate the different assemblies that would cause the issue? I have "fixed" the issue, though I honestly can't figure out why this fixed it. I'm just interested in why in different versions of GCC would cause l2TotalTries to always be hit no matter what.   Thanks.
  9. Best comment ever

    I always like the comments from sections of Code that are copied and pasted from old code or another project. Ran into that the other day at work. Comment said it did something, code did something else unrelated.
  10. Current Survey

    Yea, I was actually kind of disappointed and confused when I put down my current field of employment, and it just redirected me back to the site.  Almost feel like something about that should had been mentioned or something.   But oh well.  Hope they get what they want with the survey.
  11. OGRE Bicycles

    I think what you're seeing from the frame is the fact that it is a 29er.  Without actually looking the bike up and just look at that image it seems it is like that to keep the bike from being long with it running the larger wheels. I would take a guess and say that the bike has a sister/brother that runs 26" wheels.
  12. OGRE Bicycles

       Remind me never to visit if I want to buy a bike.  Around here there are hundreds of bikes under $250 USD  .   While no doubt their are, anyone who is relatively seriously in cycling would not get one.   I'm a Triathlete so I wont go into how much we spend on things, though I wouldn't even suggest a friend of mine who will only mountain bike every now and then to get a $250 mountain bike.  I'd almost always suggest at least one that is around $500.  There is a big difference.  From actually using more standard parts (easier to get replacement parts from other people) and being more reliable in general.  Where your cheap $250 mountain bike might be able to survive a local mountain biking trail, chances are pretty high that you would have to replace parts on it more and more.  Plus they don't give you the room to actually move up in difficulty.   Though for a mountain bike where you plan to go off road at all I would suggest some type of suspension.  You definitely do not need a full suspension bike, so a hard tail is fine, but I do suggest some type of front suspension.
  13. Thanks, but Phaser doesn't seem to support other platforms like android etc. I would like to make the game for (all) platforms.   Define "doesn't seem to support all platforms."  Do you mean that it doesn't run natively on those said devices and needs to use HTML 5?  If that is what you want, then your engine/framework list just became incredibly small.   But other than that Phaser supports mobile browsers just fine.  Matter of fact their website even advertises this as a main feature as they said they designed Phaser from the ground up to deal with Mobile first!  So as long as their browser can run HTML 5 then they should be good to go.
  14. Ok, I am going to try to explain a situation I am in right now, and attempt to get some advice on how to handle it.  This will be a pretty long post though...   About a month ago in my Software Development course we were given a big group project.  After talking to the person playing as the "customer" (basically just describing the system he wanted and we had to figure out what he wants, requirements, and all that) to figure out what to do we went around and talked to everyone in the class to figure out our team.  I took this seriously and didn't just pick random people and chose people that had different expertise but complemented each other (i.e: front end, UI, and back end stuff). We had our team and everything seemed great after talking and telling each other what we were good at.   We got together again not to long afterwards to discuss the technology we would use.  After discussing it, and figuring out what the back end programmers wanted to use, I saw I was the only one who did not actually know it (ugh...PHP...I still hate it) nor really never really wanted to learn it.  No problem, I didn't want to be the weak link in the team, so that weekend I spend the entire weekend, along with my other school work, using it and knowing how to use it so I felt comfortable with it.  Couple days after that we got together again and the back end people started to layout what we wanted to do first.  I was anxious to get started so I actually went ahead and said I would get some base code started up and get to work on the initial system.  Needless to say here we are about a month later and I am still the only back end programmer to have done any work.  It's been me working my butt off with the other team members working on the front end to work on connecting everything.  That's been going great and we have great communication with each other.  Nothing to complain about there.  Though we still meet every couple days (mostly all of us) to talk about where we are at.  Well the other back end programmers show up sometimes and sometimes they do not.  When they show up they act like they are ready to get going but they haven't done anything yet.  So me and the lead front end person were talking the other day about it.  We went ahead and gave them some tasks for them to complete and they agreed and seemed excited to get going.  We meet today and we find out they have nothing done, then left the meeting early.   So here I am now the lead programmer using technology I do not like nor wanted to use (but to be a team player I didn't complain and studied my butt off to not be the weak link).  I'm actually fine with that.  Though we also have documentation we have to complete and turn in on certain dates.  The lead front end guy and I got together and worked on some of that then told the rest of the team we needed it to complete. Now we are getting complaints from the two members, who haven't done a single thing on the project, that we asked them to complete the documentation.  The lead front end guy and I have pretty much just stood up and said we are not going to do anymore documentation as their is just absolutely no way we can manage all the code and write all the documentation with zero help from the two people doing nothing.   We've tried bringing it up with them and they "apologize" and say they are going to get started now and seem anxious.  Nothing still.  I, and the lead front end guy, have no idea what to do now.  We are stuck waiting on them trying to finish their tasks we assigned to them, that they still haven't started, that I am pretty much about ready to just say "I'll just all the back end code, y'all just make the documentation look good!"   Anyone have any suggestions on what to do here?  Because right now when we do the peer review of each member on what the contributed to the project we flat out can't give them anything, except for the little they have done with the documentation.  
  15. Would this be the right way to think about a game

    One thing I've learned about beginning Game Programming: don't think about it too hard. Just start or follow a tutorial to help ha get started. Of you think about it too hard when you're a beginner you will get lost and never get done. Just start and don't worry about things too much. Your first couple games will not have the best code design at all . Just code and finish the game. Take notes about what felt like should had been easier. Can even ask for a code review here. Then in your next game try to implement those details you learned or took note of. If you keep doing this while making simple games before you know it you will have no problem knowing how a game works and how the next game you want to make should work.