Page:29 - News Archived: 3437

Title Date
A Spin-off CryEngine 3 SDK Checked with PVS-Studio - Link Tue, 18 Aug 2015 12:02:09

We have finished a large comparison of the static code analyzers Cppcheck PVS-Studio and Visual Studio 2013s built-in analyzer. In the course of this investigation we checked over 10 open-source projects. Some of them do deserve to be discussed specially. In todays article Ill tell you about the results of the check of the CryEngine 3 SDK project.CryEngine 3 SDK Wikipedia CryEngine 3 SDK is a toolset for developing computer games on the CryEngine 3 game engine. CryEngine 3 SDK is developed and maintained by German company Crytek the developer of the original engine CyrEngine 3. CryEngine 3 SDK is a proprietary freeware development toolset anyone can use for non-commercial game development. For commercial game development exploiting CryEngine 3 developers have to pay royalties to Crytek.PVS-StudioLets see if PVS-Studio has found any interesting bugs in this library.True PVS-Studio catches a bit more bugs if you turn on the 3rd severity level diagnostics. For examplestatic void GetNameForFile

From User Input to Animations Using State Machines - Link Sat, 15 Aug 2015 15:47:20

Performing smooth animation transitions in response to user input is a complicated problem. The user can press any button at any time. You have to check that the character can do the requested move and depending on currently displayed state switch to the new animation at exactly the right moment. You also have to track how things have changed to be ready for the next move of the user.In all a rather complicated sequence of checks actions and assignments that need to be handled. The sequence quickly runs out of hand with a growing number of moves game states and animations. Lots of combinations have to be checked. While writing it once is hard enough if you have to update or modify it later finding all the right spots to change without missing one is the second big problem.By using state machines it becomes possible to express precisely what may happen in an orderly way. One state machine only describes the animations and their transitions. A second state machine describes user interaction with the game character and updates the game character state. By keepinh animation state and game character state separate things get much easier to understand and to reason about. Later changes also get simpler as it avoids duplication.While having such state machines on paper is already quite helpful in understanding there is also a straight forward implementation path which means you can plug your state machines into the game and run them.Audience or what you should know before readingThis article briefly touches on what state machines are and how they work before jumping into the topic at hand. If you dont know about state machines it is probably a good idea to read about them first. The state machines here are somewhat different but it helps if the state machine concept is not entirely new. The References section below lists some starting points but there are many more resources available at the all-knowing Internet.The article concentrates on using state machines for describing allowed behavior and how the state machines synchronize. While it has an example to demonstrate the ideas the article does not discuss the environment around the state machines at length. That is how to make user input and game state available to the state machine condition or how to start and run animations. The implementation of the synchronizing state machines is also not shown in full detail.State machinesA state machine is a way to describe behavior activities that are being done for a while and how you can switch between different activities. Each activity is called a state. Since this is so awfully abstract lets try to describe your behavior right now. You are currently reading this text. Reading is a state. Its an activity that you do for a while. Now suppose you get a phone call. You stop reading and concentrate on the conversation. Talking on the phone is another activity that you do for a while a second state. Other states of you are Walking Running Sleeping and a lot more

The Challenge of Having Both Responsiveness and Naturalness in Game - Link Thu, 13 Aug 2015 22:37:04

Video games as software need to meet functional requirements and its obvious that the most important functional requirement of a video game is to provide entertainment. Users want to have interesting moments while playing video games and there exists many factors which can bring this entertainment to the players.One of the important factors is the animations within the game. Animation is important because it can affect the game from different aspects. Beauty controls narration and driving the logic of the game are among them.This post is trying to consider the animations in terms of responsiveness while trying to discuss some techniques to retain their naturalness as well.In this article Im going to share some tips we used in the animations of the action-platforming side-scroller game named Shadow Blade Reload. SBR is powered by Unity3D. The PC version has been released 10th 2015 August via Steam and the console versions are on the way. So before going further lets have a look at some parts of the gameplay hereYou may want to check the Steam page too.So here we can discuss the problem. First consider a simple example in real world. You want to punch into a punching bag. You rotate your hip torso and shoulder in order and consume energy to rotate and move your different limbs. You are feeling the momentum in your body limbs and muscles and then you are hearing the punch sound just after landing it into the bag. So you are sensing the momentum with your tactile sensation hearing different voices and sounds related to your action and seeing the desired motion of your body. Everything is synchronized You are feeling the whole process with your different senses. Everything is ordinary here and this is what our mind knows as something natural.Now consider another example in a virtual world like a video game. This time you have a controller you are pressing a button and you want to see a desired motion. This motion can be any animation like a jump or a punch. But this punch is different from the mentioned example in real world because the player is just moving his thumb on the controller and the virtual character should move his whole body in response to it. Each time player presses a button the character should do an appropriate move. If you receive a desired motion with good visual and sounds after pressing each button we can say that you are going to be merged within the game because its something almost similar to the example of punching in real world. The synchronous response of the animations controls and audios help the player feel himself more within the game. He uses his tactile sensation while interacting with the controller uses his eyesight to see the desired motion and his hearing sensation to hear the audio. Having all these synchronously at the right moment can bring both responsiveness and naturalness which is what we like to see in our games.Now the problem is that when you want to have responsiveness you have to kill some naturalness in animations. In a game like Shadow Blade Reload the responsiveness is very important because any extra move can lead the player to fall of the edges or be killed by enemies. However we need good-looking animations as well. So in the next section some tips are going to be listed which have been used to bring both responsiveness and naturalness into our playable character named Kuro.Cases Which Can Help Bring Both Naturalness and Responsiveness into AnimationsSome of the techniques used in Shadow Blade Reload animations are listed here. They have been used to retain naturalness while having responsiveness1- Using Additive Animations Additive animations can be used to show some asynchronous motions on top of the current animations. We used them in different situations to show the momentum over body while not interrupting the player to show different animations. An example is the land animation. After the player fall ends and he reaches the ground he can continue running or attacking or throwing shurikens without any interruptions or land animations. So we are directly blending the fall with other animations like running. But blending directly between fall and run doesnt provide an acceptable motion. So here were just adding an additive land animation on top of the run or other animations to show the momentum over upper body. The additive animations just have visual purposes and the player can continue running or doing other actions without any interruption. The video here shows the additive animation used for the purpose of landing momentum on players bodyIn Unity the additive animations are calculated with respect to the current animations first frame. So the additive animation pose in each frame is equal to the difference of the current frame and the first frame pose. The reference pose of the character is used here to bring more generic additive animation which can be added well on a range of different locomotion animations. This additive animation is not being applied on top of the standing idle animation. Standing idle uses a different animation for land.We also used some other additive animations there. For example a windmill additive animation on spine and hands. Its being played when the character stops and starts running consecutively. It can show momentum to hands and spine.As a side note the additive animations have to be created carefully. If you are an indie developer with no full-time animator you can do these kind of modifications like additive animations via some other procedural animation techniques like Inverse Kinematics. For instance an IK chain on spine can be defined and be used for modification. This is true for hands and feet as well. However the IK chain have to be defined carefully as well as the procedural animation of the end effector.2- Specific Turn Animations You see turn animations in many games. For instance pressing the movement button in the opposite direction while running makes the character slide and turn back. While this animation is very good for many games and brings good felling to the motions it is not suitable for an action-platforming game like SBR because you are always moving back and forth on the platforms with low areas and such an extra movement can make you fall unintentionally and it also kills responsiveness. So for turning we just rotate the character 180 degrees in one frame. But again rotating the character 180 degrees in just one frame is not providing a good-looking motion. So here we used two different turn animations. They are showing the character turning and are starting in a direction opposite to characters forward vector and end in a direction equal to characters forward vector. When we turn the character in just one frame we play this animation and the animation can show the turn completely. It has the same speed of run animation so nothing is just going to be changed in terms of responsiveness and you will just see a turn animation which is showing momentum of a

Why NASA Switched from Unity to Blend4Web - Link Tue, 11 Aug 2015 07:43:30

