What's going on?
[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!