End of the year and end of BevNav

I haven’t blogged in the last two months and there’s a good reason. In that time I have got to where I wanted with BevNav and all I need to do was put the database on my portfolio website server and also put the PHP pages on there to pull the data down. When I did this however I found out the hard way that the Windows hosting I have doesn’t work with PHP, who knew? I sure didn’t and that caused me a lot of pain because my websites in ASP and there for need the Windows hosting.

with that in mind I have attempted to translate my website from ASP based to completely HTML. However this has not worked 100%. Unfortunately there are several animations which do not play anymore and a few sections that do not work. Therefore I have decided for now to leave it as is and just add a page on my portfolio about BevNav and upload some screenshots of it working. After and during the Christmas break I may take some more time to get it work and potentially change my hosting to a Linux based package.

Until then, here are some screenshots of BevNav working, enjoy:

Now that it’s finished I can reflect on how well the project has gone. and it’s been rather enjoyable. Working on Android is always a fun little challenge as I don’t use that code very often and with that can come a lot of stress, however it’s always great when you see the results of the labour. For such a small project, it is a bit annoying it took so long to do, but that is more down to my commitment to want to do side projects outside of my real work. I also found Google Map (something I had not touched before), wonderful to work with and if there was another time when I had to or wanted to work with it again, I definitely would do so.

So what’s next? Well potentially two things, one is a games project and the other is a software project. The games project is to be a dodgems (bumper cars) type game, which I want to make in Unity and it’ll be for PC.

Now the other project is just a software based one because I work as a software developer in a games company and I want to excel. There’s a few things I want to get to know more, one being Model View – View Model (MVVM) and the other is to just to keep upgrading my skills. As this is something I am going to be doing to aid my work real life job, I am intending on working on it more often than I have with BevNav.

Therefore the majority of my time is going to spent on that, more than the dodgems games, but I would like to get that started also.

As well as the programming I will try to blog a bit more…TRY HAHA.

Happy Christmas and New Year everybody!

Advertisements

Location filters and their removal, plus images for the bar

When the user, uses the search to filter to only show one city or town, the map will jump to the location of the first bar in that town. My thinking behind this, is that if you are filtering/searching for a specific town you want the map to show that area and you (the user) are probably not in that town. However I may change this at a later date so that I find out if the user is within a few miles of the first bar and therefore if they are, then I won’t change force it to jump to that area and make the map think they are in that location. But if they are say more than 10 miles away then the user is probably planning a night out or week away and therefore the app will launch with their ‘mylocation’ being where they are and this won’t be any where near the town selected.

What you’ve got to remember is that the premise behind this app is that people would use it if they about to go out or are out and want to find a place to drink with some offers on or has drinks they are more interested in. Or they are planning a trip away and want to know what bars and offers are available to them when they get there, so that they have the best night out they can and don’t spend most of the night looking for places to go. There’s probably other scenarios I haven’t taken into consideration but you get the idea.

Also I mentioned in my previous blog about changing the ‘default’ icon from the wine icon to another icon. This is because bars that didn’t have any offer on at all would show up as a place with an offer for wine…very misleading. Therefore I was going to make a default empty icon for when pubs don’t have an offer on. However my thinking is that if there isn’t an offer on then they shouldn’t be shown on the map because again this app is about showing bars with offers on to try and promote them and therefore get the bar more business.

Next thing to do and what was the last thing needed for the bar profile popup, was to pull the images of each bar down from the database and show the correct one for each bar. I have saved the images for each bar in a separate table in my database, simply called ‘Images’. The data for this table is then pulled down in the same way each other table is pulled down (using php and JSON). When they have been pulled down and are sitting in a JSON Array, I then search through each one and compare their associated bar Id with the Id of each bar. When I find the correct bar I save the image to that bar’s object. This then allows me to simply pull the image from the bar’s object and populate the ImageView with the bars Image.

New Popups to Show Details

So in the last few weeks I have been finishing up the cleaning of my code because, as  I mentioned in the previous blog, after returning to the app I noticed I had fallen in to some terrible habits and therefore felt before doing anything I needed to do a ‘clean up’ asap so I was happy with it. Now I am happy with it and feel it’s a lot more readable and efficient. However I am sure there will come a time when I look at a part of the code I haven’t looked at in some time and I’ll think ‘Damn! This is terrible!’

After that I moved on to working on the pubs details page. This would open up when the user clicks on the pubs icon on the map and it will show a much more detailed view of the pubs offers (the main featured one and then a list of any other offer they might want to show). It will also show their address and an image of the pub. This started life off as a new activity that would take the user away from the google map activity. However when I had finished it and had pulled all of the data about the pub to the details page, I realized how empty it looked and by gawd it looked really empty.

