What's going on?
[Game Dev] Another Ludum Dare ahead!
Tuesday, August 19, 20:45
This weekend it's Ludum Dare again. I'm considering giving it another try!
Just like the last time I have some real life obstacles. My wife is visiting friends over the weekend so it's just me and the two boys.
This could be "easy going" if I decide to ignore my role as a caretaking dad providing healthy, regular meals, play with them or do some real life event. And you know what? Ignoring all this responsibility, declaring a fast food, TV, PC and console weekend and get coding a game is soooo tempting ;-)
In the end I'll guess we'll end up with a good mix of good and bad and I'll try to create a simple but fun game in between.
Wish me luck!
[Game Dev] In the meantime...
Wednesday, August 13, 22:00
Are you still there? I am but infact I was gone for quite a while obviously. Nearly 3 months without any update - this hasn't happened for the last 5 years I think (I could look up the archives but meh!).
Stress load at work was hard, I didn't manage to work on They Come and update the website at the same time. So game work came first. Then it was about time for our much needed summer vacation. Enjoying the marvelous weather here in the northern part of Germany was great - the first "real" summer for years. Unfortunately it is already over and work has got me back.
What about game dev, you ask? Okay, let's have some facts:
- Updated to uiWidgets lib 1.4 (as usual that worked like a charm!),
- fixed the achievement controller,
- added screenshakes for exploding planets and the ultimate weapon of the player's ship,
- added nebula backgrounds (using huge prerendered space backgrounds and a random offset position),
- added game won screen and game won conditions,
- added game lost screen and game lost conditions,
- added start screen with different settings (game difficulty, game type, game length),
- modified credits, achievements and highscore screens,
- started work on saving the gamestate,
- fixed game controller handling to match GM:S 1.3 changes.
That's quite a lot if you consider real life and vacation in between!
After finishing saving and loading gamestates I'll start to implement the tutorial. As this is a rather complex strategy game the tutorial is required to get you started.
That's pretty much it for now, so I hope to come back with another update in the next few weeks and not months ;-)
[Game Dev] YoYoGames' Marketplace
Wednesday, August 13, 22:00
Once in a while YoYo Games do release some early access version of GameMaker:Studio. The latest EA version contained the first implementation of a Marketplace!
That was one of my favorite additions I felt was mandatory for GameMaker:Studio to attract a bigger audience and to provide game developers with some (semi) professional resources (code, art and sfx/music).
Even in it's early alpha state a bunch of artists and coders released their first assets and most of them are of high quality! I am pretty happy with what I've found and already purchased quite some assets (mainly code for graphical effects, lighting engines, shaders and such, but also some PHP/SQL online highscore solution!).
Most of these assets come with very good samples and/or documentation and they should help me to improve my games a lot!
Today was the release of the 1.4 beta version of GameMaker:Studio which means the Marketplace is available for every GM:S owner! Great times ahead!
If I find the time I want to sell my own assets, I have at least one idea for a good asset that's not available on the Marketplace yet. We'll see!
[Game Dev] Ludum Dare results are in!
Ludum Dare result are in - so what were my results for Holy Moly?
- Coolness 59%
- #366 Theme 3.47
- #469 Humor 2.55
- #487 Fun 3.09
- #753 Overall 2.97
- #843 Audio 2.16
- #858 Innovation 2.65
- #942 Mood 2.55
- #981 Graphics 2.50
This is not too bad for a first timer. A good middle place in the compo entries.
I'm a bit proud of my rankings for theme, humor and fun. And I'm aware that my graphics were not really good. So the bad ranking is okay there.
This is a good motivation to give it another go (maybe in August) and try to achieve a better result ;-)
My biggest result was finishing a playable game anyway. So even before the rating was over (or started) I had already won the competition from a personal point of view!
[Game Dev] What's up now?
Sunday, May 18, 21:30
There are different things I started or continued in the days after Ludum Dare 29.
First I needed a little break - I realized that such a coding weekend consumes a lot of energy and my game dev mojo was pretty exhausted.
An update of Holy Moly is to be expected. Several ideas jumped through my mind and fought for the pole position...
Finally I came up with the following decisions:
- change overall resolution to at least 640x480 or 960x640 and drop the low resolution approach (currently 320x240)
- switch from pixel art to vector graphics to get a more cartoony graphics style
- learn Inkscape by following the tutorials from 2D game art for programmers
- make it an Android game with virtual keys (a touch area to guide the mole)
- maybe make it a two player version for the Ouya
- add some more gizmos and make the rats smart ;-)
- add the music loops I bought last week
And that's where I am right now. And of course I might jump back and forth between Holy Moly and They Come...
[Game Dev] Ludum Dare 29 post mortem
Sunday, May 18, 21:30
I posted a short post mortem on the Ludum Dare website and I thought I should also place it here.
So this was my first Ludum Dare and here’s a short review of it:
What went right?
- First I managed to finish LD with a working, playable game! That’s already my first success. I wasn’t sure if I was able to create something worth uploading. I knew I had some family appointments and being a dad and a husband is always a guarantee for unexpected daily issues :-)
- Choosing GameMaker:Studio as my weapon of choice. I’m learning and using it for some months now so I was pretty confident what I could do with it and what not. For “Holy Moly” it was a very good choice.
- Trying out a 320×240 resolution in a 640×480 window. I always wanted to give that a try – learning the basics to create a low res game on a bigger resolution window and get it scaling. Again GM:S did the job perfectly fine here.
- Try to avoid feature creep. I was constantly tempted to add more game play elements but I resisted knowing that it wouldn’t help me to deliver something playable. I will work on my game in the future and add some ideas that popped up during the development time (fine tuning of the timers for rats and water, smarter rats, drills that can kill the mole, dynamite, rocks as obstacles that can smash you if you dig below them, more different food items).
- Choosing HTML5 for deployment. I think it’s very important for play testers to ease the access to the game. And a game playable in a browser without plugins to install or even a downloadable zip is the best way. Uploading to my webspace and integrating into my website was easy.
What went wrong?
- Graphics. I do suck at graphics or I simply don’t have enough experience in creating them. I want to improve my knowledge here. So I will try to do some exercises / tutorials for pixel art and vector art. I used the builtin graphics editor of GameMaker and TileStudio for the ground tiles. I didn’t have enough time to give PyxelEdit and AutoTileGen a try.
- One more graphics related issue: graphics style. I couldn’t decide what to use: pixel style or vector graphics. Because I wanted to experiment with the low resolution approach I went for the pixel style but as you can see in the game I’m not very good at it. Neither are my vector skills but anyway ;-)
- Music: it’s missing. I still haven’t found a good tool for me to create simple loops that sound “okay”. I considered Magix Music Maker Jam on my tablet but that isn’t able to create chip tune music which would have fit the game style. And for trackers I do have zero experience using them. And there are so many trackers where I don’t get the user interface…any recommendations are highly appreciated here!
- Sound effects: I used bfxr and Audacity but I’m not totally happy with the sound. Again I miss some theory here to know how to modify the generated sounds to my liking. For example I had a perfect sound that I wanted to last longer or to sound a bit darker and so on.
It was tiring, exhausting, disappointing at some moments but overall it was fun, energizing, highly motivating and a personal big success for me. I will join other Ludum Dares because I did get so much positive experience from it in such a short time span – and it didn’t cost me a single dime ;-)
I am aware now that I need to have a good knowledge of all tools that I plan to use during a 48h compo – it is simply a complete waste of time trying to learn a new tool in those 48 hours and expecting satisfying results on a first go…
And finally I’m totally impressed by some other entries: unbelievable what some of you guys and girls can achieve in 2 days! You are marvelous!
[Game Dev] I'm finished with Ludum Dare!
Sunday, April 27, 20:00
Whoa, what a weekend. Haven't coded that much in one go for a long time...and now I'm exhausted, tired and nearly brain dead ;-)
But I finished my entry and have just uploaded the final version and the source code and call it done.
There's no game music (sorry, Chris, I'm not that good yet) but the rest is pretty okay.
It's some 8 bit style retro game where you guide a little mole in search for worms. If you have found and eaten all worms you'll get to the next level / garden.
Every now and then you'll need fresh air and thus have to dig upwards. But be careful - the gardener has powerful boots! And a garden hose! And did I hear the sound of rats?
You can play the game in any HTML5 browser just over here: Holy Moly
Have fun, I surely did while creating it! And don't forget: this game was created just by me (all coding, all graphics, all sounds) in around 30 hours, including sleeping, eating, cooking and so on!
[Game Dev] Ludum Dare 29 is go and I am in!
Saturday, April 26, 19:30
So finally I managed to join a Ludum Dare event. Although it's happening three times a year all those last years it was either too close to Christmas, on the Easter weekend or during our summer vacation...bah!
But this time it all fit! This is the last weekend of my Easter vacation, my wife is supporting me (thanks Mäuschen, I love you!) and the theme was one of my favorite themes ("Beneath the surface").
The playable game is available here: My Ludum Dare 29 entry
At the end of the competition you will also find the complete source code of the game. It will be a GameMaker:Studio project file in a zip. Feel free to learn from the code, just don't simply copy/paste most of it and name it yours, okay? Be fair.
[Game Dev] March already gone?
Sunday, March 30, 19:15
And here is another update way too late but what to do?
Real life can be such a time killer...
...on the other hand: I do have a real life which is great. So I'll stop moaning and complaining and simply tell you what I've done game development wise over the last 7 weeks or so.
- Gamepads on Ouya (and Windows) are working perfectly now - what else to expect, hm? After some fiddling and tweaking everything fell into place and the game reacts on gamepad button clicks and you can control the cursor with the d-pad or the analog stick of your input device.
- Changed the UI font. This one was an easy change with huge effect. All buttons look much better now and the ingame HUD offers enough space now to also display the discovered alien device parts during your game play. Way better than before. Also the info screen is much more readable now and doesn't look so overwhelming.
- As already mentioned I revamped the HUD on the main game screen.
- Achievements are getting somewhere. I am currently coding the info boxes that will appear on screen when you achieved another goal - nice.
- The battle code changed a bit too. Fleets no longer move and merge to support other fleets after the first alien fleet has been destroyed. This behavior made the game too easy. Now you have to split up your fleets wisely before the aliens attack because they will stay at the planet you assigned to them!
- As usual bug fixes. Yep, it's true, even my code is not error free. But of course I'll fix a bug whenever it pops up and the final game will hopefully be nearly error free ;-)
[Game Dev] Slow progress - again...
Sunday, February 9, 17:00
Sigh, another four weeks without any progress update - that's not good...
Real life in January kept me pretty busy and I only made tiny improvements on They Come.
Here comes the list of things I've worked on:
- Fixed depth of attack path markers, now they are drawn above planets.
- Improved the position of the fleet size number, also the way destroyed ships are decreased from the fleet size number.
- Worked on gamepad controller. It's working perfectly now on Windows but unfortunately not yet on the Ouya. Using gamepad buttons to simulate mouse clicks is working correctly but the GameMaker function to position the mouse at a specified place on screen does not seem to work. I will file a bug if the developers confirm that it should work on the Ouya.
- Added particle smoke to destroyed planets. Just some eye candy ;-)
- Modified behavior of popup text. The text keeps its position for a second after creation and then starts to float upwards and become invisible.
- Added sound to lasers and ship explosions and planet explosions. The tricky part was to limit the amount of sounds playing simultaneously to avoid noise crescendo.
- Increased the delay after the battle is finished and before the game moves to the scenario overview screen.
Some new screenshots for your pleasure below.
[Game Dev] What did you achieve?
Saturday, January 4, 21:30
Indeed, I achieved achievements for They Come and much more!
Some hours of my christmas vacation were spent for the following tasks:
- Achievements added with bronze, silver, gold values, descriptions, icons, etc.
- Loading from file, saving to file and automatically adding new achievements is in.
- Also added a room for the list of achievements with a first prototype of the advanced ui list.
- Game options loading and saving is in (like volume, fullscreen, etc).
- Implementation of GamepadController started. Resolution independent, supporting Joysticks and Gamepads. This is required for an Ouya release. Currently guiding the Mouse using the gamepad is in, triggering Mouse buttons via gamepad buttons is missing yet. So the GamepadController simply uses gamepad input to control the mouse. This is sufficient to make the game playable on the Ouya.
I hope I can create and upload some video in the next days to show the improvements.
[Real life] Belated merry christmas, happy new year and so on...
Saturday, January 4, 21:00
I'm sorry for being too late but as usual Christmas time was pretty busy with family stuff (what else?) and so I didn't update my website.
This christmas was pretty cool cause me and my son bought us a new TV set and an OUYA console. A perfect present for a Dad and his son!
There are many cool games available and we even got a 10 Euro voucher to spend for our first games from Amazon! On new year's eve the second controller arrived which I ordered from Amazon UK because Amazon Germany doesn't offer single Ouya controllers yet.
I still need to test my controller with my Laptop - it should work via Bluetooth.
New year's eve went pretty smooth, nice fireworks in our street and I was in bed at 3:00 AM.
So to all of you a happy new year, lots of health, fun and adventures!
Before I forget: one new year's resolution was to finish They Come this year and earn a few bucks with it! Stay tuned and of course buy it when it's available!
[GameDev] Progress, progress, one by one
Sunday, December 15, 18:30
Another week, another progress report.
This week I concentrated on some smaller issues I wanted to get fixed in the game.
So what did I work on?
- I fixed the route object to properly display the bouys.
- The script scrInitDevices() was changed back to its start version. All the test devices are removed and you start the game with no devices installed.
- To enhance the amount of graphical eye catchers I added some animated vortex and alien ships to the title screen.
- The price of the short range scanner was fixed - 100 Credits is way too cheap for this helpful device.
- I also improved the visual representation of the attacker paths during phase 2. Now you'll see moving arrows that show the path the alien fleet will follow during their attack (see the attached image).
- The "Exit Game" buttons were removed from all rooms except the title screen. I want to avoid that the player accidentally leaves the game.
- Finally I updated my UI to version 1.2 of the GUI Widget library from nailbuster.com. That worked like a charm and didn't require any code change. I can only recommend this extension if you want to create nice user interfaces for GameMaker:Studio without trouble!
To the handful of people that received the link to the Android alpha test build - the current version is available under the same URL.
To all the other people that would love to give the alpha a try: feel free to contact me.
At the moment I would say a release in 2014 is to be expected. I will definitely try a commercial route. My current idea is to sell the game at least for Windows and Ouya. An Android version will contain some IAP solution. You will need to pay a small fee to get access to the full version.
Other platforms (Mac, Linux, IPhone/IPad) might follow if I can afford to buy the required devices and developer licenses.
Talk to you later,
[GameDev] Nebulae are complicated...
Sunday, December 8, 18:30
The last few weeks I tried hard to add procedurally generated nebulae to the game. First I tried my existing midpoint displacement algorithm. I was not satisfied with the speed (3 seconds on my laptop for a 512x512 pixel image) and the color distribution was also way too simple.
Next thing I tried was Perlin noise. That was even slower (30 to 60 seconds for 512x512 pixels).
Some smart person (Revel) on the GMC (Game Maker Community) started a new topic just in time - covering simplex noise, similar to Perlin noise but much faster.
But even simplex noise was too slow and the script had some clamping issues...
So after several weeks of coding, trying, recoding, retrying I've decided to pause a bit regarding space nebulae.
An interesting idea I will follow over the coming weeks will be to use my own midpoint displacement stuff which is still the fastest approach and generate a bunch of smaller images (256x256 pixel). Those will then be stretched, rotated and colored and randomly placed with some additive blend mode to create nice backgrounds.
I'll show you how that'll look when it's done.
To progress with the game I coded modal dialogs which will be used to tell the campaign story and to guide new players through the (optional) tutorial.
Finally I replaced the boring route lines with nice blinking pylons/buoys.
Screenshots of the dialog and buoys are below.
[GameDev] Devices are done, nebulae are to come!
Sunday, November 10, 15:00
Even the last 2 and most complicated devices are implemented now. It was in fact pretty easy to get them built into the game code although their functionality is "spread" across the game.
For example the vortex mines:
- You buy the device in the shop as usual. So I need a method/script to ask: does the player have this device installed?
- During the procedural level generation I call this script to prepare the generated vortexes to be able to be covered with a number of mines.
- When the player later on discovers the vortex by clicking on it I need to place the vortex mines and get them drawn. Of course their position is random on the vortex tile. And they do rotate of course. At different speeds and different directions. Because I can.
- Much later, in phase 3 of the scenario, when the aliens enter your world by flying through the vortex some of those aliens will be destroyed. Which means I need to check if the vortex has been found by the player, iterate over the mines and calculate their damage on the fleet and so on.
- So I need to place explosions where the mines have been, remove some alien ships from the alien fleet and proceed with the game.
- All of that for just one ingame device - phew!
I added colored popup texts to specify upgrades with colors:
- red is attack,
- blue is defense,
- green is population.
I calculate the length of the laser beam but because there are two similar functions I used the wrong one (Murphy's law). One function calculates the distance between two x, y coordinates (which I should have used but didn't) and one calculates the distance between an object and a x, y coordinate. Unfortunately the second function calculates the distance from the edge of the bounding box of the object (space ship) to the given coordinate. Which resulted in the laser beams always being too short...sigh.
Finally I replaced some graphics (the satellites) with better ones.
Next task will be the generation of the space nebulae for the background of the playing area. My biggest concern is the performance impact on mobile devices. So I will code it and if it is too slow to be executed on startup time of the scenario I might precalculate some backgrounds under Windows and add them as images to the mobile version of the game. We'll see.
That's it for today, I think. Just a final note: game development is such a great and fun hobby :-)
[GameDev] Devices are go!
Sunday, November 3, 19:15
9 of the 11 initial devices are fully implemented and working fine!
Only two are left, the asteroid destroyer and the vortex mines. Both devices require some more complicated implementation. For the asteroid destroyer I need to create a laser beam from the player's ship, an explosion and I have to transform the asteroid into some empty tile.
For the vortex mines I need to add some mines on top of a discovered vortex and later on, when phase 3 starts and the aliens pass through the vortex into our game world, some of them need to explode because they are destroyed by the mines that are lurking for them.
The bug with disabling widgets was fixed very fast by David and I got a quick update of the uiWidgets code - thanks a ton, David! So the shop is also working properly now.
Finally I fixed a nasty bug in the battle code - some global variables to old vortexes were not correctly re-initialized...
The todo list is still pretty long and I expect I'll have enough remaining work for the rest of the year.
As usual when Ludum Dare announces the next competition date I start thinking about joining at least once in my life. We'll see if it happens December 13th to 16th this year...
Talk to you later,
[GameDev] Shop and devices continued
Sunday, October 27, 16:00
I could start complaining about being busy in real life and all that but as it seems to become a standard obstacle for my game development time I just stop here.
So I'd better tell you what I did achieve in the last 4 weeks.
I bought the music from Imphenzia and replaced the watermarked tracks with the proper ones.
The shop is pretty much finished regarding implementation. There is one bug left but that's mainly an unexpected behavior in the uiWidgets stuff which prohibits widgets to be disabled under certain conditions.
What else? I started to draw the devices (or better assemble them from parts of the ShipMaker pack). See the image on the right.
Some devices already have a working implementation so they start to become useful. I'm afraid their pricing will be one of the most important factors when tweaking the game balance.
Adding the functionality of the first devices shows how easy it is to add features to a game using Game Maker:Studio.
Another huge addition was the exCamera extension of @alexandervrs. It allows to add camera effects like scrolling, fading, tilting, flashing, shaking and zooming for a Game Maker view (a specific area on the screen). Using this extension I can zoom the camera into the battles and I will use it for more effects later on. You can make the camera follow a given object so I used my tweening code to smoothen the camera movement while following the battles from planet to planet. Looks pretty cool!
I am still thinking about how to monetize the game later on. Should I do a HTML5 version or not? Distribution via clay.io and using their social and monetization features? Should I release two Android versions - a free one without the shop features and two player mode and some in app purchase to buy the missing features? Or just a paid version? What about Windows? Distribution via Desura? Is it worth creating a Linux version?
Mac and IPhone will have to wait - I don't own a Mac, I have no IDevice and no developer license. So those could only follow if I make any money with the game...
Lots of things to rotate in my head. But that's no problem because the game is not finished yet...
Back to coding now, later,
[GameDev] UI and devices and shop and bug fixes and on and on
Sunday, September 29, 16:00
And again a long period without any update. I was pretty sick for nearly two weeks and am just back at work which requires much energy to get up to speed again.
Additionally my "coding room" is occupied by a wonderful visitor - my daughter ;-) But that means no late night game development at all...
But of course I wasn't resting the last 4 weeks without website update.
Recapitulating my SVN logs I achieved the following stuff:
- I replaced nearly all of my UI code with David's GUI components for GameMaker and removed my own approach,
- Sound and music from Imphenzia was added to the game (I will buy the music shortly because it seems to fit the game really well, right now it's the demo loops with some watermark sounds in it),
- Fixed some memory leaks with ds_lists and ds_maps that weren't released but allocated on every new scenario start,
- Disabled the DEBUG_MODE so that you now play the game the way it's meant to be,
- Replaced the static asteroids with rotating ones and replaced the menu buttons with animated versions,
- Began implementation of devices that you can buy and use for your player's ship which will give you additional helpful features in the game,
- Already came up with a useful list of 11 devices,
- Made Player and Devices persistent objects inside GameMaker. This helps me to track player and game related properties between GameMaker rooms. Otherwise I would have to store those values in lists or maps that are persistent by design,
- Rearranged the summary screen that appears after each scenario and started a shop screen where you can sell and buy devices for your player ship.
Below you can find some updated screen shots.
[GameDev] New music toy to play around with...
Sunday, September 29, 15:45
It seems I'm somewhat obsessed by music tools although I suck at composing/creating music :-)
My latest toy is Magix Music Maker Jam, which is available for Android and IThings. The app itself is free and so are a few music styles. If you want more different music styles you'll have to buy them for 3 Euro each.
Additionally you can "upgrade" your music styles to a commercial license (which will cost around 7 Euro) to use the created music tracks in your commercial games for example.
Just like every other Magix Music Maker software it works by arranging prerecorded loops. You can have 8 parallel tracks/instruments/samples and create many song parts each made up of up to those 8 samples.
But the feature I liked the most is that you can in fact "jam" around. Just preset one song part with 8 instruments, activate the ones you want to start with and set the current song part to endless loop.
This way you can play around with your 8 tracks, replace the samples on the fly using some up/down buttons, add some funny sound effects and so on. You can even record your "live jam" and if you disable the looping at the right time with your starting samples active you get perfectly looping music tracks for free without any problem.
As the software is free to play around with, I can only recommend it and urge you to give it a try ;-)
Some quick demo below.
[GameDev] UI work
The last days I merged David's GUI components for GameMaker into my game (They Come). It worked pretty smoothly and I decided to start with a title screen to test creation, animation and behavior of the buttons. Additionally I wanted my own sprites for the buttons. See the result below. And trust me when I tell you that using these GUI components is so easy - simply amazing! The title itself is ugly as hell and just a placeholder so please have patience, it will be replaced! The animation of the appearing buttons is nice but of course you can't see it on the screen shots - you'll have to wait until I post another video!
Next thing I tried to draw was the hud - again have a look at the left of the second image (the ingame screen) where you can see the hud.
I think the title screen buttons and the hud are simple but look okay. What's your opinion?
By the way: button and hud were created with Real-DRAW Pro, a very powerful graphics program!
[GameDev] When do They Come?
It's been quiet regarding game development here, I have to admit.
But I wasn't lazy. I finished phase 3! And while I was coding and playtesting the game I also fixed a lot of bugs that occurred during testing.
I have now reached the point where a randomly generated scenario is fully playable!
Next logical step is the "end of scenario" screen where
- you are rated (discovered and surviving planets, population growth, fleet size at the end of the scenario and so on),
- you'll receive a reward based on your rating
- and you can spend your reward on ship upgrades (devices) that help you in the next scenarios.
This UI library is simple to use, offers lots of functionality and is highly recommended by me ;-)
Now please excuse me, I have some integration work to do!
[Website] Huh? Everything looks strange?
Wednesday, July 31, 21:46
Yes, I did it! A new website design for me and all of you is alive. But I did not switch the Creation tool - I'm still using TOWeb - but I switched to the newest version 5!
To avoid keeping my site without any update for a too long period I decided to release the migrated website with first changes as is. This will mean that some things are ugly, broken or both. If you are in urgent need to get some stuff fixed as soon as possible feel free to contact me.
For those who mainly read my blog posts feel welcome on my pages in their new look.
I do hope the publishing goes well! But if you're reading this it might have worked ;-)
The big advantage of version 5 of TOWeb is that it's based on CSS3 and HTML5 and "natively" supports all resolutions and devices. So you can now enjoy this site with your desktop browser, your tablet or even your smartphone!
[Game Dev] Refactoring, UI, phase 3 and more
Saturday, May 11, 2013, 6:46 PM
Wow, one month gone and a total lack of updates. Sorry for that :-/
Real life kept me busy and many evenings I was just too tired to work on They Come. But just like the Martians "slowly and surely I drew my plans" ;-)
Phase 3 is nearly finished.
- aliens move from planet to planet when they conquer them (and also gain an attack bonus!),
- aliens spawn from the second vortex if the first alien fleet is successfully destroyed by the human fleet,
- winning conditions for aliens are detected,
- winning conditions for humans are detected.
Additionally a lot of code refactorings happened:
- support for more upgrade devices for the player ship,
- improvements of dealing with global variables, which brought me back to the good old Smalltalk naming conventions I loved to use for many years: member variables and local variables start with a small letter, globals and classes start with a capital letter and constants are all uppercase,
- improved the popup messages,
- prepared the code for swapping players during hot seat and fixed the code where the player instance was somewhat "hard coded"...
- general code cleanup and simplification.
The only thing missing to complete phase 3 is the super weapon of the player's ship that can destroy remaining aliens after they conquered all human planets. This will only work of course if the player has enough credits to use the super weapon! Otherwise the game is lost.
The UI is also on my current todo list - having menus, buttons, texts and so on gets more important now that phase 3 nears completion. Because at the end of each level you will come to a score screen where you will receive your reward in credits and be able to upgrade your ship to prepare for the next harder level.
Enough update infos for today I guess - I even dare to drop the promised video 8-0
This will be uploaded when phase 3 is done and I can demo a complete level play through.
[Game Dev] In the middle of phase 3
Sunday, April 14, 2013, 6:03 PM
What did I achieve during the last two weeks?
- Fleet control and movement refactored,
- the battle controller can now create required fleets and move them to the planets under attack,
- fleet arrangement during the battle phase is different from the exploration phase,
- the first approach of the combat system is in and working,
- laser beams and explosions are in (also first version, need some tweaking and small fixes),
- the battle controller already recognizes if the attacker or defender fleet has won the battle,
- the battle happens in turns of 2 seconds with visual updates in between.
Now it's finishing the rest of the battle phase (moving from planet to planet, let aliens spawn from second vortex if it exists after first alien fleet is destroyed and so on).
This will take another few evenings.
And then I think I'll start with some UI stuff, add some more functionality and the rest of the list from my previous post.
But I'm pretty happy so far! The most complicated stuff is indeed done now! My confidence grows that I will finally manage to finish this game!
For the next post I'll guess it will be video show time again ;-)
And just for the record: GameMaker:Studio is awesome to work with!
Even if I miss some stuff from Java, Object Orientation and my favorite Java IDE Eclipse: the development speed of GM:S is impressive! I can fully concentrate on game logic and functionality. Everything else I might require from a framework or library is already there! Thanks to you guys at YoYo Games!
[Game Dev] Proceed to phase 3!
Friday, March 29, 2013, 6:44 PM
I've finished implementation of the second phase in my game They Come. You can now use a given amount of time (currently 10 seconds) to arrange your ships across your connected planets and prepare for the alien onslaught. Some minor tweaks need to be done (like adding your follower fleet to the first planet) but those should be simple to do.
So the third phase is about to being coded. Issues on my list are:
- refactoring fleet control and movement. This is necessary because the controller class must be able to navigate and arrange the fleets independently from any player data or user interaction,
- the battle itself,
- properly displaying the progress of the battle (numbers of units alive, statistics values and so on). I still need to think about this,
- fleets following the calculated paths between vortex and planets.
The combat system will be pretty straight forward:
- every ship has an attack value of 1 and a defense value of 1,
- the player can improve these values by investing in research in phase 1,
- the combat happens turn based,
- in every turn each ship gets a chance to attack,
- at the end of each turn destroyed ships are removed,
- attack value of attacker and defense value of defender are added, a random number between one and the sum of attack/defense value is calculated,
- if the random number is less or equal the attack value the attacker wins the fight and the defender is marked as "to be destroyed", if the random number is bigger than the attack value the defender wins and the attacker is marked as "to be destroyed".
Seems like a good first approach.
After implementing all those features for phase 3 it's tuning time. The game still misses a bunch of animations, graphic effects, a nice GUI, title and menu screen, high scores, achievements and so on. But hey, it's all for the fun, right? ;-)
[Game Dev] I'm the master!
Friday, March 29, 2013, 6:20 PM
Wait, wait - I meant I'm a proud owner of the GameMaker:Studio Master Collection 8-)
So I've got all available cross platform modules (right now supported platforms are Windows, Windows 8, Windows Phone, Mac, IPhone/IPad/IPod, Android, HTML5, Ubuntu Linux). Additionally I will get all future modules for free!
And I expect some new modules to come in the foreseeable future:
- Ouya: although the Ouya console is running Android there are some differences (joypad support for example, inapp purchases) to standard Android. The community already got a working patch and the Ouya guys sent a developer device to YoYoGames ;-)
- PS Vita or PS4: during this year's GDC Sony announced a partnership with Unity and opened themselves for indie games and therefore indie developers. YoYoGames already had a Sony PSP runner developed two years ago so I guess it would be easy for them to revitalize that one and adopt it at least for the PS Vita. They should also be in a good position to establish some deal with Sony...
- Raspberry Pi: Mike Dailly, one of the YoYoGames developers, is already porting the runner to the Raspberry Pi. And although it's just a fun project and I haven't found proper usage of a Raspberry Pi, it's still an option. You never know who sits down in his maker shed and develops some handheld console based on the Raspberry Pi...
Other things that the YoYoGames guys have on their todo list:
- LLVM compiler: moving their interpreted code to native code using LLVM's cross compiler features removes the decompiler issues older versions of GM had and of course will bring a huge speed improvement (up to factor 10!)
- shader support: Yup, cross platform shaders for the platforms that do support FvF shaders (Flexible Vertex Formats)
- multiplayer support: a first implementation is already available, higher level functions are to come
- debugger improvements: finally a full featured source code debugger with breakpoints, watch windows and remote debugging to devices
- improved audio support
More info on the roadmap.
So you're getting interested? Why not spend 300$ and get all of that for yourself right now?
Right, even if you don't own any GameMaker stuff, you can currently buy the entry professional edition of GameMaker:Studio for 99$ and use the current upgrade offer to the master collection for 199$. So for 298$ (you might have to add some VAT) you're in the game!
But hurry, the upgrade offer is only valid until March, 31st!
[Game Dev] Planets, vortexes, routes and more!
Saturday, March 23, 2013, 7:16 PM
Oops, seems I missed a post last week. Real life kept me busy so I didn't find the time and I had not very much to report.
It's better this week - my mojo was pretty high and I tried to work on They Come as much as I could in the few spare evenings.
So I fixed the floating popup texts which appear now centered at their position and start to float up slowly and get more and more transparent until they disappear - just like I wanted it.
The first phase (exploration) of a scenario is mostly complete now (except all this fine tuning of course) and working as expected. After your 80 moves/turns of uncovering the map the second phase starts - the arrangement. Here all remaining tiles will be uncovered and you have ten seconds left to arrange your space fleet and split them between all connected planets to defend them against the arriving aliens. Right now uncovering the tiles is implemented and the countdown from 10 to 0 is also functional. Moving ships between planets is not yet done. But that shouldn't be too complicated.
At the beginning of the third phase the aliens will appear through one or two worm holes or vortexes and head to the nearest planet and attack it. If the aliens overrun your defense fleet they occupy the planet and head for the next nearest planet.
The path calculation (from vortex to nearest planet to nearest planet to nearest planet...) is done and working. Now I just need to nicely visualize them and implement the third phase - the space battle!
That's where all those graphical effects like laser beams, glowing torpedoes, flashing shields and impressive explosions should come in...I wonder how I will manage to implement that :LOL:
But for now I declare this day finished - time for a glass of wine or a little dram of whisky.
[Game Dev] Planets, credits and text snippets
Sunday, March 10, 2013, 4:05 PM
Nearly no time found to work on They Come. But I managed tiny bits. I added credits (money) to the game which you'll need later on in the game to buy upgrades for your mother ship. I also finished planet behavior: you can search planets up to two times to find credits and some bonuses for population increase, attack or defense values.
And finally I started to implement some text popups which will appear during the game when you find something for example or the game wants to tell you anything important ;-)
I also bought a Midi controller keyboard to start dabbling with some music (I own Magix Music Maker for several years now, upgraded once in a while but never really used it). Now playing with Magix Music Maker is a completely different story. All those plugins and synthesizers are fun to use because you can record live!
I might upload stuff if I consider it good enough...
Have a nice week,
[Game Dev] The fleet is moving again!
Saturday, March 02, 2013, 7:38 PM
That was a tough one! It took me the whole afternoon (round about 4 hours) to get the fleet code working properly (at least for the first working version).
But it's in now with correctly rotating fleet ships staying in their formation.
To celebrate I uploaded a YouTube video which you can also find in this blog entry.
[Game Dev] Routes are mine!
Wednesday, February 27, 2013, 8:32 PM
It worked exactly as I described it in the previous post - I create space route objects on those tiles where a route is allowed. The space route objects know how to draw themselves (based on their neighbors) - right now they draw simple yellow lines.
Later on I will create some buoys or waypoint lights which blink every once in a while instead of those boring yellow lines.
You cannot build routes on all possible tiles - there will be no routes across asteroids for example. And you can only establish routes if you have enough followers. The amount of required followers for each route segment is based on available devices that you can buy to enhance your ship.
I'll give you a screenshot with working routes to your and my entertainment :LOL:
If you compare the last two screenshots you can see that the random level generator is indeed working fine too!
Next thing on my list is fleet formation code. I could (again) port that from the existing Java code base or search the GMC forums for some examples. If I remember correctly there were some GameMaker examples available...
[Game Dev] Java code porting is done, but..
Sunday, February 24, 2013, 12:25 PM
All the relevant Java code is now ported over to GameMaker's script language GML. Overall it was a smooth and simple process. Next task is to get everything into a working state again.
While I was porting the code I had a vague memory of some existing functionality to draw space routes which can exist between planets and increase population growth of those connected planets.
But I couldn't find the methods - only empty methods throwing NotYetSupportedExceptions...
You know a game in progress takes too long when you even forget complete WIPs you've created over the years in different languages/engines :-/
I guess I'll port one or two methods of the BlitzMax code over to GML ;-)
But this time I will solve it different, not just drawing lines but having SpaceRoute objects on top of the tiles where the SpaceRoute objects know how to draw themselves.
Screenshot of current WIP state to the right.
[Game Dev] Porting continues...
Sunday, February 17, 2013, 4:38 PM
So I'm still porting Java code over to GML. It's not complicated at all, just tedious.
Some issues I have found so far with GML:
- You cannot use return values of scripts in expressions.
a = (scrCalculateSomething() + 4);
a has value of 4 afterwards, no matter what scrCalculateSomething() returns...
- You cannot create arrays in scripts and return them - they are lost because they are in the local scope of the script and don't survive just because they are return values.
- The script editor / code editor does not check if you use undeclared variables in your code...
- The script editor gets totally confused if you paste code into it containing real TAB characters. Don't do that.
But in general it's very easy to modify the Java code base to GML. Just a few scripts are remaining and then I've got the old functionality of the Java prototype back.
On the other hand I already improved the scripts a bit while porting, added new graphics and due to GameMaker's nature dealing with events, drawing, attaching sprites and all that is way easier than before.
One important thing to mention: GameMaker:Studio got a new update. This happens pretty regularly (every two or three weeks at the moment) but this time the guys from YoYo Games fixed a quirk that has been part of GameMaker for years now:
the code editor window was modal!!! This meant you could not open several code editors at once, you could not copy from one code editor window into another without closing and opening them one after the other! That has been a real PITA for years now and I'm so happy that they finally got it fixed!
Oh, a WIP screenshot of They Come to the right 8-)
You cannot see very much because of the fog of war but there are a lot of new game elements added (and now placed randomly) to the map.
[Game Dev] Music musings and more
Sunday, February 10, 2013, 3:28 PM
While I'm still porting the random level generation stuff over (I'm just too tired at night on working days right now so I mainly try to get things done at the weekend) every once in a while I think about music.
Just recently I bought Caustic 2 for my Nexus 7 tablet. It's a wonderful pattern based music creation tool, based on synthesizers you can customize to your liking. There are additional presets you can buy if you don't want to detect synth settings on your own.
The best thing is it's also available for Windows machines. So you can share the stuff between PC and tablet. Cool!
Another website I've heard about on twitter is http://incompetech.com/ where you can get free music. A donation of 5$ per track is highly recommended and if you've listened to a few tracks you'll have to agree that they are all worth it! But officially all music tracks are under the Creative Commons: By Attribution 3.0 license. This means you have to credit the author in your game, video or whatever you want to produce with it but you are not forced to pay for the songs.
Still I can only urge you to donate the money - I've paid money for songs not even close to the quality of the ones from Incompetech.
[Game Dev] Pathfinding working
Sunday, February 03, 2013, 5:18 PM
Over the last week I migrated the functionality of planets and laboratories from the Java source code back to the GameMaker:Studio version of They Come. Worked like a charm. So the planets start to increase their population after they are found by the player and the laboratories start to explore technological features as soon as they get some population (scientists) from the player. Bazinga!
This afternoon I started learning the A* path finding implementation of GM:S. It didn't work immediately as expected because the documentation was a bit wrong regarding path calculation. But after I found out that you have to pass absolute screen coordinates for start end target position instead of grid coordinates all worked fine.
You can see some debug result in the screenshot to the right. I was very pleased when I found out that GM:S offers convenience methods to draw the grid with free cells in green and blocking cells in red and also the calculated path. Absolutely perfect for debugging issues and all you need to do is call a method/function!
Next on my porting list should be the functionality of the other game tiles I've already coded in Java and the random level generator. It took me quite a while to get the random level generation to work in Java and I'm very happy that I now just need to migrate the code 8-)
More progress information hopefully on the next blog post!
[Game Dev] Strange things happen...
Tuesday, January 29, 2013, 10:19 PM
Surprise, surprise! Somehow I managed over the last few days to work on my endless WIP They Come. The screenshot is just a proof 8-)
Of course it's full of placeholder graphics, the hud is less than rudimentary but still: I make progress!
The code is already laid out for multiplayer (hot seat for now), the resolution is resized to 960x640 which fits many mobile devices (adjustments using GameMaker views will come in later to support different resolutions by keeping aspect ratio).
The "core" engine is basically working and I continue to transform the existing Java code back to GML, GameMaker's scripting language, which is comparable with C plus some GameMaker specific enhancements.
At least right now I dare to say: I got my game coding mojo back 8-)
[Game Dev] Fiddling around
Monday, January 14, 2013, 8:58 PM
I made some tiny little baby steps in both directions - back and forth...
Some months ago I bought some graphics from http://www.graphicsforgames.com, different space ship fleets and planets and asteroids for They Come. Just yesterday I finally managed to convert them to a usable size for the game. Next thing would be recoding the game for GameMaker:Studio with stuff like multiple platforms in mind. This means multiple resolutions for example.
Also I learned quite some stuff about GM:S' features and functionalities and I think I can convert the existing Java code base to GM:S pretty well and on the way add many little gizmos to the game.
We'll see how it works out ;-)
[Real life] Belated happy new year and all this...
Monday, January 14, 2013, 8:51 PM
Sigh, three months without any update - what a pity! As some of you have heard I got a new day job which requires a lot of time and energy. So my spare time for the website and game development is reduced.
I'm pretty sure this will change over time but at the moment it's a situation I have to learn how to deal with.
But nevertheless, a happy new year to all of you, keep fingers crossed for game dev time and all the best to you!
- StarCleaner Java applet
Other game developers
If you want to discuss any topic or content you can contact me.
Just click on the icon above to send me an email!