Tuesday 23 December 2014

Day 23 - Progress report

A quick update before christmas - and yes I'll be doing a weekly blog rather than daily now I think.

I've been working on asset creation over the last week, I've got a textbox and some effects done, as well as a character design and even a sprite!
character sprite
Character sprite
I'm a little undecided whether I'll use a pixelated version or a cleaner one, I think I'll decide when I'm testing later down the line.

I will do a blog on my process from sketch to sprite once I have a process!

Friday 12 December 2014

Day 12 - Work on the project every day

I'll be doing some work on my game project every day, I might have to start doing a weekly blog as time goes on and I have more work to do on weekdays, but I'm making a real conscious effort to always do something to further my game even if I only have a small window of time.

This is one of those days where time hasn't allowed for much work on the project. I would technically class taking a few minutes to think about any aspect of the game development as working, but I'm committing to producing something tangible every day even if it doesn't make it to the final game.


So I made a new sound effect.

It was a sample of my voice which I timestretched, pitched down a semitone, duplicated and offset by a very small amount, running through delay and bitcrusher. It may be a fair bit quieter than the other FX I've made, but that could work well in the game possibly, if not and I still want to use it i'll re-import and boost the gain.

Thursday 11 December 2014

Day 11 - A font, a new resolution and typewriter effect for Ren'Py

