Blogs

Our community blogs

  1. Corona Labs’ engineers have completed the process of updating to the latest versions of the various support libraries that other Android plugins depend on . The updates include:

      • Google Play Services – 11.4.2
      • Support libraries – 25.2.0

    Plugin developers should be able to take advantage of these updates. All Corona developers using build 2017.3183 or later will use the new versions of these support plugins. Older versions of Corona will continue to use the older versions of the support plugins.

    Additionally, the Android Awareness support plugin (a new support library) is now included.

    We hope these updates will help you going forward.


    View the full article

  2. Over the course of the past year I have been working on our game "Valley of Crescent Mountain". Most of this development has been on livestream, while some of it was behind closed doors (so I could fail without anybody seeing me! AHAHAHA) Due to some unfortunate events we have to more or less redo the entire art side of things. At first, this was a pretty big blow as I have been laboring of this stuff for the past 9 months, but this is why knowing your stuff is important.

    Often, something we forget to do as inidies is look at the bigger picture. Even when we do, without any real world experience in the industry (on a big picture mindset type of thing) we lack the understanding of what it takes to get a game from point A to point B. This means, in many cases, that we learn from failure or hardship.

    The good news is that this blow to the art has certainly made the new stuff shine that much more. Over the past three weeks I have reworked the farmer and his animations, as well as the environment and their overall appeal. Here are some screenshots of such:

    dU7cG8v.png

    9Gl5srU.png

     

    Lastly, none of the code was effected by this blunder! This means we didnt really lose any ground other than on the artist front. Expect to see more pictures and screenshots throughout the next month as we regain our footing and get back to where we left off before the GREAT PURGE of art in 2017! :P

  3. In this daily blog (and video)-series I take a first impressions look at the best mobile games that I come by. Be sure to share your favorite mobile game with the rest of us in the comments below!

    A simply but beautiful 40-level indie pixel platform adventure game with simple controls, great level design, and a relaxed monetization based on instantly-skippable video ads and a single $2 IAP to remove all ads.

    I particularly fell in love with the "jump and glide" mechanic, which helps differentiate the gameplay slightly. 

    My thoughts on Cat Bird:


    Google Play: https://play.google.com/store/apps/details?id=com.raiyumi.catbird&hl=en
    iOS: https://itunes.apple.com/us/app/cat-bird/id1213493742?mt=8

    Subscribe on YouTube for more commentaries: https://goo.gl/xKhGjh
    Or join me on Facebook: https://www.facebook.com/mobilegamefan/
    Or Instagram: https://www.instagram.com/nimblethoryt/
    Or Twitter: https://twitter.com/nimblethor

  4. Latest Entry
    Hello everyone!
     
    I hope you’re all feeling the spirit of Christmas. And Happy Hanukkah if that’s the case.
    Today I wanted to give you an update on what we’ve been up to. Lately we have been trying to make our team grow. We’ve been needing help on the artist side of the game, since it was falling a bit behind. And I think we’ve succeeded!
     
    So, who is part of FAXIME now?

    You already know me (Teresa) and Gil. And of course, you know Midday Mayhem, the artist who has done most of the current concept art and 3D models of SpaceVille.
     
    We now have a new 3D artist; his name is Lidar Thomas. He’s the one who made the bunny’s 3D model we’ve shared already on our social media! He also does smartwatch faces. You can check them out here.
     
    Two new people are also helping us with the UI and UX. They’re Oscar and John! They’ve started doing UI icons for the tools. Spoiler alert: They looks great! Maybe they will be out for the next version of the alpha?
     
    Now on a different art aspect, MUSIC yes!! We have a new member just focused on SpaceVille’s music. He is our youngest member (laughs) with only 15 years old! He’s a great composer! 
     
    And soon we will have a new concept artist to help Midday! :)
    Meanwhile we also have an intern, Miguel, and he did this awesome promo image for us!
     
    731331_2917f9e8ba5540b9ad5f1d7520d3bbe7~
     
    Sorry for the long post! 
    Anyway... I guess that’s all for today. If you’re Portuguese I hope to see you this week at Comic Con Portugal! :D
     
    Happy Holidays!
     

    The FAXIME Team

     

    Follow us and keep updated at:

    Facebook: https://www.facebook.com/FaximeGames
    Instagram: https://www.instagram.com/faximegames
    Twitter: https://twitter.com/FaximeGames
    Pintrest: https://www.pinterest.pt/faximegames

    SoundCloud: https://soundcloud.com/faximegames

    • 1
      entry
    • 0
      comments
    • 15
      views

    Recent Entries

    Service Pack 1 include [ http://store.steampowered.com/app/718840/DiamondFalls/ ]:

    - Improved performance;

    - Fixed small bugs;

    DP52XjkW4AEJM5h.jpg

  5. In part 1, I wrote about a difficulty endemic to just about any porting project,
    the importing and trans-coding of data to different formats.

    Here in part 2 I'll cover a few of the trickier engine architectural differences that exist between 
    the original engine for Static:IT (Selenite) and the new engine that will support it (base-code from 96Mill and Revel Immortal)

     

    Different Origins

    Originally designed to support editor-only development of Adventure and RPG games,  Selenite
    was a successor of the S3Engine (The Lost City of Malathedra); and shared many simularities
    with the primary exception being that S3 was designed such that scripts and associated resources
    were to be written in external tools, and the S3Engine was a pre-compiled exe run-time, that read and 
    executed the scripts and resources.

    Selenite on the other hand, was an IDE, where game objects were added via a tree-view interface, along
    with resources; and the IDE was responsible for processing and packaging these resources for optimal end-use.
    The resulting resources were likewise run next to a pre-compiled SeleniteWin32.exe

    There is a relatively large expanse of time between the creation of Selenite in 2009, and the creation of Engine4
    (or EngineIV ...it's not really important) in 2013; E4 represents several massive shifts in the way I build engines
    at least as of the time of this writing.

    • It's in HTML5/JS, runs in the browser, and is 'wrapped' for platforms/services that only except exe, etc.
    • It's heavily designed around The Trinity Pattern which is a design pattern I developed to aid in making a game
      expandable, without breaking save-games, or amassing technical-debt with each release.
    • Dependency Injection and Law of Demeter are used heavily to reduce coupling
    • It's a series of engines, where for each new game we clone the engine code of a game most like it;
      and features are selectively merged backwards if they're desired.
    • Each game's run-time is optimized to that game, without regard for other games. This is to avoid
      having to square new features or feature modifications/removals against existing games.

     

    The Problems

    It became clear early in the port, that I was going to have an issue with the difference each engine handles 
    a concept which I refer to as residency.

    In Selenite, there is the the Game class, which has a list of Room classes, and each of these rooms had a list of Actor classes;
    and when the game was loaded, that tree structure would be created and resident in memory; addressable at all times.

    ...not a terrible design, but one I had departed from a while ago; the primary issue is that Selenite mixes the issue of State 
    and Runtime ...that is, objects are in charge of their runtime representation, mechanics and non-persistent state and 
    they also hold their persistent (save game) state as well.

    In Engine4, the there is a separate class for a game object's persistent state, as well as its runtime.

    This allows an object's state to be retrieved, and passed into the construction of a newly minted runtime object.
    runtime objects can be created and destroyed at will, with its separate persistent state living on.

    This explicit separation of persistent state, as well as the tear-down and reconstruction of game objects 
    is really helpful in allowing for game changes, additions/updates; without breaking previously saved game-state.

    ...however!  That is really not important in the context of porting Static:IT

    So, the residency scheme in Engine4 (well new Static:IT's copy of it at least) needed to go, it simply wasn't worth
    trying to massage the wealth of code to deal with alternate mechanisms for modifying non-resident runtime state
    when I could bring the engine into alignment with the original needs.

    ...and thankfully, due to dependency injection and law of Demeter; the change was easy.

    Instead of creating and destroying each room, and its actors as the player traversed them, I was able 
    to shift the code, changing mostly top-level factory functions, to create and maintain the total list of rooms
    and actors at start.

    ...in Part:3 I'll cover issues pertaining with porting the scripting from Lua to JS
     

  6. LightningCommandScreen.jpg

    This challenge was a good run because of

    • Implementing coroutine with IEnumerator and yield return
    • Simple Dictionary based texture manager
    • Basic Particle Engine
    • Ripped GameStateMachine from previous monogame project (joust)
    • had fun making flare particles
    • Did I mention, it's not cool unless it has lightning bolts
    • browsed current scifi google images...nice...inspired.

    Source : MarkK_LightningCommand.zip

     

     

    • 0
      entries
    • 0
      comments
    • 24
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 30
      views

    No blog entries yet

    • 0
      entries
    • 0
      comments
    • 36
      views

    No blog entries yet

  7. Latest Entry

    As a sound designer, I am often asked to create monster sounds. Dehumaniser is a great software to help you get your monster sounds to the next level !

    Check out my new youtube video where I talk about that. And check out my sound effects website and get 120Mb of free sound effects (including a couple of monster growls) by subscribing to the newsletter: http://www.ogsoundfx.com

     

  8. Latest Entry

    Hello.

    I am working on a big spaceship for the game. It is in an early stage but the main shape is here. The rear part is even less detailed than the rest. There will be the reactors and some "cargo" in the large empty space under the "wings".

     

    Screenshot_2017-12-10_22-36-00.png

    Screenshot_2017-12-10_22-38-46.png

    Screenshot_2017-12-10_22-38-46.png

    • 1
      entry
    • 0
      comments
    • 40
      views

    Recent Entries

    Latest Entry

    Here is a small realisation I just finished. It is small, 7x7x7 cm. It is made of polystyrene, cardboard, wire, cotton wool, glue, saw dust, paint and a little bit of salt.

  9. Latest Entry

     

    The design team initially proposed that we use the spaceship as the central HUB world for the player to return to after a mission’s closure, with this decision unanimous, we began to work chronologically into the game. On the contrary to regular practice and due to inexperience, we began working on the players introduction to the game and tutorial first, before turning our attention to the roguelike elements required, as per the brief.

    Much of the design work that the team and I worked on was based around the level design of the HUB world and the narrative that could be construed through onboarding. Due to the focus in this area, the main game suffered inattention.

    Systematically speaking, once the scripts were working in the HUB world, they were supposed to translate smoothly into the level generation there after. Unfortunately this did not go as planned and by the time our attentions had turned to the procedural generation, serious system issues began to highlight themselves. I believe that if we had have worked solely on the procedural generation first to meet the brief requirements and then worked backwards, creating the HUB world then the tutorial, we would have a product that is much more compatible with the brief. As I venture into other projects, this lesson learned in prioritising, I feel is the most important one that I will carry with me to ensure this issue is not repeated in future endeavors.

    ezgif.com-add-text.gif.1df8d1ef01cad72b44f8ee6af1bf364f.gif 

    • 1
      entry
    • 1
      comment
    • 37
      views

    Recent Entries

    Up to now, I have had a tendency toward monolithic classes when developing in Unity. My experience has always been with the typical object-oriented approach (with the exception of when I was developing using batari Basic), but I’ve been trying to train myself toward small, reusable components with focused purposes. I’ve had some good success lately, breaking larger scripts into smaller ones and using interfaces as a means of communicating between components where possible.

    public class ReportAttack : MonoBehaviour, IDamageable {
        public Team team;
        void Start () {
    		team = GetComponent<Team>();
    	}
    
        void IDamageable.TakeDamage(MonoBehaviour from, DamageType type, float amount)
        {
    		var attackerTeam = from.GetComponent<Team>();
    		if (team && attackerTeam && team.team != attackerTeam.team)
    			Debug.Log(gameObject.name + " says: I've Been Attacked by " + from.gameObject + " on team " + (attackerTeam ? attackerTeam.team.ToString() : "no team") + " with " + System.Enum.GetName(typeof(DamageType), (DamageType)((int)type << 1)) + " (" + (int)type + ")");
        }
    }

    While I’ve been fairly satisfied with the use of interfaces for calls to multiple or unknown components, I recall fondly the rapid development and flexible approach provided by utilizing messages in my 2017 Global Game Jam submission, Metalmancer.

    
    

    However, since Unity’s message passing uses reflection (or at least probably does, given that it takes the string name of the event to call), it does not perform particularly well. With that in mind, I hoped to make my own, alternative messaging system which is used much like the existing messaging system, but uses delegates and event handlers under the hood. This was the result.

    
    

    While I felt that I succeeded in my goal of providing a useful interface that hid the reflection-based old messaging system, I was crestfallen once I began running tests. Performance Testing On average, I see a performance increase of about 33% over Unity’s built in SendMessage, with the complication that all components using the new system must inherit from the new MessagingBehavior abstract class, rather than directly from MonoBehavior. Still, given that a direct call (as would be the case using an interface) is still about ten times faster, I wasn’t particularly encouraged by these results.

    On the other hand, as tomvds said in the Unity forums:

    Optimization is not about avoiding expensive code. It’s about avoiding expensive code where it matters.

    Performance Testing Still, stubborn as I am, it’ll be hard to convince myself to use even my own message passing architecture in lieu of more efficient interfaces. Or maybe I should just use an adaptation of wmiller’s Events system. Or I should just stop worrying about it.


    View the full article

  10. (you can find the original article here)

    You've done it. You made the jump. You've gone from "just working on a project," to identifying yourself as a real-life game designer. You've got a solid game design document, a (mostly) working prototype, and have even started to deal with the incredulous looks of bewilderment and disbelief when you tell people you're "making a game".

    As you consider your wild fantasy of a design, the gravity of what you've signed yourself up for BEGINS TO DAWN ON YOU:

    "What have am I doing?" "Is this even possible?" "Am I crazy?"

    These are among the frantic questions that race around your mind. Every time you find yourself thinking about letting your hopes of making your game die, you remember: You are a game designer, and this game deserves to exist.

    I put together this list to share how I've coped with the affliction of being a game designer. As Renaissance Man Kanye West put it, "this shit was hard to do, man!". Everyone has a unique environment, circumstance, and perspective when it comes to creating art--video games are no different.

    Even though these suggestions won't work for everyone, I've tried to think of things that can apply to every indie designer, regardless of who they are and what game they are designing. You should also know that I've broken every one of these rules at some point during development myself. So, don't beat yourself up -- with these suggestions, starting late is much better than never!

    1) Keep going

    giphy.gif

    It seems insurmountable.

    First, there's thinking of a way to craft your game that doesn't feel the same as everything else in the genre. That's before coding billions of mirco-conductors to manifest the wild fantasy of you've envisioned.

    After that, you have to make sure it's good--even something as simple as moving a character around a 2D plane may need dozens of iterations to be balanced properly. As a designer, you don't ship with your game. Early in the process, you have to consider if the player can actually figure out what they're doing without you hawking over their shoulder. This issue is addressed through the use of designer-player communication tools like the GUI, prompts, and message windows.

    The fact is, as an indie designer there will always be a million things to do. A lot of times at least half of them are going to seem impossible. A great game design professor once told my class that the "design never ends," despite the fact that the game has to ship at some point. What defines an indie game designer is the willingness to face these odds through failure, disappointment, and ridicule.

    Just remember: keep going! In my experience, indie development works great in combination with "tunnel vision," or the ability to ignore and look past distractions and other exterior actors and concentrate on the goal or task at hand. Remember why you chose to do what you do in the first place. Remember how you've already come as far as you have, and consider why the world needs your game.

    2) Make lists

    giphy.gif

    During my university career, I was once told that "humans are monkey-minded". The notion has stuck with me. I remember the lecturer explaining how our mind naturally skips from thoughts, to memories, images, and everything in-between. A primary role of our self-conscious is in mediating and ordering this "monkey-mind" so that we can do things like have conversations and file our taxes.

    Not to too get super Dalai-Lama here, but both creativity and the path to a state of peace and contentment are empowered by giving freedom to the monkey-mind. Of course, there are times where the monkey really should be paying attention, but even if you have to wrangle it in, it's only kind to be gentle, right?

    lists2.jpg

     

    To get to the point--lists are a great way of allowing yourself to be creative. And remember, the lists don't have to be exhaustive--you can always make another one! Make a list for your tasks for the next month, the next day, the next build, or the current character you're making.

    As I stated before, there's a lot going on when you are developing games--especially on a small team or by yourself. It creates a lot of baggage -- you can be constantly trying to recall details of bugs you need to fix, or details of an art asset that needs to be changed. Committing the things you need to do to paper allows you to release those thoughts so that they don't have to take up space in your mind. That way you've got much more room for your monkey to wander and gather the fruits of creativity!

    Also, give yourself the satisfaction of checking, crossing off, making a blood oath, or whatever it is you want to do to the list to communicate to yourself that a task is done. No matter how big or small of a task, use it as an opportunity to celebrate. It was on list, and now it's done. You fucking did it! You are a little bit closer to bringing your game into reality.

    (Please don't actually do a blood oath, it's unsanitary.)

    3) Take breaksaid44724-v4-900px-Kill-Your-Sim-in-the-Sims-2-Step-17-Version-2.jpg

    Remember the "fun meter" from the Sims? It's a real thing! Respect your fun meter.

    Sometimes that might mean giving yourself a night off to decompress after banging your head against a wall for hours trying to fix that collision bug--maybe by switching to something like writing blog posts or by watching "Indie Game: The Movie" or an episode of Double-Fine Adventure. Do what you can to get yourself back into the zone. If you can work in a positive state of mind, both your work and efficiency will benefit as a result!

    Good games take sacrifices of relationships, money, and perhaps most importantly--your time! So make sure you are managing your energy and putting some time into maintaining your physical and mental well-being. After all, if you're unwell it's harder to make a game!

    4) Use Naming Conventions

    Anyone who’s been hundreds of files deep into development and managed to lose that crucial asset that they've worked on for hours will stress how important this point is.

    filestructure.PNGProper use of naming conventions will save you a world of time and frustration. Your method doesn’t have to be too elaborate as far as “professional” conventions" go, but your main considerations should be consistency, clarity, and convenience. Whatever system you decide to use, make sure it’s logical and predictive for you. If someone else were to make an asset for your game using your naming conventions, you should be able to tell what kind of asset it is in your game, and where it belongs.

    It can be very simple, but must be enough to make your assets distinguishable. It’s also important to carry this relationship with naming conventions across your whole project! For me, this includes art assets, scripts, and even the images I use for blogging. They might change from subject to subject, but the main thing is to make sure you know, and understand it, while finding your system efficient.

     

    5) Talk to people

    Developing Class Rules has been one of the most isolating experiences of my life. Making a game is itself a profession that is already at odds with society's "norms" and expectations of what constitutes wage labour and otherwise normative ways of life. Further, the actual day-to-day process of developing games is alien to the vast majority of people. Attempting to explain the minutia of "the awesome new script" you're working on, current hiccups in the coding process, or the labours of trying to balance a level often results in a glazed expression of confusion and apathy.

    giphy.gif

    But, it's not their fault! What did you expect? You're a game developer! How long have you listened to the minor details of what other people do during their day at work? And really, why should you care so much? There is no way to know everything, and most people will not have the tools or to communicate with you about the in-depth details of your work.

    The point I'm trying to make is: don't let game development's complexity discourage you from trying to talk to people about your game. Yes, a lot times you'll get friends and loved ones putting you down, disbelief in game mechanics you think are awesome, Han Solo shaking his head, and blunt disinterest in what you dedicate much of your time to. But at the same time, you can be faced with the exact opposite: great new ideas spawned from situations and conversations , songs to listen to, movies to watch, renewed fervour and faith in your project, or in short -- creativity.

    Take criticism as an opportunity to review your reasons for doing what you do the way do. Take yourself through the uncomfortable process of challenging your assumptions. Make the reasons why your target market deserves your game evident within your work.

    6) Set Deadlines

    Setting deadlines is huge! It's a little related to making lists, but I think it deserves some more attention. When working by/for yourself it becomes very easy to let things slide. Pressure -- even if it's completely of your own fabrication -- is a great motivator. But, be realistic when setting deadlines for your schedule. This is especially true for the pre-design and prototyping phases of the project. In my experience, development times start to become a little more predictable as you become more attuned to the specific systems of producing parts of your game.

    Deadlines can be set for a lot of reasons -- contest or festival entries, grant submissions, presentations, and your aunt's wedding are all valid reasons to make a stable build for your game. This is also something you can at the end of every week or two weeks to make sure you have a current and accessible version of the game ready to go just in case.

    7) Show your game

    Take the opportunities that you can to show your game to your peers and public. I think the most important thing going into any environment where you will have the chance to playtest and learn about your game is to know what it is you hope to answer during the playtest. Watch how your new section plays, or how players react to the dialogue. Try to have an idea of what you want to learn and take away from the play test! That way you can optimize the structure the session to get the most out of the feedback.

    giphy.gif

     

    Also, be mindful about where you enter your game and make sure you're ready!

    8) Make it count

    Game design is an art. Your work has meaning. The power that the messages behind your game can mean for other people should not be underestimated. You have the opportunity to do something that matters for others, so do it!

    I touched on the importance of making the effort to consider why your game deserves to exist earlier in this piece. Ask yourself why your game deserves to be made. Perhaps more importantly, why does it matter? As a designer, I think you should be repeatedly asking yourself these questions throughout the entire development process.

    In 1809 when Napoleon led his armies to victory over the Prussians in Jena, German philosopher Georg Wilhelm Frederick Hegel claimed it was the "end of history". It ensured that the ideal "liberté, égalité, fraternité" would be pursued by all peoples of the world. The marriage between Napoleon's actions, and Hegel's thoughts are an example of a powerful dialectic representing the real political action that comes as part of some great artistic or literary works.

    Videogames, as with all other forms of art, can be used as an agent of political change. If your game contributes to a message, or was designed to communicate something about a particular topic, you will have a much easier time motivating yourself to see your project through. And as indie, aren't you here to make unique games that wouldn't be considered by AAA studios anyways?  

    giphy.gif
  11. Beginning

    I decided around middle of last year that I wasn't good at designing art. I'm good at coding, I'm good at ideas, and I'm good at making tools. I thought, What if I could make game design tools specifically for my own game engine? So I started working on a niche design tool for an HTML5 + Node.js game engine in the style of a 2.5d MMO with 8bit-style graphics.

    I've never made a real drawing tool before. I've never finished an MMO, but I knew how and what to do to make this. So I scrapped the last project I was working on and started fresh.

    Map Designer

    fewfdsa.png.e0f875be39acda9c9fa71d1554aee529.png

    The first thing I started playing with was the map and object designer. I decided pixels in the game should have meaning. Some pixels are walkable, some pixels have height, and it had to be possible to walk behind objects like trees and flowers. Since I had height for pixels, it was easy to use that to cast shadows automatically. I'm probly getting to technical here- but I realized it was a whole lot more fun to use my own tool than it was to use Microsoft Paint. I felt encouraged to create the mob designer next so I could test my map further.

    Mob Designer

    My interface design was terrible, but it was good enough for me to use, and that's all that mattered. I could design a mob, make a quick map mock-up for testing, and walk around that map with my mob. One problem though, I'm still terrible at designing graphics. So that's when I reached out.

    Had to Clean up my Tools

    I showed people how to use the tools, made a video tutorial, but my tools were just so ugly, I had to clean them up!

    map-ui.thumb.png.2b9f96ece6e5d065434943b98ad000e3.png

    Now things are moving forward. The UI is still not the greatest for designing/developing. But it's good enough for most any designer to work with.

    I realized, the game mechanics were built into the graphics

    I realized with no coding, things like hit-test, animation timing, equip-able item anchoring, and so many other things were handled in the design tools. That means a lot to me, because I can just keep on working on my tools, and in the future I don't have the option to give up before those little things are developed into the game. If a new item is designed, it just works. If a new map object is created, it just works. If a new area is drawn, it just works.

    This is what I'm good at, and I sure hope to bring in testers for this game by Spring next year.

  12. Fooliery here with some new free bee's for the beginner python  and pygame game developer. 

    Here is a group of modules to help keep time in your game.  Inside is also a mp4 video tutorial on how to use it.

    Makes it easy to say when to spawn an enemy, how long a level should last.  set a event to happen in appropriate order.

    Vary easy to understand and a great source to learn and build on.

    Hope this helps out

    Look over the source code.   There is a few extra goodies inside.

    Fooliery

    FoolieryGameTImeSupport.zip

  13. As I've just managed to upload my first Windows Store release of a previous play Win32 game I thought why not document my way there.

     

    The game itself, HitBlock Deluxe has grown over the years and I think it's quite a neat game. Luckily I a few years ago I had the idea to allow user created stages to be uploaded and shared. Those user shared levels are now over 1000 single stages!

     

    As I've checked out the Universal Windows Platform (UWP) I noticed it should be doable to port the game. The code is C++ with interfaces for various DirectX objects. So this led me to the decision, should be doable.

     

    I set up a new blank project and began adding the game files. First thing to notice: Actually quite a lof of the Win32 ecosystem is there, but also a few APIs are missing. In most cases changing calls to their xxxEx counterpart solved the problem. One of the bigger problems was CreateThread not being available. Fortunately a async .NET API was available, which albeit horribly clunky with CLR, worked after introducing a few ugly static wrappers to interface with pure C++ code.

     

    So in the end almost the same code runs on C++/Win32 and C++/CLR/UWP. Yay!

     

    More to come about the store upload...
     

    If you want to take a peek, the game is available in the store as HitBlock Deluxe.

    I still have no idea if the game generally works for everyone, so if you try and it fails somehow, please let me know!

     

    hitblock_ingame.png.e6c0275e4ba0e1638b79e2320bd3a842.png

  14. A successful game is recognised by the way it enjoys popularity among players coming back to the game time and again. How can you make your players return to the game frequently? How can you make them feel addicted to your game? Undoubtedly, you need to have a solid retention strategy for your game to achieve this.

    Let us introduce here some of the most tested and tried rules of boosting retention that a game development company should take care of.

    5a2b8e97bcf6b_8WaysYouCanRetainYourGamePlayerforLonger-Nimblechapps.thumb.jpg.af5d3f68ecb1632c34f9da7a2710d244.jpg

    1. You are not targeting the right market

    The first principle that a game developer should keep in mind is to target the right audience and market. For example, you can target teen audience or say, a female game playing audience aged beyond 30 years. Now, you need to consider how many similar games are there presently in the market for the respective audience group.

    You need to build games only with the respective target audience age and other demographic aspects in mind. For instance, if you are going to unleash a puzzle game for toddlers and there are plenty of such games already in the market for that audience, your chances of getting over the top of competition is very low.

    The bottom line is simple. You need to develop games with a precise target audience market in mind that can find your game app lucrative. You still have competition when unleashing for a less competitive niche, but you can make your presence felt and reap benefits with such feeble competition.

    2. Creating a stunning and lasting impression

    The key to retaining players in a game is to make them come back to the game frequently. This requires impressing them at the first gameplay and maintaining that throughout the game playing experience. According to 2015 figures published by Localytics, close to 60% of app users including game players just become inactive within the first month of the use.

    Often a stunning first experience with the game prevents a game app from losing on player engagement. Ensure intuitive game learning that requires the least time to get started. Secondly, try to give them a sense of achievement as early as possible and make them feel what rich reserve of game playing experience you have in store for future sessions.  

    3. Distribute the difficulty level and challenges evenly

    Just consider playing a game in which you just get knocked out at the very first game playing session and find it hard to get to the next level in spite of several efforts. Moreover, you find yourself in a clueless position without nobody to help you really getting over the challenges and enjoy the game by securing some small feats. In most such cases you stop playing such games, and after a few dumb efforts, you are likely to dump it into oblivion or delete it.

    Just consider a different scenario when playing a game you win every time. When you realise winning every level of a game is practically effortless and does not involve any real challenge, you are likely to consider it dull, and you can stop playing such childish crap.

    To prevent such pulling factors, you need to balance your game playing experience with the appropriate acceleration of challenges and difficulties from one level to another. The point is to train the players with the game playing skills by gradually accelerating challenges from one level to another. With properly balanced levels players keep enjoying the game while securing a sense of achievement every time they pass on to the next level.

    4. Session time not stretching too far

    We modern human beings continuously live within a whirlwind of activities, and this gives us an impression that we always have too many things left to do. Naturally, mobile games just grab our attention temporarily between activities. This is why we are likely to engage in games for a short stint instead of games that require long sessions of play lasting for hours.

    Typically, games with few minutes of session length get more steady engagement than games with long session length. Only experienced players can cope up with extended hours of gameplay, and they are a minority engaged mostly with big titles while the majority of games is mostly having the engagement of casual game players.

    5. Take care of bugs and test early

    Yes, these days even big titles in mobile games come with a lot of bugs. Bugs became a plague now for the vast majority of games including most successful and little-heard games. But, whenever bugs undermine the user experience it can lose game players and engagement terribly. But since every bug cannot be found by the developers and at later stage addressing them becomes problematic, a mobile game development company needs to make it tested from the early stage.

    6. Boost engagement with rewards and recognition

    Most players leave a game and fell less impetus to return to the game because of game fatigue. Game fatigue mostly develops when the player misses the sense of achievement and does not get enough impetus with in-game rewards and recognition. On the other hand, recognising every small in-game achievement with some kind of reward or title can deliver immense satisfaction for the players to return to stay engaged.

    7. Utilise push notifications effectively

    Push notification is one of the most powerful tools to remain in touch with the players and it helps a game to push players for taking certain steps that can position a game better. From reminding players about the pending game move to notifying players about new features to telling players about their fellow player’s arrival, notifications often can boost player engagement more meaningfully.

    But the benefit of keeping in constant touch with the players apart, push notifications can also undermine the user experience terribly if you push it really extra hard. Send notifications only when you have something relevant and important to tell for the player.

    8. Social gaming

    These days most games give you option to invite players from your social contacts. It is one of the most effective ways to push more downloads and acquisition. But it is also one of the most effective ways to boost player engagement. Over time social game playing and other tools like in-game chat options and friend list can help create a community of game players. Such community gaming creates new ways to feel the heat of competition and this results in higher retention and engagement for the game players.

    In closing

    The key to retaining game players for most games remained the same, and it is continuous engagement, frequent gaming sessions and smooth gaming experience with appropriate challenges and befitting rewards. If you can ensure these ground rules for your game, your retention is likely to be higher.

    8 Ways You Can Retain Your Game Player for Longer - Nimblechapps.jpg

  15. Spellbound is intended to be a story driven game. I feel that's the only thing which can make the game interesting on its own. The story of Spellbound has gone through a lot of evolutionary changes throughout the development process. When I initially conceived of the game, I just had a game concept: "Throw fireballs at zombies in VR, using your hands". As a game premise, that's mildly interesting but it would quickly lose its novelty and appeal. How do I make it interesting? I needed a story.

    Initially, my writing approach was to ask hard questions about the world: Why are there zombies? Where did they come from? Why is the wizard in a zombie infested graveyard? What's going through the wizards mind? What was his life like? What was his past?

    So, I tried to find answers which made sense, given that you're just some red cloaked dude in a wizard hat, slinging fireballs at zombies. The first version of the game and story was embarrassingly bad. The synopsis of the story: "You were a wizard whose wife had died, and you were searching for a way to bring her back to life because you missed her. So, you casted a spell promising to bring her back to life via resurrection, but instead, it just reanimated her and turned her into a zombie. The spell worked so well, that it also brought all of the corpses in the nearby graveyard to life as well! Your undead wife flees to the graveyard, so you have to defeat infinite waves of undead zombies. After a while, you face a big boss monster who was behind it all!"

    As far as stories go, that was pretty pathetic but also short. I'm a half decent writer with imagination, I know I can do better if I just spent some time to work something out. I needed to ship something playable to people, quickly. I thought that the main map would be my main game play, but it wasn't completed yet and ready for public consumption (it didn't satisfy my quality standards). So, I created an early "prelude" level. I also needed a main menu in VR, and since this is needs to be a seamless experience between game world and game menu, the menu itself can't be a static 2D screen like you'd have in traditional 2D games -- the menu itself had to be a level which you interact with. I was ruminating on story in the back of my mind for a while at this point, and I decided that I eventually wanted to have five wizards, each from a different school and theme of magic, each with unique story lines. My game universe was growing in complexity.

    But, I can't focus on developing the story. I need to ship as soon as possible to get something playable out there! I had chosen the "Red Wizard" as the first school of magic and theme to focus on. I didn't know what the story would really be, but I had written a really rough outline which served as a rough map on where I wanted to go with the plot. I would come back to the story much later and flesh it out, but for now, I just needed to create the prelude story and introduce players to the game universe and introduce a character or two. I wrote the prelude story in a day, polished the dialogue, and kept it somewhat vague, but also left a cliff hanger as a lead in for the main story. Then I shipped it. Currently, you can still only play the prelude and experience that story, and its short at best, but it shows the story telling model I'm using for VR:
    1. I introduce an illustrated storybook and a narrator reads the first six pages. This serves as an establishing shot / context, and also establishes the narrator.
    2. I fade to black, load the game world, fade in, and the story resumes from the first person perspective. The wizard talks to himself as a way to guide the player on what to do (a bit weird), and the narrator adds story as well, sort of like how a dungeon master would.
    3. At the end of the VR experience, we fade to black and return to the library menu, and resume reading 1-2 illustrated pages as sort of an "epilogue", which can serve as a seamless lead-in for the next story.

    This month, I decided that I was a bit too aimless with my development and I needed to get more focused on shipping the next set of content. Okay, where do I begin? I don't have a level made, no story, barely any functioning spells, no crafting system, etc. What have I been wasting my time on?? Oh right, an AI system with machine learning. I realized that the pragmatic thing to do is stop everything else and focus on fleshing out the story for the red wizard. Once I have the story complete, I'll have a much better idea on the scope of the project, what scenes need to be built, what's important and what's not important, and I can start focusing on actually building my game around the story. This seems like an obviously good idea in hindsight. The story is like my game design document, and if the scope is too big, I can change the story until its achievable. So... I just have to write the story.

    The problem is, I just had a really rough outline on what I think the story should be about. Despite the outline, I actually don't know what the story is. Okay, so how do I figure that out? I just have to start writing. But, I can't just start writing blindly! I need to spend some time crafting the world, the characters, the history, the lore, etc! My approach to writing my story is to write out the very best first draft that I can, as completely as I can. The point is not to have a story ready for production, but to just figure out what the story is. What story am I trying to tell? Why is it interesting? What captures the readers attention and holds it? What can the audience get out of the story? What makes the story emotional? What creates a sense of wonder and amazement? What are the high points and low points of the story? Who are the protagonists? Who are the antagonists? Who are the supporting characters? What is every characters motive? Every character needs to have a flaw to be interesting, so what are the character flaws? How do those flaws get revealed? How does the character flaw play into the story? How does the story begin? What's the problem the characters are trying to solve? What's the struggle? How do the characters overcome the problem? How does the character need to grow in order to overcome the problem? How does the problem get resolved? How does the character feel about the resolution(s)? How does the audience feel about the resolution? How do we set ourselves up for introducing the next episode? Oh, and by the way, all of this has to be done in VR so we have to assume that the protagonist has total agency over decisions made, so story has to account for that.

    It's a bit of an overwhelming puzzle to work out. 

    It's extremely important to note that since my game is going to be story driven, where the story either makes or breaks the final result, I cannot afford to half heartedly write a mediocre story. I have to write the greatest story I'm capable of writing. My game depends on it. The future of my one man company depends on it. My income depends on it. The story is the backbone. It's my secret sauce. My secret weapon. It's going to be what makes it a "must have" for every VR gamers library. And it can't just be a story which was shoved into a VR game, it has to be a story built from the ground up, specifically for VR, to make use of the unique story telling capabilities VR offers. So, I cannot just write out a first draft, call it good, and move forward with production. If it takes two weeks or two months to get the story perfect, then so be it.

    So, I'm thinking that I'm a bit of a novice when it comes to story writing. I have never published a novel. Never wrote a screen play. Never wrote a story for a game. At best, I've written a few short stories for a community college class. But, I have good story ideas, damnit! That's my stubbornness and ego peeking through, insisting that despite my lack of experience, I'm more qualified than anyone else to be the one who writes the story. How do I account for my lack of experience with "officially" not being published? I say, "It doesn't matter, I don't care, fuck it, I will just have to write 20 drafts to be on par with a professional." I think that's the right intuition though: Write 20 drafts of the same story. The first few drafts are going to be exploratory. You don't know what the story is until you've written it. You don't know who the characters are yet. You don't know their motives. The first version of the story is just a congealing of the oatmeal, where you bring it all together and sort of figure out what the real story is. This is where you answer all of the questions I listed above. You might need to write several versions of the story. Think of each version as sort of like a parallel universe, where each version can explore different possibilities in plot development. Eventually, you'll find that you're drawn to certain plot highlights and themes more strongly than others, and those become your story.

    At this point, you have written your story about 3-5 times. You're familiar with it, but not intimately. Now, the story becomes more like sheet music to you (the author), and it's a bit of an unfamiliar song. You can kind of play the notes and create a semblance of what the song sounds like, but it's rough and spotty. You know what notes you need to hit and when, so the only way to properly hit those notes is to practice, practice, practice. This means you're going to be rewriting your story, over and over again, each time getting more and more familiar with the plot. There isn't a fixed number of times you need to rewrite the story, but you'll know when you've written the final version: It'll flow like beautiful music off the paper, wrapping the reader in a warm hug before fleeting away. The reader will be embraced in a feeling of warmth and happiness for a moment, and then left wanting more, more, more. You've now got a page turner. A novel people can't put down. A movie which demands your attention. A game people can't stop. What happens next?! ...Turn the page to find out!

    I was recently encouraged by a blog article I read on the writing process of William Shakespeare. Most people think that his writings was pure genius, written from divine inspiration, and it just flowed to him easily via unnatural talent. Historical records of his writings show that actually... he wrote many, many revisions of his plays over the years. Even Shakespeare wasn't some savant writer who wrote perfect first drafts, and he's considered to be the best writer in the history of the English language.

    But I realized that I can't just start writing successively better iterations of the same story. There's SO much more to the story world than what people read on the pages. You know how when you pick up some fantasy books, and on the first page they have a map of the world, with kingdoms, city names, mountain ranges, rivers, oceans, and all of that stuff laid out? There is a whole story universe which the story events are set within! Each kingdom may have different politics. Different cultural customs. Different building construction aesthetics. Different values. Those background differences will and should make an impact on the story as its being told! Is slavery legal in one kingdom but not another? How does the climate affect clothing and customs? How does a traveler from one kingdom deal with the differences in culture in another? Is it a source of character conflict? What are the motives of each kingdom and its political leadership? What is the history which shaped the current state of the world? How does the past factor into any current conflicts? There's a LOT more investigatory questions to ask, but you get the idea.

    I realized that this narrative background stuff is very important to establish! It is literally the foundation upon which your story rests. The presence of this background scaffolding may never actually manifest in your story directly, but it is the world which contains your narrative events. If you don't build the world, your story doesn't rest on anything solid and it will be very wishy washy. So, before I started earnestly writing my actual story, I spent a lot of time writing about the world and its history. When you read my story, you are only experiencing 10% of the universe/work. The other 90% was scaffolding which was put into place, and then stripped away when it was no longer needed. People will just see the finished product and think, "Oh wow, this looks easy. I bet they just started writing from pure inspiration!", but that illusion is so far from the truth of the underlying writing process.

    I spent nearly a week just writing scaffolding background material. What are all the races? What are they like? What are their values? What institutions exist in the world? What is the history of the institutions? What is the common sentiment in the kingdoms? What landmarks exist? Why are they important? What creatures exist? What's their lore and background? etc. etc.
    You know what? I'm glad I did this. It created a nice background framework for me to work within. I, the writer, know everything about the Academy of Magic, who's really running it, where it's located, and its deep history, but the reader gets to discover little tidbits about this institution and they can gradually put it together like a puzzle. At the end, the reader may not know everything there was to know about the Academy of Magic, but maybe there will be more content later which brings those interesting details to the surface?

    Just think about it: How much did you know about Hogwarts after the first Harry Potter book? How much did you really know about Luke Skywalker after only watching Episode IV: A new hope? And after you experienced all of the content and had a better understanding of the world, and then watched it again, how much more sense did the actions of the characters make when you understood the background context?

    Anyways, I'd like to share with you a few select pieces of narrative content I've worked on recently. Keep in mind, all of this is first draft material, so there's a high likelihood that the 20th version will be very different:

    ~~STORY BOOK OPENS~~
    Page 1:
    [Narrator]:
    “The legend of Rupert the Red… goes something like this”
    [Narrator]: “Over three thousand years ago, there was a grand battle between magicians of ages past. They nearly ruined the world, but instead, they set civilization back by thousands of years.”
    *Picture of wizards at war, volcanoes exploding, land tearing up, red sky*

    Page 2:
    [Narrator]: “The kings of old, never forgot the calamity. They unanimously decreed that henceforth…”
    [Kings voice]: “all magic must be banned. Those caught practicing sorcery, shall be put to death!”
    *Picture of kings sitting around a round table, one king is standing and leaning forward with a raised fist, addressing the other kings*

    Page 3:
    [Narrator]: And kingdoms across the lands, knew peace... With the exception of magicians.
    [Angry crowd]: “Burn the witches! Burn them all!”
    [Narrator]: “But while magicians and sorcerers can be hunted and killed, magic itself can never be extinguished. What the kings of old didn’t quite understand, is that magic itself is a gift bestowed upon mortals by the gods themselves. Oh, how they tried to kill magic though.”
    *Picture of an angry mob with torches and pitchforks, surrounding posts with silhouettes of people tied to them, as a massive fire burns them*

    Page 4:
    [Narrator]:
    The gift of magic was a sliver of the gods themselves, given to mortals to fight against darkness. When darkness came again, the kingdoms were defenseless and fell like wheat to the scythe.
    [People] : *anguished screams of terror*
    [Monsters] : *roaring, gnashing and slashing*
    *Picture of men, women and children being chased and killed by demon spawn. Sky is red, filled with smoke. The face of a grinning devil can be faintly seen in the clouds*
     

    Page 5:
    [Narrator]: A few sorcerers who had evaded the murderous clutches of men, stood united against darkness and sealed it away at heavy cost.
    [Magician Group]: Chanting in unison
    *Picture: 5 men and women, holding hands in a circle, with red, blue, white, black and green magical flame pillars, and connected lines of magical color in a star pentagram shape. In the center, stands an old man (Sassafras).

    Page 6:
    [Narrator]:
    The kingdoms were safe again, but the kings… they blamed the magicians for their destruction.
    *Picture of a group of soldiers nailing wanted posters to lamp posts*
    (Hammering sounds)

    Page 7:
    [Narrator]: A young boy, with the reddest hair you’d ever see, was born to a pair of humble farmers living on the edge of the Black Forest.
    [Baby] : Crying sounds
    *Picture of a crying baby being held in the arms of a mother, with a red shock of hair on its head*

    Page 8:
    [Narrator]:
    His father named him “Rupert”. The boy grew up, as all young boys do, and trouble followed naturally, as it does with all young boys.
    *Squealing pig noises and boyish laughing sounds*
    *Picture of a young freckle faced farm boy with a pot on his head, chasing a terrified pig with a stick*

    Page 9:
    [Narrator] :
    But, as fate would have it, the natural troubles of boyhood soon turned into supernatural troubles which only followed Rupert.
    *burning house & inferno sounds, screams*
    [Narrator] : Rupert was a magician. The villagers were afraid and angry.
    [Villagers]: “Rupert is cursed! He’s a witch! Burn him!”

    Page 10:
    [Narrator]:
    Rupert ran, and he ran, and he ran, deep into the black forest. The village hunters eventually gave up.
    (picture of rupert hiding under a stump while a dog search party with torches looks for him in the distance)
    *barking sounds in the distance*

     

    Page 11:

    [Narrator]: Rupert wandered through the forest for days, getting hungrier and hungrier. He stumbled on an old, broken tower of mossy stone, and made it his home. He lived on bark and berries.
    *picture of a young boy trying to eat bark in a forest, with teeth almost breaking against it*


    Page 12:
    [Narrator]: He lived for years, completely alone, terrified of the supernatural troubles which seemed to follow him everywhere.
    [Narrator]: Last night, Rupert discovered a book as old as time: The lost book of Sassafras. He was about to change the course of history -- FOREVER.
    *Picture of Rupert sleeping soundly on his back, with drool coming out of his mouth. A black crow with red eyes watches.*
    Snoring noises, followed by “Caw, caw! Caw!” from the crow.

    ~~FADE TO BLACK FROM STORYBOOK MODE, FADE INTO GAME VIEW~~

     

    Note: Cawlin has somewhat of a German accent.

    [First morning, wake up]

    Rupert is sleeping in his bed after his late night journey into the undead infested crypts. He has been sleeping restfully for 11 hours and it is now nearly noon. An impatient crow stands at the foot of his bed.

    RR: "ZZZzzzz...ZZZzzz...huuuurffffgll, guuurffflllghh..." (deep snoring)

    Cawlin: "Cawww... Cawww... Cawkadoodlydoo! Wake up, you!"

    RR: "ZZZz---huh? Who said that?! Who's there?!"
    Rupert awakens slowly, the VR camera opens eyelids slowly, blinking awake. The player is looking down the foot of the bed at the crow.

    Cawlin: "Caww.."

    RR: "Oh… it’s just a stupid bird."

    Bird cocks it head to the side in curiosity.

    Cawlin: "Caww?"

    RR: "Oh, just listen to me. I'm already going mad -- first it starts with talking to the birds, then its rocks and then its trees."

    Cawlin: "Caw!"

    RR: "Say now, how did you manage to get in here? I didn't leave a window or door open last night, did I?"

    Cawlin: "Caw… Caw..."


    We wait for the player to get out of bed. They can either click the bed or walk out of the bed zone. Once they move out, we quickly fade to black and fade back in, to the wizard standing at the bedside.

    RR: "If I'm going to be a raving madman talking to bird brains, you must ... have a name... I shall call you..."

    Cawlin: "Caw... Cawlin."

    RR: "...Cawlin."

    Cawlin: "Caw! It's about time you got up, it’s well past noon! And just who might yewwwww be??"

    RR: "What?! A talking bird?! Now, I've certainly gone mad!"

    Cawlin: "Yes, yes, you’re a certified loon and I’m a crow.” (rolls eyes)

    Cawlin: “Now that we’ve gotten that out of the way, who are you?"

    RR: "Well...I'm Rupert!”

    Cawlin: "RRRrrrrupert… what is it that you’re doing in these woods?"

    RR: "This is my home! I live here."

    Cawlin: "Ho… how unusual... a huuuuman living in the black forest..."

    RR: "Unusual? ...Why?"
    Cawlin: “Humans haven’t ventured into the black forest for centuries. Those that do… never come out alive. There’s something… peck-uliar about you Rupert… What ees it?”

    *Rupert feels afraid for a moment because his secret about being magical might be given up*
    RR:
    “I… I don’t know what you’re talking about.”

    Cawlin: “No, there’s definitely something about you…. I can… smell eet… ah, there eet ees again! You’re… magical!”

    RR: “...Magical? I don’t believe in magic...”

    Cawlin: “You fool! Here you are, speaking with a talking bird, and you don’t believe in magic? I watched you last night as you rrrRRrroasted the walking dead with fi-yar.”

    RR: “Wait, you were there? You saw that?! It was real?!”

    Cawlin: “Of course I was... I had been waiting for you... all night! Quite the pyrrrrrotechic display, if I might say.”

    RR: “I still can’t quite believe what I saw. I almost thought it was just a bad dream -- I just -- haven’t been sleeping well lately.”

    Cawlin: “Yes, yes, it was all real. No matter! … Eet has come to my attention… that you have acquired a certain… book.” (pronounced almost like “buch”)

    RR: “Yeah, it was a really weird book… I heard it speak! A strange voice called out to me.”

    (Cawlin jumps up and down in excitement, flapping his wings)
    Cawlin:
    “Ah… do you know what you’ve found? Theees ees sooo exciting! You’ve finally found eet!”

    RR: “Ehh… what?”

    Cawlin: “The buch! The long lost book of Sassafraaaaaas! …. Eets verrry special to me. I must see it!”

    RR:What’s so special about this book?”

    Cawlin: “Oh, eet ees only the most powerful buch of magic in the heestory of the world! It has been lost for thousands of years, but lost eet ees no more! You have eet! Eet is very special.”

    Cawlin: "Thees book, you know, it doesn't just get found by anyone. It... choooooses... Yes, that's the right word.. The book chooses ... who it uses. Many wizards think they use books, but never does it occur to them that the book uses them! Sassafras was it's last chosen wizard, and that was thousands of years ago! And last night, it seems to have chosen… RRRrrrrrrupert. Now, ...Why did it choose rupert?!"

    RR: "I don't know! I barely know anything about magic.”

    Cawlin: “The book must have it’s own reasons… muahahahaha”

    RR: "So, what now?"

    Cawlin: “We must read the magic buch, of course! Let’s go find eet!”

    Cawlin jumps onto the left shoulder of Rupert. There is no further dialogue until the player goes downstairs.

    A large book sits prominently on a table next to the door. It is sparkling and glowing, softly illuminating the darkness with red light.
    Cawlin:
    “Oh… there eet ees! ...thees ees so wonderful. I can feel eet… so close… yet so far.” (said in a deeper ominous voice)


    Cawlin flies from the wizards shoulder to go over to look at the book on the table. This helps direct the players attention.
    RR:
    “oooh...kay…” (said in the tone of, “who is this bird?”)

    Cawlin: “Open eet! Let’s see what secrets eet contains!”
    We wait for the wizard to use the book. When he uses it for the first time, the book opens and a bunch of green energy swirls from the book to the wizard. Upon the pages of the book is nothing but symbols and gibberish.

    RR:
    “What was that?!”

    Cawlin: “I don’t know. Magic maybe? Who cares, read the book!”

    Cawlin: “Well? What does eet say? What do you see?”

    RR: “It’s just a bunch of symbols and gibberish. I can’t read any of this!”

    Cawlin: “What?! Oh no...I hadn’t counted on thees. Why did eet have to be him? ... Why?”

    RR: “What? What do you mean?”

    Cawlin: “You… you don’t actually know magic. Not yet, at least.”

    RR: “I don’t? How is that possible? I was just throwing fireballs last night.”

    Cawlin: “Ahem… yes… you’re welcome for thee assistance.”

    RR: “Uh… what?”

    Cawlin: “That fire essence you used last night… I put eet there for you. Eet was just a temporary conduit for your latent magics… You don’t *actually* know how to use magic yet...”

    RR: "Okay, so what? How do I read this book?"

    Cawlin: "I don’t know. I’m just a bird, I can’t read!"

    RR: So… then this book is useless to both of us.”

    Cawlin: “Maybe you can find a clue which could help us?”

    Cawlin flies back onto the left shoulder of the wizard.

    When the player walks away from the spellbook, it disintegrates in a puff of green particles.
    RR:
    “What happened to the book?! Where did it go?”

    Cawlin: “Oh… amazing! …Eet’s bound to your magical spirit. Eet ees always with you!”

    RR: “I don’t understand.”

    Cawlin: “The buch! You can call eet back at any time, and you will never lose eet! Try it now… Just focus on a hand, imagine the book in it, press your fingers inward…”

    We wait for the player to press the book button on the motion controller. When they do, we spawn the book in that hand in a shower of green magical glitter.

    Cawlin:
    “...and poof! There eet is! What an extraordinary book!”
    The book is turned to the first page, and as we look at it, some of the symbols transform into letters and words.

    RR: “Well -- I suppose, but again, what use is a book I can’t lose if I can’t read it?”

    Cawlin: “Well, It’s a magic book, and magic itself is composed of symbols or something like that -- don’t ask me, I’m just a stupid bird -- but I’m sure there’s some way you can figure out how to read those symbols? Yes? Let’s open eet and see what clues we can find!”

    The wizard opens the book, and on the very first page is a small set of instructions on its use, written in a poetic style:

    1. It’s an empty book

    2. It stores the spells a wizard learns

    3. It has a few left over runes from Sassafras

     

    Cawlin: “Oh, dear! The years just haven’t been kind to the pages of parchment. Even magic itself can’t protect its pages from the sands of time forever… Oh, no… oh, woe… it seems, knowledge… it has all been lost. Whatever will I do now?”


    RR: “Uh… you make less and less sense by the minute. You seem to know more than you’re letting on, so tell me bird, what do you know about magic and this book?”

    Cawlin: “Ehe. Well. ahem… Magic is just a tool used by mortals -- I mean, men… and eet can be used for evil or good. It just depends on the contents of the heart of the magician. Good magicians, naturally choose good magics, while evil magicians will choose… so called “evil” magics.” (Cawlin says “good” with disgust, and “evil” with affection)

    RR: “So what? How does that help us?”

    Cawlin: “One thing you must understand about magic, is that eet is composed of magical words and symbols. Without the proper words of a spell, there simply is no magic! So, men with the talent for magic, would often work very hard to find the proper symbols for magical spells. Sometimes, these… experiments, would go… very wrong! And they’d explode. Or turn into toads. Or become green for a day or two. Either way, playing with unknown magic is… dangerous.”

     

    Cawlin: “Once a good sequence of magical words have been found, the magicians would write them down in their spell books. Then, they could say the magic words at any time, and… POOF! The spell would just happen!”

    RR: “Just like that? It doesn’t sound so bad!”

    Cawlin: “Well, it’s not quite so easy… There are lots of symbols to choose from, and just as important as the symbol itself, is the color of the symbol! Without the right rrrrecipe, you might be using the right words but never actually working the magic.”

    RR: “So… magic words, magic orders, magic colors… why does it have to be so complicated?!”

    Cawlin: *chuckles* “heee heee hee, you’re barely even a novice. Of course it seems difficult for you now, but in the hands of a master magician, magic can be wielded to shape worlds...and… make fooooood. Like… delicious corn! Let us start there -- you haven’t had breakfast yet, have you?”

    RR: “I was just going to step out of the house to nibble on some delicious tree bark for breakfast…”

    Cawlin: “You -- with your talent for magic -- have been eating bark this whole time?! Unbelievable! It’s time to change that. Fortunately for you, and my oh, so generous mood this morning, I happen to have found a few symbols of magic.”

    RR: “What? You’ve been holding out on me. Why didn’t you say so sooner!”

    Cawlin: “Well, they won’t do you much good unless you know how to scribe them into a proper spell.”

    RR: “Where do I begin?”

    Cawlin: “First, we must go forage the forest for ingredients with magical properties. The first thing we’d like to collect, is a red pepper. Let’s go find some.”

    Rupert and Cawlin go wandering through the forest until they find a red pepper growing on a bush.

    Cawlin:
    “There! Right over there! A red pepper!”

    Rupert picks the red pepper.
    RR:
    “Okay, I’ve got the red pepper. Now what?”


    Cawlin: “The red pepper has the essense of red magic! That’s why it burns your mouth when you eat it. We must extract this magical essence and use it to write your first spell. Let’s go back home.”

    Rupert and Cawlin return to the mossy tower.

    Cawlin:
    “Everything has a bit of magic in eet. It is the job of the alchemist to extract this magic and brew bottles of magical extract. Many mortals don’t rrrrealize what they’re actually doing, but they treat these magical extracts as ‘medicines’, but it’s actually magic at work. A brewed potion has potency, depending on the skill of the alchemist and the ingredients used.”

    RR: “I’ve never brewed a potion. Where do I begin?”

    Cawlin: “Well, you don’t really have a prrrrroper alchemist work bench, so we’ll just have to use the most rrrrrrudimentary tools available to extract the magical essence from the red pepper. You must crush the red pepper between some rocks, and you’ll get a little bit of red magic essense. Try it now.”

    Rupert places the red pepper on a slab of rock and smashes it with a rock. A few seconds later, small vial of red liquid emerges.

    Cawlin:
    “You did it! A vial of red magic!”

    RR: “How do I use this?”

    Cawlin: “If you drank it, it would burn your mouth and upset your stomach, but we’re going to use it as ink to write magic symbols. Let’s go to your test chamber… Oh... you don’t have one. Well, that table will have to do then...”

    When Rupert approaches the table:
    Cawlin:
    “Fortunately, I happen to know two magical symbols -- ‘Li’ and ‘Tu’. We can write them down on a magical parchment, in any order and with any ink, and if the symbols match a spell, you’ll be able to save it in your magic book and cast it any time.”

    Cawlin: “To begin, grab a parchment and a quill!”

    Rupert performs a “use” action on parchment paper. The spell crafting UI pops up on parchment.

    Cawlin:
    “You’re barely even a novice, so you can only discover spells with two magical symbols. Later, you can cast much more complicated spells. Let’s begin with novice level magic.”

    Cawlin: “You don’t have a lot of parchment to work with, so you’ll need to find a spell quickly. To begin, select a symbol slot with your quill…”

    Rupert places his quill on a slot icon and a dialogue window pops up.

    Cawlin:
    “You only have a red magic essence, so choose that as your ink. Then, pick a symbol to write in this slot.”

    Rupert chooses a symbol (either “Tu” or “Li”) and writes it into the slot. After the symbol has been picked, it is written into the slot.

    Cawlin:
    “See? Even a novice can do this! Next symbol!”

    Rupert repeats the same process for the second symbol.

    RR:
    “Now, I’ve got two red symbols written down. Now what?”

    Cawlin: “Now, you try to cast these words! It’s already in your hand, so just give it a throw and see what happens…. I will just fly over here… and stay well out of the way...”

    Rupert throws the current magic spell. It either creates a magic spell (if correct), fizzles out, or creates a magical disaster. (Let’s assume it fizzles out)

    RR:
    “What? Nothing happened!”

    Cawlin: “You’re spell fizzled. Consider yourself lucky! That combination of symbols and ink was not a spell, let’s try again.”
    Rupert uses the parchment again.

    Cawlin:
    “This parchment is magical! As you can see, you got the right symbols and right color, but in the wrong order. Now, we can try a different sequence.”

    Rupert keeps trying out different symbols, until he writes out “Tu-Li” in red ink. When he gets this sequence:
    Cawlin:
    “You did it! You created your first spell! This is so exciting… I remember now! Tu-Li is fire, but your TuLi is very weak because you used a red ink with low magical potency. However, this spell is now saved in your spell book!”

    RR: “So, I can fling these little fire darts at any time now?”

    Cawlin: “Yes… you’ve begun the journey of a magician! You can find more symbols to discover other spells, and brew more potent potions to create stronger spells.”

    RR: “Wait a minute… my essence of red magic is gone! Did you steal it from me?!”

    Cawlin: “Relax yourself, Rupert! Whether you fail or discover a spell, the used ink is consumed. Magicians are always scavenging for ingredients to brew -- you magicians are scavengers, just like me!”

    RR: “Now what?”

    Cawlin: “Well, I must go. I smell a dead racoon down by the lake, and I’m absolutely starving. As for you? I saw an abandoned ruin this morning, but it was too dark and scary for me. Maybe your fire could shed some light on the situation? Or perhaps, you can find other ingredients?”

    RR: “You’re leaving me?!”

    Cawlin: “I’m getting rather...peckish. I’ll be back... Muahahaha!”

    Cawlin flies away and the wizard is left alone. There’s not much to do, other than hunt for ingredients or check out the abandoned ruin. At this point, we spawn clovers, blueberries, red peppers, orchids, and black lotus flowers. These are collectible ingredients which can be ground up and turned into vials. We also unlock the ancient ruins and make it accessible. Within the ruins is a new magic symbol which can be learned and a mortar and pestle. The player can summon a small flame to light their way through the darkness. There is a section of the ruin which is sealed off with a heavy door and some other strange symbols of magic. When the player emerges from the ancient ruin, the day has turned to evening.

    RR:
    “Wow, it’s evening already?”
    RR: “It’s getting late, I’d better get home before the forest monsters come out!”

    When it’s dark, we start playing large monster noises in the distant forest, mixed with snorting noises (like a sniffing pig), and something large crashing through undergrowth.
    RR:
    “There’s something out there… it’s hunting me!”
     

    Rupert returns to his wizard house. He’s tired and ready for bed.
    RR:
    “Whew, safely home at last. I need to get some sleep.”
    We wait for Rupert to go to sleep OR until it is 2AM in game time. Either way, we fade to black and we begin to hear snoring noises.

    • 1
      entry
    • 0
      comments
    • 101
      views

    Recent Entries

    Recently I've been brainstorming a new game which takes players into a fantasy world with dwarfs and goblins. Within this world, dwarfs and goblins have declared a war against each other. Goblins have stolen some ancient dwarf artifacts and in a countermeasure dwarfs have captured the goblin prince as a prisoner. Artifacts give goblins some supernatural crafting skills while the goblin prince provides some dark magic to dwarfs. In summary, both races have a bit of both skills at their sides.

    The game itself will contain elements where n-amount of players are divided into dwarfs and goblins. These races take turns where they act either in a role of an attacker or defender. Game maps (i.e. game rounds) are divided into areas which must be captures by an attacking team. When other race is attacking, the other acts as a defender. Attackers win the map if they can capture all map areas from the defenders, while defenders may win if they manage to defend any of the areas until n-amount of time has passed. This is quite identical with the idea behind the original Plants vs. Zombies - Garden Warfare.

    In the game, both of the races would contain n-amount of different classes that can be used to tailor the gameplay experience to fit for the players own play style. There could be slow and heavy bruisers, which could be contrasted with light and fast rogues. I'm not still sure how many different classes I'm willing to take in. Perhaps it would be good to have at least one bruiser, one rogue and at least one class somewhere between those two. Well see as the idea evolves.

    I've been also thinking that the game would contain some additional material(s) that could be used to build some support systems like siege or extra-defense structures. Each map would contain only x-amount of these special materials so the amount of siege power or the cover from the extra-defenses could be easily controlled. However, their usage would act as minor feature in the game.

    There are also three major keywords that I'm going to take my bullet points.

    • User friendly
    • Linearity
    • Along with a twist

    I'll try to open up this idea in a more detail in my next post.

    Thanks for reading!

    • 1
      entry
    • 0
      comments
    • 62
      views

    Recent Entries

    Hi, Nightkeep is my spare time hobby project that I am working on 2nd year. Game still lacks in animation and I also need to add more variety of attack and polish mechanics a bit more. As it is hobby, I am trying to improve the project over the time. I am not native English speaker, so I have a translator who translates in-game texts from its original language, Czech.

    It's 2D fanatasy RPG platformer based in its own fairy-tale like world.

    shuffle2.png

  16. Are you thinking of strategies to engage your users more or to retain more users? Are they working? Let’s perform a reality check.

    With so many apps coming up on the market, the smartphones cannot tackle all apps for the user. A thus faces cutthroat competition today and needs to think of strategies to acquire new users for your app and engage them as well as to retain your existing users. The chances are that a user may find your app cool and install it but delete it if it is not engaging enough for them. Also, constant notifications for updating the app may make it more challenging to use in the mobile and irritate the users if they do not use your app.

    Statistics of app installation, retention, and engagement rates

    Statistics have shown that after installing an average Android app, 77% users abandon it within the first three days and 90% within the first 30 days. It has also been observed that nearly 22% of the installed apps are never used more than once. Thus, though acquisition tactics are very crucial in the early stages, engagement and retention are needed in the long term for continuing a successful business.

    images.jpg.e573923d2c6981377486e9f8ae6dee37.jpg

    Most common reasons for low retention and engagement of a mobile app

    The most common reasons that push off a potential customer are the lengthy sign-up process and its demanding requirements, too many bugs and errors, slow performance, too frequent crashes, too many adds, free alternatives for the paid app, etc.

    However, using certain strategies, you can engage and retain the users and add value to your app business. Here are the key strategies you need to retain and engage your mobile app users.

    Strategy #1: Understand customer lifecycle

    The customer lifecycle plays a very important role in building trustful relations with customers. Neither is the customer lifecycle a straight line nor is it about a single purchase. Users may make a purchase from your app and disappear if you don’t provide them with attractive offers. You can build user engagement with your app in stages that form part of the user lifecycle. Your users may be loyal (strongly engaging with your app and supporting your monetization campaigns), active (regularly engaging with your app), lapsing (becoming less active and less interested in your app), or inactive (showing no visits, actions, and response). Using various internet tools or devising your tools that fit your business goals, you can segment these users to understand the suitable time for engaging or re-engaging users to maximize the output of your marketing efforts.

    Strategy #2: Create the best first impression

    The internet savvy users today are usually well experienced and cynical. It is quite challenging to surprise them with your app. However, the first impression of your app determines user loyalty. So you should make the greatest impact on the first encounter with your users by providing flawless app performance, full control over the app settings, bug-free and updated app, safety and security to create the best possible user experience.

    Strategy #3: Make speed a top-priority feature

    For attracting the attention of your potential customers, you need to create a strong impact within the first 10 seconds and help the customer decide to stay with you or leave. You can acquire a loyal customer by ensuring an error-free initial app experience. The user may abandon the app right away if the app takes too long to load or gives an error on initial install.

    Strategy #4: Use analytic tools to monitor the initial performance of your app continuously

    Capture the attention and engage app users initially by making registration easier, launching an easy and engaging onboarding process for new users, making social media sharing easy, letting push notifications be optional, providing rewards to users for sharing personal data and completing their profile, offering personal recommendations on the app to save the customer’s time. All these feature help captivate the user.

    Strategy #5: Provide super-personalized deals and free trials

    Users love freebies, discounts, and best deals. If you contact customers in a personalized manner by making exclusive and attractive offers based on user preferences or introduce free trials, users are more likely to stick to the brand.

    Strategy #6: Launch seasonal promotion campaigns

    To attract customer attention and loyalty promotion campaigns are the most effective during certain periods in the year when you gain the most revenue. These seasonal campaigns include special discounts, and limited edition offers or items.

    Strategy #7: Induct gamification

    Building a gaming strategy helps bring value to customers and motivates them to interact with your brand. A close look at the preferences and lifestyle of your users enables you to build gaming campaigns that strongly engage users. You can run competitions and encourage personal wins. Allow easy sharing of personal wins on social media.

    Strategy #8: Measure and analyse the outputs

    All efforts you put to make your mobile app engaging need to be measured and from the results. Certain metrics need to be applied for measuring engagement based on the most important indicators of user engagement depending on your industry and vertical. DAU (daily active users), MAU (monthly active users), stickiness (DAU / MAU, %), session length, retention rate (number of users using the app in a set period / number of users using the app in a previous period), average revenue per user (ARPU, total revenue earned in a specific period / number of active users in the same period), are some of the important metrics that should be analysed as per your business needs.

    Strategy #9: Explain why your app is expensive (if it is)

    You may come to know that your competitors are offering the same solutions either free or at a lower price and this is making users delete your app. You have either an alternative to lower the price or conduct a detailed research by installing their app and testing it thoroughly to find how your features are different or can be made different to justify its value to the users. Emphasise those points in the app’s advertisement to tell the users how your app is worth the money.

    To conclude
    The success of any app developed by a mobile app development company is determined not only in proper app advertising but also hoe ‘sticky’ is it for the users. You need to know your user’s preferences and segment them accordingly and target to engage them in getting maximum profit from your app. In today’s saturated market, you can get a competitive edge by building sophisticated and personalized engagement marketing campaigns.

     

  17.  

    Once again we are celebrating Christmas, the time of sharing and giving. We know the Christmas season is very fond to us all. We have set up a sale to celebrate this time of joy with a specific goal.

    The goal amount covers the costs of upgrading our company up to the level required by Steam. Thus, we would be eligible to submit our games (including The Balcony) on Steam.

    Thank you for contributing. Merry Christmas and a Happy New Year!

    Store link: https://holotna.itch.io/the-balcony