Projects Panel

Projects:

Friday, 21 April 2017

Everything of Note From GDC 2017

Author's Note: This is the text of an article that I originally wrote to be published on ReadMe. Unfortunately, I did not manage to get it published in time, and due to the timely nature of the subject, it is now too late to do so. In case you, dear reader are interested, here you go:

Everything of Note from GDC 2017
The Game Developers Conference took place this year from the 27th of February to the 3rd of March at the Moscone Center in San Francisco. The conference brought out many innovations, especially in the fields of graphics and AR/VR, with speakers from giants in their respective fields – Facebook, Oculus, Google Play, AMD and NVIDIA, to list a few, speaking on several aspects of game development – game development, game promotion, game design, audience engagement and growth, and so on. Several indie developers also announced exciting new projects. Furthermore, this was the first GDC that was open for the public to attend, instead of having to watch from home, so there were much larger crowds than usual.

Here is a list of the most interesting announcements from the Conference.

The State of the Game Industry
Every year, the organisers of the Game Developers Conference poll attendees in an attempt to identify emerging trends in the field, which they subsequently release in a document titled “The State of Game Industry”. The key points from this year include:

  • ·         Diversity

This year’s GDC showed a slight improvement in representation, with 20% of attendees polled identifying as women, 2% up from last year.
The geographical locations of attendees remained mostly the same, however, with 67% percent of respondents from North America, 3% from South America, and 22% from Europe. Pan-Asia accounted for 8% of attendees, and 0.3% percent were from Africa.

  • ·         Business-wise

Most attendees felt that VR/AR was the future of gaming, with mobile AR as a specific focus going forward, with as many as 1 in 10 game makers working on a platform-exclusive VR/AR title, and 75% of attendees saying that they believed VR/AR had long-term sustainability.
The ESports industry is also on the rise in terms of investor confidence, with 90% of attendees professing confidence in its sustainability.
PC and mobile devices remain the mainstay of most developers, however.

  • ·         Platforms and Hardware

On the topic of VR consoles, the HTC Vive was gaining popularity over the Oculus Rift. Don’t worry, though – the stats read 24% for the Vive, and 23% for the Rift, with the PSVR coming a distant third at 13%.
In the mobile arena, Android finally surpassed IoS in terms of developer interest (54% against 51%).
Interest in mid-cycle console re-releases, like the PS4 Pro and Xbox Scorpio, however, was mediocre at best, with many developers feeling that it would only further divide an already fragmented market.

Innovations in VR/AR
  • ·         On the first day of the conference, a slew of new games was announced for VR devices, specifically for the Rift. These new games ranged from traditional first-person experiences to a wide variety of genres – strategy, tactical, turn-based, dungeon crawler, story-driven, procedurally generated, the list goes on.
  • ·         Microsoft announced plans to bring “mixed reality” headsets to the Xbox and Microsoft Scorpio by 2018.
  • ·         Oculus also made a surprise announcement – they would now sell the Oculus Rift and Touch in a bundle that comes to around $600, a price drop of about $200. On their own, each piece of hardware is about $100 cheaper, coming to $499 for the Rift headset and $99 for the Touch controllers. Hats off to Oculus for their efforts to make VR software affordable to a wider audience.
  • ·         AMD have announced that they will be working with Valve to support Valve’s Asynchronous Reprojection on their graphics cards, a technology meant to enhance the VR experience and eliminate judder – a partnership that is a big win for AMD, who have been losing the graphics market share to NVIDIA.
  • ·         Epic Games have announced their Unreal VR Editor, a ground-breaking extension to the Unreal Engine that allows developers to be in the environment that they are developing, helping to provide the right sense of scale to make realistic, believable environments and make it easier to navigate the environment while developing.


The GDC Awards
On the 1st of March, the Game Developers Choice Awards and Independent Games Festival Awards took place at GDC. Many much-loved indie games and many bigger, AAA-standard titles competed for the coveted awards. A quick recap of the more popular/controversial picks from the GDCA:

GDCA
  • ·         The Game of the Year award went, unsurprisingly, to Blizzard’s new title Overwatch. They single beat out other nominees like Naughty Dog’s Uncharted 4, and Bethesda/Arkane’s Dishonored 2.
  • ·         Niantic’s Pokemon Go won the Best Mobile/Handheld Game award. The previously almost unknown studio beat out Supercell’s Clash Royale and companion Pokemon title Sun/Moon, by Game Freak/The Pokemon Company.
  • ·         One of the controversial picks, No Man’s Sky won the Innovation Award, the troubled game from developer Hello Games.


