Archive of posts with the category 'Games development'


SunUp – #19-26

This week I’ve:- Oversteer Racing – more work on the routines to handle the end of the race Oversteer Racing – checked that the options in the settings screen affect the game Oversteer Racing – fixed some bugs Oversteer Racing – wrote the latest dev blog RF1 – upgraded to Django 1.11.22 Misc – signed up for another web host to try them out Read on

SunUp – #19-04

This week I’ve:- Oversteer Racing – updated to Unity 2018.3.1f1 Oversteer Racing – updated rival cars to turn wheels during cornering RF1 – updated to use mysqlclient instead of MySQL-Python RF1 – updated T&Cs for coming season RF1 – updated VagrantFile to use an anonymised and encrypted database during the build Read on

SunUp – #18-46

This week I’ve:- Oversteer Racing – more work on obstacle avoidance Oversteer Racing – changed rival car behaviour so they take defensive lines if followed closely Misc- went to a local Python meet-up Misc – started work to replace some of the functionality for the AES Misc – started a Code Club at a local Primary school   Read on

SunUp – #18-37

This week I’ve: Oversteer Racing – added code to improve wheel to wheel racing of NPC cars Oversteer Racing – started work on code to allow NPC cars to avoid obstacles Oversteer Racing – started work on code allowing NPC cars to overtake Oversteer Racing – limited the effect of the tow so that a tow only occurs above a certain speed Read on

SunUp – #18-31

This week I’ve: Oversteer Racing: fixed a problem with calculating pit stop time for rival cars related to pit box accuracy Oversteer Racing: fixed an issue that was causing the player UI not to update correctly Oversteer Racing: fixed an issue where rival pit stop duration was calculated incorrectly if fuel was needed Oversteer Racing: fixed an issue where rivals were too eager to stop for fuel Oversteer Racing: wrote the dev blog for July... Read on

SunUp – #18-19

This week I’ve: Oversteer Racing: completed AI pit strategy code Oversteer Racing: fixed a longstanding issue related to car numbering Oversteer Racing: added way points to the pit lane of the test track to allow AI cars to visit the pits Web: completed a web site move from one host to another and reinstated automatic backups Misc: did some configuration work to move mailboxes for the AES Read on

SunUp – #18-15

This week I’ve: Oversteer Racing: fixed the bug with the lap timing that affected split times and sometimes stated that cars were one lap further behind than they were. Oversteer Racing: the dust particles bug re-appeared but I’m pretty sure I’ve now fixed that for good. Misc: updated to MantisBT 2.13.1 Read on

SunUp – #18-07

This week I’ve:- Oversteer Racing: added extra car sensors to improve the driving of the AI cars and make them more aware of cars near them Oversteer Racing: fixed a bug with the lap counter Oversteer Racing: fixed a bug in the “race director” that meant the player car didn’t always register laps completed Misc: updated MantisBT to 2.11.1 Read on

SunUp – #18-06

This week I’ve:- RF1: a few minor changes following the upgrade to Django 1.11 Oversteer Racing: started work on race strategy for AI cars. Specifically, when the AI cars choose to pit. Oversteer Racing: improved the look of the game by adjusting the graphical settings within Unity. Oversteer Racing: produced a #screenshotsaturday Web: finished uploading details of the AES publications from 2017 Read on

SunUp – #18-04

This week I’ve mostly: Glossary: upgraded to CakePHP 2.10.7 now that this has been released following a fix to the bug I’d identified and then tested the fix for in 2.10.6 Oversteer Racing: I’ve been working on creating a smoother transition when we change the level of drag or rolling resistance on the cars (for example, when getting a ‘tow’ from the car in front or when off the track). I’m quite pleased how this... Read on

SunUp – #17-36

This week I’ve:- Oversteer Racing: changed the colour of the default shadows to better reflect real life Oversteer Racing: adjusted the rate of tyre wear to separate the effects of tyre wear and fuel usage a bit Oversteer Racing: improved the driving of the AI cars to reduce their lap times to within 0.5 – 1s of the player Oversteer Racing: added support for suggested speeds for AI cars Oversteer Racing: started work on code... Read on

SunUp #17-28

