Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

139 Neutral

About CalvinCoder

  • Rank

Personal Information

  • Website
  • Role
    Technical Director
  • Interests
  1. If you absolutely want to learn assembler, as a former demo coder I second learning some 68k asm on Amiga, and maybe also some 8 bit 6502 on C64. Loads of tutorial out there and not to complex to understand... x86 is great too, but I personally think x86 has a little bit steeper learning curve.....
  2. Quote:Original post by swiftcoder In reality, the only way to guarantee this is to make the game play of all ranked matches occur on the server, but without such draconian measures you can still provide at least deterrents to potential cheaters. I second that. Well said swiftcoder!
  3. Quote:Original post by TheBuzzSaw It baffles me that "security" and "single player" ever share the same project. Why do people insist on protecting the single player experience? People cheating to obtain achievements is like a little league team purchasing trophies because they don't feel like playing the season to earn it. The achievement has significance because of where it comes from, not the achievement itself. I find it interesting why people here often tend to assume this or that once a person asks a specific question. Why couldnt it be possible share the same project even if the game is single player? We have implemented several single player mobile games with hiscore upload and achievements which have been tailored major campaigns different places world wide. In many of the campaigns, a key element has been competitions to win a prize of some kind. Although its not possible to make it completely hack proof, it is still important to make sure you secure this enough to make it unlikely that the less skilled "hackers" will manage to cheat, while putting enough speed bumps for the more skilled ones so it will take to much effort to gain anything (like that the competition will be over before they break the code). @OP - I am by no means any expert in this area. What platform/language are you targetting? This is not highly relevant, I am just wondering as in many cases you already have tools helping you on the way encryption part like using HTTPS to send your data. If you do not have the possibility to use HTTPS for instance, what we have done is to compile in either an encryption key or algorithm directly into the code. Though it should be noted that this is a bit like putting your car keys on the roof of your car and thinking no one will manage to steal it :) But it still prevents the less skilled ones from hacking the game easily. The more complex variants are of course to implement some keyexchange algorithms but this can easily be taken down by the more skilled ones using some man in the middle tricks. So, unless you have a specfic reason to secure the data extremly tight, my opinion is that it will be just fine to implement some simple key generation hack or compile in the encryption key into your code which is used to encrypt the data before sending, together with some tools for reporting suspicion values on the server side. But like I said, I am not any expert in this but this has worked fine for us :) Cheers!
  4. CalvinCoder

    XBox Live Arcade not showing indie games.

    Here you will find a list of countries supported by XBLIG Quote:Also, can a game written with DirectX and an own engine be easily transferible to the Xbox 360 marketplace? Getting a game launched through XBLA is not an easy task, if this is what you ask. You can read about it here Cheers!
  5. CalvinCoder

    is "Reinventing the wheel" a bad thing?

    There is no right or wrong answer to this. This is simply only a question about what your requirements are. Are you in need to understand what is going on under the hood to actually complete your project? Do you have certain time constraints? (being on time and on budget is in most cases essential requirements). Or do you have specific reasons to learn it? like that you simply want to understand so you later are in position to create something from scratch if your requirements is in need of such for a particular reason. The point is that it all depends on what your requirements are. If you simply want to make a game and there is a game engine available which match your needs and requirements, its not a good idea to start from scratch on a new engine. Using existing technology gives you shorter development times even if you need to learn the engine too (at least in most cases). However, if you wish to create a game with your own game engine from scratch because you want to learn, then this is your requirement and there is nothing wrong with that if your objective is to learn writing engines. Other times you want to write a game but no current game engines meet your requirements without a lot of modifications. Then it might or might not be a better ide to write the engine from scratch (although writing a full fledge game engine which support the wide range of hardware existing today can be a daunting task). In other cases it can be smart to invest into your own technology for a number or reasons, while in other cases it is not. IN SHORT: You need to define what your objectives and requirements are before its possible to define what is a good or bad idea.
  6. CalvinCoder

    Facebook Game Programing

    Although I have never looked at the APIs myself so I dont know how well suited they are for Facebook game dev, however, Microsoft also has or support some Facebook devkits: CodePlex MS Facebook devkit
  7. CalvinCoder

    Mobile Development

    Quote:Original post by itmanager86 What I need for Palm OS 5 development? Quote: What I need for BlackBerry development? Is BlackBerry only for J2me? Quote: Do I need sign Symbian App if I want to use it on device? All Symbian C++ applications must be certified. You can do this yourself using a self-signing certificate, but many sales channels require your application to be tested and certified under the Symbian Signed program. Cheers!
  8. Thank you very much for taking time to reply neoaikon, its really appreciated. Quote:Original post by neoaikon 1 - Games using point an click technology should be limited to platforms containing devices to facilitate pointing and clicking. A good example is RTS styled games, while possible to play on XBOX or PS/2/3, its much more intuitive and fluid to use a mouse. Handhelds should be limited to things with touch screens. This all really comes down to how much moving (and how fast) the player is going to have to do. Action games using point and click should be limited to point and click devices, the users will feel pressured by the game. if its slower paced than users won't be as affected by this caveat. Certainly. This is valid for all kind of games really; target platform put limits on game mechanics and other elements part of the game and hence game genres. CPU speed, memory, keyboard/mouse/joystick available, storage/disk space, speed of internet connection, 3D support etc are all factors that put limits on games. And I absolutely agree with you that point’n’click games do not fit well on all platforms and hence my post as I like to hear others opinions about this. However, lack of mouse is in my opinion not a factor that necessary sets a limit for such games. But that’s like you say, “it really comes down to”… This is really more about adopting the game design to the target platform regardless of game genre. Several of our INK-based games, such as Investigators for SEMC and Silent Hill Mobile 1+2 for Konami all are successful games with great reviews and positive feedback from players so obviously, at least a group of players like to play such games on mobile phones. Further, although we have a philosophy to create games we like and because we like to create games, there is a business side behind all of this too. If we can support more platforms with very little effort, regardless of if the platform is a perfect choice or not for point’n’click games, it may be a good thing. Quote: 2 - I don't know if I would ever use such technology, but there are always people who would make use of it. Sure, not everbody makes point’n’click games :) Quote: 3 - I would go open source, but that's just me. May I ask why? We embrace open source many times, but in many situations it is simply not the right business model. We have already released the source code for two of our old mobile games, which had rather large download rate. We did this to help the community but investing thousands of dollars into INK and just go open source with it, we better have a good reason for doing so. Embracing open source is not enough for us in this case :) However, if we decide to go open source with the tools and engine, what do you think about that the tools are depneded on a propritary software like Macromedia Director?
  9. Hello, I figured out I wanted to post some thoughts on some technology we have been developing in hope to get some feedback, suggestions and comments from the all mighty users of these forums. I am not enterily sure which forum this post better belong under so moderator, please move to a better place if this is forum is not well suited. This post will probably end up being rather long too so my apologizes for this. I am sure not everybody is fan of reading long posts and ramblings here, but I give it a try nevertheless. Well, enough gibber-yabber. We have for some time ago developed a technology we call ‘INK’ (Interactive Narrative Kit). This is a technology targeted point’n’click games for div platforms. Some of the games developed with this technology are Silent Hill Mobile 1+2 (Konami) and Investigators (Sony Ericsson, preinstalled on many SEMC devices) among others in addition to a number of titles lined up. Each game is scripted and created in Marcomedia Director 10.4, which is our authoring tool for creating the games. We have developed a number of scripts, resources and tools that compiles, exports and builds the data chunks that is further used by the engine. The data chunks consist of everything from script to graphics to audio etc. Basically the engine acts like a player and script interpreter. Our initial idea was to target a “niche” marked with point’n’click games for handheld devices. We started out with the engine on J2ME devices and later ported (or currently porting) the engine to other platforms like Symbian, Windows Mobile, iPhone, BREW and similar. However, we like to expand this further and we are currently planning/evaluating whether or not we should bring the engine to other platforms targeting PSP, DS/DSi, PSN/XBL etc. In addition, we are strongly considering going open source with our technology. An important thing to understand is that we don’t use all features of Macromedia Director, i.e. our engine is not a shockwave player. It exists several cons using Director, however, at the time we felt it was a good choice to use as authoring tools and we basically “translated” some of Directors jargon and philosophy into something that suited our point’n’click games. For instance, our games does not use Directors chronologic timeline. Instead, each frame in the timeline is a room/location in the game and hence the game jumps back and forth between frames. Likewise, each frame contains Director sprites, where each sprite corresponds to a “room object” in INK. Among other things. Up in all of this, it raises a number of concerns and thoughts I was hoping to get some feedback on. Maybe this is not the correct place to even get that feedback but nevertheless, something is better than nothing. Some of my questions and thoughts are: 1) What do you guys think about point’n’click games in general on handheld devices and other platforms like PSP, DS, PS3(PSN), XBOX 360 (XBL)? 2) Anyone would be interested in using such technology if it was available? 3) Going open source may or may not make Director a “bad” choice as authoring tool and we might be better off creating our own tool. What do you guys think? (of course both as its pros and cons and we are aware of that) 4) Are there a lot of you out there actually using Macromedia Director or does have basic knowledge or competence using the software? I appreciate very much the time you take to read my post and giving feedback. All comments and questions are welcome.
  10. CalvinCoder

    string::length and unicode

    From the Characters and Combining Marks FAQ: Q: How should characters (particularly composite characters) be counted, for the purposes of length, substrings, positions in a string, etc. A: In general, there are 3 different ways to count characters. Each is illustrated with the following sample string. "a" + umlaut + greek_alpha + \uE0000. (the latter is a private use character) 1. Code Units: e.g. how many bytes are in the physical representation of the string. Example: In UTF-8, the sample has 9 bytes. [61 CC 88 CE B1 F3 A0 80 80] In UTF-16BE, it has 10 bytes. [00 61 03 08 03 B1 DB 40 DC 00] In UTF-32BE, it has 16 bytes. [00 00 00 61 00 00 03 08 00 00 03 B1 00 0E 00 00] 2. Codepoints: how may code points are in the string. The sample has 4 code points. This is equivalent to the UTF-32BE count divided by 4. 3. Graphemes: what end-users consider as characters. A default grapheme cluster is specified in UAX #29, Text Boundaries, as well as in UTS #18 Regular Expressions. The choice of which one to use depends on the tradeoffs between efficiency and comprehension. For example, Java, Windows and ICU use #1 with UTF-16 for all low-level string operations, and then also supply layers above that provide for #2 and #3 boundaries when circumstances require them. This approach allows for efficient processing, with allowance for higher-level usage. However, for a very high level application, such as word-processing macros, graphemes alone will probably be sufficient.
  11. CalvinCoder

    Designing distributed systems

    Guys, thank you very much for your replys and feedback. It is really appreciated. :) My main concern is really not which languages to use. I am very aware of the nature of Erlang, though I dont have huge experience with it. My main concern is really how to divide my application into several nodes and how each node should work and communicate with other nodes..... Of course, communication will be done using RMI, I mean things like what is responsbile for doing what to keep a stable distributed system with good performance and avoiding single point of failures and bottlenecks)... I know for example Erlang can help calculating some of the issues based on how much traffic will pass in and out, however, the nature of this system is not as easy as for example a typical call center so it is a difficult task. Like the connector subsystem, if we for instance simplify it and says it only supports inbound and outbound SMS, I have some basic ideas on how I want to structure the application but I still cant see cleary if my toughts are good or bad. Basicly, the inbound connectors is not so much to do about, for each operator it can only be one inbound any how. But the translation of operator specific message format (for example from JMS message) to our internal message format (which is XML based) can maybe be an idea to distribute but for low traffic that will just make it slower but for high traffic (whatever that will be in number of incoming messages) it might be a good idea to be able to distribute the translation even though each translator (for each inbound message) will anyhow be started in its own thread. And since each connector anyhow runs as a standalone process, we can dediced one single computer for one single inbound connector which should be able to handle a pretty high load. Its the outbound connectors that will be kept busy really. And for outbound connectors, we can run several connectors for one operator. Though, there must be a connector manager (or maybe a OutboundMessageDispatcher is a better name), than must construct a operator specific message for each user and pass it on to the connector so this message dispatcher will do a heavy job to in some cases. And its here I am a bit stuck, to figure out how to design it properly for keeping stabiity and good performance while avoiding bottlenecks and single point of failures. Obviously, single point of failure for this sceneario can be abvoided by using several message dispatchers, but it is here my real question is on "how do I better do that?" .. By assigning one message dispatcher as master which redirects requests to slaves when overloaded and have a system for reassigning a new master if original master goes down (maybe a network heartbeat system or someting)..... So basicly, if someone has any feedback on this matter, I would be more than greateful :) Cheers, Eirik Moseng, CTO Digiment Games
  12. CalvinCoder

    Designing distributed systems

    Quote:Original post by Anonymous Poster ever heard of "Erlang" (wikipedia/google)-the project you are describing seems like the natural fit for it, in fact Erlang was specifically invented for this sort of applications (distributed, scalable, high-reliability ...) and even for the very domain you are working in. Jepp, sure :) I've been working with telecom for several years which is a field that uses Erlang a lot, so I am aware of Erlang. Though switching to Erland is not something I think we will do and that's why I havent considered it. We have already invested a good amount of time and money into our current system which we can reuse almost every bit of code. Quote:Original post by Anonymous Poster Also, note that there's no need to implement all of the new design in Erlang: rather, Erlang has been designed with high interoperability in mind, thus it has various mechanisms available that allow it to work with modules/programs implemented in other languages - such as for example, C, C++, Python or Java - i.e. by using CORBA, RMI or other RPC methods (possibly custom ones,likewise you can link in native libraries, too). Yes, I will dig further down in Erland and look for ideas on how to adpot the various mechanisms into our appliacation. Thanks for your reply, much appreciated :)
  13. Hey guys! I am working on the architecture/design of a distributed system and I am not 100% sure of how to attack some of my problems. So I figured out I wanted to make a post to this great community to hopefully get some nice input :) And gosh, this will be a long post so I really hope someone has patient to read it =/ Basically, the system I am working on is a system for providing highly interactive and some non-interactive services for mobile phone users, in addition to provide billing services for external systems (like external streaming servers etc). I have already implemented the system today and it has been running for soon 2 years, with a few quirks here and there but in overall it is quite stable. However, today, the system is implemented as one application with the exception of inbound MMS receivers/connectors which are implemented as servlets, running under Tomcat. The current system is event based, i.e. when an inbound SMS is received on one of the inbound SMS connectors, the message is first converted to an internal message format and then an InboundSMSEvent is posted to the system and whatever module that is interested in inbound SMS pick the event up. Basically, this is the service subsystem that does and it is the service manager that listens for inbound SMS events and dispatches the message further to correct service based on keywords written in the text message (SMS) etc. The connector subsystem (or tier if you want to) is responsible for communicating with all external systems. The definition of a connector is basically a component or module that handles the inbound or outbound communication with the different operators, whether it is messages like SMS, MMS or system specific message formats etc. The protocols or message services supported are SMPP, JMS, HTTP/HTTPS (SOAP, XML) and maybe others as new protocols or message services must be supported. The connector tier is also responsible for translating between operator specific message formats or protocol specific message formats and the internal message format used by the system. A service is a component or module that does something for a user of the service like a chat service, auction service etc. Even though the system works very well today, there are many drawbacks. The system does not scale very well, if one thing crashes it might crash the whole system and whenever a new update is needed for example for service A, the whole system must be restarted which resets the current state of all services and the rest of the system (the latter can easily be solved by persistence of course but you see my point). So a new architecture is needed to make the system more scalable and get rid of some of the other issues too. The system will be distributed. The system I am designing now shall be the “core platform” where new connectors and services will be easily be added as new telecom operators shall be supported or new services will be launched. The new system will follow very much of the previous system design, except many parts will be made distributed. The system is implemented in JAVA and I have decided to go for RMI but any other suggestions is welcome  But my main problem in this all is to actually figure out how to make the system distributed to make it as scaleable as possible, flexible, good performance and stable and avoid single point of failure and bottlenecks. The message flow is pretty easy; a message originates as an SMS or MMS from a mobile phone to the operators and then to our system or the message originates from another external system and then is received by the connector tier, which converts it to internal message format and passes it further to the service tier. And vica versa, the message is generated by one of the services, is passed through the system to the connector tier which is then responsible to send it further using the correct connector (i.e. using the correct operator). For telecom operators’ connectors, there can be only one inbound connector but in some cases it can be 1 or many outbound connectors. Today, the connector manager is responsible for starting up each connector which in turn registerate itself with the connector manger using the country code + a unique id for the country as its id. The same for service system, the service manager is responsible for starting up each service which in turn registerate itself with the service manager using a unique service/channel id. There are other requirements to consider too, which is today handled individually by each service which is far from ideal. And that is for example special rules each operator might have. For instance, the operators in Norway have rules that if a user receives 20 premium messages (MT’s) from the system without sending a message back (MO), he shall be logged out of the service/system. Another rule is that a user can totally only be billed for max 5000 NOK pr month so each service must be aware of how much other services has billed. A own subsystem tier will handle this operator rules in the new architecture. My main problem is that I can clearly see how to make this distributed and yet avoid bottlenecks, single point of failure, good performance and stability. On top of that, the services must know where to find the connector manager or connector managers, the connectors must know where to find the service manager or service managers, the connector manager must know where to find all outbound connectors and service manager must know where to find all services. But this post already starts to get extremely long, so let me try to explain a specific scenario. Let’s say a service shall send the same message to 1500 users. The service can either generate 1500 messages; post them to the connector manager which dispatches the message further to correct connector. This might or might not put unnecessary load on the system. Instead, the service can generate 1 message containing 1500 recipients and pass it to the connector manager which in turn will can either sort the recipients based on country and operator for each user, generate 1 message for each combination of country+operator and add multiple recipients if the operator supports that or break it up in single message if the operator does not support multiple recipients in the message formats. Though sending 1 message to multiple recipients (if operator supports it) creates new problems; message logging. But that is of course also solvable. Another way is that the connector manager itself is responsible for creating 1 message for each recipient and passes it on to the correct connector. At least, this takes away load from service to connector manager. But then, what if the connector manager gets overloaded or crashes? Well, then we can run several instances of a connector manager. But how will a service know if a connector manager is down or overloaded and how will it find next connector manager to use etc Will it for example be ok to use a system where one connector manager is assigned as master and if master is overloaded it will direct request from service to next slave connector manager will such redirection create extra load on the system? Extra load it will put but will it affect the system too much? I really cant see any other solution to it…… Or if master has crashed, another connector manager takes over as master? Well, if you have read all the way down to here, I am happy  And hopefully you get the idea of my problems and hopefully someone can give me some good input  Thank you for your time!!
  14. Well, I am an experienced developer for the mobile device platform and related services, but I have never ever heard that you can get this information directly from the phone. But it might just be me :) I am from Norway and dont know much about the different services the operators and carriers in USA offers, however, I know that many operators and carriers follows and adpots their system the way how the Norwegain GSM operators Telenor and Netcom have done their things, as it has been considered to be extremly successful and well adpoted for the content providers. Here in Norway, like many other place, the operators offers a special service called "positioning", which uses the base stations with for example triangulation for positionig the user. However, this positioning is done on the operators side and is not any information that is extracted directly from the device. Here you can read a bit about Netcom's (second largest GSM operator in Norway) positioning service: Here is the implementation documentation for positioning frm Netcom, I ULed to our site so you can download it :) Sorry for not adding direct link, I'm too lazy :) At least, I hope it can give you some insight....
  15. CalvinCoder

    Join wav files into one big file?

    There are several ways to encode a WAV file, but the most commonly way is to use raw PCM. And the WAV format itself is very simple in nature. So, they way I would have done it is to record a WAV file which represent your pause/silence between each file and then write an application that reads in each wav file, rips the PCM data (sound data), concat the data which the silence between each file and then write everything back to disk in WAV format. Probably other better solutions exists, but since the WAV format is so simple and that you actually only want to concat the sound data, this is an ok solution to go for.
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!