Jump to content
  • Advertisement


Our community blogs

  1. seas of fortune7


    Hey All!


    Its been a while, these last few months after the summer was rough, and involved a lot of hard work considering we have no budget and we have to keep such an ambitious project alive!


    We had our last community build out a while back and used a lot of the feedback we got from the greatest community on earth to fix and tweak things, so here is a list of what we have been up to, lets get straight to it!



    DuK1HmxWsAAsymz 1




    Our great animator Captain Lee spent a whole lot of time doing animations for us, as you saw in our previous update he spent most of his time on the first person hands. We have now added some of those in the build, after that he spent even more time doing some animations for the crew members, the focus this time was mostly idle animations.


    giphy 2


    Conversations is always crucial for having "life" on the ship, so constantly finding out what fits is not only a fun progress but challenging.






    Having the crew do random idle animations that would make sense on a ship is also very important


    ezgif 1 add5bc6cc386



    Build Notes:


    Lets jump to some tech stuff!


    -=- Version 0.4.1 Notes -=-


    * Implemented TRADING - Players can now buy / sell goods at ports. Each port has its own economy!

    * Modified the 'Third-person' camera view (Pressing 'V') with limiters and slightly smoother transitions (WIP)

    * Added the Crew System which includes two different behaviors (Deck Scrubbing, Talking). (In the future, Crew members will be able to dynamically switch between tasks)

    * Crew Members now have their clothing and beard randomized

    * Added a weather system (it can rain, clouds can change, etc.)

    * Added a day & night system (currently too fast!)

    * Completed Crafting System and UI overhaul

    * Added the character customization screen (portrait)

    * Added the ability to use a candle ("L") when its dark

    * Added the ability to pick up and hold a pipe ("P")

    * Added lanterns throughout the ship which can be turned on/off ("E")

    * Added cannons that can be fired (X6) ("E")

    * Sails are now animated (only an idle cycle for the time being)

    * Integrated audio hooks on the character (walking)

    * Integrated audio tracks and ambient loops (including a dynamic ambient audio system that is synchronized with ship water movement)

    * Added some crafting recipes

    * Improved water physics (buoyancy) and ship's navigation controls (WIP)

    * When using the whipstaff to navigate, can now lean left/right using "Z" and "C"

    * Replaced previous islands with new models, textures and lighting

    * Improved the Quest System by adding a new series of new Quest Categories: Craft a good, Buy a good, Sell a good. A new quest relating to crafted is now active by default.

    * Added contextual UI callouts -> When nearby an 'interactive station' (Whipstaff, Fiddler, etc.), when close to a Port, etc.

    * Multiple improvements to the ship's collisions

    * Changed the compass (now using a 2D UI asset) and waypoints

    * Added 'water splash' effects for the ship to make it feels a bit more realistic

    * Partial reskin of the Quest Book

    * Skinned multiple UI elements (popups, callouts)

    * Fixed multiple issues relating with 'game context' which resulted in mouse locks and other unwanted behaviors

    * Fixed multiple animation quirks and issues

    * Fixed multiple critical level shader issues that would prevent the game from working on various tech configurations

    * Optimized volumetric light performances

    * Optimized and streamlined visual assets to improve performances on lower end systems (GTX 580 / 8gb RAM)

    * Added a demo version text overlay to quickly walk through new controls


    Character Customization:


    Previously this was only tested outside the build. But we also added the option to change beards after some feedback from twitter, once we get more characters this option will be enabled in the build.


    ezgif 1 aebf6da51685


    I did not have the time to finish the frame in time to get it in the build. But whatever picture you choose here, will be displayed on your Captains table.





    Whenever you reach a port now, you can buy and sell goods for either making a profit, or for crafting at the workshop.


    ezgif 1 ffe3dc842996


    As the game progresses we will add more and more goods for to sell or buy. The wallpaper will properly display the port you are in as well, creating a unique animation in the different ports.



    ezgif 1 f40deb65796f




    We have of course worked on the physics, which seems to be a never ending thing. Steering feels a bit heavier now, so does the turn ratio. Also, sailing at night when you cant see anything? Of course, why not!


    ezgif 1 121d3dfa8ea2


    ezgif 1 d5d2a8b27a42




    We have added a few crafting recipes, so harpoons and rum can now be made on the ship. If you run out of items you would have to buy these at port. Harpoons can be sold at outposts for a pretty nice profit. Adding new recipes is also something we will continue to add as we go.


    ezgif 1 021debe504fd





    We have not added any crew interaction as of right now, except the fiddler (He will play a song if you want him to) But you can watch your crew mates work and talk around the ship.


    ezgif 1 44b01d04b926


    ezgif 1 5d0671f85cb7



    Of course, firing cannons is the fun part! Later on you will be able to command your crew to do this for you!


    ezgif 1 fb78a6c65705


    Whats next?

    As we throttle trough with tweaking and adjusting things on feedback, I have also started a new player ship! Yes, I know, very exciting!


    This time its the Cocca Veneta, a 16th century was an unarmed merchant vessel , trading from the Mediterranean, in particular Venice. The term 'Cocca' was applied to small merchant ships sailing from Venice to the east. 
    Characterized by a high prow and stern and a simple, maneuverable rig with 3 square and 2 lateen sails. 
    Their length was 20-30 meters and under 2000 tonnes displacement.


    This ship also has a different and earlier steering mechanism which provides a new play style.


    Take a look at the model I am working from here:







    s l1600


    n212 nave mercantile



    If you want to reach out for whatever reason, you can always send us an email at contact@seasoffortune.com or check out our website at www.seasoffortune.com



    Until next time Captains, Have a great Christmas and a happy new year!


    - Captain Tommy

  2. Well, it's not complete but I think the gears are all there now.  I still need to incorporate leader-boards, build some NPCs and do some more fine tuning here and there. 

    Still, not much more than a toy, but it's pretty fun!



    Really anxious to hear about frame-rate numbers(bottom corner).  In this latest(WebGL) build I've been getting close to a stable 60fps in FireFox.


    I even threw together a simple touch interface, haven't tested it on a touch device yet though, so I dunno how well I guessed for size/placement of the buttons.  I'm thinking they might need scaled down a bit for some devices... haha. ;)



    Anyhow, would love some feedback if you got a minute to do some rocket-powered snowboarding, with a robot. ;)



  3. slayemin
    Latest Entry

    (Warning: Rambling ahead!)

    I met a new client in the beginning of November through a friend. The client asked my friend if he knew how to use Leap Motion. He said, "No, I don't, but I know the just guy who does! Eric is probably one of the best Leap Motion developers in the country.", and a referral was sent my way! I need to remember to buy my friend a nice dinner as a show of thanks.

    Anyways, this project was interesting for a variety of reasons. First off, the bulk of development was being outsourced to Ukraine. The outsourcing of work meant that the project owner needed to work late into the night to coordinate efforts with his Ukraine team. They were having some problems with the wrist joint causing the mesh to twist (candy wrapper effect) and nobody was making much headway. So, I was brought into the project. I downloaded the full project, tried it out to see where they were at, saw the problems, and then I started looking at the implementation. Pardon my unprofessional trash talk here, but the implementation looked like it was being held together with bubblegum and duct tape. I told them that I was going to redo the project. It was such a simple project that it took me about two days to rebuild. I was able to simplify, condense and cut about 75% of whatever those Ukrainian guys did, and it was a "correct" implementation which was maintainable. It was valuable as a throw away prototype, but for production work, it needed to be redone. I told them, "If you can't tell the difference between what I did and the original, it means I did my job right." This is always a tough sell for non-technical people, but you see the real value as the project progresses. When everything is done right from the very beginning, you skip over lots of problems you would have otherwise had (which costs time, energy and money).

    As far as project implementation goes, this was a super easy project (for me) because I had already done several similar projects and had built out a template library to use. The hardest problem was actually dealing with the wrist and elbow joints with leap motion. So, I'll describe some of that pain here:

    The initial problem was that when you rotate your wrist (roll along arm axis), the wrist bone rotates but you start to get some pretty bad deformation of the arm mesh, to the point where the wrist gets pinched to look like a candy wrapper. The problem was a combination of technical implementation, incorrect rigging, incorrect mesh weighting, and a bit of fighting the leap motion plugin. Fixing the problem can be sort of described as trying to straighten wet spaghetti noodles, because so many different factors contributed to the problem. There was no single silver bullet fix that magically fixed it all. My greatest secret weapon was my strong debugging skills and approach to debugging. Although my client liked to call other experts with industry experience, they could only do vague hand waving and guess work at the causes of the problem. The true, best way to figure out what's going on is to dig into the problem, get deep into the weeds, add a ton of debug scaffolding code and visualization helpers, and really spend the time and effort to look at what's going on. A slow, methodological, scientific approach is tried and true for me and far more illuminating than the guesswork of experts unfamiliar with the project.

    As far as skeletal rigging goes, I ended up downloading a freely available Paragon character with exposed arms with rotating animations. I looked at the bone setup. To fix the candy wrapper effect, you need two twist joints in the arm, parented off of the elbow joint. The wrist twist joint needs to be about 1cm away from the wrist. You also need a forearm twist joint in the middle of the arm. When you apply roll rotation to the wrist, you only apply roll to the wrist twist joint but yaw and pitch are handled at the wrist joint itself. You also need to take about 50% of the wrist roll and apply that to the forearm twist joint as well. Otherwise, you start to get bad mesh deformation and loss of volume. You also need to be very robust with your mesh weighting on each of the bones. It's good to use a working reference model to get an approximation on the best vertex weights.

    There were also some challenges with the out of the box leap motion plugin as well. The problem is that you get the wrist transform, but the rotation values are for the wrist joint itself, not for arm twist joint roll values. I discovered that I needed to derive my own arm aligned wrist rotation, relative to the elbow position. The rotational value needs to be independent of wrist pitch and yaw. Anyways, I won't get into the vector math required to do that, but I ended up having to derive these rotational values myself. It's important to note that the wrist joint is being driven by the user (via IK) and the elbow is an intermediate joint, with transforms being set by the IK solver. The user can put their arm into any position and contortion, and the virtual arm you present needs to match as closely as possible with the physical arm location. This is really hard to get right because the animations need to support *anything* the user does -- any popping or glitches are obvious and break immersion. Doing good elbow placement with limited data has been one of the harder challenges facing most VR developers, so it hasn't been a well solved problem. Most VR developers will skip it all together and just show people a pair of disembodied hands at the motion controller locations, but if you are trying to use a full body avatar for the player character, it's a problem you eventually need to solve. I think I did a pretty good job on the elbows.

    I also made a discovery about the hardware capabilities of leap motion: Though this shouldn't be a surprise, the leap motion has great trouble finding elbow placement when people are wearing coats or sleeves. If you want reliable elbow tracking, you need to take off your coat and roll up your sleeves. You also need to be very aware of bright light sources in your environment because those light sources will interfere with leap motion. Keep in mind, the leap motion uses an IR camera to to track hand gestures, and the HTC Vive uses two laser base stations which emit IR lasers, so there is a slim chance that you can get laser base station interference, depending on placement and what direction you're looking. And... if it's not obvious, sunlight causes bad tracking environments for leap motion.

    Anyways, I nailed it on this project. You can pretty much do anything with your arms and the digital avatar will do the same thing. I'd show a video of the result, but I think the NDA restricts me from showing that. I don't think I'm the "best" leap motion developer in the country, but I'm firmly in the top 10%. My bigger worry about Leap Motion right now is the health of the company and what that might mean for their product. Are they going to be in business two years from now? Who knows. But, the library of content built for their hardware platform is slowly growing.

    On a VR production side note, I made an amazing discovery in this project. If you setup an Oculus to work from your chair, you can develop in VR using the built-in desktop virtualization app. As long as you can type without looking at the keyboard, you can develop in VR. Instead of having a 17 inch monitor, you can have a 5 foot screen in VR. And if you want, you can drag out windows and surround yourself with as many screens as you want. This taxes the GPU a little bit, but who cares? The beauty about this is that if you're developing VR content, you don't have to keep on putting the headset on and off between development iterations. Since you're already in VR, switching between your IDE and your VR app is reduced to a single button press. I worked like this for several days to see how I liked it and if it was feasible. I thought I'd get sweaty face, eye strain, or have some other related draw back issue. Aside from not being able to see my keyboard, it was pretty solid! There are small preference issues I'd like to change. I prefer to listen to music on youtube while I work, and when I work in VR, I am stuck with the ambient music in the oculus home environment, and switching between IDE and project switches the audio (this should be a preference). What's extra magical about working in VR is that it has a pair of headphones and a microphone embedded into the hardware, so if you wanted to do a VoIP call over Google Chat and do screen sharing, you can do it all in VR without taking off the headset! I truly believe this is going to eventually become the future of how people work and interact with computers and each other. I feel like I'm on the bleeding edge here and I saw a glimpse of the future, and damn, it looks awesome!

    In closing, this project was relatively small and simple. I was instrumental in shipping it. I feel that I have a fantastic relationship with my client, they are extremely happy and impressed with the work I did, and I will be their go to guy for future VR work. This is how you get repeat business and build a financially self sustained company. Now, if only I knew how to market myself... There's another potential upcoming VR project with a much bigger budget that I am extremely excited about. I can't go into details, but I will say... if we get this and pull it off, it's going to create a new industry and there will be lots of magazine articles written about what we did. My experimental research work in AI will not be wasted.

    As far as Spellbound work is concerned, I still work on it on the side, between projects. Since this is going to be mostly a story driven VR game, I've been focusing a lot on the story writing. It feels weird to open up a google doc for my game story and say I'm going "game development". It's creative story writing, not code writing. And... it's just as hard. I've gone through probably 10 different iterations of the story so far and scrapped most of them. I'm finding that the story writing for VR is extra hard and takes a LOT of time. You need to write it like a movie manuscript, but you also need to think about presentation and the fact that the story is not consumed linearly. If you're an indie on a budget (like me), then you need to consider that every word costs money and player patience, so if you're excessively verbose, it's going to be expensive and nobody wants to sit through long, boring performances. You also have to consider the localization angle: If your scripts have lots of sophisticated word play and language based puns, you are going to hate yourself when you need to localize for different audiences. Short, simple, sweet, to the point, well worded. A story isn't about how flowery and eloquently you can write your sentences, it's about retelling a sequence of emotional events which leaves an impact on your audience...

    I recently realized that the story writing doesn't need to be done from an omniscient point of view where you tell every important detail, it can be done from the point of view of the story writer (an in-game historians perspective, if you will) who has a limited point of view. This let's me skip details up front, hide them a bit, and do a big reveal later on in the plot as a twist in the story. With this style, you can experience the story twice and see the plot structure and make new sense of various setup clues (similiar to how you can watch the movie "The Sixth Sense" twice and get two completely different viewing experiences).

    Here is the dressed down storybook intro for Episode 1 in Spellbound:

    [This is the story book intro. It is presented as a series of illustrated pages in a book and is read by a narrator. We have accompanying voice over lines and sound effects to go along with the story, so that it feels almost like a cinematic.]

    Page 1:
    Thousands of years ago, evil wizards and witches opened the gates to hell. Swarms of demon spawn entered into the mortal realms, lead by the arch demon Asmodeus.

    Page 2:
    No army could stand against the demon spawn. Cities were reduced to rubble and ash, tens of thousands of people fell to their blades like wheat to a scythe...

    Page 3:
    When all seemed hopelessly lost to darkness, the eastern horizon erupted in a blinding glow of shimmering light. Asmodeus was no more, and his leaderless demon spawn retreated to hell.

    Page 4:
    Nobody quite knew what happened or how they won, but one thing the remaining kings agreed upon was the outlaw of magic and the execution of all its practitioners.

    Page 5:
    People were finally safe again... all but for wizards and witches. For thousands of years, those who even *looked* like they could be magical, were hunted down and killed in every kingdom.

    (Short pause / transition break for establishing shot)

    Page 6:
    On the edge of the Blackwood Forest, in a small hamlet named Halfordshire, a humble pair of farmers welcomed a new boy into the world. After seeing his fire red hair, Father named him "Rupert".

    Page 7:
    Rupert grew up, as all young boys do, and trouble followed naturally, as it does with all young boys.

    Page 8:
    But the natural troubles of boyhood soon turned into supernatural troubles which seemed to haunt Rupert everywhere he went. In a freak magical accident, his home was utterly incinerated. Only Rupert survived. 

    Page 9:
    As he stumbled out of the smouldering cinders of his former home, the villagers could see that not even one red hair on Rupert was burned. Was it a miracle?

    Page 10:
    As the initial shock wore off, villagers began to shout that he was a witch. Fearing for his life, Rupert ran, and he ran, and he ran, deep into the Black Forest. As day turned to dusk, the village hunters abandoned the hunt.

    Page 11:
    Rupert survived through the night, wandering through the forest for days, getting hungrier and hungrier. He stumbled upon an old tower of crumbling stone, and made it his new home and lived off of whatever edible bark, berries and mushrooms he could find in the forest.

    Page 12:
    Rupert lived in the crumbling stone tower for years, completely alone. Whatever was haunting him, seemed to follow him everywhere he went. What he didn't realize is that the next morning, his life would be changed forever...


  4. G'day.

    So I have been doing a lot of work in the console as I try and learn the basics of C#. I got sick of going all over the place for ASCII symbols to use as "graphics" in my console apps so thought I would simply list them all here


    ALT+98 b                   ALT+130 é                 ALT+162 ó                 ALT+194 ┬                 ALT+226 Γ     
    ALT+99 c                   ALT+131 â                 ALT+163 ú                 ALT+195 ├                 ALT+227 π     
    ALT+100 d                 ALT+132 ä                 ALT+164 ñ                 ALT+196 ─                 ALT+228 Σ     
    ALT+101 e                 ALT+133 à                 ALT+165 Ñ                ALT+197 ┼                 ALT+229 σ     
    ALT+102 f                  ALT+134 å                 ALT+166 ª                 ALT+198 ╞                 ALT+230 µ     
    ALT+103 g                 ALT+135 ç                 ALT+167 º                 ALT+199 ╟                 ALT+231 τ    
    ALT+104 h                 ALT+136 ê                 ALT+168 ¿                ALT+200 ╚                 ALT+232 Φ    
    ALT+105 i                  ALT+137 ë                 ALT+169 ⌐                ALT+201 ╔                 ALT+233 Θ     
    ALT+106 j                  ALT+138 è                 ALT+170 ¬                ALT+202 ╩                 ALT+234 Ω     
    ALT+107 k                 ALT+139 ï                 ALT+171 ½                ALT+203 ╦                 ALT+235 δ     
    ALT+108 l                  ALT+140 î                 ALT+172 ¼                ALT+204 ╠                 ALT+236 ∞     
    ALT+109 m                ALT+141 ì                 ALT+173 ¡                  ALT+205 ═                  ALT+237 φ     
    ALT+110 n                 ALT+142 Ä                ALT+174 «                 ALT+206 ╬                 ALT+238 ε     
    ALT+111 o                 ALT+143 Å                ALT+175 »                 ALT+207 ╧                 ALT+239 ∩     
    ALT+112 p                 ALT+144 É                ALT+176 ░                 ALT+208 ╨                 ALT+240 ≡     
    ALT+113 q                 ALT+145 æ                ALT+177 ▒                ALT+209 ╤                 ALT+241 ±     
    ALT+114 r                  ALT+146 Æ               ALT+178 ▓                ALT+210 ╥                 ALT+242 ≥     
    ALT+115 s                 ALT+147 ô                 ALT+179 │                 ALT+211 ╙                 ALT+243 ≤     
    ALT+116 t                  ALT+148 ö                 ALT+180 ┤                ALT+212 ╘                 ALT+244 ⌠     
    ALT+117 u                 ALT+149 ò                 ALT+181 ╡                ALT+213 ╒                 ALT+245 ⌡     
    ALT+118 v                 ALT+150 û                 ALT+182 ╢                ALT+214 ╓                 ALT+246 ÷     
    ALT+119 w                ALT+151 ù                 ALT+183 ╖                ALT+215 ╫                 ALT+247 ≈     
    ALT+120 x                 ALT+152 ÿ                 ALT+184 ╕                ALT+216 ╪                 ALT+248 °     
    ALT+121 y                 ALT+153 Ö                ALT+185 ╣                ALT+217 ┘                 ALT+249 ∙     
    ALT+122 z                 ALT+154 Ü               ALT+186 ║                 ALT+218 ┌                 ALT+250 ·     
    ALT+123 {                  ALT+155 ¢                ALT+187 ╗                ALT+219 █                 ALT+251 √     
    ALT+124 |                  ALT+156 £                ALT+188 ╝                ALT+220 ▄                 ALT+252 ⁿ     
    ALT+125 }                  ALT+157 ¥                ALT+189 ╜                ALT+221 ▌                 ALT+253 ²     
    ALT+126 ~                 ALT+158 ₧              ALT+190 ╛                ALT+222 ▐                 ALT+254 ■     
    ALT+127 ⌂                 ALT+159 ƒ                ALT+191 ┐                ALT+223 ▀                 ALT+ 0156 ™     
    ALT+128 Ç                ALT+160 á                ALT+192 └                ALT+224 α                 ALT + 0174 ® 
    ALT+129 ü                 ALT+161 í                 ALT+193 ┴                ALT+225 ß                 ALT + 0169 ©

    In addition, I found this cool "Ascii Font Generator"

    Ascii Font Generator (link)

    Ascii Font Generator

    Finally some other cool links I found useful...

    If you know of any other cool ones.. let me know!

    • 1
    • 0
    • 49

    Recent Entries

    I recently purchased a Nintendo Switch to prepare for the release of Super Smash Bros. Ultimate. I had played the previous incarnations of the series growing up, but mostly in college where “retro” games were popular to play again. One of the reasons I wanted to get this game was to play online with friends from college who had moved to various places. We loved playing together in college, and felt like this was our chance to play again. In order to play online, you need to purchase Nintendo Switch Online. One of the perks of purchasing this online service was a download of Nintendo Entertainment System (NES) virtual console that comes preloaded with many popular games.


    Since I purchased online a few days prior to the release of Super Smash Bros. Ultimate, I had time to play some of the games on the NES. The first game that I chose was Super Mario Bros. 3. I had played this very sparingly during my life, but had watched plenty of videos of people playing it on YouTube and had a confidence I would perform decently in the game. I booted up the game, and did not make it past the first stage. In fact, I died relatively quickly on my first attempt and did not make it much farther on my next two either. The main reason as to why I did not make it very far was due to my desire to not search for any mushrooms and instead hold the sprint button and try and make it through the map. I pretended I was a professional speed runner who knew what they were doing. What this did make me think about, however, was feedback loops that were put into this game and how they contributed to making Super Mario Bros. 3 one of the best games on the NES.


    In Designer’s Notebook: Positive Feedback , positive feedback is defined “as occurring whenever one useful achievement makes subsequent achievements easier” (Adams, 2002). In terms of how this works in Super Mario Bros. 3, the most basic example is getting a red colored mushroom. By doing so, the player is able to not only grow Mario in size making the level easier to traverse, but you also gain the ability to get hit by enemies one more time before losing a life. There are other items to collect that grant the player more positive feedback. A green mushroom will grant an extra life, a brown leaf grants Mario the ability fly, and a fire flower that grants Mario the ability to shoot flower, amongst others. All of these are attainable by even the most novice of players, ensuring that everyone has a chance of achieving the completion of a level/the game.


    Another way in which Super Mario Bros. 3 provides positive feedback is more subtle than the items, but it is nonetheless effective. When this game first came out, new players did not have the same advantage as I did. They could not watch other people who grew up playing this game play through it themselves and give pointers along the way. Rather, they had to figure things out themselves. This is where I think that Super Mario Bros. 3 is great. With the first two levels of the game, World 1-1 and 1-2, respectively the player is met with some challenge. More so however, they are given an environment to try and manipulate. This achieves two things: teaching the player how Mario can interact with the game environment, but also, and ultimately more importantly, how to traverse through the game utilizing those interactions. In the first level you can use Mario to get question blocks which grant the player coins or a mushroom, you learn that Mario can jump onto enemies and kill them, and you learn that there are secrets hidden around the levels that you find if you look hard enough. In the second level, you learn that you can slide down hills to kill enemies too. These are the introductory levels without coming out and saying they are.


    These skills are able to be used throughout the rest of the game, and provide a relatively subtle, but smart, way to introduce the players to the game without making them go through a tutorial to learn about the game. Super Mario Bros. 3 is not without its negative feedback loops either, or else this game would have felt too easy, like some people felt about Super Mario World. Mart Virkus, in talking about negative feedback says that it was created to not make boring because of imbalance (Virkus, 2018). For his example, he talks about the blue shell in Mario Kart and how it is used by players who are falling behind to try and give them a chance to make it back to the top position.


    In Super Mario Bros. 3, the big negative feedback loop that stood out most to me was the what happened to you if you lost all of your lives. When you lost all of your lives, you were sent back to the beginning of whatever world you were currently on. For example, if you were on level 6-4 and you lost all of your lives, you go back to 6-1 and have to play through everything again. This was a way to punish the players without taking away everything they had achieved like what happened in the original Super Mario Bros. This smaller negative feedback loop ensures that players cannot just play through the game dying as many times as they want. It ensured that they were always looking for ways to get extra lives and that they were strategizing how to make it through whatever section they were struggling on. This was counterbalanced by allowing players to go and get items at toad houses and to play the in-game mini-game called match the picture which would allow you to potentially win items as well. This meant that players who were struggling could get a positive feedback loop to help them make it through those harder levels.


    While this is just a brief overview of feedback loops that are present in Super Mario Bros. 3, it comes as no surprise to me that this game has remained so cherished over its 30 year existence. It was a well crafted game, and provides the player autonomy with just the right amount of guidance that it does not feel like they are receiving help at all. Hopefully more games in the future will follow this scheme as opposed to hammering in more and more positive feedback loops because we have entered the age where everyone wants something and does not want to work hard to get it.



    Adams, E. (2002). Designer's Notebook: Positive Feedback. Retrieved from http://www.gamasutra.com/view/feature/131426/designers_notebook_positive_.php
    Virkus, M. (2018). How Feedback Loops Work in Game Design. Retrieved from https://arcaderage.co/2018/02/11/game-design-feedback-loops/

  5. Ben Walker
    Latest Entry


    Home: Shellfish


    As part of our final project for Studio 2, we had to create a game based on one thing.




    Home Project

    This was the second Home Project I was coding for, my creative input in this project was less than Coming and Going.

    Shellfish is about how it is okay to put your own well-being first, and as a result of that cut off any relationships that do more harm than good. Even if they happen to be family or your best friend.


    What went right

    1.   Art Design

    I can take no credit for this, the designer for this project is incredibly talented (at least in my eyes) at creating unique backgrounds and characters. Very quickly all of these was designed and implemented into the project.



    2.   Work Mini Game

    The designer wanted a monotonous work mini game, in which the player had to write out paper work on the computer to earn money. After elaborating on design documents and taking notes of what was needed, I was able to make a system which turned out to be pretty fun. I think part of the charm once again was the great accompanying visual aid.   



    3.   Pivot

    In the last week the game took a design pivot, this didn’t alter any of the existing systems that were built but it did make more sense from a goal point of view. Previously a house was filled with items that you purchased, now you work to build a Rocket ship to take you away from your temporary home. Personally, I think this turned out much better, I really am invested in Goldie going to the moon



    4.   Audio

    The audio in this project was well sourced and came together quickly, the designer also made a bunch of their own, including music and sound effects. It adds a certain character to the game, which I think is designer personality in game form, which is something to celebrate.


    What went wrong

    1.   Planning

    As I mentioned previously, my involvement in this project was more of a when I’m needed basis. Which doesn’t mean I wasn’t available, it’s more like, information was trickled down to me over time about what was needed at that exact point.

    This made planning for this project difficult for me, especially as the designer was also doing some coding bits and pieces in-between points of communication.

    This wasn’t mine finest work from a coding standard point of view.


    2.   Communication

    Communication in work hours was fine, we would both actively seek each other if we wanted something or needed answers, which was great. However outside of class time, getting a hold of them was an issue which definitely slowed down progress.


    What can I learn from this?

    1.   Planning

    While information was sometimes limited, I could have definitely planned out my systems better, especially when modifications were needed for other functionality. Creating solid systems could avoid things becoming hacky in the end.


    2.   Communication

    I’m not really sure what I can learn here, as I mentioned before in class it was fine, outside I made my best efforts to communicate and update the designer what I was doing but it felt like a one-way street. I guess I could have communicated this better in class and come to an agreement or understanding of why this was.



    This project has had its up and downs, but I certainly think its in a great spot now, the game is a delight. I’m pretty disappointed in my coding standards on this project but I’m taking this as a learning experience and strive to do better. Look forward to working with them again.


    Thanks for reading!





    Development stats

    ·        Developers: Jamison Bolling, Ben Walker

    ·        Link to Game: https://slemhosta.itch.io/shellfish

    ·        Length of development: 4 weeks

    ·        Development tools: Unity, visual studio, audacity, 3ds max,  

  6. So I have finally got some level streaming to work in the project I'm working on. The next blog might be progress on it. But for now I want to explain quickly how level streaming is designed to work and how to get it to work for streaming just a single level. I have a small level that is too small to be broken into smaller pieces but large enough to take few seconds to load it. Like a lot of things the official docs are good but doesn't help for situations like mine.

    Level streaming is normally used to load and unload one level into another level. Making it easy to have large levels broken into pieces. You have just a small, whats referred to as a persistent level, to start and load other levels into and out of your persistent level as needed. So you set up a trigger so when the player walks through another part of the level is loaded. Is it a process that can be seen so you must take care to make sure the player can't see that level until its completely loaded.

    You have the option to load the level asynchronously or not by checking Should Block on Load.


    In order to set up level streaming you must add the level you want to stream to a list of levels. The level that is currently open at this point will automatically be chosen as the persistent level.


    The level that is currently loaded will automatically be selected as the persistent level. Once there you can click the Levels drop down menu to either create a new level, or load an already existing level, to add to the list. Levels added here will be the sub levels you want to load. For me right now its just one level called Downtown_L.


    Now there is a lot of good tutorials and documentation available on the internet but they all explain it from a standpoint of having large levels broken into small levels and loading/unloading as needed. There is not much out there explaining from the standpoint of a single level that is too large to just load using OpenLevel because it takes too mush time to load and blocks the main thread until its done loading. Which I think is where a lot of one-man-band indie developers are coming from as being the only person working on a game limits,somewhat how large levels can be. Unless your willing to spend large amounts of time on it.

    So how do you go about using this technology to load smaller single levels? Well what I did was create a completely empty level to use as the persistent level. So it loads super quickly. In begin play of that persistent level I show a loading screen. I should be able to eventually make the loading screen animated as level loading shouldn't be a blocking task now. After the loading screen is shown I immediately call LoadStreamLevel to load my single level into the empty level. Now it work. The empty level is loaded super quickly and shows the loading screen. Which currently is just text that says loading. But it stays there as the level is loaded and is removed once the level is finished loading. As its not blocking and I don't yet have a loading screen that blocks the whole screen, I can see the level being put together. It's kinda cool. I will be updating my loading screen next to make sure it blocks the whole screen and looks pretty to the player. Here is my begin play from the persistent level's level blueprint.




  7. 010caa622677413ad5b2.png
    I moved the health and the energy-weapon stats to the left. Now my protagonist has the whole hex to himself, so I made him larger.
    Also I made the energy display a button. If you press it, it allows you to sell your weapon’s energy. And you might wanna do that because I have some new enemies (like the one immediately to his left) that are very weak, but have nasty side-effects if you shoot them (like reducing the value of all neighboring tiles to zero). So it’s better just to step on 'em.
    I’m thinking of making the other icons a bit smaller (maybe the size of the player’s helmet). That way I’d wouldn’t have to shoehorn the text so far into the corners. And it’d better differentiate the player from everything else.

    View the full article

  8. Welcome back to another busy week in the GameGuru community.  Let's dive right in!

    Official GameGuru News

    This week saw another model kit update - specifically PBR getting added to some of the collectibles and minor doodads of  the Sci-Fi kit. I did notice, however, they are still using the Red Cross on the collectible for the heathkit.  This is considered a no-no in the GameDev community since it violates the Geneva Convention for using the international symbol of the Red Cross.  I brought this to TGC's attention and while no comment has been given thus far on it I'm certain they will take quick and decisive action to remedy this.


    As we enter the traditional holiday cycle, don't be surprised to not see any major code releases or updates done for a while.  I've noticed we tend to get 3-4 major releases a year and the most recent one will probably hold us for a while, likely until March or so. In the interim, it appears they are content to continue pushing Add On content and updates.  It can be frustrating for users who want to see steady and complete refinement of the core product.  Well hey, at least it's consistent, right?

    What's New in the Store

    Recently a TGCStore seller's discord was added.  If you need access, contact 'TheNext' on the regular GameGuru discord.


    Not a lot of brand new stuff, though it seems the cartoon-style assets are really taking off.  I like how they look though I worry it's going to saturate the market a bit.  Still, Reliquia and Belidos both are providing really quality stuff you can find right off the main store page.

    There's also a creepy Nun and an 'abomination' by Gtox.  

    Free Stuff

    In 2016 , there was a great bit of 'Christmas Giving' done at Wolf's signalling.  I have to say, it was a nice sentiment and I would love to see more of that.

    In the meantime, enjoy this 'free little alien'.

    If you're looking for Wolf's Christmas Advent Calendar of free stuff from 2016, check it out at this link here

    Third Party Tools and Tutorials

    Well foremost it appears that Epic games is positioning themselves as an indie gamedev marketplace.  This is huge news and deserves some praise.  Steam is a great platform in a lot of respects but the 30% right off the top is pretty brutal for many involved.  Epic is offering a digital platform with 12% costs, but get this - if you use the Unreal engine then the traditional 5% for using that engine will be deducted from the 12% they take.  So you in reality are saving money by using their engine on their platform.  Pretty brilliant marketing though they'll need more than that to defeat a monster as big as Steam.

    Also it appears that SegmentAutoWelder (an FPSC conversion tool for GG) is repaired.  You can get your updated copy here: https://forum.game-guru.com/thread/220102

    Random Acts of Creativity (WIPs) 

    Well, interestingly enough as work slows down on the engine, work picks up on people's projects!  Lots of interesting screenies for this week for you.  I hope I caught them all!

    Mstockton's in development PBR Assets

    Bonesy continues work on his Sci-Fi Shooter

    DuchenKuke is putting out some fantastic Metro:2033 style screenshots

    Len the man continues to show us how simple methods produce great results for cutscenes

    VincentHendricks made this great scene using some dynamic lights set at the right coloration!

    Friskon - Lotgd made this bizarre gif which sort of boggles and fascinates simultaneously!

    As you can see, there's a lot going in in the community. I'm still waiting for a serious game to show up, something that can really knock the socks off other communities out there.  I think if guys like Duchenkuke can keep working at it, they'll eventually release something incredible.  It just takes perseverance, some tolerance for GameGuru's nuances, and a steady hand.

    Beyond that we're seeing some amazing work by the other devs who contribute code wise.  Check out some of the latest works of Graphix and Amenmoses - their particle system now has physics effects!

    T-bone is working on stealth mechanics similar to what you find in the old Thief games: Video Here

    Amenmoses has made some huge advances to his 'pickuppable' scripts.  Notably now you can actually use them to throw and injure enemies.  Check out the video of it here: https://vimeo.com/305258044

    In My Own Works

    This week I didn't get as much done as I'd like. The last mile here is proving somewhat difficult as I saved all the more dangerous or difficult tasks to cover for last.  This means particles, physics, advanced engine tricks like camera control - all of that is a bit daunting to write and a lot to research and test.  It'll get there though.  The trick is to just keep plodding inexorably forward.

    View the full article

  9. Hey, nice seeing you again! 

    I can safely say that this update is packing quite a punch, so let's get right to it!

    Patching up holes

    First, I want to talk about navigation meshes. Previously, only the procedurally generated floors were included in the navmesh baking process. This meant that all special rooms (aside for landfills and gyms) were completely inaccessible for any NPCs.

    This was due to two issues. The first one was simply that the navmesh baker only looked for the generated floor rather than any walkable surface. In Unity, it was just a matter of changing things a bit to use a bound box rather than checking in the object's hierarchy. The other issue was the way the floor was generated...

    Previously, most special rooms using static assets had floors that only covers the room itself, without counting the actual connective gap between it and the rest of the rooms. Because the floors were generated using marching squares, that connection's floor turns into an awkwardly shaped triangle, and thus created two small triangular holes.

    The problem was fixed by simply adding another square of the floor after that connective square. 

    With these two solutions, NPCs are now able to enter and navigate special rooms, so there's no escape now!


    New Relics and capacities

    Next, there's now a lot of newly implemented capacities (and thus relics).

    Backup Floppy



    Don't get caught with your pants down!

    Please make regular backups using this sassy floppy.


    You could even save yourself in it!



    This relic comes with the Second Chance capacity

    Second Chance

    When the player is about to die, then they instantaneously regain 25% of their health.

    This capacity can only be used once. You can, however, have that capacity many times and thus have multiple chances.

    Stats Bonuses

    • DEF -35%
    • HP -25%

    Beach Ball



    Beach balls can easily change their direction in the air.


    This relics only has one capacity: Double Jump.

    Double Jump

    This capacity is self-explanatory: You can now jump again in mid-air.

    Stats Bonuses

    • AGL -12%

    Concentrated ATK Juice



    This refreshment is so dope. I feel I can lift mountains with it...


    This relics comes with two capacities: Slow Attack and Charge Up

    Slow Attack

    This capacity simply slows down the attack speed. It also influences the charging times of chargeable weapons (like bows).

    This capacity can also be applied multiple times, meaning that attacks get slower and slower the more Slow Attack capacities you have.

    Charge Up

    This capacity lends to the wearer the capacity to charge attacks with swingable weapons like swords.

    A charged attack will have a somewhat substantial damage bonus depending on how long the player held the attack button.

    Quite useful to deal with stronger enemies!

    Stats Bonuses

    • ATK +25%
    • AGL -10%

    Echo Drop




    Our engineers have been able to capture the first dew drop of last Monday morning.

    This stuff is potent, so careful.



    This relic only got one capacity: Shockwave.


    With this capacity, the entity can generate a shockwave when they attack if they're lucky. 

    This makes any enemies in a small radius take damage no matter if they're hidden or not

    Stats Bonuses

    • DEF -29%

    Electronic Mask




    Experience a whole new level of calmness with the Electronic Mask.

    Everything in your life will become clearer and less confusing.



    This relic comes with two capacities: See Enemy Health and Clairvoyance.

    See Enemy Health

    This capacity is quite self-explanatory. It gives the player the ability to see any targeted enemy's current health. 


    Quite handy for planning attacks!


    This capacity helps the player find their way by rendering a nice glowing path to the exit.

    The path actually gets refreshed every 5 seconds, and there's even a nice fade-out.

    Here's a picture of that path 


    As you can see it's really AESTHETIC.

    The colours of that path are picked from our palette, meaning that it changes colours depending on the current level.

    Stats Bonuses

    • DEF + 5%
    • HP -20%

    Fan Of Violence




    This manual fan has the word "fire" written on it.

    Holding it, you feel really violent...



    This relic lends two capacities: Corrosive Spead and Enflamer

    Corrosive Spead

    This capacity makes any killed enemies drop a puddle of poisonous blood.

    If another enemy walks on it they instantaneously become poisoned (if they don't have any other status effect that is).

    The puddle dries up after a while. 

    As of now, there's no actual damaged dealt directly to enemies when they stand on a puddle. This might an idea for later, though.


    This capacity is quite easy to understand: you now deal fire damages and have a chance to give the burning status to any attacked entities.

    Stats Bonuses

    • ATK +5%
    • HP -5%

    Flying Shoe




    This is a single skating shoe with some kind of wings on each side.

    Holding it makes you feel floaty...



    This relic only got one capacity: Hover.


    This capacity makes the entity able to glide for a short period of time after a jump.

    Simply press and hold the jump button to glide. After a bit, the glide will stop. You can also release the jump button during a glide to stop it.

    One would think that the Double Jump capacity would counteract with this one but one would be wrong: just hold the button down after the double jump.

    This paired with a ranged weapon will make a deadly combo.

    Stats Bonuses

    • HP -5%

    New Activatable Item

    Next, I want to talk about a new activated Item: French Fried

    French Fried

    Alignment: Future Funk



    Holding it you can hear seagulls screaming in French.


    This is a rather funny looking moustached french fry wearing a beret and smoking a cigarette (Don't smoke, kids).

    This item can summon a seagull familiar that attacks any nearby enemies for a limited amount of time.

    Once the time runs out the seagull disappears.

    The player can have up to 3 seagulls at a time. there's also a cooldown before the item can be used again.


    Aside for its activatable ability, the Hover capacity is also given to the player as long as they hold the item.

    Stats Bonuses

    • DEF -11%


    I've previously thrown the idea around of having different damage bonuses if the player targets a specific body part with a projectile.

    I'm proud to say that the feature is now fully implemented. Now there's a 5x damage multiplier to projectile if they hit the head (for example).

    Although these bonuses exist, there's still a lot of balancing to do and whatnot.

    But I got to say that it's quite fun headshooting enemies with arrows (mainly because enemies aren't balanced yet).

    This works (of course) for any projectiles.

    Mouse Refactored

    There's also have been a big mouse control refactor. Previously, the mouse script I used wasn't as flexible as I originally thought. Rather than coding everything from the ground up, I've decided to cherry-pick code from Unity's standard Assets FirstPersonController script.

    I Initially wanted to fully use the controller, but there were some input delays with the Update and FixedUpdate functions. I decided to pick its MouseLook script and integrate it into my custom PlayerController.

    The results were night and day. Not only I could easily change the sensitivity, but there's even a "Smooth Mouse" function which interpolates mouse movements.

    Mouse Sensitivity

    Speaking of mouses, I've also added the ability to change the mouse sensitivity.

    This was made after many feedbacks of my playtesters, who were either unable to use the mouse properly or complained about an excessively sensitive mouse.

    The Mouse Sensitivity setting takes the form of two components:  a slider and an input field.


    In essence, the input field is used to save the actual sensitivity, while the slider is just a more tactile way to set the sensitivity.

    Right now, changing the slider will update the input field, which in turns updates the mouse sensitivity. If the player wants an absurd sensitivity (like 100 or something), they can't use the slider for that (which only goes up to 20 right now) and instead have to manually input this in the input field.

    There's also another checkbox component controlling that previously mentioned "Smooth Mouse" mode.

    Pause Screen Option Tab

    Now there's an options tab in the pause menu:


    This is a quick way to change common settings such as volume slides and mouse sensitivity among other things.

    These work just like their Main Menu counterparts.

    Once the player closes the pause menu, options are automatically saved.

    Quite handy if you want to adjust your mouse sensitivity mid-game, or lowering volumes while streaming.

    Closed Rooms

    Previously, all rooms were open form the getgo. The player could technically speedrun their way through the game without breaking a sweat.

    This kinda made the game quite boring, as there weren't any valid reason to destroy every enemy in each room. This was in a dire need of change.

    So I've now implemented a linear progression system, in which the player needs to clear the room of any enemy before passing on. 

    Of course, the player can break walls or enter special rooms anytime (mainly because these rooms are optional and won't provide any shortcuts at all), but in order to go to the next room, they need to clean the room first.


    The way this works is by having closed/opened doors (much like locked doors but without any type of locks).

    This makes the game feel more like a game, although there's still place for improvement.

    Minor Upgrades

    • Fixed the MSAA artifact bugs
      • It was quite simple: just use FXAA
      • Technically I can also do TAA (Temporal Anti Aliasing), but this could be put in the options.
      • Of course, there's a lot of other options, but right now FXAA does the job just fine
      • There might be better options, or maybe an MSAA fix but this will wait.
    • Added a  looping testing sound effect when fiddling around with the Sound Effect volume slider
      • This is for both the Main Menu's options screen and the Pause Menu Options tab.
    • Fixed a lot of bugs, especially with destruction/creation
    • Charging an attack now slow down the player
      • Once the player unleashes its attack it resets
    • Previously both the Quick and Slow Attack capacities only affected swing speeds. Now they also affect the charging rate.
    • Added a touch of Ambient Occlusion
      • I will probably put this in the options later on...

    Next Week

    Even with a cold doing its thing I'm still trying to be proactive and work on the game.

    In fact, yesterday I started working on a draft of a boss behaviour tree. Although still really rough and full of bugs I think I can have a working boss ready for next week.

    Afterwards, It'll be modelling time again, but this time it'll be level specific stuff.

    And after that, there's other relics, items, food, capacities and abilities that are left in the design document that needs to be implemented in the game, which means modelling, coding, designing and whatnot.

    But right now let's focus on bosses...

  10. We know that dispatching the same trains again and again in a loop improves your memory. After a while you exactly know where this train is heading without even clicking on it. We also know that this improving of your memory causes a boredom. That’s where an automation can shine! Four of five dispatchers approve.

    The automation will be a critical part of the game. We want the player  to gradually expand from the starting stations towards the other edges of the game plan. But this move is not possible when she has to dispatch same trains over and over. She may need to return after some time to further improve the operations but not to do the basics things again and again.

    Read more on our blog: https://railroute.bitrich.info/2018/12/10/automating-the-game/

  11. Dear lord do I sound like a pompus academic! Words are fun!!

    The flashy title aside, I just got the full content of the second draft of "Worthless", the/a key storyline for a multi-game project I have been embarking on for about a year with some people in suits. And looking back is giving me panic attacks!

    The 63 chapter draft (which, again, is free to read online) details the beginning of a fairly sprawling time travel universe, meant to be the bedrock for games on he drawing board, most of them smaller indie titles over the coming years. Plus comics and more stories and all that good stuff, but I digress. The idea is tha familiarity not only breeds greater interest, but will also allow for some games that stand out more from the crowd, because players will either know or have the option of learning the backsory before a game even begins. Kind of like game franchises, but in reverse. Kind of.

    A year ago, this was jus some collection of thoughts and notes, and a lo of noncommittal talk with people who knew/know little to nothing about writing, game design, etc. Now, with the second draft out there, it has become very real, and i am thinking thoughts I never had before. I have 300-500+ views on each chapter, but no comments, so I have no idea if anyone is really reading any of it (if you are, please let me know in the comments!), and in these days, game backstories seem to be in a weird place. Back in the 80s and 90s, story sometimes made up 50% or more of the gaming experence, because games themselves were limited. Now, people brush right by the story in games like Mass Effect or Mirror's Edge and just play the game. So I can't help but wonder, what is the role of a story at this point, on a deeper player interaction level? Is the existence of a deeper connection between games something that people react to, or is it jus somehing they skate by in a WhatCulture video? I am a huuuge fan of the storytelling in Dark Souls, but part of it might be because I respect how it doesn' really matter to the game, so it makes me wonder how much it really matters to players. And would the modern player enjoy the fact that there exists significant sory content outside the game, which can enhance or elaborae the story in the game?

    I'm still in a weird place after finishing that second draft (and not just due to the 300K+ wordcount...), and there are waaay too many weird questions in my head right now. But if any of this made sense, please let me know your stand on the value of stories in, and beyond, the games you enjoy!

    • 2
    • 0
    • 172

    Recent Entries


    Devlog #2 - Call me Bad

    10th of December 2018

    Really A Studio
    - Follow us on Twitter!
    - Subscribe to our Youtube channel for upcoming devlog videos!
    - Join our Discord server!
    - Consider supporting the team on Patreon!
    - Interested in contributing to the project? Fill out our application form or contact a Producer on the Discord server!

    Who are we

    Really A Studio (RAS) is an independent game development team. RAS was founded on the 30th of October 2018 as a bootstrap startup with the goal of creating innovative, quality video games. Our incredible team consists of passionate designers, artists, 3D technologists, sound engineers, and content producers from all around the globe working together to create great games. Our first and current project is Astroworks, a singleplayer sci-fi action game set to release in 2019Q1.




    Astroworks is a story-driven 3d arcade space combat action game. Fight against a galactic megacorporation turned evil with multiple spaceship choices, heaps of weapons and abilities, featuring tons of explosions! Embark on challenging missions which include fighting against swarms of enemy battle drones, blowing up enemy capital ships, sabotaging factories, spaceship races and more!


    Today’s topics: Bad & his spaceship, the Corvette class

    Before it gets too confusing, Bad is the name of a character. In fact he is going to be the first boss who you will encounter as the Player.


    Bad is a violent man and will choose the use force on anyone that defies him. Bad likes to do whatever he wants and he will not accept a “no” unless it comes from The Crimson Duke. Leaving destruction and death on his path, he enjoys inflicting pain and fear on other people.

    Bad usually enjoys the company of other impulsive people who think and act like him. But he hates people that act calm and rarely show his emotions or people who just simply ignore what he has to say.

    Back Story

    Taller and stronger than the other kids at his own age, Bad was always bullying the other kids. He liked the idea that the other kids feared him, so he forced them to call him “The bad kid” or simply “Bad”. He didn’t care about studies because he already know where he could use his superior strength and agility to his advantage: in the military forces.

    Bad passed the entrance physical tests without problems and started training as a soldier and pilot. He was a normal trainee at the start, but his tenacious spirit made him train harder than the other trainees, thus achieving better results at the end of his training. During his training, Bad’s bad behavior made him lot of enemies, but zero friends.

    Despite Bad’s behavior, he was given command of a pilot unit and sent to various missions. He caused unacceptable damage and destruction during these missions so in the end his boss gave him one last chance to redeem himself: a combined assault with one of his ex-trainee companions unit. Bad’s decisions and impulsiveness together with the lack of collaboration with the other unit caused several deaths from both units and a huge amount of civilian deaths.

    After his ex-companions united declaration against him during the military trial, Bad was dismissed from the army and put into jail. There, Bad lost all of his regard towards others’ lives. After The Crimson Duke took over Astroworks, Bad received a letter saying that he could be free to do whatever he wanted if he joined Astroworks military forces. Bad answered with this: “Count on me. And call me Bad”. Since then, Bad has acted as The Crimson Duke’s man-in-command in field missions and has been allowed to do whatever he wants as long as the objectives are achieved.






    The Corvette class enemy spaceship first appears in the boss fight against Bad at around the 60% point in the story. After Bad had been defeated, multiple numbers of slightly weaker Corvettes will appear until the end of the game.


    Special anti-individual spaceship that is considered the elite of Astroworks’ fighting forces. Corvette spaceships will only be released against specific individuals or in situations where the fighters alone won’t suffice. Corvette pilots will get as close as possible to the target before they unleash deadly attacks from an advantageous position.


    Previous Devlog: #1 – Beginning: 


    Thank you for your attention! Soon we’ll have in-game screenshots too! Tune in next time as well and don't forget to follow our activity on these sites:


    Thank you for your attention! Tune in next time as well and don't forget to follow our activity on these sites:

    Really A Studio
    - Follow us on Twitter!
    - Subscribe to our Youtube channel for upcoming devlog videos!
    - Join our Discord server!
    - Consider supporting the team on Patreon!
    - Interested in contributing to the project? Fill out our application form or contact a Producer on the Discord server!

    • the final part of the series
    • presents how different GPUs are able to overlap the workload between
      • different async and graphics queues
      • work on the same graphics queue
    • presents how split barriers influence the overlap
    • additionally presents the ability of Windows to preempt GPU work when multiple applications are sharing the same GPU

    • slides for the fluid simulation used in Shadow of the Tomb Raider have been released
    • the content of the talk was discussed last week in issue 65

    • next part of the series about the development of a forward shading pipeline using the Unity scriptable render pipeline
    • implements support for directional, point, and spotlights
    • show how to interact with the Unity provided light culling system

    • object based shading approach designed for VR rendering
    • splits rendering into client and server operations
    • the server calculates visible geometry and object space shading
    • the results are stored into a shading atlas
    • the client receives a preprocessed vertex stream and the shading atlas
    • the visible geometry is rendered from a single vertex buffer and shading is applied from the information cached in the shader atlas
    • presents the memory management technique and mip-level selection

    • user created index-page for the Apple Metal documentation
    • contains links to samples, class documentation, best practices documents, tools and debugging helper

    • shows how to validate using image comparison and using a furnace test
    • how to implement a plastic and glass BSDF
    • make the ray tracer less biased through changes to the way the number of bounces is determined

    • Khronos talks from Siggraph 2018 Asia
    • talks about Vulkan
      • memory management, subgroup operations and the design of a FrameGraph style engine architecture
    • introduction to WebGL and overview of the latest updates to the GLTF format

    • series of videos walking through the implementation of a software renderer written in multithreaded C++ using SIMD
    • presenting the whole pipeline from vertex fetching, vertex processing, culling, projection, binning, rasterization, mipmapping and finally shading

    • explains why noise is significant in computer graphics and how to animate blue noise over time so that it retains its properties

    • video summary of variable rate shading
    • presents a few approaches that are used to drive shading rate selection
    • what options are exposed in Wolfenstein 2 and how they influence performance and quality

    • new encoding model for Ambient Highlight Direction (AHD) lightmaps that eliminate common interpolation artifacts
    • and how to fit AHD from spherical harmonics data

    If you are enjoying the series and getting value from it, please consider supporting this blog.

    Support this blog

    Read more

  12. (This is only the beginning of the book 'The world where i don't belong' . Expect typos, plot holes, odd subplots and the occassionally wrongly named character, especially minor characters. It is made public only to give people a rough idea of how the final story will look)


    Chapter 1 Ambitions

    One day a family found me in a wrecked carrage. There was blood and scraps all around the carrage. They told me that they found me, a human infant, in the cart unharmed, for some unkown reason. As my infant self was crying out for help, they noticed that i had an unusual item ( a watch) and a mysterious mark on my chest. The mark had 5 dots in the center and 2 feathers surounding it, one being upside down, while the other standing straight. Above that was some kind of letter, that no one was able to read. They graciously took me in out of pity, so i didn’t have to live all alone in solitude. I spent several years together with that family, it was nice as they made me feel at peace with my self. But one night my family was wrongly accused for doing something that they haven’t done. Because of that, knights had argue with my familiy to find a reason for this treason, but the knights didn’t dare to listen.

    As the knights were about to harm us, everything went dark i was so scared, i cried for help, beging someone to answer my crying pleas. But in the end no one answerd, the thought of me being left alone, scared and defensless, made me terrified.

    Just when i was about to lose all hope, a terribal pain in my chest appeared. It felt like something was coming out from me, i looked at my chest and saw that one of the dots strated to shine. With that my vision became white, as if some kind of explosion had happend. After the ‘‘explosion’’ i started to regain my vision. But the sight i saw was something i wish i had never seen. Everywhere there were dead bodies around me one of my families and the other of the knights. As i looked around i saw that that my mother was pierced with a wooden stick and my fathers eyes had exploded. But the most teriffiying of them all were the knights, their bodies squished by the metal. All around me ther was a pool of blood, as i looked at my hand i saw blood in my hand, fearing myself and the treasion i committed, i ran. As i ran i started to think was this the reason why i was found in a broken carrage? To this day, i still don’t know the real answer. Months had past as i lived in poverty, i noticed a poster that stated, they were recruting new knight trainees. I thought to myself, that this could feed me and repay the blood i shed. But first i had to get in the academy. Once i became an adult, with my training completed, they alowed me to enter real battles. The fights were gruesome, but for some reason i was no longer afected by that anymore. I had many battles against the demons. It seemed that i didn’t care for life anymore, as long as i had the chance to slaughter anything, i didn’t have to think about the difficulties of life. But i couldn’t call that living. The battles were mostly easy as they couldn’t, even, come close to damage me. In one fight against the demon army, i decided that i’d try to find something to live by, as long as it gave my life meaning- i didn’t care. It could have been to find the real reason for that mark on my chest or that mysterious item. In the end, all i could think about what i should srtive for, was about what i should live for, lamely enough that’s what i decide. I also have no idea why i didn’t care for my comrads anymore, it looked like i had no empathy left...

    At the end of the battle, I lost and was taken captive, wearing tatered clothes, the demons wanted to execute me, to taunt the human nations. Alltough that wasn’t realy civilized, i had thought that they would be more barbaric, but they weren’t. In the academy, they made it seem like, that they were like ruthles brutes with no knowledge of proper etiquette. That was clearly proven wrong in that situation. They weren’t hostile at all, unlike humans who ruthlesly killed them, tourtered them and made them slaves, they even killed them if they couldn’t move, because of those injuries.

    As they made their way to execute me, i felt like i could finnaly rest in peace. I wouldn’t have to think about how to fit in with the humans. In the end that wasn’t the case as they tried to stab me, they failed. They tried and tried again without succsess, when they lost all hope they called their general, who also tried to excecute me, but all efforts were in vain. It looked like the demons couldn’t damage me, no mater what! All of the demons were left speachless, for a situation like that hasn’t ever happend to them. The demons who had no idea what was the cause of this, they asked me, if i knew what might be the reason. I answered ‘’Curses! i don’t know, i’ve had too many unusual thing happen to me in my life! If i knew i wouldn’t even bother talking to you! Curse this rotten mark!’’ As i cursed the mark, the demon general asked me ‘’what mark?’’. It seemed like he hadn’t noticed it, so i said ‘’ the mark on my chest’’. The general thought that that was a magical rune, but wasn’t sure. The general decided to send me to his superiors, this happend until i was send to the demon lord himself. I was confronted by the thing i had sought to defeat, in order to survive. Even tough that was the case he didn’t treat me likes some lowly being, instead he decided to give me an offer. I could feel that depending on my answer it would change my fate. He offered me to join his ranks, if i didn’t like my own kind. In astonishment i was baffeled, for someon of such high stature to offer such a deal. In haste i answered ‘’ i would be hounerd to serve under you!’’. With that we arvie at the present and because of that moment my story had started, with no turning back!

    • 2
    • 1
    • 160

    Recent Entries

    Latest Entry


    Its been little over a week since I started this project. So far I have setup the Bitbucket and sprint on Trello and Ollert so my planning and version control seems solid. Aside from that I have finished some other things I will list down. So far it seems I am ahead of track despite my bumpy progress, currently no lines of code have been written but that is high on the todo.

    Splash Screen

    This was really tricky not being an artist myself I had go to search for ready made templates I could use all sites I found usually charge a registration fee which for the scope of the current project seemed too high maybe some other time. So I did the next best thing loaded up Gimp watched a few youtube tutorials got some fancy text going added a bit of highlight and I have a splash screen logo ....is it as good as the templates found on other sites not by a long shot but it will do.


    Loading Screen

    To do this I had to first get a UI kit from the unity asset store I found I nice old school themed one which I think works well for that I have planned. The loading screen main purpose is really just to wait for the main scene to load initially I was planning on having it load individual assets but in hind sight those will load too fast for the loading screen to be of any use given the scope of the game but who knows the future may prove me wrong and I might still do this. So far the loading screen will mostly be a fake one going from 1-90 then stopping to wait till everything is loaded then moving to a 100% that is if everything hasent already loaded in which case it will fill directly to 100.


    Main Menu

    Initially I was planning on implementing the main menu but if I want to have a transparent main menu with game running in the background but without the player character present. So I have pushed the main menu implementation to the last since I need to get the basic game play done first. The UI however is done and setup the buttons will not be mouse clickable and instead will use arrows keys to select them and action to trigger.




    For the next dev log I should have the FSM and loading and building asset bundles ready that should be more code heavy while this one was image heavy.

  13. ABOUT :

    First of, I wanted to give 1000 pixel KUDOS! to the GD challenge organizers and to all the entrants cheering each other and giving motivation to meet the deadline.

    I joined GameDev Challenge to force myself to finish a playable prototype game out of my simple and heavily under development game engine sit on top of MonoGame; after leaving Irrlicht, XNA and Unity years back, I'm back again to my game development hobby specifically started again last year after I find out that MonoGame is very much alive and kicking and targeting multiple devices now, ( but I'm planning to use Unity again on it's current form) anyways, but what's the purpose of me making a game engine if I cannot make a playable prototype game from it? So I joined GD Challenge to make a collection of prototype game out of my engine.

    Froggy Hop is my 3rd entries after joining Multiplayer PacMan and Tower Defense challenges and what do you know ^_^y I now have 3 working playable prototype that I can expand, revise, enhanced and maybe later release it on other platforms if ever the prototype becomes commercial grade. Here goes some of development incidents and it's implication on completing the project and meeting the deadline.


    1. Applying fake model animation tricks :

    From the start I know I don't have much time to do all the characters modelling, rigging and doing all the skeletal animation stuff, it requires a lot of time and a very tedious process for a none 3D artist like me, but I think I can code some additional component much faster than rigging and animating a model. What I did was, create an additional entity component and called it Grow and Shrink Component, rather than creating a skeletal animation of snake with crawling action which will take some time and  additional memory bandwidth of mesh frames on my content manager and I think it's a nice additional features of my engine.


    I've  just created a static Sake Model and apply the Shrink and grow component to it's entity to mimic that it's walking by just applying minimum, maximum scaling and it's growth and shrink amount, What's cool about component is that it's an apply and forget on the game logic, but of course the system device engine will take care of it, assuming I'm just a user.




    Another fake animation again O.O,  I Add rotation component on Bee wings and rotate it fast enough to mimic that it's flapping it's wings; and add it as a child entity to the bee's main body.



    2. Using a grid base node path :

    Using my existing grid node routine that I've used on my Multiplayer PacMan entry, PacMan is actually 3D but in 2D representation most of entity there are just a 3D Quad.


    In this entry the Level map  model is just a display and an eye candy it really has nothing to do with the  game logic, the player is just repositioning on the grid node world position base on user's input just like what I did on Multiplayer PacMan.



    3. Using simple collision detection:

    Alright folks now let's hit the nail with a tank! 😄 and apply some cool and lovely physics engine like HAVOK, NEWTON, ODE or TOKAMAK that would be cool right ? WRONG! NO! WRONG! NO! ( speaking to self )  for this type of game I think I can implement a much simpler collision detection without using a heavy weight 3D physics engine.
    Ok let's just use Bounding box or Bounding sphere since it's already available on my engine, upon applying the component it will automagically transform and recalculate it's bounding properties AAB or OOB for BBox when the entity orientation change sounds cool!? WRONG! NO! WRONG! NO!     although it will suffice my needs for collision detection, but I think theres a much lighther and easier way to implement collision for this type of game.
    Distance checking! Horrray! HepHep! Horray! : -D how about adding a minimum distance property for each entity and compare that to the player position, yep, I just use distance checking for the collision and I just created a collection of obstacle list per region, I dont have to check other obstacle that's too far away to collide on the player, if player is on region 1 in the map and theres only two entities over there; for example two bees it will only check collision for those two bees, I ended up using a very simple collision checking routine  which I think did the job done. I hope I followed the KISS design principle in this entry, the code is not relevant to this post but wanted to share the code I've use is just a simple routine.





    3. Using tools I'm more familiar and comfortable with the usage:

    I use Bryce 5 the splash screen; MagicaVoxel, FragMotion, MilkShape and DeleD for modeling, rigging and animation; .Net paint and Gimp for any texture manipulations and Audacity for trimming and adjustment to background musik and sound effects.


    Aside from a month not playing Legend of Zelda Breath of the Wild to finally finish it and playing other games; really, nothing really went wrong :- D

    Using features not yet available on my engine :

    Initially I don't have plan on putting shadow on this entry, I just want to apply simple sobel filtering normal map shader on the level model and just using Basic effects on other entities, but my spider sense is tingling that it would be nice if it has a shadow, but my shadow map shader is still work in progress and has bugs  and no TCF implementation or what so ever aside from that I'm using sobel normap map shader which I will need to incorporate with light sources with sobel normal mapping and shadow map! WHAT!!!  It really causes heavy delay on the project, I posted my shader problem here and there, but eventually found a solution for the fix.


    I almost gave up on this entry due to lack of time, but that's where the weakness lies in giving up not just on this entry but in general, one or more try will not hurt and see where it goes; More or less my experience on this challenge is awesome and it's the game I made that my GF wanted to try and play testing up to completion at least she knows why I'm busy after work ^_^y I just always get too tired when shes around LOL.

    Dexter Z




  14. khawk
    Latest Entry

    By khawk,

    Time to vote for the next Challenge!

    Select which themes you would be interested in for the next GameDev Challenge. You can select as many as you'd be interested in seeing - so be selective in your choice.

    This poll will close end-of-day December 14.

    The Loot Box means we ignore all the votes and the theme is randomly selected from the list in the poll.


    Something is wrong with the heart of magic. Play a young archivist venturing out into a dying world, cataloging its mysteries and its wonders to unearth the truth. Nanotale is the new adventure from the Typing Chronicles franchise and the spiritual successor to the acclaimed Epistory.

    We are proud to finally be able to announce the development of our new typing game, Nanotale - Typing Chronicles, the spiritual successor to 2016’s acclaimed indie title Epistory - Typing Chronicles. 

    Something is wrong with the heart of magic. Play a young archivist venturing out into a dying world, cataloging its mysteries and its wonders to unearth the truth.

    Nanotale - Typing Chronicles is an atmospheric typing adventure RPG set in a colorful vibrant world that blooms to life under the words of Greg Buchanan [www.gregbuchanan.co.uk]. Developed by Fishing Cactus Games with the same core team as Epistory - Typing Chronicles, we can’t wait to share the adventure!

    Wishlist the game NOW


    Weekly Updates

    Today is the opening of our Steam page, and with it, the beginning of us being able to talk about the project. To make sure that communication between players and devs flows perfectly, we will post weekly updates about the game on the following channels:

    Nanotale Steampage
    Facebook [www.facebook.com]
    Discord [discord.gg]

    Your voice is important

    Many of player participated in our survey last year about those features they loved in Epistory and how they would like to see these features in our next title.

    That survey has been used as a solid base when brainstorming about the Nanotale - Typing Chronicles. It helped us to capture the DNA, the essence of Epistory, to create a new game that we hope will please the community. Sometimes decisions have to be taken. Some are harder than others, but we will count on you to continue to enlighten us about what you think of Nanotale - Typing Chronicles. We want you to take part in this incredible new typing adventure with us!

    Leave us your thoughts in a comment and don’t hesitate to spread the news all around you! 

    Thank you!

  16. corona_logo_circle_RGB-150x150.pngTen years ago, two guys got together with a goal to change the mobile development world. A year later, Corona SDK was born.

    My, how time has flown!

    Since those first days, we’ve frequently seen developers reach the #1 spot in various app stores. We’ve seen apps that have received millions of downloads, and app developers who have made a full time career out of mobile app development. But for many, it’s also a challenging time. The mobile app market has become over saturated. There has been a race-to-the-bottom in app pricing. New challenges extend up the development toolchain and impact the quality of top app engines.

    In this evolving industry landscape and these emerging challenges, change is good and necessary. With that in mind, we would like to introduce a big change for Corona. We have decided to get you — the developer community — more involved in Corona’s development, and open-source most of the engine. There are features you want, updates you need, and it’s simply time to get you more involved in Corona’s future. Corona Labs will continue to support the engine and going open source means more transparency to the process.

    We are certain you will have a lot of questions about how this will work, and as we have more to share, we will be continuously sharing new details with you. Also, feel free to discuss this in our community forums and in the CDN Slack.

    We’d like to assure you that our goal is to increase transparency by enabling access to the source, and allowing each and every one of you to add your unique contributions to Corona’s future.

    Any media questions should be directed to the Corona Labs Developer Relations team at devrel@coronalabs.com.

    View the full article

  17. Hello dears!

    It's been a month and a half since my last diary, a huge amount of work has been done during this time. So that was my task sheet, without considering the tasks that I perform on in-game mechanics:


    All tasks were performed not in the order in which they were located in the list, and there are no small tasks that had to be solved along the way. Many of the tasks did not concern my participation, such as Alex slowly changed to buildings:






    Work on selection of color registration of a terrane:



    The option that we have chosen to date will show a little below.

    The first thing I had the task of implementing shadows from objects on the map and the first attempts to implement through Shadow map gave this result:


    And after a short torment managed to get this result:



    Next, the task was to correct the water, pick up her good textures, coefficients and variables for better display, it was necessary to make the glare on the water:







    At the same time, our small team joined another Modeler who made us a new unit:


    The model was with a speculator card, but the support of this material was not in my engine. I had to spend time on the implementation of special map support. In parallel with this task it was necessary to finish lighting at last.




    All as they say, clinging to one another, had to introduce support for the influence of shadows on the speculator:


    And to make adjustable light source to check everything and everything:


    As you can see now there is a panel where you can control the position of the light source. But that was not all, had to set an additional light source simulating reflected light to get a more realistic speculator from the shadow side, it is tied to the camera position. As you can see the armor is gleaming from the shadow side:


    Wow how many were killed of free time on the animation of this character, the exact import of the animation. But now everything works fine! Soon I will record a video of the gameplay.

    Meanwhile, Alexei rolled out a new model of the mine:



    To make such a screenshot with the approach of the mine had to untie the camera, which made it possible to enjoy the views:



    In the process of working on the construction of cities, a mechanism for expanding the administrative zone of the city was implemented, in the screenshot it is indicated in white:


    I hope you read our previous diary on the implementation of visualization system for urban areas:





    As you may have noticed in the last screenshot, the shadows are better than before. I have made an error in the calculation of shadows and that the shadows behind the smallest of objects and get the feeling that they hang in the air, now the shadow falls feel more natural.

    The map generator was slightly modified, the hills were tweaked, made them smoother. There were glaciers on land, if it is close to the poles:



    A lot of work has been done to optimize the display of graphics, rewritten shaders places eliminating weaknesses. Optimized the mechanism of storage and rendering of visible tiles, which gave a significant increase and stable FPS on weak computers. Made smooth movement and rotation of the camera, completely eliminating previously visible jerks.

    This is not a complete list of all solved problems, I just do not remember everything :)

    Plans for the near future:

    - The interface is very large we have a problem with him and really need the help of specialists in this matter.
    - The implementation of the clashes of armies.
    - The implementation of urban growth, I have not completed this mechanism.
    - Implementation of the first beginnings of AI, maneuvering the army and decision-making and reaction to the clash of enemy armies.
    - The implementation of the mechanism storage conditions of the relationship of AI to the enemies, diplomacy.
    - AI cities.

    Thank you for your attention!
    Join our group in FB: https://www.facebook.com/groups/thegreattribes/

  18. Hi !

    Here is another background fantasy sound atmosphere that I wanted to share with you.

    This is the inside of a deep artificial tunnel, most likely a sewers. We can hear a lot of water dripping from several sources. A few gusts of the howling wind from time to time. Hatches opening and pouring out a thick and slimy content.
    Mice and bats seem to be the main tenants of these corridors.
    There is a constant rumble in the background that seems to be coming from deep depths of the earth, giving the impression of endless tunnels. The atmosphere is thick, wet and scary.


    You can find this sound and loads more at: http://www.ogsoundfx.com

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!