Saturday, 8 April 2017

The Inquest - Cursed Sword

Post #3 of my project open-sourcing and self-publishing initiative is a project I've been working on for a long time, off and on.




The Inquest - Cursed Sword (or, as I have come to affectionately refer to it, TICS) is my humble attempt to flex my puny web technology muscles and use my genuine love for making twines to make a twine that isn’t just an interactive story or a sad little tale that makes you feel like you just listened to a Smiths record (both of which are great things when done properly, I might add).

I’m planning to bring an interactive, high-fantasy world to life in my twine.

TICS is currently under development, and I intend for this post to act as a living diary of updates, so you can, if you are interested, track its progress.

This is where I’ll keep track of all the features I’m trying to implement(πŸ•), have succeeded in implementing(✅), and have failed in implementing(❌)


FEATURES, in alphabetical order

  • At least five cities/holdings in world that are fully accessible πŸ•
  • Combat system (will be PokΓ©mon-like) ✅ - combat demo
  • Commerce system πŸ•
  • Date-time systems πŸ•
  • Inhabitants that you can interact with and that have their own schedules. πŸ•
  • Joinable in-game factions πŸ•
  • Level-up system πŸ•
  • Multiple endings πŸ•
  • Overarching storyline πŸ•
  • Randomised combat encounters, with multiple enemies each having different strategies and movesets ✅ combat demo
  • Reputation system (will change NPC and faction member reactions to you) πŸ•
  • Sidequests πŸ•
  • Wearable/consumable items πŸ•
OPTIONAL, ADVANCED FEATURES (also in alphabetical order)
  • Ability to fight land wars ( This will probably be an extension of the combat system, with added repercussions for the world’s power balance. It isn’t very likely, but, well, let’s see where the story takes us)! πŸ•
TO BE CONTINUED (will keep updating as I think of features). If you’ve got a prospective feature you’d like to see included in the project, please leave it in the comments and I’ll get back to you on it! πŸ™‚

You can find the project in early prototype form on itch.io, and the source code on Github.

Friday, 7 April 2017

Twine, why can't I quit you?

Twine, why can't I quit you?
A short story in which I anthropomorphise my experiences writing interactive fiction for pleasure, with specific focus on Twine

Twine.
A tool that I have run into, fallen in love with, subsequently learned to hate, come back to after a couple of months apart, and learned to hate again.

Surprisingly enough, the above paragraph isn't a paragraph from an amateur writer's first attempt at a dating sim using Ren'Py. Twine, and the aforementioned Ren'Py, are both tools designed to write interactive fiction, shortened to IntFics in the community, which is comprised of people that fit in between the line that divides writers that want to add a layer of interactivity to their work, and programmers that want to tell amazing stories with little to no effort. But this one post, this one's all about you and me, Twine. Don't say I never write you love prose.

Just like a real relationship, when I met Twine, we just clicked. Everything was effortless, easy, smooth. We bonded over paragraphs as I admired the simplicity of her hooks, and realised I loved her when she showed me how easy it was to move from one passage to [[another]]. She was simple and straightforward and perfect. I knew it was a dream that could not last but I cling to the memories of our first days of innocence. They are one of my most cherished memories.

But then, as the weeks turned into months, the cracks in our effortless relationship begin to show. She never communicates efficiently. Getting audio out of her is an incredibly daunting and painful process. She's got a jealous streak, and refused to hang out with my best pal JQuery. My creativity was outrunning her ability to cope and it was stressing us both out.

It was then that I started to cheat. I'm not proud of it, but I refuse to make any excuses. I dabbled in other areas. Had a brief but passionate affair with Ren'Py, then pretended to be something that I wasn't in order to flirt with Inform 7. I left my love at home to find comfort in the arms of others, and this was the last straw. We took a break, and Twine left me for the first time. Dejectedly, I deleted the scraps of projects we had worked on together, the last memories of our time together, and tried to pick myself up.

Months down the line, I found Twine again. I was at the time at a loose end - a wreck. I had broken it off with Inform after we just failed to click on any level, and Ren'Py left me by the wayside when she discovered that I just offered too little for her to take me seriously (apparently she only dates serious creatives, that are, like, also artists.) I had also dabbled in polyamory - HTML, Javascript and PHP. All of them were about a decade older than me, but don't be fooled - they're still perky enough to keep you up all night. Despite JQuery's warning, I gave them a try. Six months into our relationship, they cut me out, but we decided to stay friends. We still share awkward smiles when we meet around town.