Introduction Recently NASA published their press release which mentions the unique possibility to drive around on Mars. I couldnt help myself and right away clicked on the link that lead to an amusing interactive experience where I was able to drive the rover around watch video streaming from its cameras in real-time and even find out the specs of the vehicle. However what shocked me the most was that this has all been done using the Blend4Web engine - and not Unity. Why was I so surprised Even two yeas ago or more there were publications about NASA creating a similar demo using Unity. However it didnt get passed the beta stage and it looks like the space agency had moved on from Unity. It is interesting that the programmers of such a large organization chose to discontinue the time-invested project and begin from scratch. It took a little time but I was able to find the above-mentioned Mars rover app made in Unity. Honestly it looks like an unfinished game. The scene loads slowly especially the terrain functionality is primitive you can only drive the overall picture is of horrible quality. We all know wonderful games can be made with Unity and its portfolio is full of hundreds of quality projects. So whats the deal Whats the Deal The reason is that Unity is seriously lagging behind when it comes to their WebGL exporter. The first alarm rang when Google Chrome developers declared NPAPI deprecated. This browsers global market share is too significant for any web developer to just ignore. You can find a lot of advice on using a magic option chromeflagsenable-npapi online. However in September 2015 this loophole will disappear. Creating games and web visualizations is an enterprise and nobody likes losing customers. Earlier downloading the Unity plug-in was not as big of deal as it was with Flash but now the situation has become completely different. The web plug-in can not be used anymore while Unitys WebGL exporter is still in its infancy. Developers of all kinds caused uproar requiring the Unity team to proactively respond. Finally Unity 5 has been released with WebGL support but only as a preview. Half a year has passed and the situation is not any better. They even came up with an ingenious method to check the users browser and then recommend using Unity in another browser. Unfortunately and for obvious reasons it is not always reasonable. And still whats happening with Unity WebGL Why is there still no stable version available What are the prospects These questions are of much interest to many developers. Im not a techie so its difficult for me to understand Unitys issues in this area but what Ive found online is making me sad. WebGL Roadmap The official Unity forum has a thread called WebGL Roadmap. A team representative explains the future of WebGL in Unity. I have looked through this text thoroughly and it convinced me that the bright future Unity keeps promising is still in the far removed distance. WebGL should work in all browsers on all platforms including mobile ones by default. Its not there. If you happen to successfully compile your game for WebGL strike out mobile devices from the list. The reasons are clear Unitys WebGL has catastrophically large memory consumption and bad performance. Yes a top-of-the-line device can still manage to run the game at decent speed but a cheaper one will run it as slow as a turtle. And forget about hoping your project will work on desktops with ease. Browsers are the programs which eat all of a computers free memory and the half-finished Unity WebGL build often causes crashes and closes browser tabs especially in Chrome. There are some problems with audio. I personally tried to export a simple game for WebGL and got croaking noise as the main character moved. The sound literally jammed and I could not fix it. The reason is poor performance but other engines still work somehow... Forget about in-game video. MovieTexture class is simply not supported for WebGL. As an alternative the devs are suggesting to use HTML5 capabilities directly. Network problems. System.IO.Sockets and UnityEngine.Network classes do not work for WebGL and will never work due to security issues. I havent enumerated all issues but this doesnt answer the question when will it start working Alas Unity devs comments are unclear obscure and dont include a specific timeline. Although I did find something We are not committing to specific release dates for any of these features and we may decide not to go ahead with some of these at all. Theyre Waiting They are waiting for WebGL 2.0 which will be based on OpenGL ES 3.0. The future version Unity 5.2 is planned to have an export option for the new API. However Im not sure that browsers will work with it now WebGL 2.0 is available only as an experimental option. They are waiting for WebAssembly which is very promising but has just started being discussed. Nobody can even guess the date when it will be implemented. Im sorry but if the problem can only be fixed as they say by upcoming third-party technologies then maybe the problem lies in Unity WebGL itself Unity is a convenient popular and cross-platform engine an awesome tool for making games and I love it a lot. Still this is a tool which can no longer be used for the web. The most annoying fact is that the future holds too much uncertainty. You may say you are a pessimist. No Im just a realist just like the NASA guys. This is the answer to the title of this article Why NASA Switched from Unity to Blend4Web. Its simple Unitys WebGL is not ready... and will it ever be We are not committing to specific release dates... So what about Blend4Web I can only congratulate the developers with such a conclusive win in the field of WebGL NASAs app has been showcased at the opening of the WebGL section on SIGGRAPH 2015 which means competitors have no intention of waiting. Background This post is a translation of the original article in Russian by Andrei Prakhov aka Prand who is the author of three books about Blender and a Unity developer with several indie games released.

The Art of Enemy Design in Zelda A Link to the Past - Link Mon, 03 Aug 2015 16:59:23

Let me preface this article by mentioning what this article is not This is not an exhaustive guide to every monster in Zelda A Link to the Past nor is it a comprehensive method on how each enemy class was designed. Rather this article is really about how to design enemies by their functions using the example of Zelda A Link to the Past.Most articles that discuss this topic often pick examples from various different games to give a better outlook on how this applies to different environments but they lack a hollistic understanding of how gameplay mechanics and functions actually intertwine.The purpose of this article is to dissect Zelda A Link to the Pasts monsters to better understand how this specific gameplay can host mechanically different obstacles and what their impact is on flow and player decision-making.Note that we will not cover Bosses here as theyre an entirely different form of obstacleGame Mechanics Resources in a Link to the PastThe first part of this analysis requires that we take a deeper look at the inner workings of the game so we can better understand how each monster was designed. This arbitrary breakdown of the games pieces is not absolute but it should suffice to explain monster design by their function.LifeLinks primary resource is his life. This is a measure of attrition that represents Links ability to survive the challenges laid in front of him. The primary issue with dying running out of life is actually a severe loss of time though the state of the game is effectively saved the player must restart progress from a distant location and needs to make his way back to where he was in order to proceed any further. Death is frustrating and the player seeks to avoid it by any means possible potions faeries and obviously not taking damage. There is however no form of loss associated with death.Causes of damage death- Bumping into enemies- Bumping into traps- Enemies missile attacks including Bombs- Falling into pitsMagicMagic is Links ability to use some of its most powerful tools magical items. It insures that Link pays careful attention to when and where such tools are used. Because most of these items cost a lot of magic and that magic is harder to come by than hearts this is a critical resource in the game.Running out of magic is inconsequential in and of itself.Bombs ArrowsBombs are an expendable tool that Link can stock up on and they can be used as soon as Link has at least 1 of them no other tool is required. They are effective at uncovering secret areas. Their max is limited.Arrows behave similarly with the exception that they require a bow to be fired regular or silver.Bombs and Bows are very similar to magic except theyre much more specific.RupeesRupees are the currency of the game they can be found in various colors which are worth different amounts of currency. Rupees are only truly useful for two thingsZoras Flippers a passive tool that grants the player the ability to swimPotions which can replenish life and or magic - mandatory for Turtle Rock in a regular playthroughEvery other use is optional increasing maximum amount of bombsarrows carried for example.TimeTime is not an obvious resource in this game but given that progress is not lost on death time is the only thing that the game takes from the player. To a degree dying in Zelda A Link to the Past can be summarized as having to walk all the way back to where you died but being able to avoid most of the danger on the way. Essentially dying is a loss of Time.Similarly should the player ever need to build-up their rupee count possibly to buy bombs arrows potions etc. or regain life magic etc. they can simply accomplish all of these by spending some Time in the less dangerous areas of the game.Thus it can be said that most resources can be acquired by spending time in the game and that death results in a loss of time that couldve been spent acquiring resources instead. Equivalently the loss of resources is also a waste of Time with the exception that the effect is delayed. This toll only trully becomes apparent when the player lacks a specific resource to complete a dungeon and must therefore go out of the dungeon to seek the missing resources. On most other occasions that loss is hardly felt as the player will come across resources naturally on their next trip through the worldmap.Enemies in Zelda A Link to the PastThe role of the enemy in A Link to the Past is to make the game longer by having the player spend Time. This is confirmed by the many rooms where the player is forced to kill all of the monsters to get the key or force the door open. The clear intent is to create an obstacle that the player must first analyse and then devise a plan to overcome.Each enemys role is to insure the player will lose some time at key locations.The obvious approach to doing this is creating monsters that have progressively more life and deal more damage. Doing so however hardly challenges the players ability to observe and react which in practice take a lot more time than simply becoming better at honing ones reflexes.If all enemies in the game were Sword Soldiers of varying strength not only would the game become boring quickly but it would also be much easier and faster to complete as whatever the player has learned to beat the sword soldier would apply to all other soldiers.So how exactly should monsters be created to enforce player observation and pattern recognitionEnemy Types and FunctionsSword SoldierLet us begin this breakdown by looking into The Sword SoldierOne might be led to assume from the above that the Sword Soldier is actually the most basic form of enemy in the game but it isnt as Vanilla as it seems. The Sword soldier has its own movement pattern and boasts one of the most interesting hidden features in the game Stealth.Until a Sword soldier has been attacked or has seen the player it wont actively pursue the player which makes it particularly interesting to avoid. A lot of the level design actually supports this to great effect but arguably very few people ever went through the game without engaging combat with them apart from the SpeedRunners community simply because there is no incentive to doing this aside from time which is a limited concern to most.In addition the Sword Soldier is likely to drop rupees or hearts which have some Time value. In essence you might just gain as much time from killing a sword soldier and getting its drop than you might gain by avoiding the fight altogether.Sword Soldiers Function Get acquainted with combat mechanics and stealth.Bow SoldierBy design the Bow Soldier is a coward which will not seek direct confrontation from upclose but it is a terrific flanker. As a result it makes positionning and movement all the more important to master and its strength is relative to the other monsters in the room and how hard it is to navigate said room. There is a specific room in Agahnims Castle where the player must push a block while a few Bow Soldiers

