Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 09 Mar 2010
Offline Last Active Feb 24 2015 02:50 PM

Posts I've Made

In Topic: forget c++

14 September 2014 - 03:29 PM

I started with C++ as my first language and then branched out to Java and C#. Later I learned less similar languages, like Python.


Going back to C++ of course sometimes you will need to use reference a little more than normal, you're not going to "forget" it.


Think of it like playing a game at the arcade, and then playing a game on a home console port. You don't forget how to play the arcade game just because you are playing the home version. Programming is the "game" and the console or control is your "language." If you play at the arcade again after playing your home version for a long time, you will of course have to get used to it again but you will not have forgotten how to play.


EDIT: It was said, but your goal is not to memorize a language. Even professional developers of many years still use language references. They don't have the whole language memorized inside and out. As you get experience you will of course memorize more and more syntax, but you'll never know every last thing and retain it fully. And it's much more useful to be familiar with many languages than to know one single language at such an arbitrary level of perfection.


The skills you gain by learning C++ will transfer to C#. C++ and C# are very similar, and at your level, you probably won't even notice much difference at this point.

In Topic: "Permanent" pointer-like references in C#? Or design that works for t...

14 September 2014 - 02:12 PM

Thanks so much !!


@eck - OK, I understand your Option 1 better now. When I read it before, I thought you meant to create the affectedStats variable within the Parameters/CharacterStats class as a member of that class, not as a member of the Potion class. It was just an ambiguity of English language that I interpreted improperly :) And I understand why you were using CharacterStats. I just use "Parameters" because in Japanese games the characters' stats are always called Parameters and I refer to them as such often and it just feels natural to me. Though I probably should've thought about it more and used a different name for the sake of this topic :)


@npyren - Thank you! I will have to learn about delegates and lambda expression because this is something I haven't explored yet. Even if it doesn't lead to a solution that fits for my problem now, a big part of wanting to make this RPG was that I knew it would challenge me to learn much more about programming concepts and language tools without being too overwhelming.


Thanks everyone for their answers :3

In Topic: "Permanent" pointer-like references in C#? Or design that works for t...

14 September 2014 - 11:17 AM

@Hodgman: Thanks for the reply. I realize that classes work that way, but what I'm wanting to do is point to a value (a member variable of a class), and not the class itself. There are many different variables in the class Parameters and I want the Potion class to know which one to access in its own functions. I realize I can point to a member it to access it once, but I want to be able to hold a reference to know which member to access each time. IDK if I am explaining this properly, sorry.


@Eck: Thank you. I was originally doing pretty much exactly what you used for the example in Option 2, but I felt like there should be a more simple/compact way to do it.


I feel like this is similar to what you meant in Option 1 but I'm not really sure. Would it be possible for you to expand on that just a bit more?


Specifically, "If your Potion has a CharacterStats member variable named affectedStats," what type of variable would affectedStats be and what would it hold? It still can't hold a refernece or pointer, so I don't think I'm understanding this example properly. Plus every instance of Potion would have a different affected stat and I'm not sure how it would keep track of that.


What I'm wanting to do is point to a value/class member variable, and not the class itself. I feel like Option 2 will end up being the way I have to go, though.


I just feel like there's some kind of better way that I'm missing though. Like as if there should be a way to just store in a variable which of the CharacterStats variables I want to affect, and just be able to use that variable to change the value.


Like to just be able to write a single line like target.CharacterStats.affectedStat += potionStrength; and just be able to have affectedStat essentially 'point' to one of the CharacterStats variables, and be different for every created Potion object.


I realize what I just typed doesn't actually make sense, but I feel like it should be that simple. Is it just not possible to do something like this or something similar enough/simple enough in C#?


I also realize after typing that example that what I was trying to do wouldn't really work with a pointer anyway, as there's no actually instantiated variable with an address to point to in this case. But just... I feel like there's a solution here I'm not seeing. Perhaps I'm not explaining what I want to do well enough to 'click' with the right answer, or perhaps what I'm wanting to do simply isn't possible in any simple form like I'm imagining.


I don't mind doing the Option 2, as that's what I was originally doing anyway, but if there's a better way, I'd like to know about it/try it. I feel like this kind of concept could be really useful for all kinds of things in the future, too.

In Topic: Is Unity 3d right for a horror game?

13 September 2014 - 11:33 PM

As for the lighting in Unity, since it was mentioned in a few comments, the free version of Unity is really terrible with built-in lighting. Pretty much you're not going to get any decent lighting or shadow effects whatsoever, unless you can program them yourself essentially from scratch. The engine features for lighting are pretty much ALL restricted until you buy the pro version for $1500.


This can be detrimental to your game if you want to rely on lighting for effect. Though there are workarounds, of course, but it will be a huge pain and you'll have to know a lot about lighting.


However, you can still make a very creepy game without using the lighting effects. Personally I think the game Clock Tower on SNES is very creepy and it's made with bright 2D sprites. Into the Gloom on Desura is a really creepy game made in Unity's free version. Personally it scared me a lot. It doesn't use lighting effects to create atmosphere but is still very scary.The recently popular Five Nights at Freddy's game is completely 2D and used pre-rendered 3D stills (which you can make in something like Blender). The infamous Imscared was made in GameMaker, an engine designed for 2D, and doesn't use advanced lighting or anything to be scary, but rather some unique mechanics and 'story.' (The links are to YouTube plays of those games if you were curious to their gameplay).


In short, there are tons of examples that the engine is not what is important to make a horror game; it's all in the design.


Since you don't seem to have a very strict idea of what you're wanting to make right now, consider designing your game around a concept that won't need intricate lighting if you're using the free version of Unity, or if you really want to do some intricate lighting, look elsewhere or buy the pro version of Unity.

In Topic: Game Maker Studio?

25 June 2014 - 09:31 PM

Personally, I found GMS able to make games more easily and more naturally than other popular engines, if you're wanting to make certain types of games, particularly more simply 2D games; however, the cost of the export packages is pretty steep when you can export to all the same platforms on something like Unity for free (which also does 2D pretty well now). I also was very frustrated with GMS's sound capabilities (or lack thereof). Hope you don't want looping music in your game or anything like that.


It's pretty limited, but if you're creating something that works fine within those limitations, I think it's great. The organization and combination of scripting + drag/drop makes for really fast production on 2D games.