Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 06 Mar 2008
Online Last Active Today, 11:50 AM

#5293006 registering the game name

Posted by VildNinja on 23 May 2016 - 02:25 AM

Getting a trademark doesn't actually ensure you the sole right to the name, unless you have a market reach to justify you owning that name. If you have a published game that predates any registered trademark you should be able to convince most courts that they can in fact not force you to change the name. Unless of course you choose a name close to an existing brand. Or Google/Apple decide that you are not important enough.


King.com tried and failed to trademark Saga, the Escalator company lost the rights to their brand, as it simply just became the word for moving stairs. Same thing happened to CocaCola in Denmark where they lost the monopoly on the word cola, because it just became the name of that particular kind of soft drink. Generally brands can be disputed if no one can connect it with a specific company/product. But this is a HUGE legal field spread out in several independent legal instances across the globe.


In short worry about getting your brand established first, unless you have an army of lawyers ready in every region of the world.


Also I have no education in any field close to this, I'm just saying what I've heard at various business talks :)

#5292291 New to Game Development, and don't know where to start.

Posted by VildNinja on 18 May 2016 - 09:35 AM

The FAQ is always a good start :) http://www.gamedev.net/page/reference/faq.php/_/for-beginners-r1

#5292060 ABS and handbrake

Posted by VildNinja on 17 May 2016 - 07:08 AM

Only regular brakes. Handbrakes are not intended to ever be used while the car is in motion :) Which is why it works great for racing games, because it gives instant drift, rather than stopping the car (eventually it will stop the car, but nowhere as fast as regular brakes with ABS will).

#5291394 What is the best way to update a Quadtree/Octree?

Posted by VildNinja on 13 May 2016 - 05:33 AM

Assuming each child has a reference to its parent, and each quad has a count of how many items it contains (cached for its children):


When an item leaves a quad subtract one from the quad's count, and request the quad's parent to check if it should merge (if the sum of all children's count is less than threshold). If it did merge the merged quad should again request its parent to check for merge, etc.


Likewise when en item enters a quad you just check if the node should split, if it did split, you check the new quad (the one you entered, not the other three) if it also needs to split, etc.


If moving one node from one quad to the other you should do the enter first, to avoid current quad and new quad being first merged and then split, if they have the same parent.


This is assuming each quad has a reference to its parent and all its children, not using some array to store quads in. If you do want to store quads in an array, to prevent garbage collection, you could have a stack with unused indexes in the array, so you don't ever need to move items in the array. If your children in the quadtree takes too long to sort through when merging or splitting a quad, you should use a smaller threshold.

#5291282 About a programming language

Posted by VildNinja on 12 May 2016 - 08:01 AM

As far as I can see it's right on the Download page: https://www.python.org/downloads/windows/ (assuming you have windows, since you didn't mention otherwise)

#5290632 How do I measure risk?

Posted by VildNinja on 08 May 2016 - 06:28 AM

My best suggestions is to pinpoint the risky bits, and do your own little game jam (~one for each risky), where you spend one weekend or less (NO MORE) implementing it. When the weekend is done, regardless of the success of the implementation, you will have a much better idea of how difficult it is going to be. This does not have to be weekends, but spend some time measuring what you can. Yes this will most likely be wasted code, but it will not be wasted knowledge.


