Blogs

Featured Entries

  • Android Build and Performance

    By lawnjelly

    In the last few weeks I've been focusing on getting the Android build of my jungle game working and tested. Last time I did this I was working from Windows, but now I've totally migrated to Linux I wasn't sure how easily everything would go. In the end, it turns out that support for Linux is great, in fact it was easier than getting things up and running on Windows, no special drivers needed. Definitely Android studio and particularly the emulators seem to be better than last time, with x86 emulators running near native speed, and much quicker APK uploads to the emulators (although still slow to the devices, I gather I can increase this by updating them to high Android version but then less good for testing). My devices I have at home are an old Cat B15 phone, 800x480 with a GPU that seems to date from 2006(!), a Nexus 7 2012 tablet, and finally an Amlogic S905X TV media player (2017).  Funnily enough the TV box has been the most involved to get working. CPU issues My first issue to contend with was I got a 'SIGBUS illegal alignment' error when running on the phone. After tracking it down, it turns out the particular Arm CPU is very picky about the alignment of data. It is usually good practice to keep structures aligned well, but the x86 is very forgiving, and I use quite a few structs #pragma packed to 1 byte, particularly in serialization. Some padding in the structures sorted this. Next I had spent many hours trying to figure out a strange bug whereby the object lighting worked fine on emulators, but looked wrong on the device. I had a suspicion it was a signed / unsigned issue in values for diffuse light in a shader input, but I couldn't see anything wrong with the code. Almost unbelievably, when I tracked it down, it turned there wasn't anything wrong with the code. The problem was that on the x86 compiler, a 'char' defaults to be a signed char, but on the ARM compiler, 'char' defaults to unsigned!! This is an interesting choice (apparently on the ARM chip the unsigned may be faster) but it goes against the usual convention for short, int etc. It was easy enough to fix by flipping a compiler switch. I guess I should really be using explicit signed / unsigned types. It has always struck me as somewhat wierd that C is so vague with the in-built types, with number of bits and the sign, given that changing these usually gives bugs. GPU issues The biggest problem I tend to have with OpenGL ES devices is the 'precision' specifiers in shaders. You can fill them however you want on the desktop, but it just ignores them and uses high precision. However different devices have different capabilities for lowp, mediump and highp both in vertex and fragment shaders. What would be really helpful if the guys making the emulators / OpenGL ES on the desktop could allow it to emulate the lower precision, allowing us to debug precision on the desktop. Alas no, I couldn't figure out a way to get this to work. It may be impossible using the hardware OpenGL ES, but the emulator also can use SwiftShader so maybe they could implement this? My biggest problems were that my worst performing device for precision was actually my newest, the TV box. It is built for super fast decoding video at high resolution, but the fragment shaders are a minimal 10 bit precision affair, and the fill rate is poor for a 1080P device. This was coupled with the problem I couldn't usb connect up to the desktop for debugging, I literally was compiling an APK, putting it on a usb stick (or dropbox), taking to bedroom, installing, running. This is not ideal and I will look into either seeing if ADB will run over my LAN or getting another low precision device for testing. I won't go into detail on the precision issues, I wrote more on this on a post here:
    https://www.gamedev.net/forums/topic/694188-debugging-precision-issues-in-opengl-es-2 As a quick summary, 10 bits of precision in the fragment shader can lead to sampling error in any maths done there, especially in texture coordinate math. I was able to fix some of my problems by moving the tex coordinate calculations to the vertex shader, which has more precision. Then, it turns out that my TV box (and presumably many such chipsets) support an extra high precision path in the fragment shader, *as long as you don't touch the input data*. This allows them to do accurate uv coords on large texture maps, because they don't use the 10 bit precision. Menus I've written a rudimentary menu system for the game, with tickboxes, sliders and listboxes. This has enabled me to put in a bunch of debugging features I can turn on and off on devices, to try and find out what affects performance, without recompiling. Another trick from my console days is I have put in some simple graphical performance bars. I record the last 60 frames into a circle buffer and store things like the frame duration, and when certain game tasks took place. In my case the big issue is when a 'scroll' event takes place, as I render horizontal and vertical tiles of the landscape as you move about it. In the diagram the blue bar is where a scroll happens, a green bar is where the ground scroll happens, and the red is the frame duration. It doesn't show much on the desktop as the GPU is fast, but on the slow devices I often get a dropped frame on the scrolls, so I am trying to reduce this. I can turn on and off various aspects of the scrolling / rendering to track down what causes performance issues. Certainly PCF shadows are a big ask on mobiles, as is the ground (terrain) shader. On my first incarnation of the game I pre-rendered everything (graphics + shadows) out to a massive texture at loadup and just scrolled through it as you moved. This is great for performance, but unfortunately uses a shedload of memory if you want big maps. And phones don't have lots of memory.
    So a lot of technical effort has gone into writing the scrolling system which redraws the background in horizontal and vertical tiles as you move about. This is much more tricky with an angled landscape than with a top-down 90 degree view, and even more tricky when you have to render shadow maps as you move.
    Having identified the shadow map pass as being a bottleneck, I did some quick calculations for my max map size (approx 16384x16384) and decided that I could probably get away with pre-rendering the shadow map to a 2048x2048 texture. Alright it isn't very high resolution, but it beats turning shadows off completely.
    This is working fine, and avoids a lot of ugly issues from scrolling the shadow map. To render out the shadow map I render a bunch of 256x256 tiles and copy them to the final shadowmap. This fixed some of the slowness, then I realised I could go a step further. Much of the PCF shadows slowdown was from rendering the landscape shadows. The buildings and objects are much rarer so I figured I could pre-render a low-res landscape shadow texture, and use this when scrolling, then only need to do expensive PCF / simple shadows on the static objects, and dynamic objects. This worked a treat, and incidentally solves at a stroke precision issues I was having with the shadow shader on the 10 bit hardware. Joysticks As well as supporting touchscreens and keyboards, I want to support gamepads, so I bought a bluetooth / wireless gamepad for xmas. It works great with the TV box with wireless dongle, unfortunately, the bluetooth doesn't seem to work with my old phone and tablet, or my desktop. So it has been very difficult / impossible to debug to get analog joystick working. And, in an oversight(?) for the emulator, there doesn't seem to be an option for emulating a gamepad. I can get a D pad but I don't think it is analog. So after some stabs in the dark with docs I am still facing gamepad focus issues so will have to wait till I have a suitable device to debug this. That's all for now folks!
    • 2 comments
    • 566 views
  • I Am Overburdened, it’s alive!

    By Spidi

    Hello there! In the big sprint towards publishing this game I forgot to update my blog with a proper release announcement . I had to split myself in millions to actually finish the game and put it out there, but still, silly me how could I forget . Takeaway: I have to prepare better for my next release, but I heard from other developers, that no time is actually “enough” . Released Yes, I Am Overburdened was released at evening (by GMT) on the 2nd of November. It can be bought on Steam and itch.io for 4.99$ and there is a launch-week 20% discount so get it while it’s hot (currently at 3.99$ which may vary based on region)! There is also a tiny extra for my previous customers, call it a “gesture” if you will. On Steam if you bought Operation KREEP before, there is a Magic Item Tech RETRO Bundle to “complete my games” and you get an extra 10% off for I Am Overburdened (sorry itch.io users, I haven’t found a way there to bundle it like this). First day Now that I’m over the big rush for the release and over the first day, I can slowly ease into handling issues and working on updates, fixes and fine-tunings. The first batch of feedback is really positive and I got decent featuring from the press so far, which is awesome. People seem to understand and like the game, many even praise it and are really enthusiastic about its future . This is an awesome feeling! The game is up to a slow start sales wise but it is too early to draw any kind of conclusions (it’s only been a day). Of course I will do that in a few weeks in another blog entry. Fingers crossed . Thank you! Allow me to grab this opportunity to formally say thank you. Thank you for all who followed the development. Thank you for those who supported, helped and encouraged me along the way. Thank you for everyone who contributed, either with tips, suggestions, testing or critique. And thanks for everyone who already bought the game, I hope you all are having a great time ! I’m adding a new screenshot about the inn in the game (pun intended ), because in the last two weeks of development I changed it a bit (added even more stuff to the game ). Thanks for reading, I’ll be back with more stuff soon.
    Take care!
    • 2 comments
    • 1172 views
  • A Windows Store Story

    By Endurion

    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!  
    • 2 comments
    • 672 views
  • Missile Command Challenge

    By Eck

    I caught wind of the Missile Command challenge earlier in the month and figured I'd knock it out during Christmas break. I was planning on coding more on my Car Wars prototype but the challenge took up most of my programming time. Sleeping late, hanging out with my family, and playing video games took up the rest of my free time. All in all, it was a great way to slide into the new year. I spent some effort keeping the code clean (mostly) and even did a couple of hours worth of commenting and code reorganization before zipping up the package. Many sample projects are quick and dirty affairs so aren't really a good learning resource for new programmers. Hopefully my project isn't too bad to look at.   What went right? Switching to Unity a few years ago. This was definitely the right call for me. It helped me land my dream job and allows me to focus on making games rather than coding EVERYTHING from the ground up.  KISS (Keep It Simple Stupid) - I started thinking about doing my own take on Missile Command but decided on doing just a simple clone. The known and limited scope let me keep the project clean and kept development time down to something reasonable. Playing the original at http://my.ign.com/atari/missile-command was a big help for identifying features I wanted. Getting the pixel perfect look of old-school graphics was a little bit tricky, but thanks to a well written article I was able to get sharp edges on my pixels. https://blogs.unity3d.com/2015/06/19/pixel-perfect-2d/ I had done some research on this earlier so I knew this would be a problem I'd have to solve. Or rather see how someone else solved it and implement that.  Using free sounds from freesound.org was a good use of time. There are only 4 sound effects in the game and it only took me an hour or two to find what I felt were the right ones. What went ok? Making UI's in Unity doesn't come naturally to me yet. I just want some simple elements laid out on the screen. Sometimes it goes pretty quickly, other times I'm checking and unchecking checkboxes, dragging stuff around in the heirarchy, and basically banging around on it until it works.  I got the minimal core features of Missile Command, but not all of it. You don't really think about all the details until you start making them. I'm missing cruise missiles, bombers, and the splitting of warheads. Dragging the different sprites into position on the screen was manual and fiddly. There's probably a better way to do this, but it didn't take too long. You can't shoot through explosions, which makes the game a little more challenging. And you can blow up your own cities if you shoot defense warheads too close to them. It was easy enough to fix, but I left it in there. What went wrong? I spent a ton of time getting the pixel perfect stuff right. Playtesting in editor, it was set to Maximize on Play. There wasn't quite enough room to see the full screen so the scale was at 0.97 making the display 97% what it should be and thus, blurred all my sharp edges. I didn't see that setting though... >.< I pulled my hair out trying to see the problem in my math, and even downloaded a free pixel perfect camera which was STILL showing blurry stuff. Finally, I built the game and ran it outside the editor and saw things were just fine. There's also an import setting on sprites for Compression that I cleared to None.  I'm not sure if this second step was necessary. I've been bit by the Editor not being 100% accurate to final game play and wished I would have tried that sooner. I had trouble with the scoring screen. I wanted to put the missiles up on the score line like Missile Command does, but ran into trouble with game sized assets and canvas sized UI elements. After 45 minutes or so I said screw it, and just put a count of the missiles and cities up.  I didn't data drive the game as much as I wanted. The data is in the code itself so users can't mod the game without downloading the source code. I'm also only using one set of colors for the level. If I put any more time into this, I'll probably tackle this issue next, and then worry about the features I missed out on. Final thoughts Working on this project makes me appreciate how awesome the programmers of old really were.  With the tools I have (Unity, Visual Studio, etc.) it took me a couple of weekends. And even then I didn't recreate all the features of the original. I'm including a link to the zipped up project in case anyone wants to see the source code to play around with it. Hopefully someone finds it useful. If so, let me know.  EcksMissileCommand.zip - Executable if you want to play. EcksMissileCommand_Source.zip - The project if you want to mess around with it. Sound Credits freesound.org
    https://freesound.org/people/sharesynth/sounds/344506/ - Explosion.wav
    https://freesound.org/people/sharesynth/sounds/344525/ - LevelStartAlarm.wav
    LevelStartAlarm_Edit.wav - I used Audacity to edit the above sound. I took the first six beeps then faded them to silence.
    https://freesound.org/people/Robinhood76/sounds/273332/ - MissileLaunch.wav
    https://freesound.org/people/sharesynth/sounds/341250/ - ScoreCount.wav
    • 4 comments
    • 797 views
  • Dystopian Lights: Dev Blog #1

    By kostile

    So to start the day I am going to share with you guys how I use touch controls and touch "joysticks" in Dystopian Lights (previously Neon Android) to control movement and crosshair aim. Initially I had a floating joystick system where you would tap and hold in a certain area but the response to that system has been heavily negative, so I have redone the code running the joysticks and with refactoring I have made them static as well as extremely reusable. This code is tested in monogame for android and should work for iOS as well if you are using the mono and the monogame framework. What I wasn't aware of when I wrote my first joysticks, is that monogame has a cool feature for touchlocation IDs that allows for greater control without having to worry about which touch is which, we already know if we assign it an ID on touch. You can view the code and use however you want if you decide you like it. If you have ever used monogame and you look at the scaling in the draw method, you will notice that I multiply the scale by 0.001f. This is because the Primitives.circle texture has a radius of 500. There may be some other oddities in the code, if you do use it and have any questions, don't hesitate to ask. The code is at the end of the blog. So this is one of the updates for the game, as well as a proper title. I have been developing the game under a working title "Neon Android" for quite some time but I have always known that this isn't going to fly as the actual title of the game. Dystopian Lights rang a good bell for me when thinking about how I want the game portrayed. For now it sits as a very similar, almost clone of, Geometry Wars. This is intended for art and play style to some degree, but with many varying factors I think the two games will stand far apart from one another once Dystopian Lights is a finished product. One of the other upcoming changes for the game is the change in the GUI. It has been heavily improved on mobile platforms. Previously the GUI was tiny and fit for a computer, but now it looks okay on Android and you can actually navigate the menus when upgrading your weapons. Also I have changed the buttons for weapon selection to be highlighted when selected so you actually know what's firing without having to pay attention to your projectile.   So from here, the plan is to release an update on my website by this Friday, which will include the changes I have showcased here as well as a few other minor changes. Right now the game is only available on Android and is available for download from my website, https://solumgames.com so please head there if you want to check it out. I will have more Dev Blogs in the future and hope to do a minimum of one a week until the end of the year, when I will release it on the Android app market and then see about working for a PC release. The largest problem I have encountered so far while developing this game is the spawning pattern. If anyone has any recommendations for setting up a spawner that gets infinitely more difficult, please feel free to give your input. I have a system right now that works, but its scaling is terrible and it feels like end game within about 5 minutes. There is some obvious tweaking and balancing that I still need to work out as well, so if anyone trys the game and would enjoy something being different, feel free to let me know what I should change. Some of the ideas I have for the future of the game will be to include a story mode. My thoughts keep going around to scripted spawns, and then some animations with full screen-width chat boxes that show an avatar of the character speaking. There will be at least a few boss fights and some over the top story that would make this game seem like a space opera straight out of the cheesiest movie you have ever seen on the Sci-Fi network. I have also been working out this idea where your player has a capacitor that can only sustain so many weapons for so long. If I do add it, the shot weapon will probably always be available, when you use your missile and laser in tandem with something else, depending on your capacitor recharge rate and max capacitor, you will run out of energy which will cause your capacitor to short and then the only weapon available until it fully recharges will be the shot weapon. Health packs are coming as well. They will be random drops from enemies and they will heal different amounts based on the enemy killed.  So far I am happy to see that I have about 40 downloads of the game just from my website alone. I have not received any feedback from any users of the software that I don't know, so please if you are downloading it, speak up with any critique or recommendations. I would love to hear, the good, the bad, and the ugly.   public class Joystick { private Vector2 outerLocation; private Vector2 innerLocation; private Vector2 direction; private Color innerColor = new Color(0.2f, 0.2f, 0.2f, .5f); private Color outerColor = new Color(.5f, .5f, .5f, .5f); private float innerRadiusRatio; private float outerRadius; private int touchId; public Joystick(Vector2 location, int radius) { outerLocation = location; innerLocation = location; outerRadius = radius; innerRadiusRatio = 0.3f; } public Vector2 Direction { get { return direction; } } public void Update(TouchCollection touchCollection) { foreach (TouchLocation tl in touchCollection) { if (tl.State == TouchLocationState.Pressed) { if (AOneMath.Distance(outerLocation.X, tl.Position.X, outerLocation.Y, tl.Position.Y) <= outerRadius) { touchId = tl.Id; } } if (touchId != tl.Id) { continue; } if (tl.State == TouchLocationState.Moved) { float dirX = tl.Position.X - outerLocation.X; float dirY = tl.Position.Y - outerLocation.Y; direction.X = dirX; direction.Y = dirY; direction.Normalize(); float length = AOneMath.Distance(tl.Position.X, outerLocation.X, tl.Position.Y, outerLocation.Y); if (length > outerRadius - outerRadius * 0.5f) { length = outerRadius - outerRadius * 0.5f; } innerLocation.X = outerLocation.X + direction.X * length; innerLocation.Y = outerLocation.Y + direction.Y * length; } if (tl.State == TouchLocationState.Released) { innerLocation = outerLocation; direction.X = 0; direction.Y = 0; } } } public void Draw(SpriteBatch spriteBatch) { spriteBatch.Draw(Primitives.circle, position: Vector2.Subtract(outerLocation, new Vector2(outerRadius / 2, outerRadius / 2)), scale: new Vector2(outerRadius * 0.001f, outerRadius * 0.001f), color: innerColor); spriteBatch.Draw(Primitives.circle, position: Vector2.Subtract(innerLocation, new Vector2(outerRadius * innerRadiusRatio / 2, outerRadius * innerRadiusRatio / 2)), scale: new Vector2(outerRadius * innerRadiusRatio * 0.001f, outerRadius * innerRadiusRatio * 0.001f), color: outerColor); } }  
    • 0 comments
    • 943 views