With this in mind I made a choice to have the details open up in a ‘popup’ within the google maps activity. This looks a lot cleaner in my opinion and it also means there isn’t a lot off empty space all over the page. Another major advantage to this is that a new feature to the google maps activity is that when you click on a marker two little buttons appear that either send you to the location in google maps itself, or the other button sends you to google maps but to the directions page. The latter of these features especially is awesome and I’m glad google implemented this and also saved me from a bigger issue which if I had stayed with the separate activity, I wanted to add the ability to go to google maps and let the user get directions. So having the pop up means I can keep it compact and cleaner but also I get to utilize the buttons that google have already added in.

Lastly I also have changed the ‘search town’ list’s design, which was very empty before hand. Now the text has a lot more padding around it and therefore the text does not feel all quashed together. I have also added line separators between each town name and I have also added a background to the list. Yes it’s white but before it was transparent and you could see through to the map and to me looked bad because the text appeared to just hover and I didn’t like it. At least now with a white background, the list looks separate from the rest of the activity and looks more professional, well at least in my mind it does haha.

So what’s on the agenda next, well first its pull through the correct image each pub, because at the moment it’s just an image place holder. Then after that it’s to make a default icon so that if there was a pub added but didn’t have any ‘featured’ offers on at the moment then at least it would still show the pub, but it wouldn’t make out that they have an offer on. Then the next major one is to add a ‘remove’ filter feature, so that if the user searches for a certain city/town (which will filter the map to only show pubs from that town), then at least they can remove it and show all because at the moment they can’t, they have to close the app entirely. I know that’s terrible Nick what are you doing!! haha.

Also for this blog I will add some images at some point so that there is some point of reference to what I am jabbering on about.

The return, the clean and the focus

It’s been a while blog world…..a long while. The last half a year has been rather busy for me out side of my side projects and have been rather lazy with them/not doing anything to them. One project I was doing with friends seemed to just disintegrate and another my friend gave up on the idea. The third which was just one I was doing by myself was good, but I just lost interest it in. At the time of doing all three I seemed to be more focused on one of the others than I was on the one I was currently working on, so as you can see it didn’t work out.

Anyway, so what is it I am doing now? Well this is me coming back and I am going to be carrying on with Bevnav. It’s the more interesting one at of the three and one I can complete by myself (even though yes I did start this with a friend). I have taken the other projects off this blog until further notice.

But why Bevnav, I thought you wanted to make games?” I hear you cry, well yes that is what brought me to the dance and is my main focus. However I was a lot further in to this project than the others and have a lot more ideas and plans for it, therefore it would be a bigger loss and waste of my previous time, to not complete it. I also am now a SharePoint Developer at my company and for the time being, a software based project might help me a bit more in my job than a games based one. I am aiming to get this complete by December and think with all the focus I can give to it (and with how much longer is left in the year) I will get it done by then. As with Attack of the RGB, this isn’t a publish type of thing and get 100’s of people to use it. This is simply an app that I am creating to show what I can do.

After Bevnav It will be back to the drawing board and I will get back in to game development type side projects. I may use one of the previously started projects or I may start something completely new. All I know is, is that is a rather long way off from today and will think about that more when the time comes. Until then it’s full steam ahead Bevnav!!

So all this chat about focus, what have you actually done ?” Good question well when I first came back to it I had a good look through the code to see what I had done and where I should go next. In doing this I became a little disappointed in myself as I realised how bad the code was and how inefficient it was, it also looked like an ameteur had written it and that’s not what I want to be doing, especially considering this is meant to be a portfolio piece, I have no idea what I was thinking back then. One example is all the data I pulled through from the database I was just saving to a big long list with of a string for each of the tables columns (WOW nick that’s terrible), so to fix this I just made some simple classes and saved them to that. This also made it so much easier to use the data later, instead of having to write a big line of code access the string for the table column, then cutting to get the one I wanted.

After the initial clean up I then started to like the idea of adding a Navigation drawer to the app, so I spent a while learning about them and then I went onto adding one to the app. The problem is, even though I wanted one (and still do really), I didn’t know what I would be putting in the drawer and it became more of a feature creep. So I have taken it out now, but if I can think of some way of using it then I’ll put it straight back in.

Next on my plan was to create the ‘profile’ page of each bar, which would display the name, address and more importantly the ‘featured’ offer as well as any other offers they wish to show. I created a new activity for the profile and implemented a bundle to pass all the data through from the main activity to the profile page. Well that’s now all there, the next thing for me to do is make the page look ‘pretty’ as it is currently a blank activity with text all over it, therefore I am currently making some drawings for it.

