• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

183 Neutral

About mouserSVK

  • Rank

Personal Information

  • Interests
  1. First Person RPG/Slasher

    While there are many gamers that like to play games in 3rd person view, I personally also do think that "FPS" view is much more immersive. But to answer your question a little better -- I think that there is nothing not 'acceptable' on such a game for an average RPG gamer, The Elder Scrolls series are a good example of that, while [url="http://www.elderscrolls.com/"]Skyrim[/url] is currently one of the most anticipated games. Of course these games are huge and very well designed in many aspects, but I like them a little more than, let's say, Nevewinter Nights also because of the "FPS" experience.
  2. Difference Between Vector and Point?

    Quote:Original post by MaulingMonkey One can represent a point with a vector describing it's position relative to the origin of the coordinate system within which it is defined. Not only in theory -- in practice, this is how we treat them! Agreed! Quote:While points may be conceptually distinct from vectors, all the common operations upon them are operations on that vector representation. Translation, rotation, scaling -- be it for movement of objects or translation into the coordinate system of the screen for rendering -- it's all standard vector math. Yes, but because we are treating points using their vector representation. (And this is only possible because we have an origin, note that it would not be possible in an affine space, and lets not forget, that homogeneous coordinates treat vectors and points differently, so do the affine transformations -- performed a lot in comp. graphics. E.g. when performing affine transformation such as translation, a point IS translated most usually to some other point in given space, but translation of vectors is identity.) I fully understand and agree with the fact that we can use vector representation of points. Just don't forget they are (sometimes) used to express different things.
  3. Difference Between Vector and Point?

    In terms of affine algebra (used also in computer graphics), point and vector are two different things. As also Eberly in his book (3D Game Engine Architecture) states, point is transformed differently than vector (because of that distinction of point and vector in affine algebra). Vector is transformed as 2 points, not as one. (P' = RS.P + T as the equation for point and V' = RS.V as the equation for vector) It is true, that in homogeneous vectors world, point P and vector V can be expressed using the same expression - but there still IS a difference in w component and so it doesn't necessarily mean that these two things are the same. However, while believing that there is clear difference between a point and a vector, still, these two can be defined using the same information. I was just trying to emphasize the difference between two terms ;) I think they are different, but I completely agree that vectors can define points. (But scaling a point, performing cross or dot products on points, .. still sounds weird to me). I absolutely agree that in practice, one can live with "Vector" object which can hold also information on point (it can be a vector, that, when applied to point at the origin, produces another point -- uniquely represented by this vector). I also never made "Point" class, since Vector is enough to "capture" the portion of points ;)
  4. Difference Between Vector and Point?

    Well, but when talking in terms of "points" and "vectors" I think we all know that by "vectors" we mean free vectors as defined in geometry, not exactly algebraical vectors. But anyway, still, I disagree -- in algebra, vectors have certain properties. One of the properties is called length. How could you define a length of point? What is the dot product of 2 points? What is the projection of a point into another point? See also this paper. Wikipedia entry on vector space states that: A vector space is a mathematical structure formed by a collection of vectors: objects that may be added together and multiplied ("scaled") by numbers, called scalars in this context. I, again, ask: what is A + B or a*A, where A, B are points and a is a scalar? Also notice chapter with description of vector space axioms. Are you sure these definitions apply for points?
  5. Difference Between Vector and Point?

    Quote:Original post by Numsgil All points are vectors (meaning they are members of vector spaces, meaning they can be added and scaled). But not all vectors are points. Some vectors are directions. I disagree. Points and vectors are two different things. All vectors have directions and magnitude, that's what points do not have. All vectors are positionless (at least in mathematics and computer graphics, maybe not in physics). Position is THE ONLY property of points. In computer graphics, usually an affine space is made of points P and vector space V, where some axioms are defined, such as: Having a pair of points P and Q, there exists a unique vector v, such that: v = P - Q etc. Thus P - Q is a vector, P + Q is nothing. But having vectors u = P - Q v = Q - R u + v is a vector w = P - R
  6. Difference Between Vector and Point?

    Well, you can imagine a vector to be something that points some way (in 2D it can be pointing for example straight from left to right) and it has a length. Vector, however, does not have a position. Length and direction are the only preferences of "vector". So, you could as well imagine a vector [3, 4] to be "an arrow" starting at [0,0] and ending at point [3, 4]. Point defines a position in plane / space. So it has NO "length" or "direction". In mathematics you can not perform e.g. sum of 2 points, but you can "translate" a point using a vector (that defines the direction and length of translation). So if you have a point somewhere at [3, 2] and a vector that [2, 0] (which, when drawn, is pointing to the right and has a length of 2 units -- as if it was an arrow from [0, 0] to [2, 0]), you can translate a point [3, 2] using this vector to [5, 2]. ([3, 2] + [2, 0] = [3 + 2, 2 + 0] = [5, 2]) Vector defines how the point has been moved - in which direction and how far.
  7. Mass Effect for PC and DRM

    Quote:Original post by EmptyVoid Everyone hates DRM but I mean you don't really have an option, just open it and enjoy! Well, that's very bad thing, actually - we SHOULD have an option. That's why I love Bethesda for their DRM plan for Fallout 3. And - about the options for Mass Effect - You can buy Mass Effect here (in Slovakia and Czech Republic) which was released without that nasty SecuROM :)
  8. [java] Java Team Required

    I have found at least 2 people in this thread willing to be of an assistance. But your post lacks some basic info in my opinion: WHO do you really need (2.. 3... 10 programmers? ...) ? What kind of 'team' do you already have (What about artists? Designers? Sound and music) ? What amount of work needs to be done (Do you have any plan?) ? How do you want to market your game? What will you bring into the team apart from the idea of making an MMO? Thanks for the answers.
  9. See Sharp. (C# vs C++)

    I totally agree with you. People who never tried anything else than C/C++ should try some some of more popular managed languages and maybe some less popular "clean" languages. Although I am basically a Java guy, working in Java for 5 years (and I have been C++ fan / user a few years before) I'm planning to try C# for desktop application and games, especially. C# seems to be syntactically better and with better support for games and desktop applications than Java (which is still strong in the area of enterprise applications). As far as I do not miss any C++ tool / library / performance, I have no reason to use it.
  10. Unity why is C++ still being over-used?

    Quote:Original post by Ryan_001 You piqued my interest in your earlier thread about Scala, I will certainly be taking a look at it. ... IMO a 1/2 and 1/2 apporoach would work best, but I have yet to see a language do this well, but if Scala can do both well, I'll be quite happy ;) IMHO Scala can blend these two approaches very well, since it (unlike Haskell) accepts state and you can freely code Java-like in Scala. You can even extend Java classes, etc. Right now it speaks to quite big amount of audience (even Google, Sun, ...) and some people tend to think about Scala as Java successor. I don't think it will be like that, since Scala is more like C++ than Java when it comes to "difficulty" of language and its "pitfalls". But it will talk primarily to demanding Java programmers. Quote:Original post by Antheus Quote:Original post by mouserSVK Whole article, called Java theory and practice: Urban performance legends, revisited, can be found here, but it's 3 years old so you can expect that modern JVM is slightly better. That article talks about myths, wishes and possibilities, not facts. You're right, sir - although the myths are meant to be those that are against Java performance ;) I didn't want to talk about escape analysis - I was looking forward to having it in Mustang (Java 1.6) but sometimes the guys from Sun just don't do what I want :). I do not want to claim that Java is faster than C++. Java is definitely slightly slower than C++ - but I think Java's performance can be dead close to C++ performance. I pretty much can understand all the reasons that make some people to use C++ (like slightly better / controllable performance, wide variety of existing tools and libraries) - but I don't understand why C++ as a language should be "nicer". Mostly when comparing it with C#. Sometimes I think that all those "C++ or nothing" guys could just spend a little more time investigating other languages as well. NOT because they would possibly use Lisp or Haskell to make a game. But because they could learn some things. Still... IMHO 90% of people here could stick with C# and I believe that they would find they work more effective. (I have a friend that worked on a 3D engine in C++ for more than 3 years - now he's working on some kind of tool in C# and he admitted that he could have done it in C# without any bigger performance issues and it would take much less time , much less debugging - and I believe that the code would be less buggy)
  11. Unity why is C++ still being over-used?

    Quote:Original post by Ryan_001 1) I added a OpenMP-type parallel construct to a C++ project by liberal use of goto, lables, macros, and some inline assembly. I could do something like: for (int i=0; i < x; i++) parallel {} and it would run it in parallel across x threads. It didn't take long at all (1 night to get it running, 1 to do clean-up). This is something u couldn't do easily in C#, java, and many of the other managed languages. OK, apart from the fact you can do this in Haskell right away (see my last post above, where I talk about Haskell's support for concurrency) I will stick with Scala and ... Java: In Java and Scala you have something called 'Callable' and also something called 'Future' which represents a computation that should be done in the future. Then, while having it in Scala directly - since Scala IS functional, you can make something like this work in Java - there is a libary called "Functional Java", which makes something like this possible: Imagine you have a set of points and you want to calculate all the distances between them, then you can do it using Functional Java like this: Callable<List<Double>> edges = parZipWith(s, dist).f(pts, pts.tail()); Callable<Double> length = par(fmap(List.<B, B>foldLeft().f(curry(sum)).f(0)).f(edges)); It is basically possible to do this also using "for" cycle and do things similar to your 'solution'. It is a whole 'science', there are things like monad, Kleisli arrow, functor, etc. More on this is in the series of articles called Higher-Order Java Parallelism - here you can find steps describing the implementation of these things in Functional Java library. Those strange functions called curry, foldLeft (yes, there's also foldRight), etc. are a part of almost all functional languages and while they may seem "scary" at first, soon you can find the clever idea behind them - that's one of those moments I'm always talking about - when knowing functional languages makes you a better programmer. C# is even a step ahead in functionalism, so in C# it should be even easier. Quote:Original post by Ryan_001 2) Micro-managed memory management again is difficult to do in managed and functional langauges. I just finished writing a general CF grammar parser. Because its completely general (not a LL or LR or anything) memory allocation can get, well... unwieldy, due to all subtrings and their id's being used. I got orders of magnitude speedup by properly managing allocations and deletions by hand. The point is that you don't have to do this in Java e.g., because Java handles memory differently and memory allocation / deallocation is actually much faster than C++ malloc(). According to a guy called "Brian Goetz" - which is a multithreading Java GURU claims: Pop quiz: Which language boasts faster raw allocation performance, the Java language, or C/C++? The answer may surprise you -- allocation in modern JVMs is far faster than the best performing malloc implementations. and then.. And allocation performance is not a trivial component of overall performance -- benchmarks show that many real-world C and C++ programs, such as Perl and Ghostscript, spend 20 to 30 percent of their total execution time in malloc and free -- far more than the allocation and garbage collection overhead of a healthy Java application. Whole article, called Java theory and practice: Urban performance legends, revisited, can be found here, but it's 3 years old so you can expect that modern JVM is slightly better. Quote:Original post by Ryan_001 3) Inlining assembly. I agree, however, you can still make DLL in C++ and use Java Native Interface to call your inline assembly function. Quote:Original post by Ryan_001 Now as far as the common practise of bashing C++ goes, would it not make more sense to point out what you LIKE about other languages, and perhaps maybe some example where you found certain features useful? Right now I'm quite in hurry, but I'll prepare some post with some examples later ;)
  12. Unity why is C++ still being over-used?

    Quote:Original post by Boomlala In my view, learning how to program, is learning all the tools there are out there. Learning all the big languages, learning to use all kinds of APIs, learning to use all kinds of frameworks. My long-time goal is to achieve comprehension of many languages, many APIs etc etc. C++, Java, C# and Visual Basic are the 4 main languages I eventually want to learn. That sounds great, really. The best is to try those languages and choose your language of choice. But there is one very important point that is missed a little in this discussion I think. Learning how to program in my opinion goes "through" the languages. But language is just a tool - not a technique, not a paradigm. Some paradigms and techniques, however, are supported by some languages. That's why I can find Haskell, Ruby, Lisp, Smalltalk so inspiring and important. I have jumped into PC game development with some Turbo Pascal in my hands, quickly changed it to DJGPP C/C++ compiler, Allegro library and then switched to Visual C++, etc. I thought I knew how to program. But that was not like that. I knew how to make algorithms, maybe. But I would screw any bigger project, that's for sure. The art of programming is in its higher levels - which unfortunately can be much easier found and learned in higher level languages. They are even great source of maybe forgotten ideas and designs. There are many areas beautifully crafted in many different languages: * object-oriented design and design patterns (important for clean design of software components): Smalltalk, * functional design (tail recursion, map, reduce algorithms, etc): Lisp, Haskell, Ruby * concurrent programming (kind of alternative to 'threads' model used almost everywhere): Haskell .. and I could go on. Then you can employ OO / functional techniques also in C++. Maybe you will find C++ not comfortable for you anymore so you'll choose C# or F#, Java or even Scala (yeah, my lovely Scala <3 ) Yeah.. and depends on what you want to do and where you want to do it. I think you can work in C# / Java in big game companies and create tools that support game development - it is MUCH faster to create level editor in C# than in C++. You can create great indie game in C# / Java I believe MUCH faster than in C++. And maybe you want to be employed as professional game developer and create high-end games in big studios - than I think definitely C++ is still a way to go now. But all those paths are for sure easier and brighter with having the knowledge of OOP / functional programming (AT LEAST) in your arsenal.
  13. Unity why is C++ still being over-used?

    Quote:Original post by idinev I support BASIC as first language, as it doesn't involve mysterious things like includes, predefined starting-points, etc. My first touch with computers was when I was 7, owning a Slovak clone of Sinclair's ZX Spectrum (called Didaktik M), having 'installed' BASIC. So my first programming and even game programming steps were performed in BASIC (and Z80 assembler a little bit later). But still I would recommend Lisp and Ruby maybe these days as something to start with. But concentrating on the topic - I agree that most of us really are indie game developers. And as an indie I have found even Java (with LWJGL) easier to use for game development than C++. I have found the code clearer, refactoring, source processing support in my IDE (Eclipse) better than Visual Studio's support for C++ (I believe that C# has better support, faster code completion, etc. also in Visual Studio). And I really think that C++ is the main choice for game development because of tools support, huge existing C++ use in all the big companies and also because of performance, when someone's playing with the cutting edge technology / game engine / physics engine in a huge world with highly-detailed models. But performance differences are very small when one knows how to work with garbage collected languages with JIT. So it's not because of the beauty of the language (C++), it's because of the market. C++ has some nice ideas, though and I still believe that it should not be left behind.
  14. Unity why is C++ still being over-used?

    Quote:Original post by dv I fully agree. Especially Java is guilty of this. There's a saying, "Java is C++ minus all problems - and minus all advantages." The real deal would be to have a language with elements of Lisp, Haskell, and C++. The expressiveness, versatility and power of such a language would be incredible. Instead, people continue focusing on Java-style OO. At least C# has a functional core.. but it only got added because of the trivial parallelization of functional stuff, not because of the additional benefits of a second paradigm. Well, I do think that Java is not a bad language. I agree that C# has been slightly 'ahead' lately, but Java still tries to be a good language and a good platform. I also agree that Lisp, Haskell are great languages worth mentioning - and that C++ has some great features. I've been using Java for several years now and it has improved also in the terms of performance. Rapidly. And there is one hope for Java world - "Scala" language - it is inspired by Haskell, Lisp, I think also ML - it is an object-oriented functional language (every function is an object). I have been working with it for a few months and as a language I have found it really interesting also in the terms of Java successor. Performance is comparable with Java. And one more thing: I have seen such statements here (A LOT), like: "Hey, don't try to learn C++, learn VBscript, then VB, then C..." I agree with the first part (C++), but I have to disagree with all that VBscript, VB and C part. Guys, Visual Basic is one of the worst languages out there regarding syntax. It is a big mistake IMO to learn it sooner than you really need it (e.g. your employer wants you to learn it because he needs it desperately). Many IT gurus do not recommend learning VB at all. Worthless. I think C/C++ might be fine. But don't go into too much details. Observe - try also languages like Lisp, Java/C# and Scala. Java people tend to make some bad assumptions that programming is easy - I want you to encourage you to learn Java / C# anyway and again - observe - learn from Java gurus. And learn functional languages if you really want to be a good programmer. Combine good OO design and functional programming principles. Then you can use it also in languages like C++ or even C (to some degree).
  15. Well, I do not use netbeans, so this is maybe just a hint, but anyway: I guess that you get the heap space error after you run your application, right? So this should not be a problem of netbeans, rather a problem of your application (which I hope is run in separate JVM). Try to pass the -Xmx1024m argument in the 'run configuration' (or its netbeans equivalent) of your application. Hope this helps ;)
  • Advertisement