Use agile development (I prefer something scrum'ish) it allows you to rescope and reprioritize as you go. Because your project will change!


Use a feature matrix to compare each feature (risky or not) with every other feature. While some things are difficult to predict before the actual implementation, this will give you an overview of most complications.


And finally once you think you have overestimated everything multiply the time with PI.

#5290592 How can I optimize Linux server for lowest latency game server?

Posted by VildNinja on 07 May 2016 - 06:54 PM

I don't know any linux specific tricks, but I can say for certain that you OS is not the problem.


It is very difficult to come with any suggestions, other than the enable tcp nodelay.


Your problem might be related to your code running on a VPS, remember that most are not running on a dedicated core (unless you pay for that) so you have no guarantee that you will get constant access to the processor. It might come in small bursts, rather than a constant average, this could lead to slightly higher ping, as the server is simply "paused" for a few milliseconds once in a while.


Have you tested how your game works running from a dedicated server? I think the optimization is either in your code, or your host.


Also just remembered that there are multiple different versions of Java on Linux, try to google which is the fastest and make sure the one you are using does not interrupt everything when collecting garbage. (I stopped doing Java when Oracle tried to make me use the Ask toolbar, so my Java knowledge might be a bit outdated)

#5182219 Computer Science vs. Computer Game Science

Posted by VildNinja on 22 September 2014 - 02:04 PM

I can't help you with what education you should take, plus I don't know that much of US educations and job situation. But I will recommend you to go to a school where they do offer a game related program. You don't need to follow it, but what helped me the most on getting into game development, was to meet up with other people interested in game development. I met my current employer at a game jam at my University a few years ago. My bachelor is in CS, but my University also offers a master degree in game development, meaning that there's plenty of game related events.


Taking CS will not harm your chances in the games industry as long as you do plenty of games projects on the side.

#5178429 Physics system for a tilemap scenario.

Posted by VildNinja on 05 September 2014 - 08:01 PM

I would definitely recommend a quadtree. As you mention yourself, most grids would be empty most of the time. Managing linked lists is a lot of work considering the amount of bullets, that will travel several grids, before getting close to any enemy.


By using an algorithm with low tolerance for enemies in large areas, you should be able to create mostly enemy free regions where the bullets can travel without checking for collision.


That being said, you need a big game before performance should be an issue. Assuming you are using sweep scan with aabb.


As an alternative to a dynamic quadtree you could let several cells share a linked list. i.e. 5x5 cells share one linked list = 3600 in a 300x300 map. And no, a linked list with no elements uses very limited space.

#5141113 Is hatred for unity justified?

Posted by VildNinja on 21 March 2014 - 03:31 PM

He does have a point about the initial loading time, even for small scenes. A lot of companies create their own scene exporters in order to create their own loading pipeline.


The type of games made in Unity is often a simple physics based platformer. This is because Unity is an amazing tool for creating that kind of games, but no. Just because Unity is inviting (and to some extend does all the work for you) to make that kind of games it doesn't mean you have to create the game like that. A "mistake" a lot of people do is to make their games too physics based, because it is so easy. So to some extend I understands what he is saying, but there are tons of games not like that.


No I don't think his hate for Unity is justifiable. If you care about tech then maybe yes, but if you care about games then no.


Related: http://blogs.unity3d.com/2012/04/01/semantic-game-builder-interface-to-be-integrated-into-unity/

#5141110 Multithreading synchronization problem

Posted by VildNinja on 21 March 2014 - 03:16 PM

You could add a queue to the thread such that you don't need to synchronize any of the core elements. http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html then you just need to see if anything new has arrived, and then add it to your list from the thread owning the list.

#5140468 Is GameMaker any good?

Posted by VildNinja on 19 March 2014 - 05:37 PM

1) yes they have their own language

6) vlambeer is doing quite well http://www.vlambeer.com

Game maker is a nice tool for 2D games, but it's not gonna land you a job anywhere fancy.. But then again no single engine will do that. Make a super game and take it from there. And for that vlambeer have proved that it works great. Check out ridiculous fishing if you want to see what game maker is great at.

#5139356 Determine the 3d position of this vector

Posted by VildNinja on 15 March 2014 - 07:48 PM

if its 90 degs it seems that C can be on either left or right side according to B position in relation to A.

In 2D yes, but this is 3D. This means that any point on a circle with the radius y around A is a valid point C.


Also: Vikings cheer in Valhal whenever people mention the cross product! You might as well learn to use it, it is quite useful in vector math :)


Read up: http://en.wikipedia.org/wiki/Cross_product

#5139011 Determine the 3d position of this vector

Posted by VildNinja on 14 March 2014 - 10:39 AM

C = A + Normalize( Cross( B-A, Cross(A,B) ) )  * y;


Cross(A,B) is a non-unit "up" vector, normal to AB.


B-A is a non-unit vector from A to B.


Cross(B-A, Cross(A,B)) is normal to both AB and "up," i.e., points from A to C, normalized to a unit vector for applying the length of the side (y).

Yes, but that's still assuming that C is also in the plane with the normal "up" gretty didn't specify that.

#5138996 Reliable UDP: Correct Order, Error Correction

Posted by VildNinja on 14 March 2014 - 09:50 AM

Ashman72's approach is the right one to follow if you want the in-order + reliable layers added to UDP. But keep in mind that in the case of lost packages you either need to wait for an ack message from the server with a too low sequence number, or resend them often any ways.


First case will stall the connection in the same way as TCP does it and second case will send more data.


I recommend the second approach where you send unconfirmed messages just in case they should have gone missing.


There is a naive and simple way of doing this - the one I explained in my previous comment - If you couple that with Ashman72's approach you'll get relaiable and in-order. Further more you wont need to resend the latest second of messages, but rather just the last few, as you no longer need them as a safety net, but rather for decreasing the likeliness of package loss.


Another appoach for this is to append each package by its previous package XOR the package before that:


package n => id(n) + content(n) + (content(n - 1) XOR content(n - 2))


In that way you can append two packages for the price of one. Afterwards you can easily recreate lost packages, unless three is lost in a row.