I still play them, but the project I'm working on right now is not a game. I'm taking a break from my current game to try and do something that might be able to make money.
The problem is that making a game can be expensive, while I like to be able to do everything on my own there is certainly roadblocks that keep me from releasing a AAA indie title on my own. I can't make AAA graphics or AAA sound design, and it's certainly a important part of game design.
So I'm building something else, for the web and android, with a proper strategy.
On the way I've been learning Apache Wicket. I find it a great model for web development. It makes web development much closer to android development. You have your html/css and it maps direct to java. You code in java as though the site is local and it updates the html and state all transparently.
It is designed in a way that you can have inheritance and lots of code re-use in your html projects, and all with standard html that can be easily edited by any tool.
I will come back to games and such soon, I haven't shelved my current project, it's still in progress, just getting a much smaller portion of my time at the moment.
I got an Oculus, I was around order #800 and got it in the second batch. Mine arrived wednesday around 4pm.
My first day I played with the demo's and really was blown away by Museum of the Microstar. The Unity integration is amazing, and I think it's great all the things that people have produced so quickly with the unity integration.
I am not however a unity developer, don't get me wrong, it's not a learning curve thing, and it's a amazing tool, and it's within my price range if I was serious about it. The reason I don't become a unity person is that I avoid vendor lock in, and I like open tools. So LibGDX it still is for me.
So how to get something on the screen with libgdx, I've started coding a demo. I have no API and I'm doing this from scratch, but it doesn't look too difficult.
Once I get something working, it might be one of the first android-friendly oculus demo's, however I haven't looked into head tracking yet.
I do have experience with orientation sensors on android, so hopefully it shouldn't be too difficult to apply the knowledge to the rift.
The experience is great though, once I got over the limitations on this first generation hardware it has given me a very immersive and unique experience. I can't wait for the day that this technology is actually implemented properly in AAA games with a higher resolution, it'll make a amazing experience.
100% smooth migration to new server location. Mind you I was lazy and left it unplugged for two weeks. I moved it to a closet that I wouldn't hear it, plugged in ethernet and power, no monitor, no keyboard. Powered it up and everything worked!!
So yeah, got a server again, which I love because it supercharges my work. Have a server is like having a full time assistant, I run a lot of services like scm's bug trackers, this website, project management software, test tracking software. It's wonderful to have it all at the fingertips, and it's all thanks to open source software.
I've taken a short break from the game to release SunBurst
Check it out and enjoy.
Before I go back to the game I'm going to reassess a few old projects and maybe bring them up to date. I feel that I'm always improving as a developer, and if I spend the time improving a old project people always appreciate it.
I'm going to look at the VirtualWorld line and Raining Metal Balls live wallpapers and update them to LibGdx. It should make them more stable and fix most the bugs, as well as hopefully improving performance.
In the last week I've mainly been spending time on the gameplay and AI.
The game is going to have to have AI and now that I have a grid and units and most the framework in place to implement the game I think that it is important to get it in there. The AI will let me test the game without playing it. It's a must-have in the list of things to do. It'll help me balance the game and make sure that it runs at the pace intended.
I think my path-finding isn't working correctly either. It's not finding optimal paths. Probably because the hex-grid and the cost estimate functions.
Anyways, today I implemented the "Emotion Based AI"
Events and game state will impact the emotions in a variety of ways. If you are low on money, are being attacked, feeling hostile, see an enemy weekness or imbalance. These can impact the emotional state.
The Emotional State is then used to make the high-level decisions: Improve Economy, Defend Territory, Attack Enemy, Wait for a bit
I've balanced this AI so it's the correct volatility for the game. Some events already impact it in ways to make sure the AI is doing things relevant to progress gameplay.
I'm also currently trying to make sure death works. That dead enemies are removed and their blocks are free.
My current goal is to make the AI play a game that leads to victory on either side randomly.
Since I work alone but use agile, I'm going to start actually doing stand ups. Lonely, Lonely, Single person standups.
I think I typically only look like 1 hour ahead and I need to start planning farther and farther out. Keeping track of a day to day should help. I'm going to start by summarizing the last sprint today, since it's my first day doing standups online.
- Added a "base" unit. It can construct other essential units.
- Updated the button system to have "instant click", "wait before action", "click once and target" style actions for the "lookat unit" "Move/Attack"
- Improved the tutorial so that it hooks correctly into the appropriate actions, helps convey the story/tutorial in the correct order after the correct events.
- Improved asset management. Assets are now auto-loaded and key'd to their name minus extension. Different functionality such as Image, Texture, Button, 9Patch etc are all put in corresponding folders.
- Create some graphics, albeit temporary placeholders.
- Made characters go red when in attack range
- Fixed the text up so it's readable again
- Investigate the path-finding freeze (somewhere after the A* is done, it looks simple, reproducing is kind of tricky)
- Units need to be able to find a clear node and move out of the way of blocked nodes
- Add the ability to lookup the count of Units on a GridEntity
- Add the ability to lookup the current gridEntity of a unit
I gave a presentation yesterday in front of about 100 people at the vancouver fullindie meetup group.
I talked about how to avoid the plague of vapourware. I reminded the good people to plan your projects, build towards your goal and abandon your project if there is no value in it anymore.
It was a great experience and there was lots of interesting people working on lots of games, it was great to see.
It went down last week with my router. I bought a new router but the site was slow as hell. I prefer to work on my game then on my server so I kinda looked at it on the side.
I updated ubuntu, which somehow uninstall mysql. I reinstalled mysql, fought with my router quite a bit and eventually got everything back up.
But anyways, it's good to be online again. I'm going to try and post and crap more regularly.
It's been a while. I released a utility a while back and it kind of told me that the utility market is saturated and to be honest, I don't have that much fun doing it.
However, I still think there is room for good games, and I've put so much time and effort into game making in the past that I really want to make a B grade game at least.
Before I talk about my new game, I'd like to talk about my last one. I had desired to make a breakout clone backed by a physics engine.
While most of this game did get implemented, and my plans were seen through, it never had a end goal. In fact as time went on I changed the game at a whim and it got seemingly less fun and uglier.
To top it off, I had help working on the music, but it was shitty help. The person I had signed up had been slow, and had done incredibly lazy work. I payed a little for the effort, but I decided ultimately that the game was not going where I had dreamed it would. In fact I wasn't even sure where I dreamed it would go.
It went on for months longer than it should, it wasn't even a big game, it just wasn't working the way I had hoped.
In fact, I feel that letting my side-projects slip may have been depressing to me, this seemingly little game has gone into a limbo, and really it's kind of destroyed my inside as a person. I feel I need to be productive to be happy.
So what to do? I started a new game. It's not exactly new, it's been in a design phase for about 3 weeks now. I knew I wanted to do it, but I just couldn't motivate. Personal issues and drama was keeping me slow. Some of this really escalated lately and it made me realize that I had fucked my priorities.
I should say that I prioritized other people above myself, and even though I deeply care for the people in question, the bad mindset was leading me into a dark place, and I can't be good for the people in my life if I'm not good to myself.
So for the past 2 days I finished the design documents, I set forward to create the framework of my next game, and started to code.
And code I did, the last two days I probably put 15 hours in on the game and I cleared out my entire first-round backlog plus some.
The game is a grid-based turn/realtime based strategy game, working title for now Firewall of Hostility.
In my coding binge I established a framework to create the entire game. I've literally laid 90% of the scaffolding required to make a deep and entertaining title.
- Scripted story elements. The game has a script and it helps tutor the user via the beginning and hopefully will be good enough to compete some what with half-baked game scripts out there. My past games were missing tutorial sections, and when I added them they were "tacked on". Accessibility is important and I've made sure that this game ramps-up slowly, while giving the user lots of hand-holding in the form of scripted segments and tutorial marker/helpers.
- Entity system. This is something I tacked onto my last game half way through and enjoyed it, but to be honest it was too big a change to tack on half way through. I have a entity class that I use for all sorts of things, it has a HashMap of Objects and can be used to store all sorts of things. There is a dictionary of items and it can be added to/extended easily. Currently I store all kinds of flags/parameters into this flat database and it works well.
It lets my active game elements speak a common language and really makes things extensible.
- Grid System - The game is played on a hex grid, in fact I implemented the menu, short game and long game all as being on the grid. While the graphics are similar now I'll be creating tile-sets for the different grids, so that there is variety and context given to the user.
The Grid System is also adapted to figure out touch input on the grid easily. As such most ui will occur by touching elements in the grid in certain ways.
- The Game States
There is a menu, short game and long game. The Long Game is meant as something that you might play for a week or two, you get bonuses the longer you play and the more short games you consume.
The Short game is the meat of the game, will be in the vein of RTS games and you should be able to play a round within 1-5 minutes.
So where I am now is I have a menu, when you click "start game" some dialog shows and helps guide the user, and the tutorial indicates to click on a grid element. Once you follow the tutorial and click on the world-map somewhere, it takes you to the quick game where it presently renders 3 units on the map. The graphics are just primitive 3d shapes, but I'll be doing something more advanced in a once gameplay allows.
What is to come:
- Actually redirecting units around
- More advanced maps on the short and long game
- Path finding algorithms to route characters around the map
- 2d button overlay, for accessing UI not related to things directly on the grid (Building/Unit Construction).
- Lots of assets, I'll probably need to create like 100 assets to complete the game. I'm not expecting artwork, but I should put some fair effort into my 3d modeling and requirements.
- Cool transitions between the game states
Really, I need to plan some more for the upcoming work, but I'm glad to say that the progress really has helped restore a lot of my confidence which might have been lacking lately, personal problems had made me forget how to make myself truly happy. I was really acting like a little bitch in my personal life, doing things that a happy and sane human should not be doing. Hopefully this newfound commitment to myself will also help the people I care around me, I can't make others happy if I'm not truly happy myself, and that's my lesson for the week. Do what you love, love what you do, take care of yourself and then worry about taking care of others.