You need a plan and a design - Link Wed, 29 Jul 2015 01:40:46

IntroductionHave you been working on your game for what feels like eternity but have nothing to show for it Are you stuck on how to implement your game idea If these sound like you then this is your article. In this article I will talk about planning game design and technical designs. I am going to cover the importance of planning and designs and give you some tools and tips to help you successfully plan and design your next game project.Why do I need a planThe definition of a plan is a detailed proposal for doing or achieving something.. A proposal is a plan or suggestion especially a formal or written one put forward for consideration or discussion by others.. A plan helps you be successful by putting your goals on paper. It is HOW you will go from having a great idea to a great game. A plan can be broken down into goals objectives and tasks. Goals are broad and general objectives are specific and measurable which when complete achieve a goal and tasks are very specific things that you need to do to meet an objective. Your day to day work can be broken down into tasks. The tasks when finished complete objectives and the objectives when finished meet goals.For example if your goal was to lose 20 pounds then your objectives might be to work out every other day for three months and to consume 1800 calories a day. Your tasks would be your specific workout sessions the day to day and preparing healthier meals that meet the objective of consuming 1800 calories a day. Your game plan should be just as detailed. Your goals are not really directly measurable other than knowing when you are finished. Your objectives need to be detailed so you can evaluate whether the tasks that you are completing are really working towards accomplishing the goals.Adjusting your planPlans are always subject to change. Your game plan will change as you encounter the reality of development. There will be things that you have not accounted for and you will have new ideas as you develop your game. Creating a plan does not mean setting your entire project in stone but rather it is a general roadmap for success. You might take some crazy detours but as long as you keep track of your goal you will eventually arrive at your destinationSchedules - Putting dates to your planIn my mind a schedule is simply putting dates on your plan. If you say that by October 15th you need to have X amount of things done in order to finish the game by December 31st then that is a schedule. Your schedule can change independently of your plan. Some things will take longer than anticipated that is the nature of game development but putting real dates to things can help put the plan into perspective even though we often dont want to really commit to any deadlines.An easy way to keep track of a schedule is to use a calendar application like Google Calendar or iCalendarIf you really need to track a lot of resources then you could use something like Microsoft Project or Projectlibre to keep track of all of the details.In the software development world there is a concept called Agile programming and that is a big topic. You can use sites like Assembla to manage software projects using Agile concepts and that goes great with the whole planning concept. I have personally used Assembla and it really makes this process much easier by being able to set milestones create tasks ect.Putting things into perspectiveOne thing a plan will do is force you to confront the reality of your idea. If your game design calls for 100 unit types but you can only make one unit type a week then by making a plan you will find that takes best case 100 weeks worth of time. If you realize early that your plan calls you making units for slightly over two years then you are likely to revise your plan to something more realistic.Realistic estimationEstimating how long something will take is hard. The best technique I have found for this is to break the task up into very small tasks where each task can be executed in hours rather than days. Then estimate each small task and multiply by 1.5. If you realistically think a task will take you 5 hours then multiply it by 1.5 and you will end up with 7.5 hours for the task. Add up all of the small tasks with the extra time built in. The more you can break down a task the more accurate your estimates will be. If you are unfamiliar with a task then you might even multiply by an even larger number 2 or more to your hour estimate to really make sure that there is time for the unexpected.As you work keep a log of your time. You can use this time log to help improve your estimates gauge your performance and refine your schedule. Something like My Hours can help you keep track of your time. Assembla also has time tracking functionality.Stop wasting timeTime is your most valuable and finite resource. There are 1440 minutes in a day. If you want to be productive you need to stop using so many of them watching cat videos . Game development takes a very heavy investment of time. Even relatively simple games can still take months of development time to complete. If you find yourself not making progress as fast as you would like evaluate your time log and try to see if you can find ways to use time more effectively.Ok but how do I know WHAT to planYou know what to plan by looking at your game design document. Your game design document or GDD contains all of the information about your game. It has every story character level mechanic boss fight potion and whatever else that you need to make your game. Your game design is detailed enough when you can have someone off the street read your game design and they can play your game start to finish on a sheet of paper. Even if you are just one person putting all of your thoughts down in a GDD means that you cant forget them and if you dont write your ideas down you WILL forget them.For a proper GDD you will need sketches of your characters and levels backstory character biographies and all sorts of other supporting information. You really need to put in a lot more details then will make your final game because your job with a GDD is to get everyone working on the game including yourself on the same page. If anyone has a question about your game they should be able to answer it by reading your game design document. If they cant answer the question then your GDD is not detailed enough. If your game design document is not detailed enough then it is not completeSome people will tell you that you do not need a game design document. Some people might be able to get away with not properly designing a game. It is likely that you wont be one of those people and if you neglect your design then it is very likely that your project will fail. Think of creating a design and a plan like a way to improve the odds. It is not guranteed but it improves your chances of having a successful game. Odds are if you can stick with an idea long enough to create a detailed game design and a plan then you have an

Memory Markers - Link Tue, 28 Jul 2015 13:54:40

Memory is something that is often overlooked in combat games more often than not when a character becomes aware of you in a combatative action game they remain aware until dead. Sometimes they may run a countdown when they lose sight of the player and lapse back into their patrol state if that ends before they find them. Neither of these techniques looks particularly intelligent. The AI either looks unreasonably aware of you or unrealistically gullible in that they go about their business after theyve lost track of you for a few seconds. A memory marker is a simple trick The UE4 implementation of which can be seen here that allows you to update and play with the enemys perception. It is a physical representation of where the enemy thinks the player is. In its simplest form it has two simple rules The AI use this marker for searches and targeting instead of the characterThe marker only updates to the players position when the player is in view of the AIthis gives you a number of behaviours for free. For example the AI will look as if you have eluded them when you duck behind cover and they come to look for you there. Just from this minor change you now have a cat-and-mouse behaviour that can lead to some very interesting results. I was pleased to see that Naughty Dog also use this technique. In this Last of Us editor screen-grab you can see their enemy marker white has been disconnected from the hiding character It is also very extensible - in more complicated implementations covered in future video tutorials a list of these markers is maintained and acted upon. This lets us do things like have the AI notice a pickup when running after the player and return to get it if they ever lose their target. So how do we start to go about coding these markers In my experience the most important thing when coding this system in various forms is that your memory markers in code and their references in script must be nullable. This provides us with a very quick and easy way of wiping these markers when they are no longer needed or querying the null state to see if the agent has no memory of something - and therefore if we need to create it. The first pass implementation of these markers simply has two rules You update the marker for a character to that characters location when its been seen by an enemy.You make the AIs logic - search routines and so on - act on this marker instead of the character Its worth mentioning that each AI will need one of these markers for every character on an opposing team and every object they must keep track of. Because of this it is useful to populate some kind of array with these markers. Think too about how you can sort this list by priority. When the AI loses track of a target they can grab the next marker in the list which may be an objective or a pickup they passed. When the list is empty they fall back to their patrol state.

Narrative-Gameplay Dissonance - Link Sat, 25 Jul 2015 09:40:48

The Problem

Google Analytics-Driven Game Development by Example - Link Thu, 23 Jul 2015 11:36:08

