Jordan Bonser
  • Home
  • CV
  • University Work
    • Second Year Work >
      • Top-Down Shooter
    • Third Year Work >
      • Terrain Analysis Project >
        • Terrain Analysis Tool
        • Game Demonstration
      • Post Processing
      • Android Application - Sports Centre
  • Projects
    • Unity Development >
      • Lerpz Tutorial
      • Dare to be Digital Entry - "Lit"
      • Unity Game
    • Geometry Instancing
    • Road to Eldorado
    • Level Editor
    • OpenGL Work
    • JBEngine
  • Blog
  • Tutorials
    • Flask Session Timeout

Development Blog

JBEngine: Space Invaders defence post addition and some Blender work

17/12/2015

0 Comments

 
This week I got to work on creating the defence posts. I decided that I wanted to create a new model for this rather than re-using some of the boring models I've already got. I managed to find a decent "metallic spaceship tile" image from www.opengameart.org . I then had to think about exactly how I wanted to do the defence post. I wanted it to be fairly similar to the way the original worked and also had to think about how this would best work with the physics collision code. 

One idea I had was to create one model that was quite complex and intricate and then model the various levels of it's destruction based on which area was hit. I decided this would be a massive pain to create and manage the assets. 

I then thought I might just make it as simple as I can and make it look like a "spaceship-esque" wall made up of metal "bricks". This would make things much more simple in terms of the collisions as I would just destroy one brick when it was hit. This is the approach I decided to stick with, as it was a nice fit with my blender skills at the moment. 

Here is a screenshot of me trying to work out how to use blender for even this simple model:
Picture
Blender Work
So after I spent way more time than it should have done for such a simple model, I finally got to work implementing the functionality. Luckily with all the work I have already put into the Component System It was simply a case of giving the entity the correct components and subscribing to the right systems and it mostly worked through the asset loading alone. 

The only thing I did have to change was the collision filtering, I had to put in extra rules for this new "DefencePostBox" Entity. Now whenever a "DefencePostBox" is hit by a projectile they will both be destroyed. This means that even the player can accidentally destroy their own defence posts.

I'm fairly happy with the progress for the couple of hours I've worked on this tonight, here is a video of the results. (Oh I've also been messing around with the screen resolution so the enemies currently go off screen).
I would like to implement a particle system at some point for the entity and defence post destruction, as I've had to do this for some work I did at Inspired and it was pretty fun. I have managed to stop myself from doing this as I know It will not actually add anything in terms of gameplay and I want to get this game finished.

I'm not quite sure what is next on the cards but I'm really excited with the progress so far :)
0 Comments

JBEngine: Space Invaders AI Movement Speed and a few bug fixes

5/12/2015

0 Comments

 
Okay so first thing I got to work doing recently is implementing the AI Movement Speed. These utilise the Speed Component that the Enemy and the Player already has but in the AI Movement System the code now uses a timer to increase the speed of the enemies. Initially the speed ups only occur after a few seconds but the timer gets smaller so the speed increases become more frequent. 

The next thing I worked on was a few bug fixes. The player was being deleted when going to the next level. If you clicked "Esc" when waiting for the next level or when you were respawning it would crash the game out. These were easy enough fixes but the last one was a biggee and was actually still there in this video: 
So as you can see the game is coming along nicely, I changed the skybox stars texture to a much nicer one that you can see here. 

The big bug that I managed to catch out was an optimisation problem. My FPS had dropped to ~40 all the time. At first I thought It was something to do with the Entity Component System as it seemed to show up most when profiling, this then caused me to make some changes to use more efficient containers. It turned out it was actually the awesomium texture updates. I was updating the scores and lives every update. This causes a re-draw of the whole html page which is very slow! 

I managed to catch it and my FPS is way back up again now so all is well. 

Oh as an added note I downloaded blender tonight so I will be getting to work on the defence posts soon. 

Cheers :)
0 Comments

Space Invaders: AI Firing, Game State and Player Lives

1/12/2015

0 Comments

 
So motivation is really high at the moment, I guess It's because I can really feel this project progressing. I've managed to get quite a bit done in the last few days.

Player Life

​I started off dealing with the Player life and initially health as well. I then realised that Space Invaders technically doesn't have the concept of health for the player or the enemies. (You could argue that the  defense posts do but I will deal with that when I come to it). So after scrapping health I implemented the life component, fairly simple really and I am definitely getting used to the creation of new components and systems now so It didn't take long at all. I also integrated this into the Awesomium WebView so that It could be seen on the GUI.

