Here is a video showing the first wave of Shapes TD
It features some of the sound effects I've sourced as well.
I've implemented two major functions into the game. It's now a functioning game.
There is a stage manager, which loads all the models before a given stage begins
And there is a wave manager which determines whether a new shape needs to spawn for a given wave, and if the shape has already spawned what actions it should take.
As well as a tower manager which handles tower targeting and tower animations.
So as you've noticed, I've switched to a bi-weekly update system. This is to lessen the load on me, which has grown tremendously over the past few months.
I have simply too many obligations to attend to to do this consistently and as such, this is the result. Good news though - we're in a slow period so there's not a significant amount of content to curate anyways.
So let's get on with it.
OFFICIAL GAME-GURU NEWS Not a lot I can find here. Seems like most of the news is done by the community as of current. Work continues towards refining PBR's output and the engine in general. NEW ITEMS IN THE STORE My least favorite section to review because there's simply too much. Here's some pictures:
So the rundown: There's some good stuff by M Stockton, Wolf, Campana Productions (love the butterflies and crystal cave stuff), and more. I think I'll be picking up the gun supplies soon enough from MStockton. Looks great and at 2.50 sale price - that's a steal. Pick it up here: https://www.tgcstore.net/pack/11032
THIRD PARTY TOOLS & TUTORIALS You'll notice the addition of '& tutorials'. I am adding this because I want to ensure that the really noteworthy tutorials get encapsulated along with interesting third party tools. And frankly, I already have too many subheadings.
An interesting visual scripting framework. My son, who uses MIT's scratch, will love this. https://forum.game-guru.com/thread/219760
A really great tutorial by DK (DuchenKuke) on how to do lightmapping. A must watch! https://www.youtube.com/watch?v=d6-7m6QLQMA Work has begun by BOTR (Bored Of The Rings) of making his heightmap import tool an integrated package in Game-Guru on the GitHub source. https://forum.game-guru.com/thread/218876?page=4#msg2601811
Graphix made a quixel (graphic tool) script for GG: https://forum.game-guru.com/thread/219569
ALERT-EMERGENCY-ALERT - AMENMOSES RELEASED A PHYSICS LIBRARY! GET IT HERE: https://forum.game-guru.com/thread/219758
Free Motorcycle Helmet by Bod: https://forum.game-guru.com/thread/215012?page=17#msg2601335
Free monitor tables by Wolf: https://forum.game-guru.com/thread/219741
Free rubber boat by GraphiX: https://forum.game-guru.com/thread/217932?page=11#msg2601597
RANDOM ACTS OF CREATIVITY
Currently there's a lot of really good work going on in the community by committed members. I recommend following: Acythian, by Wolf: https://forum.game-guru.com/thread/211124/newest
Direct Action 2, by Bugsy: https://forum.game-guru.com/thread/219234?page=1#msg2600578
Into the Ice, by Ertlov: https://forum.game-guru.com/thread/206985
Welcome to Manchester, by MooKai wins the honor of getting a screencap put in my blog this week. What fantastic work using very elementary components of GameGuru:
You can learn more about WoM here: https://forum.game-guru.com/thread/219645?page=1#msg2601704
Lots of really good stuff here. Still waiting on an update by Dimoxinil for his 'Space Losers' game, which should really be honestly one of the 'best of the best' games made by Game-Guru upon release.
IN MY OWN WORKS.
I'll admit, I've allowed a lot of my "Battletech: A Time of War" pen and paper (roll20.net, actually) campaign to preoccupy me, but it's served as a valuable creative writing tool so I can't fault it, too much. The book is coming along slowly. I'm dedicating a few hours each week to getting a couple of thousand words done, so it's progressing at the proper pace. Currently I'm working on a segment discussing 'building your first game' - simply put priorities and configurations.
This chapter already has a few thousand words but is getting a second pass to really expand on it.
It's been a few days since I put my latest alpha of my entry for the Tower Defence challenge on itch.io and my project page:
I think I've covered the requirements for the challenge, and made the game a bit above just the requirements so it is a bit more fun to play and has some longevity.
The reason I entered this time is because I'd been watching the previous challenges with a little envy, and had been waiting for one that seemed simple enough (I think the last one I looked at had multiplayer and I knew that could be a bit of a bag of worms). My usual low level c++ / opengl approach would probably be overkill for a small / low timescale game, so I decided it would be a good opportunity for me to try out Unity engine, which a lot of people are using currently.
What went right
1. Using Unity
Rapid development, well suited for this type of small game.
2. Attempting to get as much of the challenge completed asap, then leaving further time for more features / polish.
I finished much of the base functionality in the first week, then spent time on and off in the next few weeks just making it better.
There are lots of advantages to getting something 'finished' up front, and this is a development model I am trying to move towards.
You can 'call time' at any time, and still have a functional product. Unforeseen events always seem to appear and limit the time you can spend on a project. This approach guarantees that even in this situation you will still have a 'product' rather than a half-done version of your 'glorious vision'.
3. Using the asset store, not building all the models myself, and using sites such as freesound for the sound, and creative commons music.
For small learning games such as this it didn't make sense for me to make the assets. I know it takes me 2/3 of the time to make artwork etc, and while I am improving at it, I am better at (and enjoy) programming more than making artwork.
4. Finding some good tutorials to learn Unity (then throwing out their approaches!).
There are some great tutorials out there (brackys for instance), and these are good for learning unity specific stuff, but in some cases I could instantly see better ways of doing things. I put this down to many tutorials being pitched at total beginners, who are happy to get anything on the screen. But e.g. using Unity editor to lay out levels just seemed ridiculous and limiting.
What went wrong
1. C# .
I hate it, absolute abomination of a language. I spent more time than should ever be necessary screaming at the damn thing, it makes visual basic look like Shakespeare. I could write a whole blog post just on the things about it that make me seethe, but yeah, if I could avoid ever having to use it again, that would be great.
Yeah, see point 1. Pretty bad. I might have to see if I can get another editor working if I use Unity again. I hear VS code may be worth a go (I'm on Linux). Monodevelop seemed really keen to reformat my code in stupid ways I couldn't turn off, and kept trying to autocomplete words incorrectly (that I also couldn't turn off).
3. Lack of debugging support.
This may have been due to my setup, it might not be straightforward to get debugging working on Linux (I'm assuming with Unity it is possible to do step by step debugging?). This meant huge problems debugging anything but the simplest code (I had to resort to lots of Debug.Log statements).
4. Unity editor.
I'm not really a drag and drop sort of guy. I tried to avoid having half the game 'code' being a particular setup in the drag and drop editor. I'm not even sure how to backup that stuff, I'm sure if I'd have had a crash I could have lost the lot. Come to think of it, did I have to backup all the assets too? With all that .meta stuff? I don't know. At least with code you can zip it up small and keep lots of backups. There should be an option in the menu to save your entire project in a compressed form without all the bloated assets etc, just the stuff that is a pain to lose.
5. Unity build times.
I had massive problems with excessive build times taking hours when changing platform particularly, it kept baking lightmaps (or maybe something with shaders?) when as far as I knew I had tried to turn them off. Eventually more by luck than judgement, I found that deleting some skydome assets I had imported and deleting (rather than turning off) an extra light finally cured the problem. Far too little debugging info is given out by the build tool logs, to enable you to know WHY your builds are taking hours. Googling reveals I was not the only one with this problem. Don't just tell me 'baking lightmaps', tell me which light is causing this, which objects etc etc.
Overall I found the challenge very worthwhile. There are several of us working on it, and bouncing ideas around and spurring each other on works very well. Also a little hint of friendly competition is good too!
I managed to get fair basic grounding in Unity, and have a better idea of whether it would be worthwhile using in any future projects.. I may use it for a couple more small games, or evaluate some more current engines (Unreal, or perhaps something more code orientated).
Doing such small projects is also great for experiencing and practising the whole development cycle including release and marketing. This can give a much better perspective on how much time you should invest in different stages, and improve your ability to schedule / finish larger projects. It is something I would recommend to beginners through to advanced developers.
In my second post, I would like to talk about such things as "Magic and Mechanics, Character Development, Interface and Weather Conditions."
At once I would like to note that this is only part of what already exists at the moment. In the process of developing the game, one way or another, some of its elements will be supplemented.
For example - globaly numbers and stats (25 points of damage, 35 armor, 81.995% of oxygen in the blood), I DO NOT SEE meaning and therefore I WILL NOT do this.(those figures, which in the screenshots - are approximate.)
Everything has its time.
So, let's begin!
At the moment there are 3 magic skills.
Average damage. Long flight. A small radius of hit. Relatively small cost of mana.
The Fireball is not only the average damage at low cost of mana, but also a good way to illuminate the narrow and dark places, for lack of the best!
Noel studied the art of twisting mana in energy clots in his youth, like his sister.
He always got a good ball-shaped form, so this spell, he applied without much difficulty. But not in combat.
And in battle he still was not, although he was very anxious, during the attack of robbers on the village ...
He is often visited by the thought: "What if I went with my mother to defend village... Was she alive? Was I alive?"
2) Electroball. (yes, that's right.) Not an Electric Ball, no-no ...)
High damage. Short flight. Large radius of hit. The average cost of mana.
Electroball appeared relatively recently. Of course, earlier many races used the power of air magic, to create thunderstorms and a downpour to water the crops.
But recently, metropolitan engineers are increasingly using the magic of electricity for various inventions.
Electroball, Noel learned by chance ... Carolyn often showed her husband how to use the magic of electricity, and later, for fun, began to train and Noel to slightly push his father.
"Look, Noel is almost getting it! Come on, ????? and you can do it!". He did not succeed ...
3) Healing Waves.
Zero damage. Static healing (40 units). Fixed radius of application (around itself). Average radius of hit. Low cost of mana.
Magic is not only destruction, chaos, pain, death, but also healing, help, hope, life.
Unfortunately, as a child, Noel was not very worried about healing spells.
Despite the fact that they are owned mainly by women (I would like to remind you that there were no magical academies in the village, and the main types of earnings were: trade, ore mining, logging and harvesting.) Herbs and treatment, mainly engaged women .)
I think that now Noel regrets about it more than ever.
Why so few? I explain.
Directly to business!
1) To each hand - each spell!
Many of you, for sure, played TES 5: Skyrim. (if not - very curious game)
Among all the variety of aspects of the game, I was interested in the possibility of using spells, both with two hands, and with each separately.
I decided to implement a similar mechanics.
Almost any spell can be cast alternately from each hand, or simultaneously from two hands.
It looks something like this:
The chip is that regardless of the current cooldown (recovery time), you can switch to any other spell right in the battle, by pressing just one button (currently it's Z and X - the spell sheet back and forth).
Thus, if there were a lot of spells, it would be difficult to control each of them (mana cost, radius, cooldown, whether it is selected and on which hand, etc.). Of course, for hardcore hardcore fans and / or fans of Magicka, this would be a trifle, but still the game is not only aimed at fighting, but also on survival, so keep an eye on the indicators (more on this below).
P.S Do not forget that 3 spells - this is the realization that there is at the moment! Ultimately, this number can and will be increased.
Mana regeneration is a rather ambiguous thing.
At the moment, passive recovery is extremely small. And flacon with mana are not restored to the "sleep" of the Hero. Accordingly, saving on mana is extremely important.
So, throwing all the magic in a row is not the best idea.
There is also a chance that after the death of the enemy, you can absorb some of his mana (and some health or experience).
3) Enhancement of magic skills, their reorganization and rethinking.
At the moment, each of the skills has its own (not a hero) level.
For the enhancement of the character (improving his health, mana, protection, etc.), there are "Points of Characteristics". To improve skills - "skill points".
This is how (approximately) the tree of improvement of skill looks. Everyone of skills has his own!
Where there is no branching - you need to learn the previous feature of the skill. Where there are ramifications, you can choose to improve. (or improve everything at once, if you have enough points)
Learn what will happen next, before you can not learn the previous skills - you can not. Intrigue
But something, I'm still spoiler. For example, the "Healing Wave" skill can temporarily increase the Hero's resistance. So it's not just a healing skill, it's also a useful buff. (Gain)
Also, some skills will be universal - for example, you can simultaneously deal damage and reduce enemy defense. And this is ONE skill with ONE hand! Imagine how many effects there will be if EACH of these skills can be applied from ANY hand. (x2, but with different CDs)
4) What was said at the beginning, but perhaps part of you, did not betray this value ... I'll just repeat:
This is not the final version. This is what is now. And this is what works now. I hope you heard me
In addition to the development of skills, there are also points of characteristics, which I mentioned earlier.
You can choose what you think is necessary for improvement:
More health, more mana, increased resistance, and maybe a good LUCK?
Perhaps I will tell more about it (I think the rest is understandable, except for the figures).
Luck is a unique indicator. From this depends, how often Noel will find the islands or dungeons. Will there be spring water, palm trees with bananas, coconuts or trees?
Also how valuable will be the loot (items, reward) in the dungeons.
It also depends on it on how good the weather will be. (about the weather - a little lower)
Of course, luck does not give a 100% chance that Noel's life will turn into a fairy tale. No no. This is only a small percentage of the total fate of Noel. Someone does not even feel it, but someone will always smile at it.
Funny paradox - in life a person can be unsuccessful, but in the game vice versa. That's just ... In life, to improve your luck - it's not so easy, right? So ... I would advise you to take a chance and raise this luck, at least in the game.
Let's talk more about the mechanics of mana restoration, which I touched lightly ...
Many are familiar with such projects as Dark Souls, Bloodborn, etc., where to restore something, you need to go somewhere or use something (usually bed / fireplace / bonfire / potions).
In Noel Hope, you will initially have 3 (at the moment) type of flacons. A health potion. Mana Potion. And a potion of rage.
Potion of Health - restores health. Mana Potion - restores mana (that's a surprise ...). A potion of rage - increases the damage from all abilities for a specific time.
Also, falling into a rage - your vision changes. You see better in the dark, but worse with light. Side Effects - Oops!
Each of flacons is restored after your sleep on the ship.
In certain locations, you can find an extra flacon. (For example, in chests with treasures, or after killing particularly dangerous monsters.)
In dungeons/ instanced dungeon or special places without a fixed value (for example, a shipyard / port / berth / quay), the bubbles will not be restored.
It will be necessary to carefully choose when to spend them.
In addition to the potions, there will also be items of equipment, but I will talk about them, as well as about the dungeons / islands, later. Not this time, no.
Mechanics of Survival:
An important element is survival. Noel has indicators not only of health, mana, experience,
but also hunger, thirst and temperature.
Hunger is not a very frequent phenomenon, if you sit at home on a chair and look through some forum.
But on a ship, in the middle of the MAGIC ocean, where strange and sometimes not very understandable phenomena happen - hunger is a dangerous thing.
You will have to get food either on the islands, or in dungeons, or through attempts to plant a seed. The islands have to be found, as well as the wildfowl itself, which must still be caught.
And to grow seeds found on a flooded boat or in a commercial barrel, or maybe in cargo on ships - it's a complicated matter. Watering with MAGIC water - will not work!
And even if you find normal water (or get it through the magic of steam), will the seed come up? Increase the chances of success - will help perfume. But I'll tell you about them later, in a new post: P
Thirst - it tortures people more often than hunger. Perhaps right now! Want to drink?
You should just go to the kitchen, but Noel has a problem ... MAGIC water can also taste unusual, but you can not call it drinking.
Fortunately, the ship was designed so that it can accommodate special mechanisms that allow processing some liquid into drinking water. Of course, these mechanisms only on drawings.
Temperature - this is something that should pay attention more often. On average, the body temperature is 36.6.
I tried to realize this indicator as realistic as possible. (although realism in RPGs with magic is ... mmm ... Conditionally?)
Depending on the weather conditions, from the magic of enemies / spirits and Noel himself - his temperature will change.
If during a meteor storm, Noel is touched at least by a little meteorite, then he will get a burn. And accordingly the temperature of his body will also rise.
If during a snow storm, you want to swim in the water - the temperature of the body will fall.
And so on...
The same applies to his temperature at various islands / dungeons / locations.
In addition to the visible indicators - there are those that appear after some events. For example, when lifting loot (inscription) or while running.(stamina)
Stamina is only consumed during the run.
Well, actually, the INTERFACE itself with all the elements:
Less words - more screenshots.
Rain with fog:
Just a sunny weather:
The weather also affects the speed of the ship. During a storm or a hurricane - the speed of the ship is much lower than during a calm.
I will draw your attention. These are NOT finite types of weather phenomena. In total there will be more! Perseverance. The work. Well, you understand. I'm just lazy.
On this I will finish the story about magic and mechanics, as well as the development of the character and weather phenomena. I'm more than sure that you probably have more questions
In each post, I will give more information, figures, screenshots and plot.
Thank you for attention! I hope it was not boring to read! To new posts.
P.S. Original Text on russian Language:
All of this week was spent rewriting the whole game in Unity Engine. What can I say... It took me over a month to make a game in OpenGL + Kotlin, but it took only 1 week to learn Unity and do it there. I guess I'm a little bummed that I didn't start using Unity earlier. But at the same time I'm VERY happy that I switched. It made my life so much easier and programming in Unity is FUN!
What I've Done
So I haven't implemented new features per se (except for particles), but only redid the old ones. But still here's a list of what I've done:
Added collision detection (which was only few clicks in Unity)
Added GUI (main menu, splash screen, resume menu)
Added object placement
Added new tower
Added heath bars
Added event management system
Added particles (enemy exploding)
Added enemy waves
This coming week I think I'm finally going to start implementing new features and make the game feel like a proper game. I plan to finish at least one fully playable level, but I'll see how it goes.
Thanks for reading! I'll see you next week!
In order to increase the aesthetics, we looked for tips on the post-processing filter for our engine and came up with the idea of using a VHS / Analog post-processing filter,
Because my teammate had already built OpenGL shaders in the past and that's kind of his hobby, he gave me the link to shadertoy.
This site is amazing! There're a lot of shaders to use as a base we can build on, and it's also 100% web thanks to WebGL.
This shader in particular caught my eye:
It's really cool, and yet there are no VHS artifacts that can really obstruct the players' view .
So I did a little tinkering with JMonkeyEngine and got this result:
I'm really happy with the results.
I could however reduce the blur amount: it can be annoying it it's too high...
Welcome to this week’s From the Forum. In this post, we highlight a few Corona Community Forums posts that cover important topics.
Several Corona developers are starting deep discussion topics that you may find interesting. This topic dives into taking an OOP (Object Oriented Programming) approach to using timers based on objects.
Take a chance
Game designers have to make quite a few decisions when designing games and those decisions could mean the difference between success or not. In this thread, the question of how much randomness should a game have is discussed and a link to a great resource on skill vs. chance was shared that every game developer should read.
Cool retro TV shader
Our community is great. They love to share. In this post, see a great new shader that lets you add a retro-TV look to your game.
Do you have a particular forum thread that was helpful for you? Let us know about it! Email email@example.com, put FTF: and the forum title in the subject, and include the URL in the email. We will consider adding it to an upcoming edition of From the Forum.
View the full article
Try the third demo of Rail Route - a rail network simulator! We intended it to demonstrate how contracts work. You will find quite a big rail network inspired by Prague railways to prove your dispatcher skills. Still no building & research (career mode). We hope it will be our next release.
Any feedback is more than welcome! Tell us what else would you like to see in the game.
Download on our blog: https://railroute.bitrich.info/2018/06/15/demo-r0-3-released/
Blog is a day later than usual, there was a bug with saving that I wanted to complete before posting. The auto save feature was not saving some global variables correctly that was needed for the room randomization scripts. In order to resolve this I had to re-write the scripts as it was really messy and caused a huge headache.
The re-write is great, I took about 30 lines of code down to about 10 so it was a great optimization at the same time. The good news is though it works flawlessly with auto save now. It works perfectly on the phone so if there’s a crash or you don’t finish a run it auto saves from the last room you cleared and the save is deleted upon game over.
Items added for touch controls:
Changed size and location of vstick and on screen buttons
Made it so the item you equip to a button is now displayed on the button itself!!
Added a pause button to the GUI. Pressing this pauses the game and draws the inventory. Hitting pause again un-pauses the screen.
Added a go to main menu button on the game over screen
Added a continue game button on the title screen. If there is no save present it will display no save found.
If you have full health hearts are now pushed out of your way. Was a bug stopping this from happening on the phone
Save game issue resolved
Issue resolved on player not being destroyed on game over
Added smoke to the explosion animation. Slowed the animation down.
Changed smoke color on fireballs.
Title Screen!! Added what will be the official start screen. This will also be random. The blurred background will be chosen randomly and show different room layouts. The character shown on the right side will also be chosen randomly between all enemies, boss, and player!!
Added fade in screen transition for new game
There might be some little changes I forgot.
Gameplay video showcasing everything above and was on an iPhone 7 Plus.
View the full article
So I used python 3 for ios on my ipad to do part one of this assignment.
Part One: create a guess my number game:
numSpecial = 0
time = 0
guesses = 0
g = 0
i = 0
print ("guess my nmber, biatch! between 1 and 10")
while g!= numSpecial:
time = time + 1
if time > 5:
print ("you took too long, loser")
elif g > numSpecial:
print ("too high, shithead")
guesses = guesses + 1
elif g < numSpecial:
print ("too low, asshole")
guesses = guesses + 1
elif guesses > 10:
print ("I have had enough of your shit")
print ("you found an error")
g = int(input("what is your guess?"))
if g == numSpecial:
print ("you guessed right, you are not as stupid as I thought.")
i = input ()
Part Two: figure out where in the program the computer recognises time and place a time limit on the game.
And no it doesn't have an ending because I haven't covered ending a program in the text yet.
So we had our first hater... but first please listen to one of our music we think we was bashing against. After that, let's hear the context.
Our development blogs on gamedev mainly focus on the actual development of our game(s) and any related research that we've done. So, our target audience is other video game developers. We also have our own subreddit where our target audience is everyone. Thus, we decided to make our subreddit public and allow subscribers to post content that follows the rules, which they are mainly about posting relevant content.
Recently, we've been gaining more popularity and finally gained our 25th subscriber! 🎉 However, with popularity means more human attention. One thing I know about humans is that there are among them douchebag, troll, egoist, evil [and so forth] people. Inevitably, we were bound to attract the attention of one of those toxic people and so we had our first experience with what we call a hater.
The hater firstly unannouncedly posted this on our subreddit :
The person actually posted music of his game [I suppose]. It is an electronic music video. While it's true that we post vaporwave music videos on our subreddit, they follow the rule that it's about our game and our company.
So I decided to remove his post and send him a warning as a message :
Now, I don't clearly understand exactly what he meant by "Someone better than you, and wanted to make you feel better" but I do understand that this guy is saying he's better than us and that him posting his content on our subreddit would make us feel better (lol). I suppose the "better than us" part is related to our music, which is meant to be that way to fit into the game design of the game. Anyway, as you can see, this guy is so cool because he breaks rules. Wow.
But wait, there's more!
Just before I banned him, he posted this on our subreddit :
Of course we banned you for posting content about your game on our subreddit to gain popularity. Our subreddit specifies precisely through rules that it is meant to be a platform of communication for our company and a way to keep our subscribers in touch with the development of our games. Just look at r/fallout for example. Their first rule says that all posts must be directly related to Fallout. Are they not cool to ban people who disrespect that rule? No, it does not make sense. Reddit is a magnificent social network that allows specific sub-forums as ours and it's actually what defines it.
Anyway, I decided to ban him and then ignore him. I've always been more of an observer than someone who needs to express his opinion loudly and publicly on social networks but because this is the first time we had a hater for our game, I just needed to post about this.
What we learned from this :
Added a rule about not spamming that allows us to give warnings and ban people from our subreddit.
Ignore banned people.
Made our subreddit restricted instead of public. Now, only approved redditors are able to post on our subreddit.
Toxic people take time from us video game developers that we could put into making our game(s)
This post is a smaller one, but I figured it's been awhile. It's also getting close to the deadline and I'm starting to panic. Maybe alternating between projects wasn't the best strategy. But progress is continuing. Once I have enemies programmed it'll be tying it all up into a game experience. I'm probably only going to be able to meet the minimum requirements for this challenge by the end date. Here's hoping.
Anyways, here's a quick video of tower placement along with the Tetra-Tosser.
After such an amazing E3, I feel reinvigorated. Gotta admit to feeling pretty jaded/apathetic about AAA gaming lately, but leave it to the Sony & Nintendo press conferences to remind me of why I love gaming in the first place. The hype I felt over the past couple days is the same feeling I want people to have for the things I'm working on someday. Unprecedented levels of polish, earnest interviews and announcements by hardworking developers, shocking surprises, gameplay to analyze, and jaw-dropping tournament moments...
And at the heart of it all? Hours of fun promised by teams I know can deliver. I'm hype ya'll. Now I want to work hard to make sure starting next E3, I'll be there to show off something in person every year.
Here is how I created a Tsunami Sound Effect from scratch. I don't recall seeing any Tsunamis in a video game so far, not even in Sim City's disaster mode, but who knows, this video might come in handy one day.
Before getting into to this, I know you game developers are looking for high quality sound effect. I recommend you check out my website: http://www.ogsoundfx.com
I also know a lot of you can't afford to purchase sound effects for your indie game that you put your heart and guts into developing. So here are a few ways to get a pretty nice collection of free SFX:
1. Subscribe to my Youtube Channel and get this for free: http://www.ogsoundfx.com/product/youtube-subscribers-pack/
2. Subscribe to my Newsletter and get 120MB of professional sound effects !
Enjoy the video !
So, it’s been a long time since I’ve posted anything here. Mostly because I’ve not been writing much code in the last while and real life has been my focus. Since I’ve been gone, I’ve become a software architect at my job, and that keeps me quite busy.
I’ve uploaded Gorgon v2 (such as it is) to Git. I’m not entirely happy with that version, and frankly I lost my motivation to finish it. As it is, it’s feature complete, but may have bugs. However, the editor application is in an unfinished state (it’s usable, but it’s got issues).
From time to time I toyed with making a new version, but never really had the motivation to go beyond prototyping. I tried using Unreal and Unity, and while those things are quite impressive, they seem to … I dunno, lack something. Especially in the 2D arena. Also, as a programmer, and an oldschool one at that, it felt quite unnatural to use an editor like that to build up stuff.
However. Lately I’ve been in a fit of watching game documentaries on Youtube (and oddly enough, CBC.ca), and while watching a documentary series on game developers from the 80’s (henceforth known as the best decade), I felt compelled to have another kick at the can.
So, how’s it going?
Well.. it’s going quite well. I’ve got the core graphics library done, and the 2D renderer is well under way (I can render text and sprites).
I’ve opted to learn how modern rendering engines do their thing to see if I can get some inspiration for performance improvements. And I did. The core Gorgon library now renders using a stateless drawing mechanism where an immutable draw call object, configured with immutable pipeline states (similar to how D3D 12 does a PSO). It’s quite a departure from the older versions. But, I’ve seen some impressive performance gains because of this.
I’ve also decided that I absolutely HATE Direct3D 12. I get it, it’s wonderful for squeezing every last ounce of performance from your machine so you can get incredible visuals. But it is a complicated beast, leaving it to the developer to control almost every aspect of programming the GPU. It kind of reminds me of Immediate mode back in the D3D 3.0 days (nowhere near that bad though). So, to that end, I’ve decided to base Gorgon’s core graphics API on the latest (at least, latest available in SharpDX) version of Direct 3D 11, which is 11.4. Honestly, from all I’ve seen, Microsoft has no intention of abandoning 11.x since it has a firmly rooted place in development due to how much simpler it is to use over 12. That may change in the future, but for now it’s good enough for me.
And this is likely to piss some people off: This new version of Gorgon requires Windows 10. And no, I don’t care to hear about how I’m being spied on.
So, you’re probably wondering hows the performance of the rendering in the 2D API?
Well, see the image:
Yes, that’s 131072 sprites, plus text, rendering at above 60 FPS.
That’s running on a GeForce 1080 GTX. A pretty high end GPU. And you might think… “well, for that GPU, 70+ fps isn’t that great” But keep in mind, those are alpha blended, textured, animated sprites (all 131072 of them). This little test/example app has been with me since 1.0 and it’s served me well as a quasi benchmark. To give you an idea of how much of an improvement this is from v1 to now (all on the 1080):
V1 – ~15 FPS with the same number of sprites, and a lower window resolution (800×600 vs 1280×800). This version used D3D 9
V2 – 28-30 FPS. Same resolution, using D3D 11.0
V3 – Well.. look at the screen shot. It’s an improvement.
So yeah, that’s where I’m at. Will I keep going and release this? Who knows… I do have a v3.0 branch up on the GitHub repo, which contains just the core API for now (which, sadly has some bugs that I’ve since patched while creating the 2D API). So, if you want, you can grab it, and mess around with it. Just keep in mind that I offer no support for that version, and it will change over time and may break your stuff.
View the full article
Hi! Me and my friends are looking for youtubers who will review our game. We tryna to promote our game, so I thought it's a good idea to advertise our game in forums.
We already have this game on Google Play. Here is the link - Play.google.com
Rate, download, play, leave your angry message below and spread your information to your friends
feel free to email me: firstname.lastname@example.org
Our official site: Moduletd.com
Our Facebook page: Facebook.com
Our video on Youtube: Youtu.be
This time I'm going to write a little about my plans for generating planets. This entry won’t go into any specific details of the terrain generation but will be just a very high level overview of the basic framework. I don't think any of the ideas in here are new.. the procedural generation community are a very clever bunch indeed! I'm always amazed how when an idea pops into my head I'm able to find an existing article about it that goes into fine detail on the subject. Anyway let's crack on!
Heightmaps & Voxels
When it comes to generating terrain an easy first choice is to generate height maps and build the terrain mesh from that. You can get some good looking results quickly by overlaying some noise generation and tweaking things here and there.
Though these can give some nice results they have limitations. For example tunnels and overhanging terrain can’t be represented in a simple height map. You also have to choose a projection scheme to map a 2D height map onto a sphere.
There’s another approach to terrain generation using voxels and that’s what I’m aiming to use. With voxels you can define all sorts of complex terrain and you can define what’s hiding under the ground too - whether it's seams of coal, ore or underground rivers. Many games use voxel terrains to great effect such as the infamous Minecraft. Sign me up!
In Minecraft the voxels are arranged in a grid, keeping everything nice and simple.. until you want to model a whole planet. Then you’d get something like this:
Though that does look really cool, I don’t want my worlds to be great big cubes floating in space, so what do I do? There are all sorts of solutions to building a spherical world from a voxel grid, but they seem to be full of difficult space warping, caveats and rendering complications. I’d rather not deal with these kinds of complications, so I’m going to try a different approach.
Instead of arranging the voxels in a grid I’m planning to arrange them as points on a geodesic sphere like this (imagine the vertices are voxel points):
It’s like taking the space warping issues you’d need to do at the cubes edges and spreading it evenly across the entire surface of the sphere. Instead of it becoming a difficult edge case it becomes a constant low level annoyance and keeps things consistent at all times. It will make the mesh generation a little more fun later too
Voxel Planet Generation
The plan is to use an icosahedron as a starting point. Each vertex here is a voxel. This can be considered the lowest possible Level Of Detail (LOD) of a planet.
The space is chopped up into tetrahedrons from the planet surface into its core. There is an extra vertex at the centre of the planet for this.
These tetrahedrons can be subdivided through to the core of the planet as required.
These illustrations are somewhat misleading though as this isn’t just generating a spherical mesh, but a bunch of voxels that could be empty space. The voxel points (vertices) hold information about what's actually in the space they occupy, whether it’s atmosphere, rock, magma etc. It is the job of the terrain generator to define what a voxel contains. I'm going to keep a clear divide between the planet voxel generation code and the terrain generation code this way.
I have some uncertainties on how to best manage the subdivisions of the planets voxels as required, but I’ll bash it out in a prototype.
The game also needs to be able to make permanent changes to the terrain during play. Large explosions should create craters and I want them to persist. To do this I will need to be address the voxels and save state changes about them. I'm not 100% sure on the approach for this yet either. One train of thought is to basically create an algorithm for the voxel generation that that is able to assign each possibly generated vertex a unique 64bit number. That would have no waste and allow the maximum number of voxels, and some napkin math makes me believe it would have good detail on earth sized planets. Another approach could be some kind of hash of their XYZ or polar coordinates, though that will be more wasteful so it’d bring the total addressable voxels way below what a 64bit unique id could theoretically hold.
Ok that’s enough for now!
One of the main goal for QLMesh was to add some new formats I have been working with quite often, like Photoshop files of bdf fonts.
For 3D it is LDraw formats and DAZ Studio models.
LDraw is one of my favourite. I am currently working on extending Assimp to support .ldr and .mpd files. One of the major challenge is actually not drawing but embedding library definitions into the plugin. Original library it is about 250MB (compressed to ~40MB). That's quite large for Quicklook plugin. I started to work on some heavy compression/optimalization and current result is:
-rw-r--r-- 1 piecuchp staff 40M May 12 17:18 parts.db
-rw-r--r-- 1 piecuchp staff 2.2M May 12 17:18 parts.db.gz
That's much better. 2MB can be easily embedded into plugin, eg. using assembler module like this:
_ldrawlib: incbin "parts.db.gz"
_ldrawlib_size: dd $-_ldrawlib
and later build with e.g. nasm:
/opt/local/bin/nasm -fmacho64 ldraw_lib.asm -o ldraw_lib.o
Sometimes less is more. Working on reading gzip stream, I had to remove one of the compression optimisation. The uncompressed file is slightly bigger, but compressed one much smaller:
-rw-r--r-- 1 piecuchp staff 41M Jun 17 12:03 parts.db
-rw-r--r-- 1 piecuchp staff 1.5M Jun 17 12:03 parts.db.gz
After an initial burst of energy last month, I knew I wouldn't have so much time available for working on Tower Defence challenge up until the June 30th finish. However I did manage to get much of it working already and now I am mostly at the 'finishing up' stage.
More music tracks
I have added some more game modes. The normal mode is a scripted set of 12 levels, random generates 20 random levels increasing in difficulty, and 'budget' is a shorter game of 6 random levels but you are given an estimated amount of money to beat all the enemies at the beginning, and you can't win any more cash, so you have to make it last.
I have made some effort to make the game cross platform. It works well on Linux, Windows and Android now. To that end there is a certain amount of 'designing for the common denominator'. I had to scale back the particle effects so that it would work well on tablets and mobile phones. If I was spending more time on it I would scale the number of particles according to hardware.
Graphics Quality Setting
Inside the game pause menu there is now a performance slider where you can trade off graphics quality with speed. It sets the unity GraphicsQuality setting. This works well, although I did encounter a snag on Android.. the higher quality settings on some devices was causing complete graphical corruption, possibly trying to switch anti-aliasing. While I could try and blame this on Unity, I do know that devices can be bad at reporting their capabilities, and you often have to just 'try it and see what happens'.
What was however a design oversight is that when you set unity to GraphicsQuality that causes corruption, while you can quit out of the game from the OS, Unity actually SAVES your choice of graphics quality so that the next time you run it it is also corrupted. The only way around this (on Android) was to go into App settings and delete the cached app data. Clearly this was not ideal for users.
As a bodge compromise, when you originally start the game it reads the default GraphicsQuality, persists this separately, then resets to the default every time you run the game. This means any changes to quality are lost on each startup, which is annoying, but better than the graphical corruption. Another alternative would be to get the user to click on an 'OK' box within 15 seconds to confirm that graphical changes worked, but I did not have time for this.
Gamepad / Keyboard input
While a lot of tasks have gone very well, I spent a lot of yesterday and today getting keyboard and gamepad input working. Most people will play the game using mouse, or touchscreen, and it works best with these. However my Android TV box has no touchscreen, and I find it annoying how few Android game developers support other means of input.
I had previously managed to get gamepad input working on Android using Android SDK via java / NDK, however configuring input on Unity seems rather overcomplicated. I read several recommendations that the Unity input system was poor, and it was better to buy InControl or Rewired assets to do this.
I tried the free version of InControl but couldn't get it to recognise my gamepad. So I went back to the in built Unity InputManager and finally managed to (barely) get it working. The selection of joystick axes seems non-standardized, so I have no idea whether my setup will work with other joysticks / gamepads, not having the time or facilities for further testing.
As well as simply getting a gamepad working, there is also the issue that the game was designed for mouse.
I had hoped that navigating the menus would be a simple affair, but it took me a while to work out how to select a default menu item when entering each menu screen, without which you could not change the selection. Many people I googled had had similar problems, I am not clear on the 'correct' way to do it. In addition many of the UI items did not show a large enough change in colour to indicate that they were highlighted, and I had to change this manually.
Gameplay with keyboard / gamepad
The biggest hurdle was how to place towers in a game designed for you to pick a spot with the mouse? I decided to have a cursor which you can move up down left and right across the map. This was a bit fiddly to get working with the input, and is still not perfect, but does allow you to play the game, albeit not as efficiently as with a mouse / touchscreen.
Finally I had to cover tower selection via keyboard / gamepad. To do this I simply had a button cycle through towers available, and had to put in an indicator arrow to show which was currently selected.
I have now tried it and it even works well on my Android TV box with gamepad, which has surprised even myself. Performance has been very good, even on low power devices. That is probably largely down to careful design due to me being already familiar with performance bottlenecks on this hardware (fill rate is usually the biggest issue), and using mostly simple mobile diffuse shaders.
I suspect from now until release I will mostly be concerned with testing. The input in particular has introduced all kinds of subtle potential bugs from different combinations of input devices. I would ideally like a high score table but handling virtual keyboard input on different platforms puts me off, unless I use a simple initialing system.
Post mortem: CountOut https://walkies3.itch.io/count-out-
CountOut is a game based on requirements of a game jam, we were each given Atari’s “Breakout” as a base and then assigned an individual artist, my artist was Sally Sheinman an American installation artist. However, we did have creative limitations, these included;
· Must closely resemble the layout of the original game.
· Must closely resemble the mechanics present in the original game.
· Must closely emulate the behaviour of player and nonplayer characters/entities.
· Must resemble and embody the style and tone of the assigned artist.
This project was a solo endeavor by me, I am a student of SAE Quantm based in Brisbane, Australia. With experience in game development and majoring in programming
I wanted to create a game that would both showcase the installation style and also provide the same sense of easy fun that Sally intended with her art work. Most of all I wanted the game to stop becoming a game at some point and more a kinetic piece of art.
What went right
1. Planning and scheduling
As this was a solo effort, planning and scheduling was achieved easily. I knew how much time I had and when I was available, not having to be concerned about whether work would be completed by others on time. Each week I used a scrum method, making a list of priorities that needed completing through HacknPlan and attacking one at a time in order. Through this method I was able to keep a track of the work that was done and what needed doing and thus how much time I would need to allocate to it.
2. Design & Style
From the beginning I had a very clear idea of the style and theme of CountOut should be, whether it was intended or not Sally’s work often imitates playable spaces. This made it very easy for me to envision a playable environment from one of Sally’s work in particular “Artkacina”. Looking very similar to a layout for a table top game with blocks to hit in the center. Her creations of many shapes and textures was easily reproducible in a game sense too
3. Feature finding
As the game developed, issues arose with the core design and while this isn’t a positive thing the ingenuity in fixing these problems within a time period were. It also shed light on to new and interesting game mechanics that would eventually be reworked from bugs into features. Alternative solutions to these bugs were theorized and tested to make sure the new feature functionality was correct, overall these were still achieved in a reasonable time frame and didn’t affect the scheduling.
The way I worked
This was an interesting task, being a university student, time was restricted on the project. However due to effective planning and scheduling through HacknPlan, time was efficiently used as mentioned previously a scrum method was applied, by keeping track of tasks that needed to be completed within that week and updated frequently. There was never a point where I wasn’t sure what to do next. Also, any problems that arose were swiftly sorted and if the problem was outside of my expertise I looked externally for answers.
What went wrong
1. Not planning ahead
While I had an idea of what I wanted and needed in the game through the given individual specifications, the first couple of weeks of development my ideas changed, which in turn means there was less time planning the overall design of the game. Which lead to problems later in the project which included; core mechanics being changed, interactions being changed and more.
Ultimately these were worked around or solved but if a clearer design was decided earlier than much time and frustration could have been avoided.
2. Self-Management This is something I feel is often overlooked, especially in our industry. Even though my schedule and time management were well planned, my well being was put second. Often working many extra hours to achieve goals. Even though I enjoy this development process at the end of the day its still work. Making sure that you have sufficient breaks and time to clear your mind is just as important to the projects health as yours.
What to do in the future
1. Not planning ahead
This is something that I’m normally guilty of, starting development before final decisions are made. While it could be avoided by changing my work method from a scrum to a waterfall. The most obvious solution is improved documentation, by effectively sorting these out before the project is started, issues are addressed and understood in the pre-production process.
2. Self-Management Now these are going to sound a bit ridiculous, but you would be surprised how often this is overlooked;
· Take a half hour break every three hours, have a stretch, get a snack
· Make time in your day for “play”
· Stay hydrated
· Get at least thirty minutes of exercise a day, even if it’s just a walk
Looking after yourself is not only crucial to you and those around you but the life of the project as well. Time to reflect and recoup can help bring clarity to project which ultimately can save time and stress.
Conclusion Overall, I’m really happy with how CountOut turned out, I learnt new programs and achieved things that were previously unobtainable. However, there is always lessons to learn and take away from experiences, this project being no different. In future projects I will keep in mind to create more detailed documentation and not to start a project before final considerations. Finally, to not take for granted health and self-management as the management of these affects the productive output of both the person and project.
Find the game at: https://walkies3.itch.io/count-out-
· Developer: Ben Walker
· Length of development: 4 weeks
· Number of developers: 1
· Development tools: Unity, Blender, Audacity, Photoshop, Visual studio
· Sleepless nights: 2
The British Academy of Film and Television Arts (BAFTA) has announced the finalists of this year’s Young Game Designer competition: http://ygd.bafta.org/winners-nominees/2018
Three students taught by Corona developer Ian Masters entered their Corona-made apps and all three were selected as Top-10 finalists in the 10-14 year old “Game Making” category. There were around 3,500 submissions. A fourth student was selected as a Top-10 finalist in the 10-14 “Game Concept” category.
Ian Masters, an indie developer and the creator of QuizTix (an acclaimed series of quiz games made in Corona), teaches these students part-time using Corona. Masters said “Lua is such a great learning language for kids, and thanks to powerful development tools like Corona they can use it to make releasable cross-platform games”.
Check them out:
“T-rex Need Eat: Type Real Weird Words” for Windows by Maximilian Robinson, age 13
“Paddle Boat Panda” for Android, by Alex Robinson, age 11
“Bee Simulator” for Windows by Ariyan Hormoz, age 11
Note: “T-rex Need Eat: Type Real Weird Words” is also available for MacOS and HTML5 from itch.io at: https://whisked.itch.io/trex
View the full article
Looks neat. In fact I'm working on almost the exact same thing However I'm not sure you can divide tetrahedrons evenly. You can get four new ones on the corners and then you get this sort of odd center space. In your picture it looks to me like you divided up the faces of the original tetrahedrons which you can do easily, however chopping up the insides might be tricky, however if you figure out a good way to do it, it would be way cool.
I decided to use prisms, just because you can make an octree out of them like you can a cube. The down side is you can't go all the way to the center of your sphere and also the inner ones are a bit smaller than the outer ones. But if you build your geometry around some reasonable band of the world it shouldn't be a huge problem, and also it gets rid of the problem of geometry looking different in different corners of the world like you would get if you generated your world in a simple subdivided cube.
I had an old version working a few years back but it just used height-maps applied to a subdivided icosahedron based simplex-noise. However it did let you walk around a huge planet without generating any data in advance.
I am glad to hear that somebody is interested. The last month my university gave me a lot of work and pressure and i can't really keep up. However tomorrow i will have to deliver what I have done and thus i will start to get free time to think again. But there was another issue: I wanted to introduce a different (much simpler) world system (which i can't really show with pictures) but will immensely improve performance for bigger world with more entities. Since I am working a lot with pointers i got problems with Segfault and couldn't seem to find any reason as to why for a whole week. I am sorry to say, that it might still take some time (i hope for a maximum of a week) until i can get that new world system running and show something new that is actually game related. Thanks for motivating me though!