This week I’ve:- Oversteer Racing: carried on working on code to handle the end of the race Oversteer Racing: updated the UI to show number of laps in the race Oversteer Racing: fixed an issue that meant lap times only displayed to hundredths of a second and not thousandths Read on

SunUp #17-18

This week I’ve: Oversteer Racing: updated code to remove deprecated API references for level loading Oversteer Racing: updated code for the particle system as some of the current code is deprecated Oversteer Racing: written the latest dev blog Glossary: removed AddThis as it cannot be configured not to set cookies any more RF1: set up Bitbucket Pipelines to run automated tests for RF1 Misc: switched over my backups to the new EC2 instance Misc: drafted a... Read on

SunUp #17-08

This week I’ve: Oversteer Racing: made changes to allow cars to be detected in the pit box if entering higher entry angles Oversteer Racing: added code to track tyre set usage and determine the best tyre set to be used at a stop RF1: reviewed some changes needed to switch to a different charting API Misc: spent some time playing with a microbit Read on

SunUp #17-07

This week I’ve: Oversteer Racing: adjusted to pit stop menu to account for the fuel still in the car Oversteer Racing: created a circuit metadata object to store data about the track Oversteer Racing: changed tyre grip after pit stop to simulate tyre change Oversteer Racing: refuelled the car during a pit stop based on player selection Oversteer Racing: fixed car damage if requested by the player Oversteer Racing: added some debug code to help... Read on

SunUp #17-05

This week I’ve: Oversteer Racing: more work on the pit stop UI so players can select the changes to make and see how it affects pit stop duration Oversteer Racing: wrote the latest dev blog Glossary: updated to CakePHP 2.9.5 RF1: posted a blog post outlining some changes to the rules for 2017 RF1: added functionality to add and delete races which will make administering the game easier if a race is cancelled mid-season Read on

SunUp #17-04

This week I’ve: Oversteer Racing: added opposition skill and advanced handling settings to settings form Oversteer Racing: fixed a bug that meant that reversing in gravel was faster than driving forwards Oversteer Racing: started work on a function to calculate pit stop time based on what the player requests (i.e. if damage is fixed, whether tyres are changed and how much fuel is required) RF1: drafted a blog post on rule changes for the new... Read on

SunUp #17-03

This week I’ve: Oversteer Racing: worked on the settings form Oversteer Racing: created a settings manager to control the settings throughout the game Oversteer Racing: linked the settings manager with the test race so we can double-check the effect of the player settings RF1: reviewed the work needed to better handle cancelled races Misc: started researching the best setup to replace my current EC2 backup setup (I’m still intending to keep it in EC2 though) Read on

SunUp #17-01

There’s lots going on at the moment as it’s the festive period so I’ve not had much time to work on things. That said I did: Oversteer Racing: updated the I2 Localization plug-in Oversteer Racing: added some notes to the wiki to make syncing the Google sheet of translations with the game easier in future Oversteer Racing: did some work on the draft UI Oversteer Racing: added a lot more tasks to Pivotal and set... Read on

SunUp #16-40

This week I: Oversteer Racing: fixed the particle issue introduced when upgrading to Unity 5.4.1 (seems like I was working around a bug in 5.3 that was fixed in 5.4.1, so then my workaround stopped) Oversteer Racing: now using the SpriteLamp shader and a normal map to dynamically light the car sprite Oversteer Racing: started work on the damage model for the car Web: updated RF1 to Django 1.8.15 Read on

SunUp #16-37

This week I’ve: Oversteer Racing: updated the telemetry scripts to cope with cars going through the pit lane as well as following the track Oversteer Racing: did a bit of research on alternative shaders for lighting the car Oversteer Racing: tried a few new ideas for moving the camera with the intention of fixing some bugs but also making the game look better Read on

How to: Solve the “Unable to convert classes into dex format” Unity error – the return….

Back in 2014 I blogged about how to solve the “Unable to convert classes into dex format” Unity error. I thought I’d post a follow up as I had the same error recently but with a slightly different message and cause. The error was: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/analytics/ExceptionReporter; I looked for ExceptionReporter and found it in: Assets/Plugins/Android/google-play-services_lib/libs/google-play-services.jar Temp/StagingArea/android-libraries/google-play-services_lib/libs/google-play-services.jar Temp/StagingArea/android-libraries/play-services-analytics-7.5.0/bin/classes.jar The original error report also said: Created unique file for imported asset as file... Read on