Hi there. A few months ago my friend and I performed something like a gamedev experiment. It was just create a trashy game update it as frequently as possible and make it better based on users and Google Analytics feedback. We didnt want to spend 6 months on developing another game that will get stuck among thousands ofother games on Google Play. Moreover we didnt have as much as 6 months. It was more like a quick execution of a half-witted idea. We wanted our game to evolve based on the user feedback and our conclusions.The Beginning - version 1.0So what was the idea for the game Every time I had a browse in Google Play I wondered how a game about tapping an egg can become so popular. Over 5 million downloads of a simple tapping app. What is going on here - I asked myself.The game average rating was 3.0 and people were still downloading it. Apparently the rating does not matter... You can clearly see that for Google Play the number of downloads is more important than the rating. This game is the first search result for the egg keyword.So the idea was Lets make a simple egg tapping game as fast as possible. Ingredients free music 50 of free graphics 50 graphics made by my friend 5 hours of programming 2 hours of making screens and putting the game on Google Play and here we go Pet Baby Egg.Every time you tap the egg you get closer to obtaining another pet. The next levels obviously become more and more difficult.The only challenge for the player was to collect all pets nothing more. Boooooring.Now lets take a look at some stats.Damn somebody has actually downloaded it D611 sessions in 2 weeks. No marketing. Just keywords and the game. Only 46.2 of returning visitors means that after a month or two nobody will play this game anymore.The average session lasted only 303. First conclusions Lets try to interest the player. Lets give more content to get a longer session duration. So when a player gets a new pet why not let him take care of itFirst pet care - version 1.1We added basic tamagotchi features a kitchen to feed the pet a fun room to play ball with it and a bedroom for sleeping. Moreover a player could earn money by playing with his pet and by tapping the egg. There was also a shop to spend the earned money on food. It took us maybe a week to implement some new graphics and some new code in our spare time. This is what we gotAnd after 7 days of version 1.1 being available in the Google Play Store we had the following statsThe number of new installations increased by around 20Returning visitiors ratio grew to almost 52And... the average session duration almost doubled That made senseSo it was time to draw more conclusions There were a bunch of game events. We knew exactly what users did in the game.We analyzed the top events from the game and we came up with these results the most popular event is touching the ball thanks to the physics engine that made it fun for the player. The users got 1 coin for 1 tap on the ball or the egg. But we were surprised by how few users bought balls in the shop. Our conclusion was that they didnt know how to earn money. They play ball with their pets but they dont know that it earns them money.Earning money more visible - version 1.15BeforeAfterBeforeAfterThe effect In the 1.15 version there was over twice as much 6.77 to 14.99 events related to buying ballsOk lets add more stuff.Advanced care - version 1.2It took more than a week to implement it but we added special indicators to show the levels of hunger happiness and energy. Our goal was to engage the users more to take care of their pet or to return to the game more often. Playing ball with the pet also became more interactive as it could now play with us The Effect Over 57 of returning players. 5.5 more than in the previous 1.1 versionThe average session duration grew to 722 and that is a 142 boost in comparison with the version 1.0 303 and a 24 growth in relation to the version 1.1 556More content and a mini game to earn coins - version 1.3OK. We had a simple pet care simulator but we wanted to add more items to be available for purchase. They became expensive there was inflation in our small game because we didnt pay enough attention to economy in the game. For example we made wallpaper available to be put in one of the rooms for 5000 coins. We thought we had to introduce a new way to earn more money so we implemented a mini game that made it possible.The mini game made it possible to earn up to 500-1000 coins in a 1-2 minute gameplay. What was the effect The retention growth up to 70.5 It is 13 more than in version 1.2 It was definitely worth implementing.More stuff and features - version 1.5In this version we fixed some bugs and added more items and features to the game. It was the last update we made to this game.The effectThe average session duration increased to 820 which is a 273 growth compared with the starting point from version 1.0SummaryBy adding more content to the game we got more retention from 46.2 to 70.5.By adding more content to the game we got longer average session duration from 303 to 820.We do not only gather the Google Analytics events but we also analyze themWe dont encourage you to make a poor game and update it because in the long run it is not cost-effective. But we strongly encourage you to use Google Analytics and analyze the data you getArticle Update Log27 July 2015 Initial release30 July 2015 Removed bad word17 August 2015 Added authors Twitter profile link

2D Lighting System in Monogame - Link Thu, 23 Jul 2015 07:06:13

This tutorial will walk you through a simple lightingshadow system.Go into your current Monogame project and make a new file calledlighteffect.fxThis file will control the way our light will be drawn to the screen. This is an HLSL style program at this point. Other tutorials on HLSL will be available in the main website which will allow you to do some wicked cool things like distorting space and the map spinning dizzyness neon glowing perception warping and a bunch of other f amazing thingsHere is the full lighteffect file

3 Steps to Mastering Your Games Soft Launch - Link Tue, 21 Jul 2015 13:29:41

In one of the largest supermarket outlets in the whole of the UK just down the road from where your humble blogger lives sits a kitchen. Built in plain sight this bizarre little pantry feels a somewhat curious companion to the seemingly endless run of aisles selling all the goods youd expect a supermarket to sell

15 Metrics All Game Developers Should Know by Heart - Link Mon, 13 Jul 2015 15:51:42

Mobile game analytics can feel complicated. When it comes to metrics there are hundreds of numbers to track. On the simpler end of the spectrum there are metrics like downloads sessions and DAUs. These numbers are relatively straightforward and measure concrete actions. More complicated metrics includes things like churn Average Revenue Per Paying User ARPPU and DAUMAU. These are less intuitive to interpret and they might raise more questions than answers

Math for Game Developers Probability and Randomness - Link Thu, 09 Jul 2015 18:27:08

Math for Game Developers is exactly what it sounds like - a weekly instructional YouTube series wherein I show you how to use math to make your games. Every Thursday well learn how to implement one game design starting from the underlying mathematical concept and ending with its C implementation. The videos will teach you everything you need to know all you need is a basic understanding of algebra and trigonometry. If you want to follow along with the code sections it will help to know a bit of programming already but its not necessary. You can download the source code that Im using from GitHub from the description of each video. If you have questions about the topics covered or requests for future topics I would love to hear them Leave a comment or ask me on my Twitter VinoBS Note The video below contains the playlist for all the videos in this series which can be accessed via the playlist icon at the top of the embedded video frame. The first video in the series is loaded automatically Probability and Randomness

How the PVS-Studio Team Improved Unreal Engines Code - Link Mon, 29 Jun 2015 13:07:49

This article was originally published at Unreal Engine Blog. Republished by the editors permission.Our company develops promotes and sells the PVS-Studio static code analyzer for CC programmers. However our collaboration with customers is not limited solely to selling PVS-Studio licenses. For example we often take on contract projects as well. Due to NDAs were not usually allowed to reveal details about this work and you might not be familiar with the projects names anyway. But this time we think youll be excited by our latest collaboration. Together with Epic Games were working on the Unreal Engine project. This is what were going to tell you about in this article.As a way of promoting our PVS-Studio static code analyzer weve thought of an interesting format for our articles We analyze open-source projects and write about the bugs we manage to find there. Take a look at this updatable list of projects we have already checked and written about. This activity benefits everyone readers enjoy learning from others mistakes and discover new means to avoid them through certain coding techniques and style. For us its a way to have more people learn about our tool. As for the project authors they too benefit by gaining an opportunity to fix some of the bugs.Among the articles was A Long-Awaited Check of Unreal Engine 4. Unreal Engines source code was extraordinarily high quality but all software projects have defects and PVS-Studio is excellent at surfacing some of the most tricky bugs. We ran an analysis and reported our findings to Epic. The Unreal Engine team thanked us for checking their code and quickly fixed the bugs we reported. But we didnt want to stop there and thought we should try selling a PVS-Studio license to Epic Games.Epic Games was very interested in using PVS-Studio to improve the engine continuously over time. They suggested we analyze and fix Unreal Engines source code so that they were completely clear of bugs and the tool wouldnt generate any false positives in the end. Afterwords Epic would use PVS-Studio on their code base themselves thus making its integration into their development process as easy and smooth as possible. Epic Games promised to not only purchase the PVS-Studio license but would also pay us for our work.We accepted the offer. The job is done. And now you are welcome to learn about various interesting things we came across while working on Unreal Engines source code.Pavel Eremeev Svyatoslav Razmyslov and Anton Tokarev were the participants on the PVS-Studios part. On the Epic Games the most active participants were Andy Bayle and Dan OConnor - it all would have been impossible without their help so many thanks to themPVS-Studio integration into Unreal Engines build process To manage the build process Unreal Engine employs a build system of its own - Unreal Build Tool. There is also a set of scripts to generate project files for a number of different platforms and compilers. Since PVS-Studio is first of all designed to work with the Microsoft Visual C compiler we used the corresponding script to generate project files .vcxproj for the Microsoft Visual Studio IDE.PVS-Studio comes with a plugin that can integrate into the Visual Studio IDE and enables a one-click analysis. However projects generated for Unreal Engine are not the ordinary MSBuild projects used by Visual Studio.When compiling Unreal Engine from Visual Studio the IDE invokes MSBuild when starting the build process but MSBuild itself is used just as a wrapper to run the Unreal Build Tool program.To analyze the source code in PVS-Studio the tool needs a preprocessors output - an .i file with all the headers included and macros expanded.Quick note. This section is only interesting if you have a customized build process like Unreals If you are thinking of trying PVS-Studio on a project of yours that has some intricate peculiarities about its build process I recommend reading this section to the end. Perhaps it will be helpful for your case. But if you have an ordinary Visual Studio project or cant wait to read about the bugs we have found you can skip it.To launch the preprocessor correctly the tool needs information about compilation parameters. In ordinary MSBuild projects this information is inherent the PVS-Studio plugin can see it and automatically preprocess all the necessary source files for the analyzer that will be called afterwards. With Unreal Engine projects things are different.As Ive already said above their projects are just a wrapper while the compiler is actually called by Unreal Build Tool. Thats why compilation parameters in this case are not available for the PVS-Studio plugin for Visual Studio. You just cant run analysis in one click though the plugin can be used to view the analysis results.The analyzer itself PVS-Studio.exe is a command-line application that resembles the C compiler regarding the way it is used. Just like the compiler it has to be launched individually for every source file passing this files compilation parameters through the command line or response file. And the analyzer will automatically choose and call the appropriate preprocessor and then perform the analysis.Note. Theres also an alternative way. You can launch the analyzer for preprocessed files prepared in advance.Thus the universal solution for integrating the PVS-Studio analyzer into the build process is to call its exe-file in the same place where the compiler is called i.e. inside the build system - Unreal Build Tool in our case. Sure it will require modifying the current build system which may not be desirable as in our case. Because of that just for cases like this we created a compiler call intercepting system - Compiler Monitoring.The Compiler Monitoring system can intercept compilation process launches in the case with Visual C this is the cl.exe proces collecting all of the parameters necessary for successful preprocessing then re-launch preprocessing for files under compilation for further analysis. Thats what we did