When I met Twine for the second time, she'd grown a few versions, changed her looks a little. We met up for coffee, and talked about what was going on in our lives. We laughed about my messups in love. She opened up again, just as easygoing and friendly as before, and in a matter of minutes I was hooked again. We ended up going back to her apartment that very evening and doing something we has never done before: we had some hot, steaming CSS, and that was when I knew she was the one for me, that however difficult she became, she was worth it.

Over the next few weeks, we had a casual relationship, meeting almost every evening. I came to learn every part of her body, from <header> to <footer> to <tw-passage>. We became comfortable with each other, but not so comfortable that our relationship became boring. We kept each other on our toes; there was always a spark keeping things interesting.

Then things got serious again. We moved in together, started up a project. I used all my knowledge from a year of screwups to keep us together, and this time, we did.

_holdline

_holdline is a passion project of mine, it's still under development - the start screen UI and minor gameplay features are the only things left to be implemented, however.



But what is _holdline, TOD?
_holdline is a less forgiving reworking of the classic Breakout game. It is also influenced by classics Pong and Space Invaders.

_holdline frees up the paddle from its restricted single plane-of-movement, and allows you to move the paddle over the entire playing field. It also allows greater choice in the direction in which you fire the ball when you are in striking range.

In exchange for these greater powers, I have increased the difficulty of the objectives, with enemies capable of damaging you and moving, as opposed to the static blocks of the old Breakout.

Why?
As you may know, this is part of my initiative to build up a decent online body of work in order to better appeal to potential employers. It's a bit of a "notice me, senpai", and I hope to God that that last sentence doesn't cost me a job.

Where can I get it?
Well, I'm currently hosting it on my fancy itch.io page, as a trial edition. If you're too lazy to jump pages and give a young indie game dev some clicks, I've embedded the whole thing at the bottom of the page so you can just play it right now, please.

EDIT: As of 14:38, 07/04/17 GMT, the source code of the _holdline prototype is available on Github. Capx files are available for working in Construct 2, and the full source code is also available for raw editing.

Controls
The only controls you'll need are your mouse and your arrow keys. Wait until the ball is above the paddle, aim, and click to fire. Survive for as long as you can and let me know how you scored!


Thursday, 6 April 2017

KickBall

A few months ago I completed this project in a few weeks for a course assignment. Say hello to KickBall 1.0! Well, I don't really plan to develop it any further, so KickBall 1.0 it'll have to stay.

What is KickBall?
It's a really basic football penalty sim, created in a few weeks using freeglut.
If you look close enough, you can even see my university ID!
There are a couple of small issues but on the whole, I feel, it's a pretty great little game.

Why tell you?
Well, if you're on this page, you must be here to learn about my projects, and I'm currently open-sourcing all of my tiny little private projects and coursework in order to reach a wider audience and hopefully have a decent body of work to show off.

Controls
You can use the arrow keys to align the movement of the ball up and down. You have a limited number of tries to clear the whole wall of targets. You can press F to get a "follow the ball" view, where the camera follows just above the ball as it travels.

Where to get it
First of all - wow, thank you! I didn't really expect anyone to read this far in. Secondly, as of right now, the project can be found on Github in forms that come source-code included or source-code-less and playable, or downloaded from itch.io in ready-to-play form or directly downloaded (from Github) in playable form.

Your friendly neighbourhood gamedev, TOD

Friday, 17 March 2017

AI Quickstart - Getting the SciPy Stack for machine learning and AI

Hi guys, here's a quick guide to getting the necessary packages and dependencies up and running on your computers in order to begin working with the Iris Dataset in Python. Generally, what you'll need is the SciPy Stack, and a few other packages if you plan to follow the IIT AI Study group sessions.

Keep in mind I wrote this especially for members of the IIT AI Study Group, so not all the information on this page may apply to a wider audience, or even make sense if you haven't attended the session.