SunUp #16-20

This week I’ve: RF1: fixed a minor issue to set ordering of drivers by team not by id (fixes an issue caused by driver moves) Oversteer Racing: Started work on announcement text Oversteer Racing: Created new car textures Oversteer Racing: Further work on particles for smoke and dust Misc: Play tested EVA Spacewalk Emergency VR Read on

SunUp #16-19

This week I’ve: RF1: Upgraded Django to 1.8.13 Oversteer Racing: Reduced the update rate of the UI Oversteer Racing: Updates to change car performance based on tyre grip Oversteer Racing: Started work on particles for smoke and dust Oversteer Racing: Initial work on car engine failures Web: Technical work to help launch the website for my wife’s company Read on

SunUp #16-17

This week I’ve: Oversteer Racing: Added code to increase tyre wear when the car slides Oversteer Racing: Created an initial implementation of power induced oversteer Oversteer Racing: Updated brake and power oversteer so that these are affected by grip levels Oversteer Racing: Removed some unused scripts Read on

SunUp #16-10

This week I’ve: RF1: fixed a typo and a couple of minor design issues RF1: launched the 2016 competition RF1: upgraded to Django 1.8.10 RF1: Updated the function to count the possibe team permutations to also report on the number of teams containing both top drivers and top teams RF1: Minor styling update Oversteer Racing: Added data for fuel and tyre grip to the temporary UI Oversteer Racing: Removed some magic numbers Oversteer Racing: increased... Read on

SunUp #16-08

This week I’ve: Oversteer Racing: Fixed a bug detecting the movement of the car around the circuit Oversteer Racing: Tidied up scripts that are no longer used Oversteer Racing: Added new/temporary UI elements for showing position, lap number, best lap and last lap Oversteer Racing: Moved start/finish line to coincide with track texture Presentation: presented my ‘work to date’ on Oversteer Racing at the local Unity Meetup group Read on

SunUp #16-07

This week I’ve: Oversteer Racing: Created a “race director” to manage telemetry data from cars and to store data related to the racing (best laps/sectors, what cars are on track and so on) Oversteer Racing: Written code to count laps and check cars perform a full lap Oversteer Racing: Added colliders to run-off areas and gravel traps etc Oversteer Racing: Reduced car speed when in gravel and run-offs Oversteer Racing: Added a new track texture... Read on

SunUp #16-06

This week I’ve: Web: Launched the landing page for my wife’s new company RF1: Upgraded RF1 to Django 1.8.9 Web: Moved some of my sites to use SSL (including this one) Oversteer Racing: Did a bit of house keeping on the Pivotal Tracker board for Oversteer Racing Oversteer Racing: Initial work on the fuel system Oversteer Racing: Initial work on track limits Oversteer Racing: Added messaging and callback system to help track cars Read on

SunUp #15-50

Further work on Oversteer 2D. I’m still thinking that 2D physics throughout is now the correct way to proceed. I still need to set up an entirely new BitBucket repo as I don’t want to remove all the work/code from the existing one. I’ll just park the existing repo and start a new one based on my experiments to date. Read on

SunUp #15-47