I was reading a blog post by a game developer ( https://cindysimeti.wordpress.com/2014/03/05/vn-screencaps-and-another-project/ ) which mentioned a nice font and provided a link to dafont - http://www.dafont.com/ - I took a look to see if I could find something I liked.

After a little browse I came across a beautiful font that fits my games aesthetic.

http://www.dafont.com/kolquatfunkybitm.font?l[]=10&l[]=1

Kolquat Funky Bitm by http://www.koltastik.de/ I asked for permission to use the font and the creator, Kolja, said that was fine and asked me to credit it if possible, which I will of course do.

Loading the font as the default font for the game wasn't quite right, the buttons are to small for it to be nicely legible. So I've opted to add the font for each character - this doesn't feel like a very efficient method, I'll look into a better way to do this.

   define m = Character('Me', color="#808080", what_slow_cps=38, what_font="KolquatFunkyBitm.ttf")

Looks good for testing purposes. Here is a little example of the font which may become the credits screen later down the line:

The beautiful Kolquat Funky Bitm font
The beautiful Kolquat Funky Bitm font
Typewriter effect:
You can see in the small code snippet above "what_slow_cps=38" which I added as I couldn't get it to default to this in options.rpy - I had this problem last project, but not sure what the resolution was. I'm sure I'll find it again at some point, though this will work fine and as the cast is small won't get repeated lots.

From 1024x768 to 1280x720:
Started working on resizing my assets - I'm really glad I did the mobile test yesterday and I only have a few images to resize! If I'd have waited several weeks before testing the chances are I'd either not bother changing the resolution or I'd have a lot more work to do to resize everything.

Wednesday 10 December 2014

Day 10 - Ren'py to android via windows 8

Wanting the game to look nice on mobile and knowing I'd have some time today I decided to test my game on my android phone and tablet today.

It's a good job I had some time, as it took a good few attempts. I was expecting teething issues as I've done a little work with eclipse on windows and android before, which had complications. I ran into problems pretty much immediately:

Ren'py to android attempt
Ren'py to android attempt
I have a lot of screenshots and photos of errors, here is a sample of some of the other attempts:

Ren'py to android attempts

Ren'py to android attempts

Ren'py to android attempts

Ren'py to android attempts
Looking for android.bat

I spent a while on the Lemmasoft forums: lemmasoft.renai.us and the official docs http://www.renpy.org/doc/html/android.html

The first thing I changed was my project name as it had numbers in, which I wanted to eliminate as a potential problem. I then realised I had the wrong java dev kit (JDK) installed - 32bit version is required at the moment. I moved the Ren'Py directory to C:\ rather than in my user folder. Well none of these things has helped all that much in Windows 8, I'm still getting a Access is Denied error even with new shorter path and re-installs and running ren'py as administrator.

Luckily I have a Windows 7 system to hand (I hear this whole process is much smoother on linux, so that is probably the way to go!) and with a little bit of manual intervention - running the sneaky android.bat! - I got a successful build!

Once I had my apk file I dropped it into Google drive and downloaded it onto my phone and tablet. It was all worth it, as I think I've now made the decision to change my screen resolution to 1280 x 720.

Bugs 20 Tech 3 Design 0

Tuesday 9 December 2014

Day 9 - Variables in Ren'Py - dice roll d20

The plan is to have some stats which is a more RPG-like thing, and I love the idea of having these decided by a dice roll as with pen and paper games like d&d.

I had to read a little of the Ren'Py documentation:

At the bottom of that page I spotted:
# return a random integer between 1 and 20
$ d20roll = renpy.random.randint(1, 20)
Which is just what I needed. My code now includes:

    $ vitality = renpy.random.randint(1, 20)
    $ skill = renpy.random.randint(1, 20)
    $ luck = renpy.random.randint(1, 20)    
    
    "Your vitality is [vitality]"
    "Your skill is [skill]"
    "Your luck is [luck]"

Which I have tested and that seems to work as desired. When the skill checks come a bit later on in the game I'll need to add some logic, so I'll be consulting the documentation again at that point to make sure I get my syntax correct.

--

Update 18/10/2015:

I should've updated this post a long time ago! So here is how you would do a skill check in Ren'Py, using an example from my (ever) unfinished pizza game:

    $ skill += renpy.random.randint(1, 20)

#The above line takes the variable named skill and adds another random d20 number to it and saves that as the new value for skill
 
    "[skill]"

#Displays that new number to the player

    if skill >= 30:
        jump wall
    else:
        jump walk

#That last bit here is an else/if statement that checks if the skill roll is equal to or above above 30. If it is above 30 then the scene jumps to "wall" or if it's below then the scene will be "walk"

This example is quite specific in that the game only checks against skill once, so I didn't bother saving the additional "skill check" roll as a new variable, but the logic and syntax should be pretty similar.

In fact I just tried a quick tester and it seems to work!

    $ skill = renpy.random.randint(1, 20)
    "Your skill is [skill]"
 
    $ skillRollOne = renpy.random.randint(1, 20)
 
    $ skillRollOne = skill + skillRollOne
 
    "[skillRollOne]"
 
    if skillRollOne >= 30:
        jump wall
    else:
        jump walk

That is similar to the above, only your original skill value isn't overwritten when you do the skill check.

I hope this is helpful to some people out there and yes I am quite a novice at programming, so if any programmers out there read this and notice bad practice please let me know so that I can update the post!






Monday 8 December 2014

Day 8 - Drawing Shoulders

I just realised I don't know how to draw shoulders!

If I'm doing the character art for this game I really ought to practice pretty quickly. Which is what I did today:
Drawings shoulders
Drawing Shoulders
I used some reference and a little reading ( http://www.howtodrawmanga.com/pages/tutorial_bodies ) to get the concept, now I'll need to repeat this a bit to hone it in. Which is good as I need to experiment with my character design too, so I can do both at the same time.

I also had a quick play with the mosaic filter in photoshop elements for backgrounds:

Mosaic filter on background
Mosaic filter on background
This filter looks like it will fit in well with my planned aesthetic.

Sunday 7 December 2014

Day 7 - Making backgrounds for Ren'Py game. Choosing a screen resolution.

Here is a background made by manipulating a photograph I did a while ago as a test, it didn't turn out as I wanted it to:
First background attempt
First background attempt
I like the colour, but not the filter. Also this image is in a widescreen resolution (1920x1080) and I'm probably going to make the game in 1024x768, for the smaller filesize and compatibility with older computers. I'll have to see how it looks on phones before I go too much further with creating backgrounds, as I might change my mind on the resolution after that.

Experimenting with different filters, mostly 'cut out' I have created a few more potential backgrounds, I'll test some out in the game to see if I think they'll work.

Background made with cut out filter
Background made with cut out filter

Background made with cut out filter
Background made with cut out filter - saved as limited colour gif

As the photos I'd taken were all in the widescreen resolution and I didn't really want to crop them I added a 50% transparent layer at the bottom, which is where the game text box will be.

Saturday 6 December 2014

Day 6 - Character sketches for game

I'll be making a selection of sprites for the main characters in my games, showing different expressions. This is an area where I have practically no experience, so the whole process will likely take a lot of trial and error and some compromises.

Today I've practiced drawing twin tails on a character from my sketch book, in my mind the character will only have a small part in the game, but will still require a few expressions. It's always better to have too many expressions and not use one rather than finding yourself needing an expression you haven't made.

Initial character sketches
Initial character sketches
The one on the top is my first attempt at drawing the hairstyle. I decided to spend a bit more time drawing another altered example on better paper (just in case I fluked a great drawing - I didn't). Now I'll be drawing the character another 10 or so times until I'm happy. When I've settled on a design I'll draw it again on good paper ready to photograph or scan and work on further in photoshop elements.

I got the technique for the hairstyle from Mark Crilley https://www.youtube.com/user/markcrilley
- I've only been drawing since the summer and his videos have been incredibly helpful.

Friday 5 December 2014

Day 5 - Audio asset creating for games

Today my task is to 'Test FX and make more', I decided to spend some time creating some new audio files for use as sound effects.

Using a kids keyboard - the lovely casio sa-8 - and a mic (it has no audio out port!) I recorded a few sounds, which I then manipulated with Cubase - any audio editing software should be fine for working with the recordings.

Audio hardware set up
Audio hardware set up


Here is one of the sound fx I created using my sample and a lot of bitcrushing. I was really happy with the sound and it reminded me of a classic atari game - yars' revenge (http://en.wikipedia.org/wiki/Yars%27_Revenge).

For this game I wanted to create some fx with abrasive qualities, by layering up similar but slightly out of time samples you can get some interesting resonance in the sound, which is one of the techniques I went for.

Also saving the files as 40kbps mp3s and then converting them to another lossy audio format (ogg) will hopefully give the fx an interesting digital abrasive nature.

A quick link to an inspiring documentary series about game music - http://www.redbullmusicacademy.com/magazine/diggin-in-the-carts

Thursday 4 December 2014

Day 4 - Making backgrounds for a game

Drawing backgrounds for a game is a massive task, even with the skills to create good backgrounds you will need a great deal of time. Many games opt for photographs with a filter (like watercolour) applied, which saves a lot of time. I'll be using photographs as the basis for most of my backgrounds, which I'll be editing digitally. Using your own photographs is a great way of avoiding licensing and copyright issues, so I'm aiming to just use my own photos for this reason.

It took me more time than I'd anticipated to collect a collection of potential starting images to use as backgrounds from my digital back up on google+
Here are some which I plan to alter in Photoshop:

Raw photo for background 1
Raw photo for background 1

Raw photo for background 2
Raw photo for background 2

Raw photo for background 3
Raw photo for background 3

And some photos which I may be able to use for some of the surreal scenes in the game:


As I've not developed much of the storyline I'll be able to work in scenes based on the photographs, but there is a risk that I work on a background that is useless for the story. In which case I'll save it in case it's good for another project.

Wednesday 3 December 2014

Day 3 - coding in some bugs and working with audio in ren'py

Today my task is to code in the first few minutes of gameplay. While I have certainly added a fair bit to the project, it's still only a few seconds long, not minutes. On the plus side I have got some audio sorted.

I created a few sound fx and a background song a few weeks back, I'd saved them as mp3s. Ren'py recommends using the open format ogg for audio, which I agree is a good format to use. Using a free site http://media.io/ I converted my mp3s to ogg (if quality is super important then starting with wavs would be a better way to go), then all that was needed was the code in the game script, e.g.:

    play music "act1-01.ogg"
    play sound "fx1.ogg"

I also made some working backgrounds which I may end up changing, a Sleepy Agents intro image and some other image assets for in-game notifications (though much of this likely won't make it to the game).

Sleepy Agents load up screen
Sleepy Agents load up first draft

I then coded in some bugs and got rid of them! This was trying to specify a new pixellate transition without reading the documentation!

Ren'Py Bug!
Bug 1

Ren'py bug!
Bug 2
Design 2 Tech 2 Bugs 2

Tuesday 2 December 2014

Day 2 - Making a game in ren'py - Aesthetic, a Main Menu, Also, Keeping on track.

I didn't really mention my intended aesthetic for my game yesterday. I want to have an 8-bit glitchy feel, but only in parts. I'll be purposefully mixing between cleaner and more digitally damaged artwork. This has the added benefit of me being able to hide my bad drawings somewhat!

Here is my initial concept for the main menu:
Main menu concept for ren'py game
Image 1
I've just noticed that the game title is illegible. But as it's just a working title I'll work with it or something similar for now.

To edit the main menu itself you need to get into the code a little bit, but there are loads of useful posts on the lemmasoft forums http://lemmasoft.renai.us/forums/ to help if you're new to this. I'll be using a mix of the official documentation, forums and trial and error. For the art I've used a photograph of a sketch I drew and lots of editing in Photoshop Elements (which is pretty good for a light and cheap version). My current favourite thing to play with in Photoshop is layer styles, especially Hue! It really helps getting a saturated day glow look which I'll definitely be utilising a lot.

To keep on track with this project I've added in timeslots on Google Calendar with little notes like:

Install RenPy and create project (yesterday)
and
Quick menu screen mock up (today)

By breaking the project up into these tiny tasks I hope that I will stay on track and not get daunted by the scale of all the asset creation, development and testing!


Day 1 - Making a game in Ren'Py

I've started working on a new game today, with the working title 404pizza. From the concept I have it will be some blend of VN adventure Rpg. I haven't so far completed and released a game, but that is certainly my aim this time around. I'll also be blogging about it which will encourage me to make progress every day.

Screen shot of first days code in ren'py
Image 1

To start I installed the latest build of Ren'Py (http://www.renpy.org) , a popular VN engine, and created a new project. Selecting a beautiful preset colour theme:

Screen shot showing pastel colour theme of game in ren'py
Image 2

I then wrote a few lines (see image 1) with only a couple of small errors. Bugs fixed.

2 Design 3 Tech 2 Bugs