Looking for a C progammer to work on game prototypes. - Link Sun, 20 Sep 2015 05:00:42

Unpaid PositionHi.A friend and I are looking to establish our own startup studio and work on our own games. Between us we have 7 years of industry experience in environment art character art art direction and design.Currently we are searching for a programmer experienced in Unity with the goal of releasing games on a variety of platforms.Ideally you will have experience in the following- A.I coding.- Procedural systems generation.- Experience coding for actionshooter games.Our current design prototype is a small rogue-like tank survival game influenced by titles such as FTL World of Tanks and Armored Core. We already have some preliminary art and coding done which will be made available upon request.Contact detailsSkype hayden.zammitEmail xhayden.zammitxgmail.comAlternatively you can PM me on here.We look forward to hearing from you- Hayden.Free

The Wanderer - Recruiting cycle 3 - Link Sun, 20 Sep 2015 04:09:30

Unpaid PositionHello inspiring game makerDo you want to get better in making games get experience to write in your portfolioThen this is the project for you.This is 2D top down pixel art real time single player RPG.You can get little more information on the project pagehttpen.sfml-dev.orgforumsindex.phptopic14563.msg102482msg102482You can check up update videos and see if you like what we are going for

Lets Make Harry Potter Game - Link Sun, 20 Sep 2015 03:06:26

Unpaid PositionLooking for Harry Potter fans interested in creating a Harry Potter gameWe need everyone we can get to help get this project created.Harry Potter deserves a good game. For a long time I have been playing Battlefield and Call of Duty games....I would always think what if we were holding wands instead of gunsWhat if we were firing colorful lights of magic at each otherWhat if we were battling at the Hogwarts CastleWhat if this was Hogwarts Vs DeathEatersThis will look absolutely beautiful.We Need Talented People.Concept ArtistsLevel DesignersProgrammers3D ModelingGraphicsNeed people who know the EngineNeed Harry Potter FansThere is much to be doneLets make the best Harry Potter game that we can make.If you have a skill we can use you can help make this game come to lifeFree

Team Looking For Writers - Link Fri, 18 Sep 2015 14:16:13

Unpaid PositionHello forum membersMy name is Ty and I am the project manager at Interlight Studio. We are looking for Strong Self-motivated and dedicated individuals to join our team. We are hard at work for the past few months and created awesome content. Join our SCRUM team as we are getting ready towards alpha release. We are now looking for a talented members for these positions. Required Fluent in communication skills. Age above 18. Ability to talk and manage proper arguments. Ability to work as a team player. Skype Voice is required. AgileSCRUM basicsOpen Positions we are looking to fill these right away.Sr. Writer Write portions of the game script. Creative Writing experience in a variety of genres. Collaborate with other departments to ensure a cohesive vision. Be able to act upon instructions independently listen and accept feedbacks from others. Possess superb writing skills. Ability to work efficiently and respectfully with the team. be able to resolve conflicts and solve problems have excellent people management and communication skills including tact and diplomacy Update documents on needs basis GDD Lore Wiki ect.What you will gain Experience. SCRUM experience. Expand your knowledge and portfolio. Be part of the creative process of game design credits Compensation when project gets successful via Kickstarter Free unlimited email account on our domain for the time of developmentMembers who join us will complete the NDA and Profit Share Agreement.We are excited that our team members are spread across the globe and so we use Open Project PM Skype VCS Bit source-tree and owncloud to stay organizeconnected. Best to contact over Skype koeanilo1or Email infointerlightstudio.comThank youFree

Professional 2D Illustrator - Link Fri, 18 Sep 2015 10:09:02

Paid PositionHi my name is Clint Sutton. I am a fulltime freelance illustrator. I have worked with many different clients from all over the world for the last 15 years. Creating art assets for marketing materials games and kids apps. I can offer a highly professional service with most of your illustration needs. Taking your game project from concept sketches through to final game ready art assets. I specialize in UI design logo design character design and animation scene design icons and most other artwork needed for your game. I only do 2D work not 3D. Working in the Indie game industry I have had to take on many responsibilities including Art direction. Understanding how a games artwork will need to be implemented into a game and saving time and space within the game engine is very important. Please take a look at my samples I have attached below or feel free to browse around my online portfolio at Paid

RD Graphics Engineer - Link Fri, 18 Sep 2015 07:44:10

Smartisense GmbH is a new startup based in Frankfurt Germany. We are a forming professional team with computer graphics and computer vision veterans working on interesting projects to push the boundaries of realtime graphics computer vision and virtual reality technologies to benefit peoples daily life.We provide competitive salary and additional benifits such as lunch allowance free drink coffee soft drinks fruits and monthly public transportation ticket.We welcome you to work with us in a very creative environment and moving the graphics and vision technologies forward.We are currently looking for a full-time RD Graphics Engineer to join our Frankfurt team. Please submit your CV to Work permit.2 years of experience in the computer graphics industry.Strong C programming skill.Familiar with graphics pipeline and APIs in particular OpenGLOpenGL ES.GPU CPU debugging and optimization experience.Good English language skills and ability to work smoothly in a team.Bachelors degree in computer science or equivalent experience.Optional Experience with VR.ResponsibilitiesReal time graphics algorithm research and development.Working with other teams to optimize the code to meet industry quality standards.OthersStarting date Earliest possible dateWork location Frankfurt am Main Germany0.00

2D Sprite Artist looking for a project. - Link Fri, 18 Sep 2015 05:55:17

Unpaid PositionHere are some examples of my work.Environment Art Sprite art and Illustration Art.https1173.photobucket.comuserBuffotheclownlibrarysort3firstLogin1page0Here is a game I made recently that took me an a coder 30 hours to make from scratch. It is not complete but its there to show people how fast I can work.httphiddenshrimpgames.comMy greatest assets are my ability to communicate properly and the amount of time I have for projects. I can work up to 12 hours a day 7 days a week.Contact me.Skype - buffotheartclownemail - trollface666gmail.comFree

Astria programmerartist wanted - Link Thu, 17 Sep 2015 18:19:05

Unpaid PositionI have created a text-mmorpg named Astria. For the last few days and not for the first time Ive been thinking to convert the game into a 2d or 3d Game. Im deciding to convert it to 3d IF i find another programmer C Unity experience or another way to 3d toolkit using c and an artist I want to keep the game very basic in terms of structure and create a world more similar to the early year 2000 games eq ultima asherons call and unique and with a deep progression system. So i want to in terms of graphic models create a world that would look like something like oldworld EQ with a 2015 polished look. Id like to keep everything low-polyed for the retro-look and the fact that this would allow much faster completion time. The code i created I was able to convert to unity 2d pretty quickly a couple of hours by modifying some object stuff like maps replaced with tiles instead of rooms. The server client and editor for the world is already written and in c If anyone would like to help pls join. I cannot offer pay until the game is out. if you want to check out the mud incomplete its at thats all thanks.Free

