Jump to content

  • Log In with Google      Sign In   
  • Create Account

evillive2

Member Since 13 Dec 2002
Offline Last Active Dec 16 2014 08:58 AM

#5183556 rate/hate/appreciate my mog server update model

Posted by evillive2 on 28 September 2014 - 04:32 PM

First - good luck. I truly mean that and not in a sarcastic manner.

 

Any input I would have at this point in time would be pure speculation because despite the effort to be detailed about what you are doing, it is difficult to really grok what is going on.

 

I will suggest on a much more basic and probably unrelated level however that TCP is the way to go until you find it is not - and then check that again. I work in telecom where some people still believe everything must be UDP because "it is faster" when really there are only a few pieces that actually need UDP (RTP for example) where others are actually much less complicated and more scalable over TCP (SIP for example). Of course I am probably getting ahead of myself because I have to build massively scalable and redundant systems with load balancers etc. where none of this will matter to you but if I can help someone avoid the pain I feel every day because of myths and half truths it will be worth it.




#5116967 Many to one relation in an SQLite database

Posted by evillive2 on 14 December 2013 - 06:03 PM

SQLite is a great tool to use as you migrate data from flat files. In fact I have been using SQLite for years for everything from config files to storing large data maps. There are so many tools for it and it is so light weight it is nearly as accessible as a human readable file but with a bit more kick.

 

That being said, and this is from my own experience - others may vary, just get your flat file data into SQLite however you find most intuitive to you (or your team) at first. In most cases the size of the data will be very small (relatively speaking in terms of DB performance) and the overhead of trying to learn SQL, Entity Relationships and all of the nuances of how to improve your DB performance are useless until you identify your database as being a performance issue. In many ways this is premature optimization. What you are doing is fine as long as you get the results you are looking for or at the very least get the same information you got out of the flat files.

 

Normalization of your database with foreign keys and foreign key constraints is tedious and time consuming to do correctly (once available the tendency is to lean on them which causes issues on it's own). Learning how to design, manage and run a database can ultimately lead you down a path to not completing your game. That is not to say time spent on learning the intricacies of database design, management and optimization would ever be a waste of time (I spend a lot of time doing this for work) however it will be a distraction from getting your game completed. Also in my experience, rarely has a database design been a bottle neck for any projects I work on until down the road when there are 1-3k+ users all adding and reading data at the same time. Granted the DB is almost always a bottle neck when we reach certain user thresholds or data sizes however at this point the applications are usually working well and the time spent on the database has more focus since the application has had time to mature and we know what kind of performance we are looking for.

 

I will repeat myself and say that overall I would do what is most intuitive for you and your game - especially if you are the sole developer. Database management has many religions and like any religion there are zealots who believe their word is Dogma and we all know how that turned out for Cardinal Glick. Once it is working for you the worst that can happen is you improve it.




#5080525 Why companies still use C++ and what should I learn then

Posted by evillive2 on 25 July 2013 - 12:56 PM

Programming is a task. The language is a tool you use to accomplish that task.

 

Just like any task, there are many ways and many tools you could use to accomplish that task both correctly and in a timely manner.

 

For example - Should you learn to use a hammer or a nail gun first? It really depends on what the job calls for but you are probably encouraged to continue to learn about any tools that can get the desired result.

 

In our company we generally hire people who have demonstrated the ability to learn multiple disciplines even if the one we are looking for isn't their strongest one (so long as they are proficient in it). Learning something is never a waste of time. You know what you can do and what is comfortable for you. Some people can pick up complex languages with relative ease, others need to wade in. The thread has given many opinions from people who work in your targeted industry (or claim to at least). The choice remains yours in the end however and your success will ultimately depend on how much you are willing to change and adapt to the employment environment you are seeking out.

 

 

 

It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.

~ Charles Darwin



#5061520 SQL login security?

Posted by evillive2 on 13 May 2013 - 08:50 AM

Even disregarding issues like password theft, letting anyone directly connect to your database server is a terrible idea.

 

Agreed.

 

Even a thin API wrapper between your internal applications and your database can be a positive thing. For the most part the main issues here are shielding yourself from malformed, incomplete and/or intentional malicious things - most notably the unintentional especially where quotes and special character escaping like $@!* are concerned. It is relatively simple to do since in most cases queries only require on a very small portion of information from the actual client side such as a function name and a date range or other criteria found in the 'WHERE' clause.

 

In most cases the only information a client should send is (authentication to your app server should be separate from the database login credentials and already complete at this point!) a few variables set to determine what function to call and the parameters it needs to reliably build the query server side. It is important to note that this forces you to an extent to validate the client requests and validity of their request before sending anything to your database and not rely solely on the somewhat lacking security features on various database engines.

 

This is not only ideal for security reasons but for maintainability. You can usually update/improve your query server side without having to update the clients in any way.




#5009270 Irrlicht any good?

Posted by evillive2 on 10 December 2012 - 07:27 PM

I am looking to use a free cross platform engine that has everything for the most part all ready done.

"everything" is a pretty generic word there.

What is it that you want to do? Tell someone your idea for a game and have it made for you - zero code? I was going pretty far in that interpretation but you get the idea. You must have some pretty specific requirements for your game that only you can define so please do.

So far I have:
  • C/C++ is your language type of choice - or at least C# (.Net in general?) is not an option
  • Sounds like your game is 3d oriented vs a 2d sidescroller...(elaborate please to the genre)
  • Is it multiplayer?
  • Does "everything" include physics, audio, networking?
Anyway - I think people have answered the original question which was "Irlicht any good?" as best they can with the limited parameters. It has proven to work for many different people in many different genres. The specifics of whether or not it is a good choice for your particular game will require some more specifics especially if you are looking for alternate libraries. I would be inclined to suggest SFML at this point since it potentially could offer everything you want.


#4841417 Video file supporting library?

Posted by evillive2 on 27 July 2011 - 09:08 PM

Have you looked at ffmpeg?

http://www.ffmpeg.org


#4841384 Winsock connection issue

Posted by evillive2 on 27 July 2011 - 06:54 PM

...
I would expect the numbers to be something like:
- external router address is 75.215.120.78 (may change over time)
- internal router/gateway address is 192.168.0.1
- netmask is 192.168.0.255
- computer address is 192.168.0.x, where x is any value from 2 to 254, assigned by the router.

I would expect the subnet mask (netmask) to be 255.255.255.0 and the broadcast address to be 192.168.0.255
But the rest sounds right :)

IPV4
Network: 192.168.0.0
Netmask: 255.255.255.0 (network and netmask can be written in CIDR notation as 192.168.0/24)
Gateway: 192.168.0.1
Broadcast: 192.168.0.255


#4788506 how to restrict client connect?

Posted by evillive2 on 20 March 2011 - 10:55 PM

I use fail2ban to automate this at the load balancer/proxy level (Linux and iptables). I work for an ITSP and we get hammered on our public session border controllers all the time from all over the world. Not too many DDoS attacks but SIP REGISTER and ssh dictionary attacks are common in short bursts. Not much we can do about it except mitigate the load it puts on our systems as the source generally comes from countries where there is no recourse.


#4725838 collision problems

Posted by evillive2 on 28 October 2010 - 03:51 PM

Lazy Foo has written some good beginner tutorials with SDL including collision detection.


PARTNERS