Your options, in order of complexity
  • Installing Python, then installing pip, then finally installing the necessary packages with pip.

    You can't best the classics. If this is your first try, I fully recommend trying this out just to make sure it doesn't work for you. Linux and Mac users should have no problems, Windows users may run into a multitude of problems, depending on their Python version and system architecture, and graphics card.

    What you'll need to do is install Python, download either version 2.7 or 3.6, then update pip to the latest version by opening the command line and typing:
    python -m pip install --upgrade pip

    then use pip install to install all the needed packages:
    pip install --user numpy scipy sklearn matplotlib pandas
  • Installing one of the recommended distributions (Windows)

    Try out one of the recommended distributions suggested by the SciPy development team. This option is recommended for Windows users, since most of the distributions come with their own executable installers. Unfortunately, most of the distributions are very heavy in terms of download size, ranging from 400MB to around 700MB. If you feel this is not for you, move on to the next step.

  • Downloading Miniconda and installing all the necessary packages using the command line

    One of the recommended distributions above is the Anaconda distribution, which clocks in at about 400MB to download, and comes with a trial period (meh) and a freemium business model (ew). It is based on Conda, which is an open-source, cross-platform, language-agnostic binary package manager. It's basically a piece of software that handles all your builds for you in contained spaces called environments.

    If you are a Windows user with a limited internet connection, instead of the Anaconda distro, you can get the smaller, competely free Miniconda, which offers all of the same functionality through the command line, and clocks in at around 50MB. Install it, then you can install all the necessary packages using the command conda install <package name> (which works similarly to pip install, from above), using the command line, so you can feel like a hacker, you Windows plebeian.

    Note - when using conda, the sklearn library is referred to as scikit-learn. Using conda install sklearn will not yield a result. The command is conda install scikit-learn.
  •  Downloading the numpy+mkl wheel and then using pip.

    And here we get to the crux of the issue - why all the hate on Windows? Well, most of the problems Windows has with installing the SciPy stack has to do with the SciPy library itself, which is part of the SciPy stack, obviously. The SciPy lib depends on the numpy+mkl library, which isn't available through pip.

    If you've decided that you're too pro for all the above methods, then the only options left to you is obtaining the wheel (.whl) files for your particular Python version and system architecture, which is basically a giant offline installer that downloads the lib onto your local system so you can run it offline. They can be found at Unofficial Windows Binaries for Python Extension Packages - simply pick the appropriate .whl file and download it. You'll need both the numpy+mkl wheel and the SciPy wheel and then you'll need to use pip install to perform a offline install from local source.
Finally, don't forget to get the Iris Dataset (iris.data) from http://archive.ics.uci.edu/ml/machine-learning-databases/iris/

If anyone has any problems, please leave a message on the IIT AISG WhatsApp Group, and I'll try to get back to you as soon as possible.

Saturday, 4 February 2017

A look at Unity and UE4 from the perspective of a complete gamedev noob.

As promised, here's the gamedev note on Unity and UE4 :)

Tea or coffee?
Cats or dogs?
Black or white?
Unity or Unreal Engine 4?

These are the questions that have plagued man since the dawn of time, with the possible exception of maybe the last one. And the answer sort of lies in personal preference. So, dear reader, how do you like your caffeinated water/animal companions/arbitrary colours/free game Engines? Here's my short take on it.

I've got about a year of experience in Unity, so I'd like to think that I'm fairly competent in it, however, I have to admit that I'm far from it. Over the past week, I installed Unreal Engine 4, for the heck of it, just to take a look, and was completely blown away. One of the major advantages that UE4 has over its competitor is the sheer amount of out-of-the-box support that it offers completely new users. I was able to set up a first person controller in minutes, via a drag and drop operation. To do the same thing in Unity, I spent twenty minutes finding a decent tutorial, and ended up following a sixty-minute tutorial on how to fire lasers with a LineRenderer instead in order to set up a halfway-decent one that didn't use deprecated syntax. Another big plus was the ability to run tutorials in-editor (a major godsend - no more concentration-breaking Alt-Tabbing between the Editor and a Youtube window every few seconds. However, a scrollbar and some resizability options should be added to the tutorial window so it doesn't take up more than half of the 3D Viewport when you're following it.

Of course, this isn't to say that there aren't any problems with UE4. I do see some potential difficulties in changing the existing resources so that they'll work the way you want them to, if your intended purpose is outside the very narrow limits set by the blueprints you're using, given that I've been doing tutorials for the better part of a week, and I'm yet to see a single line of code. In Unity, I was set up and coding within two hours of starting the very first tutorial.

All this is not to say that either engine is inferior. I'm simply stating the facts as I see them, from the perspective of a complete newbie. I'm sure that, to an experienced developer, the choice between Unity and UE4 is pretty arbitrary, but to me, a guy with barely two and a half games under his belt, UE4 is the clear winner when it comes to support for new users. Don't crucify me for expressing an opinion.

Given the simplicity afforded by UE4, I'm even considering making a simple FPS demo myself, maybe with a friend to make some simple models for me. Expect to see some work on props and such soon!