Award Winning Audio for Hire - Serial Lab Studios - Link Thu, 17 Sep 2015 16:07:21

ContractorSerial Lab Studios masters the art of getting the right sound in the right place at the right time.Emmy-Nominated Composer and Sound Designer in the Game Film and TV industry for 10 years. Projects range from AAA games like the soon to be released Just Cause 3 to casual and web based games for clients like Cartoon Networks and Nickelodeon. Our work can be heard on over 85 games titles which include many mobile indie games.Where can I listen to your audioPrevious work and full credit list can be found at www.seriallab.comWhat are your ratesRates depend on the style and complexity of the music sfx and voice over work your project requires. Contact us today and we can work out a quote that will work within your budget.How do I contact youWe respond quickly to requests from the contact page on our website or directly by emailing sounddesign a seriallab.comLooking forward to hearing from you0.00

looking for partners - Link Tue, 15 Sep 2015 21:02:12

Unpaid PositionGame Designer and programmer looking for partners.My current project pagehttpwww.indiedb.comgamesmedivel-titansadd me on skype saint.softwareOr send email eva.project.devgmail.comFree

Programmer Looking for a 2D artist - Link Tue, 15 Sep 2015 18:48:19

Unpaid PositionHello I am a programmer who studies Game Development. I am looking for a 2D artist to create a game with. i have created a few games before if you like to see it I can show them to you. You do not need to be experienced you only have to be better than me at drawing which should not be hard. I am aiming for a 2D platformer. well discuss together about what kind of game we want and if we both like it well build it If youre interested mail me at and show me some of your art. With kind regards Timo LeindersFree

Looking for Environment 3D Artists - Link Tue, 15 Sep 2015 05:43:17

Unpaid PositionLooking for Environment Artists to create 3D assets. Consists of mostly modeling texturing some light animation if interested for environment ambiance like floating debris little butterflies flying around.Game project is here httpsteamcommunity.comsharedfilesfiledetailsid320154534and here httpwww.indiedb.comgamesbassetunePlease email if interested eldwin11929yahoo.comFree

Looking for a 3d game front end developer - Link Mon, 14 Sep 2015 19:55:47

Unpaid PositionI fell in love with the game Pocket Fleet but decided that I want to create something even simpler even more raw and even more instant multiplayer action.I have been building high performance back end services for almost 20 years and a few front ends as well albeit naive and simple as hell but always lacked the front end talent to make it count.My goal now is to create something looking a bit like the old Tie Fighter game but for mobile devices where you control the ship by turning your device and shoots by touching the screen a lot like Pocket Fleet.I want to create a dead simple server that just connects all active players splits them in two teams and lets them spawn and kill each other in one huge dog fight battle. Something like open space a few meteorites to go around looking for enemies and two carrier ships to kill for big points.The front end should basically just be a way to log in and get right in the fight counting score and keeping a top list.The protocol should use a really simple UDP based scheme to allow low latency gaming on mobile devices and all players should be able to blacklist and ignore clients not fulfilling a simple contract to avoid cheating.Free

Score composer skilled in variety of music for hire. - Link Sun, 13 Sep 2015 14:44:57

Paid PositionIm a budding soundtrack composer I have yet to make it into any professional work but I have some non-professional work I can supply if asked. Im looking to start officially working on games and figured this might be a good place to offer my services. Im most skilled at either orchestra or rock style music but I am experienced in a wide range of musical styles and can provide any style asked for. Its unfortunately not feasible for me to offer unpaid work at this time due to my current financial situation Im flexible on payment though and can negotiate upon being contacted. If anyone needs music for their game send me a message on this site and I would be happy to provide some. Paid

Looking for a writer for 2D indie space mmo - Link Sun, 13 Sep 2015 12:28:12

Unpaid PositionI am making a 2D browser space mmo playable in the browser. I am making this in my spare time I am working full time as a web developer. The game is still in early development but I have a working game engine. I am not making anything that is a clone of any game I am making this out of passion as a hobby. I am looking for a writer to do characters names bio dialog etc npc bios dialog encouters quests text for ship functions ship names descriptions planet names description climate etc Basically I am looking for someone that is very creative and capable of shaping the whole universe of the game with me.Free

Alpha to Coverage wo MSAA - Link Sun, 20 Sep 2015 17:14:53

Ive heard GPUs have sub-pixel precision so I was wondering if Alpha to Coverage helps when MSAA is disabled

Recent QT and DirectX Examples - Link Sun, 20 Sep 2015 17:04:59

Are there any recent examples of QT and DirectX being used together The old one from is nearly five years and no longer compiles when trying to moc the files.

Learning Javascript after C - Link Sun, 20 Sep 2015 16:39:37

Hey there Some time ago I started programming in C to learn the basics of programming. Now I know those basics exactly variables conditional statements loops functions pointers arrays vectors classes inheritance dynamic memory Im learning about template programming now and will learn some other topics in the near future Now I decided that I want to learn about web development. After some reasearch I found out that Javascript would probably be a good choice for that. Now I have three questions The first and most important one what are good resources the best would be a book to learn javascript for someone who already knows the basic concepts of programming. The second Is javascript and web development hard to learn if you know the basics of C The third more an opinion question Do you think Javascript is a good choice for me if not what would you choose I hope everything is clear otherwise I would be glad to hear it in order to clarify some things. Thanks in advance.

Cant translate world coords to screen - Link Sun, 20 Sep 2015 13:03:44

Hello. I am creatin own engine from scratch in d3d9. Lookin on forum and google i found the way to create a ray and check if it intersects given area. It works. But i cannot do it the other way. To feed a D3DXVECTOR3 and retrieve XY on the screen. I found several solutions on the internet but damn they give wrong results. So from what ive read i have to 1 create matrix from projection view 2 use the new matrix on given D3DXVECTOR3 containing world location 3 the screen x will be vector.x 1 0.5 width But something is clearly wrong because i see the output values. Is it wrong alghoritm or should i show my code Thanks in advance Greetz

Is it possible to optimize this keeping a small array in registers - Link Sun, 20 Sep 2015 08:59:33

Hello all There is a following problem 1you get an array of say 1000 floats which represent probability distribution over 1000 possible items 2every item is made of two different elements which are drawn without returning from a pool of say 50 elements 3at any given point in a game you and your opponent have one of the items according to the distribution in 1 Now the task is to calculate for every item how likely you are to hold them or in other words in how many ways its possible to construct a pair of our_item opponents_item. The answer isnt just a distribution in 1 because as the elements are drawn from a common pool opponents distribution influences ours. To be a bit less general its the best to think about a card game. Any card game would do but lets stick to a traditional deck of 52 cards and hands made of two cards. If for example our distribution of hands is AsAh0.5 KsKh0.5 and our opponents distribution of hands is AsAd1 our real probabilities are 0 for AsAh and 1 for KsKh as AsAh is not possible for us to hold. The algoritm to calculate it in linear time is this its based on inclusionexclusion principle Elem table retrieve_proper_tablegame_state float dupli9152 0 float matchups911000 0 float sum 0.0f for int i 0 i lt 1000 i dupli91table91i-gtcard1 dist91i dupli91table91i-gtcard2 dist91i sum dist91i for int i 0 i lt 1000 i matchups91i sum dist91i inclusionexclusion principle matchups91i - dupli91table91i-gtcard1 dupli91table91i-gtcard2 Where table is an array of structs like this typedef struct uint16 card1 uint16 card2 Elem which represents elements in this case cards the item at nth position is made from. dist is an array of floats from 1 This algorithm takes about 8 CPU cycles per item in an array to execute. This is because you first need to read all the elements from the distribution add weights at corresponsing positions to an array of duplicates dupli and iterate again this time subtracting corresponding elements. This is a lot of writes and reads from memory. Even if its all in L1 cache its too slow. Especially painful are the reads from dupli array in 2nd iteration as they make vectorizing the loop impossible GCC vectorizer says data not suitable for gather and its no surprise as we need to read 2 elements there The thing is in my case there are only 52 possible elements the items are made from. I am thinking that maybe it would be faster if we could keep all the 52 required floats in registers instead of an array. The problem is I dont know how to go about it. I can change the way Elem struct looks like and keep we info is needed there. is it possible to keep name of registers there I imagine something like that should be possible. The way it would work we iterate over the distribution then in corresponding array of Elem we have names of registers we want to keep the sum of given cards in then we use the same registers when iterating 2nd time to subtract. That would spare a lot of reads from L1 in 2nd iteration as we wouldnt need to read from dupli array anymore as it would be in registers and only read from table array. I realize this is quite a domain specific problem but maybe its interesting for someone and maybe it would be applicable for different card games or some other problems. Ive spent quite a lot of time experimentingoptimizing it and I am unable to beat the times I am getting again about 8 CPU cycles per item on i7 3770 compiled with GCC 4.8.