Speaking of whats next I created a TODO list for this project of things that need doing before I will consider this project complete. Obviously there’s probably somethings I’ve over looked or will naturally creep in but this is the foundation:

  • Make classes for the bars/offers/locations – DONE
  • Clean up code – On going
  • Create pub profile page
    • Change the ‘Offer type and details’ to ‘Featured Offer’
    • Add a listview for the pubs ‘other’ offers
    • Create new design layout for the page
      • Create a design layout for the listview also
  • Add a ‘remove’ search filter option for when the user has searched for a ceratin location and then wist to remove that filter
  • Give the listview of the locations search list a better design
  • Move the server to my website, as it’s currently on my laptop
  • Add a ‘Favourites’ feature to either save favourite bars or favourite offers or both
  • OPTIONAL – Create a home screen widget
  • OPTIONAL – Navigation drawer

Immunity

So it’s been a few weeks and I’ve made a good start on the RTS Tower Defense game I am making with some friends in about a full days worth of work in total (split over a few days where I could fit the work in). The idea of the game that the designer is coming up with is that it is a tower defense based inside the human body with bacteria and antibodies (amongst other things) going from one part area around a vital organ to another (these will be represented by rooms). Therefore I started off by building two rooms one where the enemies would spawn and a second room where the ‘heart’ is. The heart being the organ that the enemies will attack and loose health as more attack it.

In the first room I scripted a prototype of the spawning unit which will spawn the enemy units over time, these would then walk towards the ‘heart’ and take a set amount of life off it, with the game ending when there is no life left.

Next was to create a prototype for the interface and creating ‘buildings’ to place down, which will either be places to create new units or ‘towers’ which will attack the enemies. This was done by prototyping a building manager script to control which button on screen would spawn which specific building and attach it to the user’s mouse position. A placement script was then created to look after the placement of the  ‘building’ and checking if it was in he range of another building, therefore making sure that the player cannot place multiple buildings in one location.

It hasn’t been decided yet as to whether the game is going to be in 2D or 3D, so I have made this prototype version in 3D. Next I am going to rework the scripts and stuff I have made so far and build a second version in 2D so that there is a prototype of both in the works ready for when the group meet up next with what we have done so far. As I’ve mentioned previously, we have decided upon using the Unity game engine so at least with the later version, 2D is now apart of the engine and I am looking forward to seeing how this works.

Update

It’s been a few weeks now and unfortunately I have neglected my projects due to a busy life. However I recently joined forces with some friends to work on another game project for our portfolios. Therefore I will be dropping the Project Anarchy project for the time being and concentrate on this one along with the BavNav project of mine.

This project is an Tower Defense with some RTS style elements thrown in and it will be created in Unity. We all decided Unity due to all having had experience with it and it being very good to use make great games.

I look forward to the fun this project brings, I will be one of two coders on this project and I will try to blog what I can with what I am doing. I will also make time to work on BevNav as that again is working with someone on that project

Ticking things off the list and adding more

So today has been quite productive as such, as I have managed to sort out two things off the todo list from last time, first one being the collision on the walls giving momentum to the ball. Now the way I have done this is by placing a trigger box around each group of wall panels and given them a script which senses the ball colliding with it and then gives the ball some momentum. It works exactly the same as the ball bouncing off either paddle, so was pretty easy to implement.

Next was putting a ‘damper’ on the opposing AI player so that it wasn’t 100% going to hit the ball each time, however I slightly changed my idea on what I wanted to do, by this I mean I just simply changed the speed of the player. This I will change later on dependent on what difficulty level the player chooses, whether it be Easy, Normal or Hard. At the moment the speed is set to what I believe to be a very slow speed so I will just raise it for the other two difficulty levels. These have yet to be implemented but I have added them to the todo list 😉

Lastly I have started a new thing which is reset the player and the opponent to their original places. This is currently in the works as I have stumbled upon an issue, but hopefully I will fix it. I will also be resetting the ball to be in front of the player who had the ball go in the back of their net and they will ‘kick off’. That feature is yet to be implemented, but will be as soon as the player reset is done.

Below is an updated list of what is to be done:

Currently working on

  • After score, player and remote paddle reset to original position
    • Ball resets in front of paddle  (Player presses to shoot, remote will just shoot)

After the AI is done my plan is:

  • Hit scaleform first and make a main menu
  • Create the GUI for the level while in play
  • Add the ability to change max score points (currently set to 5), leading to longer and shorter games
  • Create multiple arenas
  • Create a selection screen before playing where they’ll choose which arena to play in
  • Difficulty levels
  • Create all models needed