• Archive / RSS
  • 2013-04-23 0 notes

    Wizards of Yore on App Store

    Wizards of Yore made it on to the Apple Store!:

    https://itunes.apple.com/us/app/wizards-of-yore-free/id635658993?mt=8

    https://itunes.apple.com/us/app/wizards-of-yore/id635659572?mt=8

    Also the prototype board game version arrived, had a quick play, some printing issues but pretty good so far:

    image

  • 2013-04-15 0 notes

    Wizards of Yore on Google Play

    Wizards of Yore is now on Google play here:

    https://play.google.com/store/apps/details?id=org.newdawn.wizards

    https://play.google.com/store/apps/details?id=org.newdawn.wizards.paid

    It’s still in development but I thought the best way to get feedback is to put it out there. The price and approach to charging may change too depending on what people want from it.

    Wizards has also been submitted to the Apple App Store so it should be available on iOS real soon now.

  • 2013-04-10 0 notes

    Just trying some random map generation.

    Just trying some random map generation.

  • 2013-04-08 1 note

    Pseudo Voxel Effect

    Been asked a couple of times why I keep calling my rendering style recently “pseudo” voxels - it’s because it’s not a real voxel rendering. There’s a fairly significant restriction that you can only view from a fixed single angle.

    The game world is actually voxels, i.e. theres a huge 3D array that maps out where each single “cube” is in the world. However, the renderer doesn’t do what you might think - it doesn’t march cubes and optimize the mesh in any way. It doesn’t in fact render anything in 3D at all. 

    The rendering uses a second buffer, almost like a Z buffer. As cubes are added or removed to the world a ray is cast out along the known view angle - to keep this fast the view vector is always (0,-1,-1). If the new cube is not blocked by another it’s added to the buffer, along with it’s depth, whether it’s shadowed and whether it’s top is show (easily calculated by looking at the surrounding blocks). When a block is removed, the second buffer is checked to see if it was the visible block - if it was then scan back from the old cube position to find the new visible block.

    Then when rendering scan through the almost Z buffer and rendering the blocks that have been deemed to be visible as simple sprites (of blocks). Take into account whether a block is shadowed and whether it’s top is showing and thats it.

    It’s pretty low cost to render but it’s not incredibly efficient to update. The mechanism to determine whether blocks are visible correctly and work out which ones are shadow is a bit fiddly but outside of that it’s really very easy to implement. 

    So yes, it’s not real voxel. No it’s not as cool. I still like the style of things that come out tho. :)

  • 0 notes

    Why I don’t want to work for Google (anymore)

    A sensationalist blog title is worth 100 good posts. Your first thought, this guy is just bitter. Well yes a bit for probably not for the reasons you think.

    How about some background first. I got contacted by Google a couple of years ago, would I like to come for an interview. WOW! It’s Google right! They then put you through some phone interviews that make you feel like you’re begging for a job. Ok, not nice, but still. It’s Google right! Then you visit a local site for a face to face interview - and you will be blown away by their facilities. My god, it’s Google right. I failed by the skin of my teeth, and you’re think I’d be annoyed. Well like most of us geeks out there thats not the case - the first question that went through my mind was “ok, when can I apply again?”. I mean, it’s Google right!

    Fast forward to now, I’ve considered applying again but just never had the right moment and I was back to thinking about again recently (for various reasons that I’ll explain one day, honest). As I was thinking about it I realised I don’t actually want to work there any more. What?!? It’s Google right!?

    As I thought about applying again and going through the hoops to get what used to be my dream job I started thinking about Google as a company. Why are they so good? Why do we all want to work there?

    Google’s foundation is it’s image. Ok, they have the cash cow in searching but the rest of their products run on their image. For years we’ve all loved them. Even if sometimes their products fail and don’t provide the experience we want we’re all thinking it’s Google, their nice, they do things for free. They don’t act like your normal business, we don’t feel like we’re being ripped off. That’s exactly how Google have been for years - they’ve been producing services and concepts because “they can”. Investing money in products that we all love and use, that work (mostly) pretty well. If anything goes wrong or anything isn’t quite right we all feel like we have a vested interest in them getting better … because it’s Google right? 

    The long and the short of it is Google has done very off the good feeling they’ve generated in the user community at large. The vision of the philanthropic behemoth doing things for the people. Not acting like a huge faceless corporation and doing things “the right way”.

    Looking at it now though, you can see the chance. Google are starting down that slippery path to the dark side. Reader is the obvious case but if you look a bit deeper you’ll see a general tend towards money first - people second culture. It had to happen eventually - they’re turning into a “real” business. Unfortunately for Google they aren’t going to keep that wonderful relationship with their users if they go that way.

    So, why would I want to work for Google now? I could choose any big company with a big chunk of cash and a whole bunch of crazy ideas. There’s plenty of them around and Google is heading rapidly toward being “just another”. It’s Google right? Wrong.

  • 2013-04-04 0 notes

    Lunch time spent adding a bit of a naive networking layer and character selection in.

    Lunch time spent adding a bit of a naive networking layer and character selection in.

  • 2013-04-03 0 notes

    Currently mucking about with an interesting rendering style.

  • 2013-03-20 2 notes

    LibGDX, Legends of Yore and getting to iOS (again)

    Well, I told Mario over at badlogicgames that I’d write up my experience using the wonderful LibGDX to port Legends of Yore and get it back on iOS - finally!

    So, first up, have to set the scene. Legends of Yore is a large RPG/Roguelike with a very simplistic graphical style. It is available on iOS, Android, Desktop, Playbook and Touchpad - all from the same code base. I developed against an abstract API I created before there was any decent way of getting on to iOS - the Touch API. This API meant that all uses of images, sounds, network connections and everything else was already abstracted away from the game code. 

    Unfortunately it never performed very well on iOS - that was due to the method of getting it there, XMLVM which while extremely cool uses a method of compiling the byte code into C code then recompiling. As you imagine those layers make things pretty slow. Worse still, when iOS 6 came out it broke my code in a way that I couldn’t fix without rewriting chunks of XMLVM - something I wasn’t able to do, at least not well.

    LibGDX

    So, enter LibGDX - an API I’ve been aware of for many reasons. First I know some of the folks working on it from past java gaming projects. Second, Slick (my game library) got compared to it regularly as thought there needed to be some competition between the two. Finally, I was hearing great things about how it worked. Then came the new it could now get to iOS via a much smarter method than mine (more on that later).

    My customers are/were needing an iOS 6 update so I decided to port Legends over to LibGDX. Things really couldn’t have been much easier. Screen setup is pretty much done for you by the sample code provided. SpriteBatch is wonderfully simple to use to splat sprites from textures onto the screen. Sounds are a very simple API and all that worked flawless straight off the bat even when I ported to iOS. 

    Lets talk more about that, compiling to iOS, how does LibGDX do that? It builds the Java, then uses IKVM to get C#, then finally uses MonoTouch to get to iOS. Now, you can go as far as the iOS simulator with just your Mac and the trial version. However, the minute you want to actually get to the device or the AppStore you need to fork out $300 to get a MonoTouch license. For me, that was a no brainer, Legends has paid much more than that over the years and my customers deserved to have it back. Re-invest some cash and get the license.

    EDIT: Mario informs me that the trial version of MonoTouch actually lets you deploy to devices too! Just need the license for the App Store.

    Does it work?

    I had one, yes read it, one problem with LibGDX. The HTTP API wasn’t working correctly on the iOS backend. It was simple enough to fix and thats now been worked back into the code base.

    Other than that, yes it works! It works damn well. I have a Java project that I change how ever I want. Once my changes in Eclipse are complete I move to MonoDevelop - hit clean and build. Run on the simulator and I’m testing! Round trip from code change to simulator is around 20 seconds. This is close to perfect for me!

    Ok, there are some limitations on which bits of Java API you can use and you want to try and make use of the GDX API as much as possible since that is intended to be portal. However, you can read all that on the LibGDX Wiki. 

    That said, Legends is a pretty code base for a pretty complicated and expansive game and it ported straight over. 

    I’m sure there will be problems to resolve that come up once people start playing it again - but without further ado - Legends of Yore is back on the AppStore here and here.

    All I can really say is thank you LibGDX Team, you really do rock!

  • 2013-03-10 2 notes

    New Game: Wizards of Yore

    I wrote a game called Wizards of Yore before Legends. It never really got anywhere but a lot of folks did like it on Android. At that time I just wanted to remake “Chaos” that classic spectrum that everyone loved so dearly. 

    The reason the game didn’t go well the first time - at least from my point of view - was there was very little of me in it. I know that sounds “arty” but thats really how I’m starting to feel about games. My games are my games because they have a feel to them (yeah, I know, because they’re crap).

    So… I started again. I’ve tried to learn to pixel and all the art for this new version is mine. I written the game rules as a board game (see the PDF on the website) so that while it’s inspired by Chaos for sure - it’s really how I’d like the game to play. As with legends it’s intentionally design to be a drop in and play game - not one that uses up all your time, but one that fills the time you have spare.

    It’s coming together slowly and you can expect a release on iOS, Android, Desktop and anything else I can get it running on within the next month or so. 

    Check out the game’s website for more details http://www.wizardsofyore.com

  • 0 notes

    Legends of Yore on iOS

    In other news, some of you are aware I had to pull down Legends of Yore from the Apple Store when iOS 6.0 came out. The OS update broke my game and I didn’t have a way to get round the issue. My apologies for the problems caused and I hope I’ve responded quickly enough to those effected.

    Thanks to the wonderful LibGDX it looks like I’ve got another way to iOS that will be much more reliable. Since Legends was intentionally written with a view to being cross platform it actually only took me 2 hours to port the whole code base across to LibGDX. Small bug in the iOS backend for LibGDX which I’ve pushed the fix back for - and badam boom! Legends of Yore is submitted for AppStore review again.

    No news as to approval yet and I’ll let you guy knows as soon as I do. As a bonus the game runs about 10x faster in it’s new form!

    Thanks for the patience guys!

→