Bets places for Masters degree programs in Game Design in Europe - Link Sun, 20 Sep 2015 08:45:22

Could someone please give me some informationadvice where are the best universities in Europe in game designMasters

Direct3D11 Multithreading - Link Sun, 20 Sep 2015 08:24:02

Havent found a single example or tutorial explaining this. Can someone post some information and example code on this to guide me I dont wanna do this for performance reasons. I just want to learn multithreaded programming in directx.

New to game programming need help - Link Sun, 20 Sep 2015 03:17:03

I know this question is asked a lot but wherever I go I cant seem to find a definite answer. So here are my questions What are the different fields in video game programming Will finishing a course in computer science be enough Does a degree mean anything for getting into a job for game programming Or do I need to focus more on learning practicing and proving that I can make games on my own first How much demand is there for video game programmers From what I read online people make it sound like going into any field of game programming is like becoming a slave. I hear things like youll be working 12 hour shifts 5-7 days a week or more or youre expendable so if you screw up more than a few times youll get the boot. Is it really like that or is that a single persons gritty opinion I have so many more questions but Ill leave it at that. Im sorry for bombarding a lot of questions but I really appreciate it. I have the determination to learn I just need a starting point.

Quick and Simple IBL Convolution - Link Sun, 20 Sep 2015 02:14:48

Hi I wrote a C application to do IBL convolution with the GGX BRDF you can find it here httpsworldoffries.wordpress.com20150920quick-and-simple-ibl-convolution Thanks fries

JavaScript Platformer Level Format - Link Sat, 19 Sep 2015 21:52:15

I am writing a tile based platformer in JavaScript. I was thinking about storing the level data in a JSON file and then using XMLHttpRequest to grab the file and then load it using XMLHttpRequest.onreadystatechange like this TileMap.prototype.loadFile functionpathToFile use strict var xhr new XMLHttpRequest var that this xhr.onreadystatechange function ifxhr.readyState 4 xhr.status 200 parse json file and load tilemap stuff PlayState.prototype.init function this.tileMap new TileMap this.tileMap.loadFilelevel-1.json new Camera0 0 this.tileMap.mapLayers910.width this.tileMap.mapLayers910.tileWidth canvasWidth this.tileMap.mapLayers910.height this.tileMap.mapLayers910.tileHeight canvasHeight However Im not sure if this is the best way of going about this. Would other parts of my game be running while this is loading Would it be better if I hardcoded the data into my game What do you guys think

D3D12 Mapping a Resource to an address - Link Sat, 19 Sep 2015 16:45:27

Right now I call ID3D12ResourceMap to get a location to copy memory to when updating a cbuffer. Reading Hodgmans reply to this post he mentions When the high level code asks to bind a cbuffer I memcpy its contents from my own malloced RAM into my D3D12 stack and then give that stack pointer to d3d as the cbuffer address. This is the part Im confused about. How are you able to tell D3D12 where to look for the cbuffer data at It seems like calling Map gives you a pointer to use where the driver has allocated that memory.

SFML 38 C vector erase error - Link Sat, 19 Sep 2015 15:32:54

So I am trying to erase the bullet after some time but when I try to run my code I get an error the problem is something to do with projArray.eraseiter2 cant figure out why but here is my code any help would be great. projCounter 0 Iterate over the projectile for iter projArray.begin iter projArray.end iter projArray91projCounter.rect.movestdcosPI mouseAngle 180.f proj.movementSpeed -1 stdsinPI mouseAngle 180.f proj.movementSpeed -1 proj.bulletLifetime projCounter projCounter 0 Delete Projectiles for iter2 projArray.begin iter2 projArray.end iter2 if projArray91projCounter.destroy true projArray.eraseiter2 break projCounter proj.bulletLifetime if proj.bulletLifetime gt proj.lifeTime proj.destroy true

Render Wireframes in color - Link Sat, 19 Sep 2015 05:03:05

If I understand it correctly materials are only affected by lights. Anyways I have a global directional light turned on somewhere shining from up above the whole scene is lit up but the wireframes have no color. Thanks Jack void Render d3dm_pDevice-gtSetRenderStateD3DRS_FILLMODE D3DFILL_WIREFRAME d3dm_pDevice-gtSetRenderStateD3DRS_LIGHTING FALSE D3DMATERIAL9 mat mat.Diffuse D3DXCOLOR1.0 0.0 0.0 1.0 d3dm_pDevice-gtSetMaterialmat m_pMesh-gtDrawSubset0 d3dm_pDevice-gtSetRenderStateD3DRS_LIGHTING TRUE d3dm_pDevice-gtSetRenderStateD3DRS_FILLMODE D3DFILL_SOLID

Parasol a pragmatic functional shader language. Invitation for - Link Sat, 19 Sep 2015 02:37:13

Im tired of writing shaders in GLSL. It requires a lot of repetition a lot of boilerplate. And theres no reasonable way to build modular code uber shaders conditional compilation shader graphs glsw-style string glue shader templates... all suck for various reasons Ive tried them all. Ive still written that same damn vertex multiply a thousand times. So for the past few weeks Ive been spending my free time on Parasol. lthttpsgithub.comaubreyrjonesparasolgt It doesnt generate code yet but it does parse into a nice AST lthttpi.imgur.com0VAi1xN.pnggt from a formal grammar Im using the lemon parser generator which is included in the automated build. Im looking for feedback on the language design so far and maybe some assistance in implementing it. Ive done some DSLs and language tools assemblers toy compilers but Id appreciate somebody with more experience in functional languages. Specifically Im learning as I go about type theory and type inference Im starting to get it but Im not sure how to implement it. Heres a sample standard position pipeline write it for the last time ever vert_position v91gl_Position define gl_Position in the v for vertex stage. u91projMatrix mat4 heres a uniform matrix u91viewMatrix mat4 heres another u91modelMatrix mat4 youll query their indices from the program like normal vec4a91v_inPosition vec3 0 1 this declares a vertex attribute its type and its attribute index Heres a complete Parasol pipeline fulfilling the OpenGL vertex and fragment shader contract. vert_color_complete include vert_position Modularity f91fragColor 0 the fragment color is equal to the interpolated... v91v_color ...output of the vertex stage vec4a91v_inColor vec3 1 1 which is determined by an attribute indexed 1 Parasol is designed to be a simple statically-typed type-inferred functional language. Its designed from the ground up for graphical shader development encapsulating calculations in multiple stages through a scoping mechanism. It eschews loops and ifs offering mapreduce and psi-case expressions. Functions are implemented as templates permitting easy generic programming and compile-time functional composition. The runtime library which loads compiled GLSL and SPIR-V code is meant to be easily embedded into any C11 client application. Additionally the compiler is implemented as a static library suitable for inclusion in client applications with access to the full C11 runtime. Heres a 16-light Phong-shading example lthttpsgithub.comaubreyrjonesparasolblobmasterparasol_examplesphong.prslgt. And heres an incomplete language reference lthttpsgithub.comaubreyrjonesparasolblobmasterLANGUAGE_README.mdgt Parasol builds repeatably anywhere theres a good C11 compiler and cmake tested with gcc and mingw-w64 4.8.4 including embedded copies of all required tools and libraries which are all built automatically. Clone it cmake it out of tree run make and you too can make pretty dot graphs of an imaginary language. Or pitch in and well be that much closer to codegen.

GLSL frag shader position not set - Link Sat, 19 Sep 2015 00:54:15

I created a shader in shader maker it works great when I go to add it into my program it wasnt working and I believe to have narrowed it down to the position is not being set I use this to set my position vec4 position gl_TexCoord910 and I just copied shader makers vertex simple vertex shader void main gl_Position gl_ModelViewProjectionMatrix gl_Vertex gl_FrontColor gl_Color gl_TexCoord910 gl_MultiTexCoord0 I can manually set thegl_FragColor and that works just fine the rectangles color will change I dont know if there is something that I have to enable or initialize for gl_Texcoord does someone know what I am missing or doing wrong I am using c on linux glx window gl 3.3 Thanks

Direct3D SharpDX companion projects for Direct3D Rendering Cookbook - Link Sat, 19 Sep 2015 00:46:54