AI Firing

​I then went on to deal with the AI Firing, I decided to break the sort of vertical lines of mobs down into a "Squad" each with their own Squad Number. So each enemy can now have a squad component and the AI Firing System is interested in this component. To decide who fires I pick one of the squads at random, then find out whichever enemy is at the front (because only the front-most enemy can shoot). This enemy then fires a bullet which has it's collision callback set to react with the player. 

I quickly moved on to game state after getting the AI Firing working. I now have a simple GameState and a GameStateChange Message. It is all really quite simple so I'm not going to bore you anymore with the details, here is the game in its current state:
I'm actually really impressed with how it is starting to look, I've already been thinking about how I can implement the sequential levels and also how to pre-generate them as well. 

What's next then: 
  • Calculating more accurate Physics Boxes and Spheres for the bullets and Enemies.(The bullets hit when they don't actually seem to be that close)
  • Look at altering the scaling of the enemies and player so that there are more enemies on screen and it is more difficult. 
  • Implement the Speed up over time functionality (Should be fairly easy, I already have an AI Movement System)
  • Looking at Implementing the defense posts to protect the player. (may need some time investing in artwork)

So there is still plenty to do but It should all take me no time at all. I'm hoping to be able to have a functionality complete game before Christmas.

Keep coding :)
0 Comments

    Archives

    May 2020
    April 2020
    January 2020
    November 2019
    October 2019
    September 2019
    July 2019
    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    August 2018
    July 2018
    June 2018
    March 2018
    January 2018
    June 2017
    February 2017
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    February 2016
    January 2016
    December 2015
    November 2015
    September 2015
    August 2015
    July 2015
    June 2015
    March 2015
    January 2015
    November 2014
    October 2014
    September 2014
    August 2014
    July 2014
    June 2014
    May 2014
    February 2014
    January 2014
    December 2013
    November 2013
    October 2013
    July 2013
    June 2013
    May 2013
    April 2013
    March 2013
    February 2013
    January 2013
    December 2012
    October 2012
    September 2012
    August 2012
    July 2012
    June 2012
    May 2012

    Categories

    All
    2D
    3rd Year Project
    Agile
    Android
    Angular
    Animation
    API
    Apple
    Apps
    Arden
    Async
    Awesomium
    C#
    CI/CD
    Clean Code
    CMake
    Cocos2d-x
    Colour Match
    Compilers
    Cross Compiling
    Cross-Compiling
    Databases
    Design
    Development Tools
    Docker
    Electronics
    Examples
    Flask
    Flask-Login
    Fmod
    Game Development
    Godot
    GUI
    Hackathon
    Hacktoberfest
    Hardware
    Home Life
    IBM
    Inspired Gaming
    Instancing
    Ios
    Javascript
    Jbengine
    Kata
    Level Editor
    Linux
    Microsoft
    Mobile Development
    Monogame
    Moodster
    Motivation
    Networking
    Objective C
    Opengl
    Open Source
    Organisation
    Physics
    Physx
    Pi
    Planning
    Post Mortem
    PyGame
    Python
    Quart
    Quasar
    RakNet
    React
    Road To Eldoarado
    Scripting
    Scrum Master
    Sessions
    Session Timeout
    Social
    Sound
    Space Invaders
    Squash Game
    Squash Game
    Streaming
    TDD
    Team Leading
    Test
    Test Driven Development
    Travis
    Unity
    Unity Development
    VSCode
    Vulkan
    Web Applications
    Worklife
    WSL
    XML
    XNA / C#

    RSS Feed

Powered by Create your own unique website with customizable templates.
  • Home
  • CV
  • University Work
    • Second Year Work >
      • Top-Down Shooter
    • Third Year Work >
      • Terrain Analysis Project >
        • Terrain Analysis Tool
        • Game Demonstration
      • Post Processing
      • Android Application - Sports Centre
  • Projects
    • Unity Development >
      • Lerpz Tutorial
      • Dare to be Digital Entry - "Lit"
      • Unity Game
    • Geometry Instancing
    • Road to Eldorado
    • Level Editor
    • OpenGL Work
    • JBEngine
  • Blog
  • Tutorials
    • Flask Session Timeout