I’ve been working quite hard on Oversteer this week. For some time I’ve been trying to get the “feel” of the car right and have not only been struggling with the controls but also the physics. Previously I’d assumed that Oversteer would use 2D models but with 3D physics. However, I want to spend some time trying 2D physics instead. In Unity the 2D and 3D physics engines are separate (although the API is quite... Read on

SunUp #15-45

This week I… Updated the Glossary to use CakePHP 2.7.5 Updated RF1 to use Django 1.8.6 Oversteer: Tidied up a bit of code in Oversteer Updated Oversteer to allow us to easily toggle between the PS3 controller and the virtual joystick Tagged test scenery objects Stopped constraining the virtual joystick in a circle as this stops us being able to set full throttle and full turn Lots of tweaks to acceleration and deceleration rates Read on

SunUp #15-33

This week I’ve been doing a lot of reading and research on car physics… and that’s about it 😉 I’ve been reading: Brian Beckman – Physics of Racing Marco Monster – Car physics for games Punyawee Srisuchat – Development of a car physics engine for games Ted Zuvich – Vehicle Dynamics for Racing Games Read on

SunUp #15-32

This week I’ve been working fairly solidly on the car control scripts for Oversteer Racing. At this stage there are three different things I want to try: Moving the car with transform.position and transform.rotation – the downside of this is that it conflicts with the physics engine in Unity. Reading around it seems that, if you want to use physics at all, then it’s best to do everything with physics in Unity. Move the car with... Read on

SunUp #15-29

I’ve not managed to find much time to do anything except work this week. This is mainly because I’m on holiday from work next week and so have a few things I want to finish off before then. I did do a little bit of planning for my new game but that was it. Read on

SunUp #15-27

This week I… Did some 3D modelling for my new game.  I’ve created a pretty quick 3D model for a generic racing car in Blender and it seemed to work out OK… or at least sufficient for my needs (especially as I’ve not used Blender before) Created some normal maps for the 2D models. Tested out the normal maps. Tried generating normal maps from the 3D model. Read on

SunUp #15-24

This week I… Upgraded Bubblision to be a Unity 5 project, this included: New version of EchoLogin Core Framework, GameAnalytics, UnityTestTools I had to change some code to work with the new GameAnalytics Unity SDK only to then find it won’t work with Android until later this month Fixed some display issues Fixed some new bugs to prevent code trying to destroy objects that had been destroyed I had to change the mesh renderer on power-ups as... Read on

SunUp #15-20

This week I… Created some new promotional screenshots for Bubblision Released v1.11 of Bubblision (this feature release allows players to skip a bubble by swiping) Added caching to the Mucky Creature web site Carried on working on the RF1 link changes Began work on the first Annual Return for my company Updated the blog with all the SunUps I’d missed 😉 Read on

SunUp #15-17

This week I…  Released an alpha version of Bubblision (v1.1) – the main change is that it has added game functionality allowing players to skip the current player bubble colour. I think it makes the game more fun but I’m worried it’ll make it too easy. More work on the responsive redesign for the shop – almost done now! Upgraded RF1 to use Django 1.8 Began work on changes to RF1 to use the URL... Read on

SunUp #15-08

I’m really pleased to announce that Bubblision is now available on SlideMe: http://slideme.org/application/bubblision Up until now Bubblision has only been on Google Play but over the next few weeks I hope to add Bubblision to some of the other app stores. I also tried to register as a seller on Samsung Galaxy Apps but their site is currently rejecting signups. Bizarrely they set somewhat draconian restrictions on passwords… 6-15 alphanumeric characters but their site currently... Read on

Bubblision – one month after launch

I can’t believe it’s a month since I released Bubblision – time flies! I’ve had some really good feedback and people seem to be enjoying it. As a month has elapsed I thought it worth sharing some of the stats so far. Item Stats Installs 23 Daily Active Users 3.43 Session length (average) 3.8 mins Session length (max) 13 mins Retention rate (day 1) 30.43% Reviews 4 Average rating 5 stars So, not setting the... Read on

Bubblision development statistics

As Bubblision has now been released I thought I’d share some of the statistics I’ve been keeping throughout the project. As I’ve been using the game to learn how to use Unity and also been working in my spare time the timescales are not indicative of how long it takes to develop this sort of game (unless you’re in a similar situation…). Duration Milestone Date Hours spent Project start 10/07/2013 – First Alpha 13/11/2014 (491... Read on

Bubblision – Sprint 27 complete & SunUp #14-41

Having had no time to work on the game last week I managed to find some time this week. I’ve also come across a couple of tricky bugs which, having solved, I’ll blog about separately (when I find the time). Some tasks completed during this sprint: Added ads from AdMob to the game Configured test ads for my devices Made some design changes to the various game screens Update: now blogged about one bug: How to:... Read on

How to: Solve the “Unable to convert classes into dex format” Unity error

I recently came across the following error when trying to build my game in Unity “Unable to convert classes into dex format. See the Console for details.” The console error is pretty long but starts with: Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. C:\Program Files\Java\jdk1.6.0_38\bin\java.exe -Xmx1024M -Dcom.android.sdkmanager.toolsdir="E:/adt-bundle-windows-x86-20131030/sdk\tools" -Dfile.encoding=UTF8 -jar "E:/unity/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar" - stderr[ UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/internal/safeparcel/a; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:685) at... Read on

SunUp #14-26

It’s been a bit of quiet week this week as I’ve been largely hamstrung by not having a business bank account. That said, I now have a bank account…. finally! It’s not like anything about the application has been contentious it just seems that the bank is spectaclarly slow. Still, I now have an account and can start signing up with ad networks and so on. Read on

SunUp #14-25

Some of the things I did this week: Finally created some integration tests for Bubblision. I’ve only done two so far but it’s a start. Went along to the monthly Unity meet-up – a talk on editor extensions. Great talk and an excellent night. Did a test upgrade of the Glossary to CakePHP 2.5.2 (from 2.5.1) Prepared test fixtures for the Identifier tool prior to attempting to upgrade it from the CakePHP 1.3.x branch to... Read on

SunUp #14-23

Some of the things I did this week: Finally got the forms for the business bank account from NatWest. Having done the initial sign-up online it’s pretty frustrating to wait two working days for a phone call then three more working days for them to email you forms to print out, complete and post back to them. It’s also the first form I think I’ve ever had to complete that switches back and forth between... Read on

Bubblision – Sprint 17 complete & SunUp #14-22

Some tasks completed during this sprint: Adjusted NPC bubble speed depending on the number of bubbles remaining Redesigned the end game screen Tried redesigned the playing area (still don’t like it) Updated NGUI to 3.6.1 A few other things I did: Went to a UKIE session on tax relief for games development Went to the Bristol Games Hub monthly social – excellent talk on sound and music in games Tried to set up business bank account…... Read on

SunUp #14-07

This has been a pretty hectic week and I’ve not got much done on Bubblision. The two tasks I’ve completed are: Upgraded GameAnalytics to 0.5.9 Installed Unity Test Tools The main reason I’ve not got much done is that I’ve been working hard on RF1. The new F1 season is rapidly approaching and it’s the second pre-season test this coming week. I hope to launch the competition after that test and there are a number... Read on

Bubblision – Sprint 9 complete & SunUp #14-06

This has been a bit of a mixed up sprint as I’ve had a lot of other things to do at the same time so I’ve not been able to put in as much time as I’d have liked. Over the next few weeks I’ll launch my fantasy F1 game so that will impinge on the time available for Bubblision too. Tasks completed this sprint: Increased the speed of the restored NPC bubbles an increased... Read on

SunUp #14-05

I got a few things done this week. Most importantly I think I’ve now resolved the annoying duplicate player bubble bug that I’ve been trying to solve for a few weeks now (further details). This week I’ve finished: Give restored NPC bubbles an increased speed Fix duplicate player bubble bug Code tidy up Investigated how to pause the game Read on

Bubblision – Sprint 9 start

Sprint stories Fix duplicate player bubble bug Give new bubbles an average speed rather than starting them at the slowest speed Add ability to pause the game Install NGUI (a library to help with the in game GUI) Create the designs and artwork for the remaining scenes Code tidy up 😉 Expected duration Two weeks (ending 09/02/2014) Read on

Bubblision – Sprint 8 complete & SunUp #14-04

After a slow start I managed to get a few things done during this sprint. I’ve still been unable to fix the duplicate player bubble issue and this will have to roll over to the next sprint. I’ve a few things left to try, including a rewrite of the code, as a lot of the other things I’ve tried haven’t worked. To date I’ve tried making the player bubble a singleton, trying to detect and... Read on

Bubblision – Sprint 6 complete & SunUp #13

This sprint was disrupted as the last week coincided with Christmas so I didn’t get to spend as much time on the game as I’d hoped. However, I did complete a reasonable number of tasks although didn’t finish some of the big tasks associated with “power-ups”. Tasks completed this sprint: Decide on power-up types Create icons for power-ups Show score in game screen Populate remaining scenes with GUI etc Game GUI – score Store player... Read on

SunUp #12

Last week I completed the following tasks, it was a pretty good week but (as mentioned when I started this sprint) it’s likely to be cut short due to Christmas etc. Decide on power-up types Create icons for power-ups Show score in game screen Populate remaining scenes with GUI etc Game GUI – score Store player data Add points graphics Game score on final screen Read on

Bubblision – Sprint 5 complete & SunUp #11

Well, Sprint 5 actually went rather well, so well in fact that I completed all the tasks I’d assigned to the sprint and also a few more besides. One of the tasks I hadn’t planned to complete this sprint was implementing analytics on the game. Mobile games track a lot of data about how players use their games (whether the player realises it or not) and this guides a lot of the decisions about how... Read on

SunUp #10

The last week I completed the following tasks on Bubblision: Add sound for NPC bubble collisions Add sound for player bubble burst Add sound for NPC bubble burst Add sound for collision between player and NPC bubble Slow down NPC bubbles if colour matches colliding player Regular readers might realise that the above represents all the tasks for sprint 5… so next week I’ll be working on the next tasks in the list. Other things... Read on

Bubblision – Sprint 4 complete & SunUp #9

Wow, these sprints are rattling along! It’s the end of Sprint 4 already and I completed all the stories. Towards the end of the sprint I came across a rather frustrating issue with the collisions in the game but this turned out to be something I’d overlooked and easy to fix… albeit after spending a couple of hours researching Unity’s collision detection and reviewing all my code. I’ll write a blog post about that separately... Read on

SunUp #6

For a variety of reasons I’ve not had as much time to devote to my game project as I’d hoped this week. As a result I’m a bit behind where I’d like to be in terms of the current sprint. That said, I still managed to complete a couple of tasks: The non-player bubbles now burst (albeit the particles still needing a lot of work) and are removed from the game area if they reach... Read on

SunUp #4

Set up Pivotal Tracker for Bubblision Added all Bubblision stories to Pivotal Tracker and ordered the majority in the Back log “Nice to have” stories added to the Ice box Set release markers for first Beta version and final release Made read-only Pivotal Tracker dashboard for Bubblision publicly accessible: Default view shows the stories in the “current” sprint and the “back log” but you can access the “Done” and “Ice box” lists too The current velocity is... Read on

Bubblision – Sprint 2 start

Sprint stories Set up Pivotal Tracker to keep track of all the sprints, stories, back log and ice box etc. Set collisions on NPC bubbles Configure the screen limits Create background artwork Set up video capture Upload game progress video First Android build Expected duration Two weeks (ending 04/11/2013) At the end of the first sprint I decided to reduce the sprint time from three weeks to two weeks. Read on

Bubblision – Sprint 1 complete

Sprint stories review Set up Git repo Create Unity project and configure it to use Git Create game design document/summary Basic screens/menus Movement of NPCs – currently just moving around a bounding box. The bubbles bounce off the walls but not each other Additional stories: Set up Google Docs spreadsheet and data collection form to keep track of time spent on various tasks Added a glow (light) to each of the bubbles Randomly switched bubble... Read on

Bubblision – Sprint 1 start

Background Bubblision was a (very) basic Flash game I created in 2003 for our Staff Art Show. Now I’d like to create a much improved and bigger version in Unity – for deployment on Android (and hopefully iOS). The game is a small puzzle (casual) game and my plan is to use it as a manageable project for my first experience with Unity. Building on that I can then work on some of the bigger... Read on

Objectives for my first game

For my first game with Unity I want to create a mobile version of my 2003 game Bubblision. It’s basically a casual game and the objective is to prevent four coloured bubbles from bursting for as long as you can. You do this by firing another bubble into the path of one of the coloured bubbles and knocking it away from spikes. As this will be my first mobile game I don’t have particularly high... Read on

Game engine review

Recently I’ve been keen to do more games development. It’s something I really enjoy, having written a few Flash games in the past, but not something I get to do at work. With work a little uncertain at the moment it’s also a good time to add to my skills etc and have a bit of fun. Having decided I wanted to get back into games development and specifically mobile gaming on iOS and Android... Read on