Ive just uploaded my Direct3D Rendering Cookbook projects to GitHubfor ease of access. These projects are written in C using SharpDX and can be built in VS2012 VS2013. Ill be updating these projects to support current SharpDX releases however for anyone wanting to try their hand at using SharpDX they provide a good starting point as is. Cheers J

Android Native Activity - Link Sat, 19 Sep 2015 00:14:36

Im currently looking into the Native Activity example that comes with the Android NDK and do I have some questions....Im looking to start out small just printing a string when the activity lifecycle changes.EG onCreate -gt onState-gt onPause- -gt etc. But I kind of dont understand one thingMaybe my CC skills faded away pretty hard but how are you supposed to override the onXXXX methods located in the android_native_app_glue.cFor example in java I would extend the Activity class and just dopublic void onPause System.out.printlnActivity was paused Maybe Im thinking about this all wrong and Im actually supposed to use the native_activity.h and create my own glue file.Also does anyone have some solid tutorials on this topic Ones that are little be more detailed then the samples that are include with the NDK.Ones that take baby steps and explain what is actually going on

Interpolation 38 Extrapolation Help - Link Fri, 18 Sep 2015 21:58:46

Hello Im currently in the process of working on getting my connected players to appear smoothly lerping from the other clients perspective. This is how my implementation works currently Every .125 seconds if a particular player has moved in anyway I send updated Transform information to the server which relays that information back to all other connected clients. Once that Update message is received from the server about the particular clients updated Transform information I save its current position whatever it is as the previous position in my NetObjectTransformInterpolator These positions are stored in an stdqueueltTransformInfogt where TransformInfo contains the TimeStamp Transform My TimeStamp that I append on is double timeStamp NetObjectTransformInterpolatorGetElapsedTime .175 NetObjectTransformInterpolatorGetFrameRatio My TimeStamp that Im utilizing is just an elapsedTime hard-coded within my NetObjectTransformInterpolator that updates every frame with the current deltaTime in the LogicUpdate From here the NetObjectTransformInterpolator will choose the TransformInfo at the top of the stdqueue and move from the particular Objects previous position to the moveTarget position Lerping based off the time ratio between My current implementation appears to work mostly but there is something off about it. Its smooth mostly but there appears to be a noticable jitter or something that Im having trouble resolving once the player begins moving ends moving. As well as when the player is moving at a bit of a faster speed. Here is my code implementation void NetObjectTransformInterpolatorOnLogicUpdateUpdateEvent updateEvent NetObjectTransformInterpolator interp NetObjectTransformInterpolatorGetInstance frameRatio 1.0 - FrameRateControllerGetFPS 60.0 60.0 is our target fps for auto interpObj interp.objectTransformInfo ObjectMoveInfo moveInfo interpObj.second.get if moveInfo-gttransInfo.size if moveInfo-gtneedsMoveTarget moveInfo-gtmoveTarget moveInfo-gttransInfo.front moveInfo-gtneedsMoveTarget false if elapsedTime lt moveInfo-gtmoveTarget-gttimeStamp .175 compensates for the networkUpdateTime the frameRatio compensates for client side lag double t 1.0 - moveInfo-gtmoveTarget-gttimeStamp - elapsedTime .175 frameRatio InterpToPositiont moveInfo InterpToRotationt moveInfo InterpToScalet moveInfo else I dont know what to do here this is supposed to extrapolate InterpToPosition1.0 moveInfo InterpToRotation1.0 moveInfo InterpToScale1.0 moveInfo DetermineIfReachedCurrentTargetmoveInfo elapsedTime updateEvent-gtdt One of the main issues is Im unsure how to extrapolate my positions if my elapsedTime has surpassed the moveInfo-gtmoveTarget-gttimeStamp. Currently I just interpolate to set it straight to its Transform hence the 1.0 value. DetermineIfReachedCurrentTarget function is also responsible for popping the stdqueue setting the next moveInfo-gtmoveTarget. I am also unsure about my frameRatio calculation necessity. I noticed I needed to do this once I started developing on my laptop which runs this application with a lower frame rate then my desktop. I have been looking at some other implementations that utilize the NetworkTime from the server. Id definitely prefer to do that but Im not sure if I have the correct NetworkTime calculation. Currently every 1 second when I receive my PING reply from my server I also have attached to that the current SystemTime in milliseconds that I piece off and store on each clients side. Thank you for any insight helping me to figure out this problem. My main goal here is just to make it so the clients are lerping smoothly instead of smoothly with a noticable jitter.

Shipping Simulation Dijkstra Floyd-Warshall - Link Fri, 18 Sep 2015 20:58:59

Hi As title suggest I intend to implement a shipping simulation into a multiplayer browser game basically calculating cheapest route from vertex A to B something like As there are several options for transportation actually vertices are not as shown here but for each transportation method Greece - Land Greece - Railroad Greece - Seaport Greece - Airport as shown below so my estimation for vertices is around 1000 but with many edges since it wont be based on country but regions so a country may have 6-10 regions all having vertices for transportation methods. In this scenario Dijkstra seems to be enough for calculating cheapest route based on weight. But the problem is weights are different for each country or even region. For example there may have an avalanche at Slovenia blocking railroad traffic so edge Greece-Train -gt Slovenia-Train is weighted infinite or Italy may impose higher toll fare for Greeks than Slovenians. So I need to calculate according to weights based on several factors changing like originating country destination country and route. My first naive implementation was using Dijkstra and caching results actually using a graph database like OrientDB or Neo4J solely for this but I am not sure if it is a wise choice in performance terms. Then I considered Floyd-Warshall Algorithm which is basically Dijkstra run up to n3 times apparently with an extension of storing path as well not only weight matrix. But the problem is everytime there is a weight change in a single edge I need to recalculate entire matrix for all countries. Didnt have chance to test but doubt it will be blazing fast. So my plan atm is having a tick number and getting route from matrix if matrix tick number is same using Dijkstra if not until matrix is recreated. After this wall of text my question is Is this right approach in your opinion or what would you recommend instead if not Thanks in advance

Reading game data from archive - Link Fri, 18 Sep 2015 18:47:04

Right now I only have a few files in my game that get loaded at runtime. But that number will probably increase as I progress with it so I though of implementing a system that reads game data like models textures sounds etc. from archive files like zip since that would be faster than loading many small files residing individually on disk. Thing is while it is very easy to create such an archive I have no clue on how to get my engine to load specific files from it or more importantly how to know where a file is. Currently I pass in file locations as a path relative to the game folder using the FileSystemContentResolver class to get my content manager to actually find and load the file. File paths are both hardcoded in the source and specified in .ini files For example Ship ... model ContentShipssomeship.3df Now the content manager has an IContentResolver interface which FileSystemContentResolver implements and it is set up so it will use all registered content resolvers to find a given file. So how would I go ahead to 1. Tell the content managerresolver which file to look for in which archive or just try all there are 2. Have the content resolver assert that the file actually exists in thisany archive 3. Load the file from archive while preferable keeping the archive open for future file loading. Preferable using C framework built-in functionality

Instancing Data Source IA cbuffer or structured buffer - Link Fri, 18 Sep 2015 18:08:22

Im adding instancing support but it looks like there are a few options to get my instancing data 1. Stream in per-instance data as part of input assembly stage. 2. Use instance ID to index into a constant buffer or structured buffer with the instance data. Is one better than the other as far as performance

Fitting model in camera viewport - Link Fri, 18 Sep 2015 16:02:15

Im trying to setup a form of character select screen where the user can select from a drop down a list of characters and that character is loaded and displayed in a separate window. Thats all working I create the character model parent it to a separate camera render it to a texture and put it in on my GUI. What Im struggling with is getting the model to fit nicely in the viewport so it fills the whole texture. In theory this should be simple I get the bounds of the model and use the those along with a chosen distance from the camera and frustum height at that distance to apply a local scale to the model so it just fits at the given distance. What usually happens though is that I get very odd scale values bounds.extents has something like 0.0010.0030.001 and when I try and scale to my desired height based on this the model ends up far too big and I can just see the characters foot in the display window. The model has a SkinnedMeshRenderer and Ive tried renderer.bounds renderer.localBounds baking the model to a Mesh and using its bounds but not of these seems to give correct results. Im sure Im doing something incredibly dumb in terms of mis-matching local and world coordinates for this calculation but has anyone created anything similar and could offer some pointers Thanks

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Welcome to

Floating Point Softwares is an Indie company started in 2015
focusing mainly on Android, iOS, HTML5 and PC game development.
Currently we also offer non-game related solutions, 
such as mobile apps depending on the demand, as well as pixel & vector graphics.

Read more

What's Going On?

Featured Shop Items