Our community blogs

  1. 2018 has already been a busy year. The Gears of Eden team has been hard at work as we prep for our Alpha 2 release. For our art and dev team, that means designing and implementing in-game resources. For our writing team, that means research and planning. But, combined, that means we get the chance to test our cool new toys and show them off for everyone to see.

    To accomplish this, our team recently held our first Gears of Eden Discord Day. In case you don't know, Discord is an app that allows gamedevs to make their own chat servers and share images and info with people who join (here's YOUR invite). We shared our new rover design, talked about influences for the game, explained how this project got started, and streamed the first meeting between our old rover and the new one. Check out the first meeting: https://www.twitch.tv/videos/208097308?t=12m04s

    Since then, the art team has been hard at work on base design and updating our UI. We've gone over quite a few models looking to find the right fit for our game. Because the bases are to be used by rovers, and modular (read expandable!), we decided that design must be functional rather than just aesthetically pleasing.

    GearsOfEden_SmallBase_Form-Langu.thumb.jpg.c80456b2dc2e538cf3b0dc9d51e7b26f.jpg

    The images above were just a few samples that we reviewed, and we are getting closer and closer to deciding what the base design will be for Alpha 2. Based on these images, our team was able to render a sample of the base in-game.

    DRLh22sUIAAvY8k.thumb.jpg.7e35a5a415186f74d311a87a29f4d4da.jpg

    As mentioned, our UI is being updated to be more intuitive and provide better information for players. Instead of clicking on the gears to craft using the inventory, there will be separate tabs implemented. The Crafting tab will show all blueprints collected, which you will then be able to craft from if you have the resources.

     

    With that in mind, we've been doing some more Twitch streaming. Some of that has been development videos, and some of that has been members of our team showing off some games we enjoy playing. Here you can see Sledge going over the new UI, testing out the new rover, and doing some crafting: https://www.twitch.tv/videos/210491947?t=02m54s

     

    We're making a lot of progress, but Alpha 2 is going to be a critical phase for us. Right now, we're doing all our development at our own costs, with a small team. Once Alpha 2 is out, we're going to have to find a way to secure some financial backing if we want to finish our demo in a reasonable timeframe. That's where you come in. We really, really need your help in growing our audience. Please engage with us, and follow us on our various social media accounts to help spread the words to others. Like, comment, share. And, if you're able, you could always support our endeavors at our donation rewards page, or through Patreon. We literally cannot make this game with you. Thank you so much!

    This is going to be so fun! We can't wait to show you everything we've been working on these past few months, and it'll be a great stamp on this stage of development! If you want to see how we get all this done as we get it done, follow us on Twitter, Twitch, and Facebook for all the latest and greatest news on Gears of Eden.

  2. I'm a man on a Mobile Gaming Quest (MGQ) to play a new mobile game every day, and document my first impressions here and on YouTube. Below is the latest episode.

    Move units and conquer strategic points on a board, and instantly switch into a FPS mode when the actual battles have to be fought. Yes, Noblemen 1896 is essentially Battlefield 1 with more strategic elements. 

    Although there are several one-time use items acquired through premium currency, the game is very generous with handing out premium currency throughout the campaign, and the monetization never hindered my enjoyment of the game.

    If you like both strategy games and shooters, this one is a must try!

    My thoughts on Noblemen 1896:


    Google Play: https://play.google.com/store/apps/details?id=com.foursakenmedia.noblemen
    iOS: https://itunes.apple.com/us/app/noblemen-1896/id1178777377?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

    • 2
      entries
    • 0
      comments
    • 80
      views

    Recent Entries

    Meteor Bombardment Series Devblog 01

    • Genre: Fixed Shooter
    • Engine: Unity
    • Platform: TBD
    • Art Style: Pixel Graphics
    • Games Planed: 3
    • Meteor Bombardment: Technical Design Phase - 20% Complete
    • Meteor Bombardment 2: Technical Design Phase - 80% Complete
    • Meteor Bombardment 3: Conceptual Phase - 50% Complete

    The Meteor Bombardment Series is a project intended to represent the technical aspects and art style of games spanning over multiple past game eras. Starting with Bombardment, done in an 8 bit style and limited mechanics. Then moving onto Bombardment 2 using a 16 bit style and with added mechanics. Ultimately ending with Bombardment 3 using a 64 bit style with even more mechanics added.

    Design for the series has begun, and initially started with what is now Bombardment 2, saving more complex ideas for that game's sequel. After consideration it was decided that even the core concept could be scaled down to its base elements, with the more complex mechanics added to a sequel. Thus ultimately creating a trilogy.

    The development blogs titled "Meteor Bombardment Series" will follow the series development as a whole, with development blogs started for each specific game.

    The long term goal for the series is to create an arcade game pack including this series among other developed games. In the short term each game will be released as a standalone game. For information regarding each game, check out the developers blog relating to the different games in the series. The first game specific developer blog is scheduled to post tomorrow!

  3. Corona’s engineers have slipped a couple of really cool features into recent daily builds that may have not caught your attention.

    Emitter Particles and Groups

    Previously, the particles emitted from an emitter became part of the stage until they expired. This would create problems with the relative positioning of the particles if your app needed to move the emitter. If you moved the emitter as part of a parent group, it didn’t create a natural look. Emitters can now have their particles be part of the parent group the emitter is in. This was added to daily build 2018.3199.

    emitter.gifTo use this feature, you can set emitter.absolutePosition to the parent group of the emitter. Previously you had the options of true or false to determine if the positioning was absolute or relative to the emitter. By passing a group, it’s now relative to the group. You can download a sample project to see the feature in action.

    Controlling iOS system gestures

    On iOS when you swipe down from the top, it shows the Notifications panel. When you swipe up, you get the control panel. If you have UI elements in your game that are near the top of bottom in areas that are likely to result in swipe gestures, it would be nice to be able to control that. Now you can! Starting with daily build 2018.3193, you can use native.setProperty( “preferredScreenEdgesDeferringSystemGestures”, true ) to have those swipes just show a swipe arrow and a second swipe to activate the panels.

    We have more great things in the pipeline so watch this space for news and updates.


    View the full article

  4.  

    Mobile games still represent the highest growing niche among apps. The mobile game market worldwide is supposed to touch $46 billion in the present year. In spite of this staggering growth, just 10% of the game apps can actually be called commercially successful as per the growth and ROI they achieved. Naturally, rethinking the strategy and planning for something effective to market mobile games will continue. Based on the experience of the near past, what are the key marketing tips for mobile games we can consider in 2018? Let us have a look.

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

    1) Localization will be key

    To make your game connect its audience in different parts of the world your game needs to speak the language of your audience in different local markets. There are many markets that are far from dominated by any single language, and often these markets offer the bigger untapped potential for new game apps. While localising the game language is crucial, there are other considerations as well.

    Localisation should also be offered through a selection of payment methods. The selection of payment methods should be made available as per the penetration of such methods in respective markets. For instance, markets having lower credit card penetration should be given other methods of payment for the game players. In some markets, third-party payment solution or third party publishing rights may be good solutions while in others they may not.

    2) Consider the latest In-app purchase (IAPs) trends

    Throughout 2017 In-app purchase has dominated the mobile app marketing space, and it has been the most effective and revenue earning strategy. In-app purchases have earned $37 billion in app revenue in 2017 alone. In spite of the fact that just 5% of game players actually end up spending money through IAPs, this monetisation avenue is credited for 2000% more profit compared to other avenues.

    In the months to come, In-app purchase (IAP) will be more specific in targeting game players with new tools and tweaks like limited period events, behavioral incentives and dynamic pricing. We can also expect more games to adopt several different types of virtual currency for payment. Specially targeted offers for some game playing audience will also be a key trend.

    3) Consider these social media hacks

    Social media will continue to feature more prominently in the mobile game marketing. There will be a few effective social media hacks and effective strategies that will dominate mobile game marketing in 2018 and beyond.

    When planning marketing for your new game apps on social media, you need to prioritise social platforms based on the type of user your game app will be entitled for. There are plenty of social platforms, but the app that can work on Facebook may not work well on Pinterest. It obviously depends on the audience.

    When it comes to marketing your game on Facebook, you need to build up excitement for the game for several months prior to your launch and based on the reaction of your launch should launch the game app to generate maximum buzz.

    Pinterest can be a great medium if you can register various screenshots and app related images in an appealing manner to the visual database of the platform. Pinterest works great if you have a separate website for the app to draw and engage traffic.

    Reddit, on the other hand, can be a good platform to track information and spot marketing opportunities of your game app. Lastly, make use of social analytics to track and monitor your game playing audience and activities.

    4) Paid games

    You may have discarded paid apps already as a monetisation strategy, but in the last year only there have been several highest grossing paid mobile games. In fact, there has been $ 29 billion revenue from the paid apps alone. Yes, we know that nearly 98% of paid apps in Play Store are free apps, but to your surprise, many of these apps are now coming with a mix of strategies by offering paid sister apps. Often value additions like new graphic contents with these paid sister apps can actually boost engagement from the audience.

    5) Game ads rewarding players

    Mobile game players are more habituated with promotional contents compared to other app users. With the traction and engagement for in-app ads to garner any substantial revenue often a game needs a huge audience or players to earn a substantial value. This is why game ads need to be thought in a completely new light. Rewarding game players for watching game ads have come up with a really effective strategy. Around 80% of game players prefer watching video ads for game rewards.

    6) In-game sponsorship

    Sponsored contents within mobile games continued to remain another popular aspect of many mobile games in the recent years. It started way back in 2015 when Angry Birds players were allowed to kill the awful pigs by Honey Nut Cheerios as long as for 2 whole weeks and thus promoting another game app. Soon, several other games followed this trend which incorporated elements of other game apps in the gaming actions for the purpose of sponsorship. It works great specially for developers who have multiple game apps with a few successful ones across the board. In the present year, we can see mobile game developers to reduce dependence on the in-app purchase by embracing these rewarded and sponsored ads.

    7) Merchandising game products

    Merchandising your game-related products to the game players is still effective for too many mobile games. But it needs at least a certain level of commercial success for the game app. Only when your game has a widespread following and enjoys a niche branding, you can come up with the marketing of in-game characters shaped into real life products like t-shirts, stuffed toys, game-inspired cars, and even notebooks or coffee mugs.

    In conclusion

    All these strategies and avenues seem to have one thing in common, and it is more about connecting audience more specifically and in a targeted manner. In 2018, we can expect these strategies evolve further.

    • 1
      entry
    • 0
      comments
    • 1163
      views

    Recent Entries

    It's been awhile since I've been on this site.  Been busy at work, but as with all contracting, sometimes work gets light, which is the case as of the new year.  So I saw this challenge, and thought it might be fun to brush up on my skills.  I've been working mainly with embedded systems and C#, so I haven't touched C++ in awhile, and when I have, it's been with an old compiler, that's not even C++11 compliant.  So, I installed Visual Studio 2017, and decided to make the best use of this.

    Time is short, and I don't exactly have media to use, so I decided to just go out and start to learn Direct2D.  I have little experience with any modern form of C++, and zero experience with Direct2D and XAudio.  Whereas I didn't mind learning Direct2D, I fully admit XAudio presented a bit of problems.  In the end, I blatantly stole Microsoft's tutorial and have a barebones sound system working.  And unlike the Direct2D part, I didn't bother to spend much time learning what it does, so it's still a mystery to me.  I'm not entirely sure I released everything correctly.  The documentation said releasing IXAudio2 would release objects, and when I tried to manually delete buffers, things blew up, so I just let it be.  There are most likely memory leaks there.

    As you can plainly tell, this is by far the worst entry in the challenge.  This is as much of a learning experience as an attempt to get something out the door.  I figured, if I couldn't be anything close to modern, at least be efficient.  And I failed at that miserably.  Originally I wrote this in C.  Excluding the audio files, it came out to a whopping 16 KB in size, and memory usage was roughly 6 MB.  And then I decided to start to clean up my spaghetti code (I said start, never said I finished), and every time I thought I was getting more clever, the program grew in size and memory usage.  As of right now, it's 99 KB and takes up roughly 30 MB RAM on 720p resolution.  I haven't really checked for memory leaks yet, and I'm sure they exist (beyond just the audio).  In reality, I'd prefer to clean up a lot of the code.  (And I found a few errors with memory management, so I need to track down where I went wrong.  I removed allocating memory for the time being and pushed everything onto the stack.)

    The other thing is, this code is ugly.  Towards the end, I just started taking a patchwork approach rather than keeping it clean.  I was originally hoping for modularity, but that got destroyed later on.  And I'd love to replace the pointers that are thrown liberally throughout the code with smart pointers.

    Unlike the other entries, I only have missiles for the gameplay.  I didn't include UFOs, airplanes, smart bombs, nor warheads.  I just don't feel I had enough time.  Yes, there's still a couple weeks to go, but I'd prefer to cleanup what I have than add new features.  And unfortunately, I was a bit shortsighted, which caused problems later on.  There are multiple places where the code is far more verbose than it needs to be, because I wasn't properly focused on the correct areas.  I wanted to make it scalable, and I focused making the game a 1:1 ratio internally, yet displayed 16:9 to the user, which caused massive problems later on.  I ended up having to do math on pretty much every piece of graphics and game logic whereas if I had just displayed it as 1:1, or handled the internals in 16:9, I could have shaved off a thousand lines of code.  And it also caused problems with hit detection, which is another reason I didn't bother adding in anything but missiles.

    The hit detection was a mess.  I had everything mapped out.  The game was going to work whether a missile went 1 pixel a second, or 1000 pixels a nanosecond.  Calculating moving objects and collision with circles or boxes is easy.  Unfortunately, I was using ellipses.  And while there are formulas for that, I'll admit my eyes started to glaze over at the amount of math that would be required.  In the end, I decided to leave it buggy, and only detect if it was currently in a static ellipse, which is easy and fast enough to calculate.  I mean, I guess if the program freezes up, the user was going to lose a city/silo anyway, or lose it if the missile was traveling at light speed, but it's still a bug, and still annoys me, especially since everything else was calculated regardless of what the user sees. (*EDIT* Thinking about this more, the solution was right in front of me the entire time.  Just squish the world back to 1:1 and do the hit detection that way).

    Controls:

    1,2, and 3 control the missiles, and the arrow keys control the cursor.  Escape for the menu, and Enter for selection.  I've only tested this on Windows 10, as I'm pretty sure it requires those libraries.  It's a 64-bit executable.

    MCDemo.png

  5. Latest Entry

    Riverbanks, trees, floating stones

    ANDREJ KREBS, DOMEN KONESKI

    Riverbanks

    Riverbanks and (under)water are now filled up with more content such as grass, stones, chorals, ruins, tires and more. I’ve developed a spawning system that allows quick and easy setup for new game objects. You want to spawn a game object only in water at certain depth? You want to spawn trees at certain slope angle and then change its height on the fly? This system now allows you – without coding – to do such things with ease.

    ruins_riverbank_lowpoly_floatlands.png?f
    ruins on the riverbank

    New trees

    We decided to rework the tree tops, so I experimented with techniques and stiles, until we got to something we all really liked. This really changes the attitude of the game and creates more immersive but still somewhat abstract feel. The solid blob treetops are now being replaced with bunches of textured alpha transparent planes.

    lowpoly_environment_trees_floatlands.png
    new trees implemented

    Floating stone

    Lastly, here we have a timelapse video where I modeled a floating stone with a crystal. These stones will float above the crater where the floating islands were raised. I sculpted the basic shape and applied a decimate modifier, after that I added a crystal made in a similar fashion.
     


     

    Exponential grass level of detail

    DOMEN KONESKI

    I’ve been tweaking our new grass renderer a little bit and asking myself if I can increase the grass draw distance without ruining the overall performance. I came up with an unique solution by decreasing the amount of rendered grass, having in mind maximum grass distance and current camera position.

    New LOD logic allows subtle decrease of rendered grass meshes over the distance between the player and the final render distance. With this system we can now increase the render distance and allows us to add more content into the world of Floatlands

    lod_test_lowpoly_floatlands.png?fit=728,
    LOD comparison

    Terrain minimums and maximums

    VILI VOLČINI

    Finally I set out to improve the tools for terrain. It’s not much, but I did a function for local min/max search and slope of terrain. Local maximums should be useful for spawning bigger objects that need visibility. Local minimums could be useful for resources that need to be more hidden from the player.

    minmax_terrain_lowpoly_floatlands.png?fi
    local min/max search

    Critter concepts

    MITO HORVAT

    To further enhance the world we’ll add tiny critters that will roam around the environment. Critters will be friendly animals or mechanical creatures that will move around specific territories. For example you’ll encounter turtles near the sea/shore line, chickens near villages etc. If you decide to kill the critter, there will be a chance that it will drop loot or crafting materials. Although, what kind of heartless person could possibly kill a tiny cute crab dragging around a tin can house.

    critters_concepts_lowpoly_floatlands.png
    critter concepts

     

  6. Hi guys and gals! :3

    Here's my third blog entry for Forest Strike. This week I was designing the AI, which give me more struggles than expected. So, there's not much graphical stuff to show this time. That's why I am going a little bit more into detail and explain the game a bit.

    Forest Strike - Title


    Project Idea

    Forest strike is a 2D round-based strategy game in pixel-art style featuring animals as characters. Each round is divided into multiple phases, such as:

    • Pre Phase
    • Dice Phase
    • Move Phase
    • Action Phase
    • Post Phase

    Pre phase is resetting and initializing needed variables each round.

    After the pre phase (which is handled within a single step), the dice phase randomly picks the number of steps you can move.

    Now, after we got the number, we finally will be able to move the characters. Moving the characters is limited to an amount of steps (dice phase). During the Move Phase, you can move your characters and use items, such as the simple bomb.

    Items are split into two groups: "active" and "passive". Active items will be shown in the inventory and can be used during the Move Phase, while passive ones will influence different values of the game.

    The active items are not handled instantly, they get a sequence number and will be handled in the next phase, the Action Phase. If there are items placed (like a bomb), the action phase handles every item sequentially (by their sequence number). This way, the game provides a great variety regarding building your own strategy.

    Lastly, the Post Phase checks some stuff and jumps to the Pre Phase.


    So, what is planned:

    • a bunch of items, characters and maps
    • different game modes
    • local multiplayer
    • local singleplayer (with AI opponents)

    Optional features:

    • online multiplayer
    • story mode
    • boss battles

    Technology

    The game is running in Game Maker 2 in order to deploy the game to multiple platforms. Additionally, I really love working with Game Maker, because of its simple, yet powerful, UI and features. The software I use to draw the resources is Aesprite. Also, I am learning how to use Pyxel Edit to create awesome tilesets.

    Regarding platforms, I want to cover at least Windows, Linux and Mac. Eventually, a mobile export will be done as well with slight modifications.

    Currently, no music or sound is included in the game. In future, I will compose a few tracks in Cubase with a few external VSTs (depending on the genre). I'll keep you up to date as soon as I have a few tracks.

    Creating sounds has never been one of my strengths, so I’ll have to buy a bundle or hire a composer. Eventually, I’ll try creating a few sounds on my own.


    Key Features

    New explosion animation

    Forest Strike - New explosion animation

    I changed the explosion quite a bit. Instead of blowing up the things in one way, I added a small delay to the single explosion.

    Random starting player

    If you start a game, the starting player is now randomly chosen. Should be a general thing... and this week I implemented it. :D

    New character

    Forest Strike - Mouse Character

    Here we go with another character. I was thinking about a mouse, which reminded me a little bit of forests. Currently, I only did the "idle"-animation.


    Thank you for reading! :D

    If you have questions or any kind of feedback feel free to post a comment or contact me directly.

  7. I am looking for a programmer who is interested in making an indie game called Space Hockey. The design document can be downloaded from my blog on GameDev.Net. There are also over 600 pages of material relating too my 14-game Pirate Dawn Universe on this blog.

    For now I am only looking for a programmer who is capable of making Space Hockey, and together we can assemble the rest of the team from there. I am looking for someone who is at least near 30 years old and has finished at least one game before. I don't want to distract younger people from establishing themselves in a career with the lure of making games, and I want someone who has made at least one game before so that they understand going into it how much work that entails even for a simple game like Space Hockey. It doesn't have to be a game that was published, the whole point is just that you understand how much work it is to actually finish it.

    I am not looking to just make something to post on an indie site somewhere, the goal here is to eventually have Space Hockey for sale on Steam. As can be seen in the design document, once that has been achieved there is a lot of expansion of this that could take place resulting in half-a-dozen or so DLC expansions. This would begin as a hobby/indie project but will, hopefully, someday become a commercial game company. Assuming that Space Hockey and its DLC expansions were successful, the goal would be to transition into a commercial game company and begin work on the 14 games of my Pirate Dawn Universe.

    I have been designing games and simulations since before the computer game industry existed, for about 40 years now. I don't say this out of arrogance. It is simply a fact of time that today, in 2018, I am one of the most experienced and knowledgeable game and simulation designers in the world. Although the very simple Space Hockey does not use it, a physical construct that I call “Rube” is the fundamental basis of what you know as “The Matrix”. Rube is also the fundamental basis of cyberspace, an insubstantial holodeck, and a self-programming computer with omniscient communication. The later games of the Pirate Dawn Universe such as Territories, Mission, Clash of the Titans, and the Struggle of the Ancients games are all based on Rube.

    The Pirate Dawn Universe is a sci-fi universe focused on space ship games. Lost Art Studios games are based on the 300 years of game design that came before computer games. They are not, for the most part, based on past computer games. This is only one of the things that makes these games unlike any computer games that have ever existed before. As a former member of the SFB Staff, there is no competition out there for Lost Art Studios when it comes to making space ship games for the computer. If LAS can get off the ground, competing within this genre in the modern game industry would be like hunting rabbits with a 120mm cannon.

    This will begin as a hobby/indie project to create Space Hockey, and we can establish a typical deal where those who contribute to the creation of the game receive some form of payment if and when the game actually makes money. I really don't care about the money very much and am open to anything that works. The true goal, however, is to get Lost Art Studios off the ground as a commercial game company that will very easily dominate the space ship game genre with its 40 years of accumulated knowledge of the Star Fleet Universe community. And, of course, Rube... which also partly comes from the SFU. Even if Lost Art Studios manages to get off the ground, we would not attempt to develop a truly large or complex game at first. Part of the plan within the design of the games of the PDU is that the first three games are smaller and more simple games to make.

    Territories is a prequel, that “Civilization scale war game” is first chronologically but can be made at any point during the telling of the PDU story. The actual first three games are intentionally simple to make. As an MMO Pirate Dawn is “massive” from the player's perspective, but it it is actually a fairly small and simple game too make. The “massiveness” of Pirate Dawn is an illusion too the player. The game itself isn't actually “massive”, the simple arcade game maps are. Manifest Destiny and The Trade Wars, what would be the second and third games, are both smaller and easier to produce than Pirate Dawn is. They are both intentionally minimalist strategy economic war game “scenario generators” where the focus is heavily on the tactical combat resolution (which is not 3D). Lost Art Studios would not even attempt to make a “big game” until we were on our fourth release.

    If you are interested in helping to create Space Hockey, with a plan already place to keep going from there, you can contact me through my blog on GameDev.Net or my e-mail address:

    From Astral Invasion...

     

  8. I've created a project page for the U3DTerrainEditor I have been working on. Project now includes a downloadable Windows binary so you can try it out. Warning: rough code ahead. It's still a pretty unpolished project, but you can do some cool stuff with it regardless.

    Your first terrain:

    1) Download the archive, unpack, and execute either run_opengl.bat or run_d3d11.bat. Alternatively, you can execute TEdit.exe or TEdit_D3D11.exe directly, passing arguments on the commandline; ie, 

    TEdit.exe LuaScripts/terraineditor.lua -w

    to run windowed instead of borderless. The batch scripts execute in borderless windowed mode.

    2) Click on the NodeGraph button in the toolbar, represented by 3 boxes linked by lines. A window will popup in the lower right. Click new to create a new Node Group, then click Edit to edit the new node group. An overlay window will popup with a + button to create nodes, and an output widget.

    3) Click on +, navigate to library, then click on ridged. A node for a Ridged fractal should appear. Change the value of the Frequency input to 3. Click and drag on the output link of the node, and drag the link to the input of the output widget. When the link is established, click the Preview button. The preview pane should fill with a preview image of the node function.

    4) At the bottom of the output widget, ensure that Terrain is selected as the Output Target, then click Execute. After a brief processing pause, you should see the terrain change in the background. Press 'm' to close the node window.

    5) Click on the Filters button. (It looks like a magic wand). From the list of filters, select Erosion. In the Power box, enter an erosion power (or just stay with 0.3, which is a decent choice). Power values can range from 0 to 0.5. Click Execute. After a brief prcoessing delay, the terrain should change again showing the results of the erosion applied.

    6) From filters, select the Cliffify filter. In the dropdown box for Layer, select Layer 7. Press execute. After processing, the terrain should change so that steep areas show a cliff-like texture.

    7) Select the Cavity Map to Layer filter. In the Layer dropdown box, select Layer 2, then press execute. The terrain should change again, showing sandy texture in the bottom of hollows and depressions.

    8) Press the Terrain Options button (represented as a gear wheel). Select the Save button next to the Terrain: label, enter a filename, and hit Save to save the terrain heightmap to a PNG file. Heightmap will be saved as a standard RGB PNG, with height stored in the Red and Green channels. Red is the coarse height, and Green is finer detail data, allowing the heightmap to represent more than just 256 levels of elevation and making a smoother heightmap. Height can be extracted as Red + Green/255.0f.

    Of course, there is a lot more you can do with it. There are brushes for manually editing terrain, texture layers and masks. You can use masks to protect areas from being edited or modified. You can create a spline (use 'q' and 'e' to remove and create knots) then use the Road filter or River filter to create areas of road and river. You can export the texture blend layers as well as a normal map. Some stuff still might not be hooked up right, and as always this is a work in progress.

    If you have any feedback or suggestions, let me know.

    • 1
      entry
    • 0
      comments
    • 77
      views

    Recent Entries

    devlog_title.png

    A 3D platformer in the world of pastries.


    Hello! After 4 months of work, it's time for us to start a devlog for our new project!

    STORY

    You play Choconoa, the prince of the chocolate world, and you must grab back the sugar stolen by the princess of the candy world.

    GAMEPLAY

    The 4 gameplay pillars are:

    • You need to collect basic ingredients (chocolate, flour, eggs and milk) and recipes, and thanks to the magic of your wooden spoon, you can create a catapult.
    • The bonus collectible is a chef's hat wich allow you to bounce and be invincible for a limited time.
    • Next are the sliders which allow you to access different areas and grab extra collectibles.
    • Last is the chantilly on the floor which makes you go faster.
       

    giphy.gif

    giphy.gif

    giphy.gif

    giphy.gif

    FEATURES

    • LINEAR LEVEL DESIGN - SEQUENTIAL ORDER
    • SINGLE PLAYER AND LOCAL MULTI UP TO 4 PLAYERS SPLITSCREEN
    • COLORFUL STYLIZED ENVIRONMENTS
    • KID-FRIENDLY
    • PASTRY THEME
       

    WHAT'S DONE

    • PROTOTYPE
    • BASIC MENU AND HUD
    • CORE GAMEPLAY
    • HERO BASIC ANIMATION SET
    • SOME ENVIRONMENT PLACEHOLDERS
    • SOME SOUNDS AND FX PLACEHOLDERS

    TODO

    • LEVELS
    • CHARACTERS MODELS
    • ANIMATIONS
    • ART
    • SOUNDS AND MUSICS
    • TEST

    TOOLS

    • UNREAL ENGINE 4
    • ZBRUSH
    • BLENDER
    • GIMP

    TARGET PLATFORMS

    • WINDOWS, MAC AND LINUX
    • NINTENDO SWITCH
  9. Hi everyone!

    It has been more than two months since I released I Am Overburdened and since I wrote a devlog entry. Please accept my apology for this, I was super busy with the release and support of the game. But now I’m back with an in-depth analysis how the overall production and final numbers turned out ;) .

    Summary

    I want to do a fully detailed breakdown of the development and business results, but I don’t want break it up into a typical postmortem format (good, bad, ugly). I’ve drawn my conclusions, I know what I have to improve for my upcoming projects, but I don’t want to dissect the I Am Overburdened story this way, I want emphasize how much work goes into a game project and focus more on how a journey like this actually looks and feels like. If you really want know my takeaways, here it goes in a super short format: I consider the game a success from a development perspective (good), but I failed from a marketing and sales standpoint (bad and ugly).

    Now I go into the details, but will focus more on the objective “what happened, how it went, what it took” parts.

    Development

    The game started out as a simple idea with a simple goal in mind. I partially abandoned my previous project, because it ballooned into a huge ball of feature creep, so I wanted to finish a more humble concept in a much shorter time period. The original plan was to create a fun game in 4 months. I really liked the more casual and puzzle-y take on the roguelike genre like the classic Tower of the sorcerer game, or the more recent Desktop dungeons and the Enchanted cave games so I set out to create my own take. I designed the whole game around one core idea: strip out every “unnecessary” RPG element/trope and keep only the items/loot, but try to make it just as deep as many other roguelikes regardless of its simplicity. From this approach the “differentiating factor” was born, a foolishly big inventory, which helped me to define and present what I Am Overburdened really is.

    A silly roguelike full of crazy artifacts and a “hero” who has 20 inventory slots.

    Most of the prototyping and alpha phases of the development (first two months) went smoothly, then I had to shift gears heavily…

    2017_02_11_screenshot_1

    Reality check

    After 3 months of development, when all of the core systems were in place and when I deemed big parts of the content non-placeholder, the time came to show the game to others. I realized something at that point, forcing me to make a huge decision about the project. The game was not fun :( . The idea was solid, the presentation was kind-of ok, but overall it was simply mediocre and a month of polishing and extra content in no way could change that!

    2017_04_01_screenshot_3

    Back than I was super stressed out due to this and I thought about this as my hardest decision as a game maker, but looking back I think I made the right choice (now I feel like I actually only had this one). I decided to postpone release, explore the idea further even if it doubles!!! the originally planned development time (and it happened :| ) and most importantly I decided to not make or release a “shovelware”, because the world really isn’t interested in another one and I’m not interested in making/publishing one…

    Final scope

    So after 4 months of development, feeling a bit glum, but also feeling reinvigorated to really make the most out of I Am Overburdened I extended the scope of the design & content and I also planned to polish the hell out of the game :) . This took another 4 months and almost a dozen private beta showings, but it resulted in a game I’m so proud of, that I always speak of it as a worthy addition to the roguelike genre and as a game that proudly stands on its own!

    screenshot_2

    Some numbers about the end result:

    It takes “only” around 30 to 40 minutes to complete the game on normal mode in one sitting, but due to its nature (somewhat puzzle-y, randomized dungeons & monster/loot placements + lots of items, unlocks and multiple game modes), the full content cannot be experienced with one play-through. I suspect it takes around 6 to 12 full runs (depending on skill and luck) to see most of what the game has to offer so it lends quite a few hours of fun :) . There are 10 different dungeon sets and they are built from multiple dozens of hand authored templates, so that no level looks even similar to the other ones in one session. They are populated by 18 different monsters each having their own skill and archetype (not just the same enemy re-skinned multiple times). And the pinnacle, the artifacts. The game has more than 120 unique items, all of them having a unique sprite and almost all of them having unique bonuses, skills (not just +attributes, but reactive and passive spells) and sound effects. This makes each try feel really different and item pickup/buy choices feel important and determinative. The game was also localized to Hungarian before release, because that is my native language so I could do a good job with the translation relatively fast and this also made sure, that the game is prepared to be easily localized to multiple languages if demand turns out to be high.

    boxart_animated_art_portrait

    Production numbers

    How much code I had to write and content I had to produce all in all to make this game? It is hard to describe the volume/magnitude with exact numbers, because the following charts may mean a totally different thing for a different game or in case of using different underlaying technologies, but a summary of all the asset files and the code lines can still give a vague idea of the work involved.

    2018_01_09_chart_files

    Writing and localization may not sound like a big deal, but the game had close to 5000 words to translate :o ! I know it may be less than the tenth of the dialogue of a big adventure or RPG game, but it is still way larger than the text in any of my projects before…

    2018_01_09_chart_text

    I’ll go into the detailed time requirements of the full project too after I painted the whole picture, because no game is complete without appropriate marketing work, a super stressful release period :P and post-release support with updates and community management work ;) .

    Marketing

    If you try to do game development (or anything for that matter) as a business, you try to be smart about it, look up what needs to be done, how it has to be approached etc… I did my homework too and having published a game on Steam before I knew I had to invest a lot into marketing to succeed, otherwise simply no one will know about my game. As I said this is the “bad” part and I’ll be honest. I think I could have done a much better job, not just based on the results, but based on the hours and effort I put in, but let’s take it apart just like the development phase.

      • Development blog/vlog
        I started writing entries about the progress of the game really early on. I hoped to gather a small following who are interested in the game. I read that the effectiveness of these blogs are minimal, so I tried to maximize the results by syncing the posts to at least a dozen online communities. I also decided to produce a video version because it is preferred over text these days + I could show game-play footage too every now and then. I really enjoyed writing my thoughts down and liked making the videos so I will continue to do so for future projects, but they never really reached many people despite my efforts to share them here and there…
        icon_simple_mono_round_small
      • Social media
        I’ve tried to be active on Twitter during development, posting GIFs, screen-shots and progress reports multiple times a week. Later on I joined other big sites like Facebook and Reddit too to promote the game. In hindsight I should have been more active and should have joined Reddit way earlier. Reddit has a lot of rules and takes a lot more effort than Twitter or Facebook, but even with my small post count it drove 10 times more traffic to my store page, than any other social media site. Since the game features some comedy/satire and I produced a hell of a lot of GIFs, I tried less conventional routes too like 9gag, imgur, GIPHY and tumblr, but nothing really caught on.
        icon_twitter_small
      • Wishlist campaign
        I prepared a bunch of pictures up-front featuring some items and their humorous texts from the game. I posted one of these images every day starting from when the game could be wishlisted on Steam. I got a lot of love and a lot of hate too :D , but overall the effectiveness was questionable. It only achieved a few hundred wishlists up until the release day.
        2018_01_08_wishlist
      • Youtube & Twitch
        For my previous Steam game I sent out keys on release day to a 100 or so Youtubers who played any kind-of co-op game before, resulting in nearly 0 coverage.
        This time I gathered the contact info of a lot of Youtubers and Twitch streamers upfront. Many were hand collected + I got help from scripts, developer friends and big marketing lists :) ! I categorized them based on the games they play and tried talking to a few of those who played roguelikes way before release to peak their interest. Finally I tried to make a funny press release mail, hoping that they will continue reading after the first glance.
        I sent out 300 keys the day before release and continued the following weeks, sending out 900 keys total.
        And the results?! Mixed, could be worse, but it could be much better too. 130 keys were activated and around 40 channels covered the game, many already on release day and I’m really thankful for these people as their work helped me to reach more players.
        Why is it mixed then? First, the videos did generate external traffic, but not a huge one. Second, I failed to capture the interest of big names. I also feel like I could have reached marginally better results by communicating lot a more and a lot earlier.
        icon_youtube_small
      • Keymailer
        I payed for some extra features and for a small promotion on this service for the release month. It did result in a tiny extra Youtube coverage, but based on both the results and the service itself all in all it wasn’t money well spent for me (even if it wasn’t a big cost).
        icon_keymailer
      • Press
        This was a really successful marketing endeavor considering the efforts and the resulting coverage. I sent out 121 Steam keys with press release mails starting from the day before release. Both Rock Paper Shotgun and PC Gamer wrote a short review about it in their weekly unknown Steam gems series and the game got a lovely review from Indiegames.com. Also a lot of smaller sites covered it many praising it for being a well executed “chill” tongue-in-cheek roguelike :) . The traffic generated by these sites was moderate, but visible + I could read some comforting write-ups about the quality of the game.
        2018_01_09_press
      • Ads
        I tried Facebook ads during and a bit after the release week + in the middle of the winter sale. Since their efficiency can not be tracked too well I can only give a big guesstimate based on the analytics, sales reports and the comparison of the ad performances. I think they payed back their price in additional sales, but did not have much more extra effect. I believe they could work in a bigger scale too with more preparation and with testing out various formats, but I only payed a few bucks and tried two variants, so I wouldn’t say I have a good understanding of the topic yet.
        icon_facebook_small

    Some lifetime traffic results:

    2018_01_09_traffic

    So much effort and so many people reached! Why is it “bad”, were the results such a mixed bag? Well, when it comes to development and design I’m really organized, but when it comes to marketing and pr I’m not at all. As I stated I never were really “active” on social media and I have a lot to learn about communication. Also the whole thing was not well prepared and the execution especially right at the release was a mess. The release itself was a mess :( . I think this greatly effected the efficiency! Just to be more specific I neglected and did not respond in time to a lot of mails and inquiries and the marketing tasks planned for the launch and for the week after took more than twice as much time to be completed as it should have. I think the things I did do were well thought out and creative, but my next releases and accompanying campaigns should be much more organized and better executed.

    Time & effort

    I don’t think of myself as a super-fast super-productive human being. I know I’m a pretty confident and reliable programmer and also somewhat as a designer, but I’m a slowpoke when it comes art, audio and marketing/pr. For following my progress and for aiding estimations I always track my time down to the hour level. This also gives me confidence in my ability to deliver and allows me to post charts about the time it took to finish my projects ;) .

    Important thing to note before looking at the numbers: they are not 100% accurate and missing a portion of the work which were hard to track. To clarify, I collected the hours when I used my primary tools on my main PC (e.g.: Visual Studio, GIMP), but it was close to impossible to track all the tasks, like talking about the game on forums & social media, writing and replying-to my emails, browsing for solutions to specific problems and for collecting press contact information, you get the idea… All in all these charts still show a close enough summary.

    2018_01_09_chart_time_final

    2018_01_09_chart_time_final_pie

    2018_01_09_chart_time_implementation

    2018_01_09_chart_time_content

    2018_01_09_chart_time_marketing

    288 days passed between writing down the first line in the design doc and releasing the game on Steam. I “logged” in 190 full-time days. Of course more days were spent working on the game, but these were the ones when I spent a whole day working and could track significant portion of it + note that in the first 4 months of the project I spent only 4 days each week working on I Am Overburdened (a day weekly were spent on other projects).

    Release

    So how the release went? It was bad, not just bad, “ugly”. After I started my wishlist campaign, close to the originally planned date (2017. Oct. 23.) I had to postpone the release by a week due still having bugs in the build and not having time to fix them (went to a long ago planned and payed for vacation). I know this is amateurish, but the build was simply not “gold” two weeks prior to release :( . Even with the extra week I had to rush some fixes and of course there were technical issues on launch day. Fortunately I could fix every major problem in the first day after going live and there were no angry letters from the initial buyers, but having to fight fires (even though being a common thing in the software/game industry) was super tiring while I had to complete my marketing campaign and interact with the community at the same time. The game finally went live on Steam and itch.io on 2017. Nov. 2 :) ! I did not crunch at all during development, but I don’t remember sleeping too much during the week before and after launching the game. Big lesson for sure :| .

    2018_01_09_steam2

    I saw some pictures about the game making it to the new and trending list on Steam, but it most probably spent only a few hours there. I never saw it even though I checked Steam almost every hour. I did saw it on the front-page though, next to the new and trending section in the under 5$ list :) . It spent a day or two there if I remember correctly. On the other hand, itch.io featured it on their front page and it’s been there for around a whole week :) !

    2018_01_09_itchio2

    With all the coverage and good reviews did it at least sale well, did it make back it’s development costs, if not in the first weeks at least in the last two months?

    Nope and it is not close to it yet…

    Sales

    In the last two months a bit more than 650 copies of I Am Overburdened were sold. Just to give an overview, 200 copies in the first week and reached 400 by the end of November, the remaining during the winter sale. This is not a devastating result, it is actually way better than my first Steam game, but I would be happier and optimistic about my future as game developer with reaching around 3 to 4 times the copies by now. To continue as a business for another year in a stable manner around 7 to 8 times the copies total (with price discounts in mind) during 2018 would have to be reached. I’m not sure if the game will ever reach those numbers though :| . If you do the math, that is still not “big money”, but it could still work for me because I live in eastern Europe (low living costs) + I’m not a big spender.

    2018_01_09_sales

    Of course this is an outcome to be prepared for and to be expected when someone starts a high-risk business, so I’m not at all “shocked” by the results. I knew this (or even a worse one) had a high chance. No matter how much effort one puts into avoiding failure, most of the game projects don’t reach monetary success. I’m just feeling a bit down, because I enjoyed every minute of making this game, a.k.a. “dream job” :) , maybe except for the release :D:P , but most probably I won’t be able to continue my journey to make another “bigger” commercial game. I may try to build tiny ones, but certainly will not jump into a 6+ months long project again.

    Closing words

    It is a bit early to fully dismiss I Am Overburdened and my results. It turned out to be an awesome game. I love it and I’m super proud of it. I’m still looking for possibilities to make money with it (e.g.: ports) + over a longer time period with taking part in several discount events the income generated by it may cover at least a bigger portion of my investment. No one buys games for full price on PC these days, even AAA games are discounted by 50% a few months after release :| , so who knows…

    If you have taken a liking to play the game based on the pictures/story you can buy it (or wishlist it :) ) at Steam or at itch.io for 4.99$ (may vary based on region).

    icon_steam_small icon_itchio_small

    As an extra for getting all the way here in the post, I recorded a “Gource” video of the I Am Overburdened repository right before Christmas. I usually check all the files into version control, even marketing materials, so you can watch all the output of almost a year of work condensed into 3 minutes. Enjoy ;) !

    Thank you very much for following my journey and thanks for reading.
    Take care!

    • 1
      entry
    • 1
      comment
    • 63
      views

    Recent Entries

    I've always loved video games.  As a child, I spent hours playing on my Atari 2600, on our home PC, or at a friend's house on his Nintendo and Super Nintendo.  As time went on, I discovered QBasic and started to learn to make simple programs.  It clicked - this is how the creators of the games were doing it!

    From there, I became very interested in learning about the creation process.  I experimented, read articles in magazines, and as the World Wide Web took off I ventured online to learn more.  Games got bigger and fancier, and some of them in special editions with documentaries about the creation, and I loved all of it.

     

    Well funded teams of hundreds of people were now working to create fantastic games with hours of gameplay and breathtaking visuals.  I read articles and watched "making of" documentaries which described how developers would work long hours, forgoing days off, working late nights, and sometimes even sleeping in the office to meet deadlines.  I was so impressed with the effort and dedication they put in.

    How much must you love a product to give up your nights and weekends, and spend time away from your family to finish it off?  This was how great games were made, and I was in awe of the industry and the process.  This was what I idolized.  This was what I aspired to.

     

    I was wrong.

    The process I have described above is not necessary, and it is not cool.

    Developers do not need to sacrifice their free time, their sleep, and their health to create great games.  The science is in.  Numerous studies have shown that well-rested people are more productive and less prone to mistakes.  The stress of this schedule and lack of sleep is profoundly damaging to people's health, causes burnout, and drives talented developers away from our industry.

    Just think about a cool feature that you loved in a AAA game.  If the team went through a period of crunch, the developer who created that feature may have burned out and left the industry - they might not be creating awesome things for gamers anymore.

     

    We should not idolize a process that is harmful to developers.  When we hear about crunch, the overwhelming reaction should be that this is not ok.  Crunch is not cool, and developers still using this process should work towards a better way.

    Happier, healthier developers will produce better work, and in the long run, they will produce it more efficiently.  Happier, healthier developers are more likely to stay in our industry rather than seeking greener pastures, resulting in more people with extensive experience who can then work on more advanced tasks and ideas, and push the industry forward.

     

    Thankfully, a growing number of developers have moved on or are moving on from this toxic culture of overtime and crunch, and a growing number of people are willing to speak up.  Unfortunately, it's far from everyone, and there are many developers still exploiting workers.

     

    I'm putting my foot forward to say that I do not support a culture of overtime and crunch.  We can do better, and we need to do better.  I'm not the first person to share these sentiments, and I'm not an influential person, but I hope I won't be the last, and if I can convince even one more developer to stand up for better treatment of workers, then hopefully I've made some small difference.

    If you agree with me, next time you hear someone discussing crunch as if it's just a normal part of the process, let them know that there's a better way and that you don't support crunch and overtime.  Let them know that crunch isn't cool.

  10. Comic book inspiration

    I want to make it clear that the game is highly inspired by my comic book experience. I am a big fan of Garfield, Gaston LaGaffe and Charlie Brown. I find the 9th art to be a very subtle, intelligent way to make people think and smile. Doing cartoon was always something I was proud of. I first started doing them when I discovered about Nabuchodonosaure  cartoon and "Le concombre masqué". They triggered something inside me to start producing my own. My graphic style was Charlie Brown and Garfield as it was very simple and efficient. I want the game to feel like you are part of that background. I like how things look graphically, how anything can happen. More specifically I produce the Recontre du 3e type cartoon book which was self publish and sold locally in my home town. 500 copies were sold, which is not bad considering the market. Despite the book didn't make it to the big league, it was show case in the International comic book fare of Quebec and at the Salon du livre jeunesse. I was very proud of it and had a lot of very good feedback on the work from the readers. The book wasn't necessarily really strong artistically. The core story was great, but It wasn't fully exploited and my skill at the time wasn't strong enough. I'll gladly share part of the original book in the upcoming weeks. What is important about that book is that it serve as a starting point of this project. I have 2 tome of prewritten scenario to start with. I don't know about other indie developer, but I think having a scenario draft is really important. I want to develop things around a story and not squeeze a history inside of a confine set of feature. Those two book gave me the opportunity to know my character. This is a lot of character background to work with ! It's cool. It's like if I had started that game a couple of years ago without even knowing I will ever produce that. That said, things have change for the best and I am not sticking to a simplistic adaptation of an old unsuccessful cartoon. This is a complete rewrite, remaster, recreated, new, unique and super wow bing bang history inspired by the original work ! I think it is very important to have a good story a good plot, we want to tell a story, we want a start, a reason to play and the goal to be clear. We want a strong story to support game feature and we have one. 

    So graphically you can expect things in 3D but with a cartoon style approach. I want this game to be more like how Pixar does thing. Cartoon but with a realistic look... ok hold it here. I am not Pixar, but if I have to aim at something, i'de rather aim as high as possible. I don't want the inspiration to stop there. I want the game to feel like a comic book, not by having super great 3D simulation of  a page being turn, I don't want it to feel like a gimmick. What I am saying is that I want it to be funny, colorful, action packed and for all age. Everything will be, from a design stand point, inspired by that.

    Designing a character is also very complex to me. Designing a character is not only how it look it is how it live, how it walk, how it talk, how it react to certain situation etc. You have to create, in your mind, a full feature humanoid. I remember working up at night to write down idea and redraw stuff that wasn't working well. All this data is part of me now. They were born and lived in my head and they still do. I'll make various blog entry regarding each character

    Game inspiration

    I can't really pin point what game would be the closest similar game to the our. I am not necessarily inspired by 1 game or a set of game, but i'm inspired by some game feature of the old days. At the time of classic arcade, colleco and nintendo NES there were some stuff about these game that make them good even 30 years later. They were very addictive, they required complex pattern learning, skill and you had to be really crazy devoted to finish a game. I remember the adrenaline rush and excitement of finishing a game meant at that time. I find today's game to be more on the easy side, very forgiving, very beautiful and cinematic but also very short and almost no replay-ability. Replay-ability is a big word that a lot of developer said to aim at but very few actually achieve it. We will try to achieve that in various way by implementing a lot of game mechanic we will talk in future blog post. What game had

    1. They were hard and frustrating
      1. To a certain degree this is not so good as we want stuff to be fun, but if you want to have this adrenaline rush we all like,  you have to go through painful moment. A mix  of nice easy moment and hard impossible level that draw the line between care-bear and hardcore gamer ! I know that I treat the "hard level" of todays game as the "normal level". How difficulty work in our game will be shared in a futur blog entry.
    2. They had a LOT of replayability
      1. Yes, people still play Mario 1. It will always be fun. Q*Bert, still very fun, even though every level look the same. PacMan ! 256 level of frustration. We will not have only 1 level repeating itself at higher speed indefinitely until the game crash, but we will give you reason to restart the game even if you ever finish it. We will give you reason to restart the game if you are  stuck at a certain level that is too hard. We will give you reason to start many game in parallel just to do thing differently. I can't wait to share more about it later !
    3. They were unforgiving
      1. Ever played Rick Dangerous ? This is one of the most sadistic experience (still a very gun and good game) as everything in this game kill you instantaneously and this Indiana Jones inspired game had all of impossible to detect death trap every where. Each path was design to kill you each and every single time. Ever played the NES version Dragon's Lair ? (ok this one is a bad exemple, as the game was really bad, and the control were terrible) There is a funny episode  from the angry game nerd about it.( go to 2:46 https://youtu.be/00xIvTOLrYA  ). We don't intend to have a game that frustrating, That is not fun at all. But even in mario everything kill you in 1 shot. It's hard, some level require a Epic level of eye finger coordination. Today's game give you plenty of health, and health typically regen etc. We have our own thinking on how to draw the line between those two extend. More info soon ;)
    4. They were fun and had their own signature
      1. As easy as it sound, this is the hardest part. Make it fun ! You will be be the judge of that and you'll be able to judge the more you discover about the game.

    Stay tune as the next blog post will be about the game story and what will be the humorous approach of this crazy universe. Follow us !

    What do you guys think about today's game difficulty level ? Are they just right or are they too easy ? 

  11. Every game has to start somewhere, and mine will be the concept development phase.  I've laid out a personal time line that I am striving to follow for my development process and I will be discussing the process for the Concept model.

    Sadly, this concept model is going to be more of a gameplay feel concept and not a game concept.  My objective is to create a working arena for combat, for the player to practice sparing with a single enemy.

    Practice Arena
    In order to begin developing, I need an environment to play and test in.  For this purpose, and to offer a place to practice gameplay mechanics for players in the future, I've come up with the Practice Arena.  The Practice Arena will consist of 7 game objects. 
    1 Floor
    4 Walls
    Player Spawn Point
    Enemy Spawn Point

    Using unity, this will take me roughly 15-30 minutes to fully configure to my liking.  I have no intentions of creating visually appealing content until achieving a "beta" state for the game.  After attaching coliders and placing spawn points I can move forward to the Player Prefab.

    Player Prefab
    For the player prefab, I will be using some of the free models I found on reddit.com/r/gamedev created by /u/QuaterniusDev.

    (Full URL for model: https://www.reddit.com/r/gamedev/comments/7jobpt/free_lowpoly_animated_woman/)

    For the player, what I want to do is import the asset into unity and drag it into my game world.  We will be focusing on developing the player as a Prefab and not a game object.  By doing this we can easily create the player in new worlds without a lot of extra work.

    Controls
    A game is quite literally just an animated movie without user input.  The next major step will be defining the user controls for movement.  As an engineer, I have a very object oriented mindset which is why I have decided to build a "ControlHandler" class.

    The control handler will handle input from all sources and trigger events in responses.

    I'm choosing event driven input vs direct input so that I can easily seperate what triggers each event/movement and give myself easier control/management over the entire game by not having to spend hours scouring for code.

    Single Spell
    A single spell sounds boring but with the intricacy of the spell system, and the future talents, building just one extendable spell will be a great start to an intricate spell system later on.

    Both the player and the enemy will have access to this ability and it will be the primary source of combat in the early stages of the game.  

    Enemy
    I will also be building an enemy in the same manner that the player was created, I'll be using a model borrowed from our good friend in /r/gamdev and using the low-poly zombie model

    link: https://www.reddit.com/r/gamedev/comments/7pla8z/free_lowpoly_animated_zombie/

    Enemies will have their own customizations in the long term which is why enemies will also be built as prefabs.  The goal is the create EVERY object in the game in a generic expandable form.  Enemies will be hanlded via an AIController.  The AI Controller will handle all active game AI in the scene. 

    Hit Detection
    In order to provide a small combat experience I will have to build hit detection.  The hit detection module will be implemented inside of spells, spells will register everything they come into contact with and register it as a hit.  
    If the spell was from a friendly targe the hit will do no damage.  

    Dodge Mechanics
    The hyperactive/reactive nature of the gameplay will be ever present inside of the dodge mechanics.  Each class has unique ways to defend and protect themself but the most common will always be their dodge mechanic.  The first dodge mechanic that will be implemented is a roll to left or right.  Dodge mechanics will be expanded as the class system is built out later on.

    1v1 Battle Mode
    In order to create a battle mode, I will add health to both enemy and player characters.  Whoever drops from 100 to 0 first is the loser.

    I will be playing in this version for a while trying to get a better feel for the movements and upgrading.

    I look forward to writing development posts about all the topics I just discussed, and I greatly appreciate you following on this journey.

    Outro

    Nothing in the world is free and I immensely respect anyone willing to take time working on products that they release for free.  On that note, I just wanted to share the Patreon for /u/Quaternius.  Thanks for all the models you make and I wish you as much success as your heart desires!

    https://www.patreon.com/quaternius


     

  12. Hello,

    My Name is Olivier Girardot, I am a music composer and  a sound designer.

    I am working with a friend and great artist Gero Doll on a VR project called DreamArtVR. Gero is doing all the design and programming, while I am creating the Sound.

    Gero has by far the hardest part. Plus he is not a programmer so he has been struggling a lot to achieve this first level, and there are some imperfections, but I think he did a great job.

    We would very much appreciate if you could try the demo and give us your honest opinion. We know there are a lot of things to improve, but we hope we are on the right path to create something unique, and interesting for the players.

    We are also hoping to get some financial help to finish this game and hire a programmer.

    We are looking forward to reading your impression on this game.

    Here is the video teaser: 

    And here is the webpage where you can download the playable demo: https://limbicnation.itch.io/dreamartvr

    Thank you for your time !

    Olivier Girardot

    http://www.ogsoundfx.com

    http://www.ogmusik.com

    http://www.limbicnation.com/

  13. Art is one of the most important aspects in Noahmund. Everything that includes our videogame is conceived from the vision of beauty and inspiration. For that, the department of art works unceasingly so that the most innovative ideas that arise in the studio have a true reflection in the final content that, after all, is what players are going to experience when they finally enjoy Noahmund.

    Miguel Guzmán is one of our 3D modelers, who has been working very hard during the last weeks for our second demo available from the 16th of October. In this demostration you will be able to see the city of Shinn and Costa Penumbra, so that Miguel’s work has been centered in modeling both scenes/settings. 

    UgOV37F.png

    In the seaside site it has been recreated all of the props, such as stones, vegetation or the collectible elements, that are essential for the creation of catalysts (potions) in the advance of the adventure. In the same way, Miguel has elaborated all of the objects of dungeons that you will see in the final version of the game, which contains many details of a huge artistic importance, especially to contextualize the player with the place where they are. These kind of elements, like monuments or big size elements, comprise the greatest difficulty, since they need a more exhaustive and thorough treatment in order to perfectly reflect their characteristics.

    To Miguel one of the biggest satisfactions is the composition of collectible elements, such as herbs, flowers or bushes, which, despite of appearing very homogeneous between them, they offer the possibility of doing the task with more dynamism, providing their personal touch, something that does not happen in other types of compositions more attached to the conception of the script.

    QcI2HY5.png

    About the city of Shinn, Miguel has been working on a striking area of this mythical location. A restful place, full of spirituality, surrounded by forests and separated from the bustle of the city and its population. This forest, inspired by the zen gardens for its design, is a rest and repose area within the city, a place where mysticism and mourning come together with familiarity.

    The work is continous, but without any doubt it is made with great ilusion so that everybody can enjoy it. Next week we will come back with another devblog especial for the release of the second demostration.

    You can download the second demo of Noahmund in www.noahmund.com

     

    • 2
      entries
    • 0
      comments
    • 97
      views

    Recent Entries

    Latest Entry

    Ищу спутников опытных net программистов за разработку игры подводные бои

  14. When doing any largish project, you need various support infrastructure. You need to be able to track your changes, and because working with multi-thousand line files is a right pain - you need some way to combine multiple files into one, and finally, you need to be able to run tests to ensure your code is valid.

    This means we need: 

    • A Version Control System
    • A build system
    • A Test system

    I'm a fan of git, and so the project is already up on github. Don't bother to have a look there yet - there's not really anything to see. But it takes care of the first requirement.

    For a completely different project, I wrote a small dependency resolver in python. Coupled with a small command line interface it makes a minimal (<300 line) build system. For a project that isn't "just" building code, this allows a lot more flexibility than things like Make, and because it's python it probably doesn't require people to install anything they don't already have.

    And because I haven't worked in javascript extensively before, I don't have a particular test system yet. I'll probably end up going for Jasmine. I'll be playing with that this evening (unless someone comments with other suggestions)

     

    There is also also have other non-project code that needs to be written. We need some way to get models and assets into our new engine, and like a complete n00b, I went and modelled all the models already. I also wrote an export script for blender! The great thing about blender is that it is python scriptable, and it is trivial to iterate through the vertices and write an export plugin. So we already have a way of getting all the vertex data that we need. 

    So what do we have currently? We have a system where you can type "./build.py --all" and it will spit out the sprite texture sheet, export a json file representing the modles, and merge some javascript files together. Awesome. After checking out some test frameworks, we can get started on the actual engine (or rather, the math behind the engine).

    Below you can see the sprite-sheet with the face outlines in white (and the physics outline of the ship in red). You may notice the weird color-spectrum: those are baked in blur levels that are useful for making a bloom effect in the meshes fragment shader without needing screen-space post processing.

    theship.png

  15.  

    Originally posted on Troll Purse Dev Blog

    Recently, Troll Purse setup a public invite for the Troll Purse Discord Server. And, as with all things, we decided to test out using Discord Webhooks to push updates to our members in realtime. This is by far the most effective realtime pushing we have conceived yet. It was so easy, sharing it will be just as easy.

    Discord Logo

    Using A Simple Webhook

    Usually, the pattern at Troll Purse to push to third party accounts follows this pattern:

    1. Sign up for the third party account
    2. Register an application
    3. Find an API wrapper library for said third party account
    4. Publish an AWS Lambda
    5. Post about it!

    This time, we decided to skip step 3. For the most part, the developers at Troll Purse recognized that this push would require very little data transformation and authentication routines. In fact, all of the work was done in one POST request to the Troll Purse Discord Server.

    The Code, Kind Human

    public async Task<string> FunctionHandler(SNSEvent input, ILambdaContext context)
    {
        try
        {
            var messageJSONString = input.Records[0]?.Sns.Message;
            context?.Logger.LogLine($"Received({input.Records[0]?.Sns.MessageId}): {messageJSONString}");
            if (messageJSONString != null)
            {
                var messageContent = JsonConvert.DeserializeObject<BlogContentUpdated>(messageJSONString);
                using (var httpClient = new HttpClient())
                {
                    string payload = $"{"content":"{messageContent.PostTitle}. {messageContent.ContentSnippet}... {messageContent.PostLink}"}";
                    var response = await httpClient.PostAsync(Environment.GetEnvironmentVariable("discord_webhook"), new StringContent(payloadEncoding.UTF8, "application/json"));
                    return response.StatusCode.ToString();
                }
            }
            else
            {
                return null;
            }
        }
        catch (Exception e)
        {
            context?.Logger.LogLine("Unable to Discord the SNS message");
            context?.Logger.LogLine(e.Message);
            context?.Logger.LogLine(e.StackTrace);
            return null;
        }
    }
    

    Notes:

    • BlogContentUpdated is code defined in an external Troll Purse binary.
    • WE USE SECURE ENVIRONMENT VARIABLES!!! THIS IS IMPORTANT!!!! (As opposed to plaintext credentials in our source code.)

    The Joy of Lambda

    All of these features that Troll Purse has blogged about are done within a few hours. This is easily aided by the idea of serverless programming. There is no overhead of provisioning servers, testing different server environments, and configuring a network for these functions. It removes a lot of network infrastructure and enables Troll Purse developers to create fast, reactive, internal services.

    Please, if you spend too much time configuring and setting up, try using AWS Lambda to speed up development time.

    Would You Look At That

    In two lines, without a library or API wrapper, our developers can now push blog updates to our Discord server. This is a nice quick feature that we plan on integrating in our automated build environment to push updates about new versions released to the public. Enjoy!

    Originally posted on Troll Purse Dev Blog

  16. I am finally ready to release the first demo for my next game Mine Seeker. I ran into a bunch of issues with gitlab, which I was using to host my code. They did an update and I lost the repo for this game. Thankfully it hasn't been released yet so I was able to create a new repo and migrated the code and issues to the new repo. Then I ran into issues pushing my code up to gitlab. I was unable to resolve that so I made the switch to Perforce. I've never worked with it before so there will be a bit of a learning curve as I go, but I have it set up so I can change files and submit them to the depot. I lost about a week maybe 2 because of this.

    On to a brief overview. The game play is similar to Minesweeper. You have to click tiles and try to avoid clicking on a mine. The first area of 20 levels is available in the demo. I plan 8 more each with an increasing level of difficulty to make it harder as you play. If you click on Quick Play you will be able to choose your difficulty and a game screen will be show. The Quick Play is similar to the original Minesweeper except there is no time or scoring. Clicking on the Play button will load the single player adventure with (eventually) 9 areas of 20 levels each. So far I have 1 area with all 20 levels. 

    main.thumb.png.f4fefb086e40682b5282b7fa4c5de919.png

     

    Choosing the Play button will load the level selector screen. Each area is divided into 2 sections. This shows the second section of the first area so these are levels 11 through 20. The next and previous buttons will take you to the next and previous worlds if available. Click on a blue level button and the game will load. If the button is grey the level has not been unlocked yet. You must complete a level before the next one is unlocked. 

    levels.thumb.png.994dc15d85310b608192d8de7ecdd697.png

     

    Here is a quick look at the game screen. The buttons I think are fairly self explanatory. The score of the game starts at 1000 and decreases over time plus you get 1 point for every tile uncovered. It tells you the number of mines remaining as well as how much time has passed since the game started. 

    game.thumb.png.dd37e2da459dd61890c1c1ac5b62bdf6.png

     

    So because of the git issues I currently only have the windows demo available. I will add the Mac version as soon as I figure out how to get my Mac to connect to my Perforce server to checkout the code. If you have any suggestions, ideas, comments or issues of any kind let me know. You can either comment on this post, email me at support@hunter-gaming.com or contact me through my website. Here is the demo for Windows. You may need C++ or Direct X dependencies but being developers I'm sure you may already have it. I believe it should ask you if you want to install any dependencies you don't have installed already but if you have issues getting it to open let me know.

    MineSeekerWindows-x64.zip

  17. In hopefully the first blog of a (fairly!) regular series I would like to introduce the game I've been working on for a while now.  With a working title of COG, the game is a 3D action adventure game with a Steampunk theme and strong platformer elements.

     

    This is very much an indie project ... the coding of the home grown engine is done by me, the 3D modeling is (largely) done by me, the level design is done by me and ... well you get the idea!  About the only support I'm getting is from my kids who are doing the 'QA' (and who are super critical when something doesn't work!).

    Blog1shot3.jpg.89774e61ea06e98a3090ebe935f93c11.jpg

    So where am I with this project?   The game engine itself is pretty much 'feature complete' and the game playable even if there is still a lot to do in optimising and polishing the different components.  Most of the standard platformer elements (conveyor belts, lifts, moving platforms, spike traps, switches, etc, etc) are already working and available through the level editor with the 'levels' (more accurately map sections) loading on the fly to create a continuous, seamless world.  Basic monster code is already in place with it being pretty easy to add new monster types as needed for the game.  The lighting and particle systems are  currently being reintegrated into the game (the code is complete, but was deactivated while creating the first builds) so hopefully the landscape will soon be full of splashing water and rising steam and smoke (pretty important to have rising steam in a steampunk game!).  

    Blog1shot1.jpg.ed7a1a2aca2b2c6e1384699a6f9ccb42.jpg

    The camera system is nearing completion - it allows the player to have full control of the angle of the camera with objects close to the camera position fading out to improve player visibility (this is the last bit being worked on here with the drawing order of semi-transparent buildings being tightened up and optimised).

    Blog1shot2.jpg.06630cf64387fbdc0b1025434da887e3.jpg

    Looking at the content there is currently some placeholder content being used with the worst offender being the player's character which is currently a (not very steampunk) Kiwi rather than what will eventually be a small robot.  In addition, while the 3D models are almost all self created, the textures used are a mix of those I've created myself, that I've purchased and a handful of temporary placeholder textures.  These placeholders have allowed for rapid prototyping  (especially as creating textures is a slow and painful process for me), but will obviously need to be replaced in the near future.  Fortunately this shouldn't be a huge task as I'm using texture atlases that allow for easy swapping in and out of new textures ... there should be relatively few cases where it may be necessary to tweak the texture mapping.  For information the screenshots and video contain this placeholder content.

    Blog1shot4.jpg.92427aa9302eb331555eceecb050d0ea.jpg

    As a result of all this there is now quite a nice library of 'Lego bricks' available including a range of basic building blocks (platforms, towers, walls, pipes, etc), more exotic props (the already mentioned spike traps, barriers, lifts and switches as wells as the mandatory barrels and movable crates), plants, rocks and other landscape elements.  Finally, there is a series of animated models including waterwheels, steam engine, pistons and so on whose clanking and whirring will helpful give the impression of a living world around the player.

    So things are going pretty well at the moment (especially given the limits on the time I can devote to this) and COG seems to be getting to a stage where it is moving from a process of writing code to one where the current task is to complete the game - a pretty rare thing for me!

    Please let me know you think of the screenshots and video - one of the main reasons for starting this blog is to start getting some feedback to help shape the remainder of the game ... all constructive comments would be very much appreciated.  Also if there is interest in a particular aspect of the game development process I would be happy to share more details in a later blog entry.
     

    Thank you for your time!