Head on to http://www.spellcasterstudios.com for the announcement I’ve been promising for a while!
We’ll have more to add in the next weeks!
Head on to http://www.spellcasterstudios.com for the announcement I’ve been promising for a while!
We’ll have more to add in the next weeks!
I’ve been quite busy lately with work, which means that I haven’t had time for any new developments (neither in my editor, nor with the announcement thingy)…
Since I know you guys want some stuff to look at, here’s a couple of things…
First up, an indy game called Gunpoint that seems quite cool… the style of the presentation is also very cool, and the animations look sweet:
The other one is a blog post about some conjecture and rumor, but that seems pretty accurate and for DX-heads like me, pretty scary. Click here to read!
Hopefully I’ll have time on Friday to get things up and running as usual again!
Hi all!
Been busy with work and with some upgrades on my SurgeEd (editable materials almost done!), so not much time to write up stuff on the blog…
Just decided to leave you with some videos of interesting stuff I’ve found…
First up, the trailer for Ep0ch… This iOS game is looking very sweet:
Second up, a gameplay of the Alpha of Gratuitous Tank Battles, which looks very good:
Positech Games has an interesting development blog, so check it out and keep updated with news on this great game.
Finally, what do you get if you combine “magic”, augmented reality and a talented presenter? Something like this:
Very good stuff indeed…
Anyway, I have a big announcement (oh well, it’s an announcement, don’t know about big) in the next few days, so stay tuned!
Although I got Uncharted 3 to play, I managed to get some time to add the live-link feature into SurgeEd!
Now, each time I change a shader file (or any of its dependencies), the editor reflects that when the window regain focus. Hopefully I’ll be able to iterate shaders faster, and do some more effect shaders as well.
I still need to add the material edit options, but I’m struggling a bit with it, from a conceptual standpoint.
We are editing objects on the editor, and those objects have (simplifying) a position, orientation and mesh. And the mesh has materials, shared by all the instances of that mesh… We can think of an object as an instance of a mesh. Now, I have to add materials to the object itself, and these materials have to be children of the mesh (with names generated from the object name). Then, every time the mesh of an object changes, the materials have to be deleted and re-added from the mesh materials. There are also other problems associated with the drag/drop/copy/undo/redo systems.
After I solve this, it comes the time for the properties of the material itself, which has a dynamic component, based on the shader selected for the material.
None of this will be simple, but it sounds like a neat system! With both the live-link and the material editing, I’ll be able to work on shaders in a more efficient way!
On another note, found a cool game to spend some time:
It’s very cool there’s still new concepts for platformers, and although I’ve seen this concept before in other games, this one uses it very well associated with the ninja concept!
Didn’t have much time lately to do any real work on my games, but managed to finally fix the text system on “Something Fishy”. It got screwed up some point in the near past, with the upgrade to the font system (that allowed for variable spacing between characters, etc).
I managed to patch it up, which made me have to rebuild the main font for the game, and in. the process I found a bunch of small bugs in Something Fishy that I took the opportunity to solve.
So, finally I have a working build of Something Fishy for the PC (although the “Kids” and “Easy” difficulty levels need some tweaking).
Now I can think seriously on porting the game for tablets and (hopefully) for Linux and Mac. This will make me have to solve some small issues, namely the sound engine, vibration and interface issues.
The sound engine is just a straight implementation issue. The current port of my sound system on Marmalade only supports fixed bitrate RAW sounds. To really be able to port this game, I’ll need to add at least a WAV loader (and maybe an MP3/Ogg streaming system).
The interface is much more complicated. Currently, Something Fishy works with the mouse controlling the hook in which a worm of a specific color is caught
This obviously doesn’t work on an iPad, since we don’t have a cursor… So, we currently have a “point and click” mechanic, and that has to be translated into a working “tap” mechanic, which changed the game overall (not dramatically, I think).
My current idea is to replace the fishing pole for an “attractor ray gun”. The player taps the screen in a specific position and a beam will grab the fish at the target position. The color of the sparks in the gun’s muzzle indicates the necessary color. Players have to grab the fish in succession (from smallest to largest), and the first two sizes serve to power the gun, so it can grab the larger one, which Ernest actually uses as food.
This will require some new art (and my artist is still on leave), some new testing (difficulty levels will need to be adjusted), so it might be a good idea to start porting to Mac/Linux first (in which we can use the mouse).
Work is not something that’s actually missing in my small hobbies, so I’ll probably do a detour I’ve been planning for sometime, converting the shader system on Spellbook to use the new XML format, and add a live-link option (changing a shader on the file makes the change visible on the game instantly).
Spent two days finishing this awesome game…
Like its predecessor, “Batman: Arkham City” is a 3rd person action adventure game, with some (easy) puzzles. The game follows in the wake of the events of “Batman: Arkham Asylum”, but does everything that one did right, and some more stuff…
The game has a nice story (although I think it becomes a bit contrived closer to the end), good boss fights, amazing visuals and animation (specially the animation) and small touches that bring a smile to my face.
The most important difference between this one and the last is the fact that the player is no longer confined to small areas… In Arkham City, you can navigate a city-sized area at will, finding side quests and collectables in large quantities. You can play at your own pace, spreading your attention between the side quests and the main storyline, although at the end you can continue playing after the main story has finished, to get those extra collectibles, get some more tidbits of Gotham history or just finishing the side-quests.
Side-quests are very interesting, giving some depth to some lesser known villains in the Batman lore, like Zsasz or Deadshot. It’s nice investigating things and looking around, although I think the game could have used some more of these (and less of the Riddler things).
Animation is the definite highlight of the game, in my opinion, with the flow-form combat system (already present in the previous title) just polished up and with more options… Combat feels very visceral and never feels “too easy”… You can just have defeated Bane or some other big boss, and get your ass kicked by 4 or 5 roaming guys in the streets, if you don’t pay attention and drop your guard, which makes everything feel more Batman-y… After all, he doesn’t have any super-powers, he just has his iron will, right?
All the expected gadgets are present, along with some new (and mainly pointless ones)… The RPG-kind of system where you upgrade your skills and gear is silly (in my opinion, of course), with no real options opening up… Most of the combos are hard enough to do without needing to “level up” to get them… seems silly and out of place in an action based game like this one, and I wish developers stopped using this gimmick to give the player a sense of progress…
The environment feel very Batman, with the dark and scummy side of Gotham taking the lead in the visual presentation… The city feels alive and large, but not boring.
Special mention to the fact that, as the night progresses, Batman’s suit becomes more damaged… it’s like the beatings he’s taking, etc, are really taking its toll, which is awesome… “Arkham Asylum” already had this features, and it really helps sell the concept…
“Batman: Arkham City” is must have in any game collection, in my opinion… it’s probably the best super-hero game ever done, and it has enough to keep most players busy for some days. Rocksteady have really excelled, taking the good parts of “Batman: Arkham Asylum” and just polishing them up until they’re even better, without adding excessive fluff! 10/10
After a couple of weeks, I’ve finished the Image Bank editor on the SurgeED tool… Took a bit longer than I was expecting, mainly because I had to add to the editor system the concept of child entities, with all the copy/delete/undo/redo/explorer issues associated with it…
But first of all, what’s an image bank (IB) and why do I use them?
Well, one of the main things you can do to increase performance in any engine (be it 2d or 3d) is to reduce the number of primitive drawing calls… I’m not talking about actual primitives, but calls to the function that draws them… That requires a call to the low level system, and that call has a fixed setup time, no matter how many primitives you render in that call…
So, it’s better to create a single buffer with 1000 primitives (sprites in case of 2d) and draw that, than have 1000 buffers and draw them all… The performance increase is in several orders of magnitude…
This process is called “batching”…
But to draw 1000 primitives in a single draw call, they have to share every render state (which includes all the like render properties, more importantly, the textures).
So, to draw 1000 primitives, they have to share the same texture, and this is done through creating an atlas, which is a single texture that has loads of images in it. Then, using UV mapping, we can index the separate images and use them in a single draw call to draw different objects… Below you can see an example of this:
This is accompanied by a file that describes where each of the individual images is:
<image_bank name="bm_gui_ib" delete_textures="false" normalized_coords="false" read_textures="true">
<source>
<layer type="diffuse">bm_gui</layer>
<images>
<image name="b_inv_arrow_s" x="703" y="0" sx="32" sy="95" hx="0" hy="0"/>
<image name="b_inv_arrow_u" x="639" y="0" sx="32" sy="95" hx="0" hy="0"/>
<image name="b_inv_btn" x="191" y="288" sx="61" sy="71" hx="0" hy="0"/>
<image name="b_inv_combine" x="795" y="152" sx="184" sy="85" hx="0" hy="0"/>
<image name="b_inv_exit_s" x="639" y="320" sx="73" sy="31" hx="0" hy="0"/>
<image name="b_inv_exit_u" x="543" y="320" sx="73" sy="31" hx="0" hy="0"/>
<image name="b_inv_menu_s02" x="319" y="32" sx="142" sy="25" hx="0" hy="0"/>
<image name="b_inv_menu_s03" x="319" y="57" sx="142" sy="23" hx="0" hy="0"/>
<image name="b_inv_menu_s04" x="319" y="80" sx="142" sy="24" hx="0" hy="0"/>
<image name="b_inv_menu_s05" x="319" y="104" sx="142" sy="24" hx="0" hy="0"/>
<image name="b_inv_menu_s06" x="319" y="128" sx="142" sy="24" hx="0" hy="0"/>
<image name="b_inv_menu_u01" x="0" y="0" sx="142" sy="32" hx="0" hy="0"/>
<image name="b_inv_menu_u02" x="0" y="32" sx="142" sy="25" hx="0" hy="0"/>
<image name="b_inv_menu_u03" x="0" y="57" sx="142" sy="23" hx="0" hy="0"/>
<image name="b_inv_menu_u04" x="0" y="80" sx="142" sy="24" hx="0" hy="0"/>
<image name="b_inv_menu_u05" x="0" y="104" sx="142" sy="24" hx="0" hy="0"/>
<image name="b_inv_menu_u06" x="0" y="128" sx="142" sy="24" hx="0" hy="0"/>
<image name="b_inv_menu_u07" x="0" y="152" sx="142" sy="33" hx="0" hy="0"/>
……………
The hotspot describes where is the “grip point” of the image, which is helpful for rotations and just general positioning.
An image bank then gives “names” to the images and says to the system where it can go get them (in terms of texture and positioning). A single image bank can use several textures:
This helps with the organization of the image banks…
One thing I added in the process of adding an editor for this (more on this later) was the ability of a single image have different layers (like diffuse, normal, etc). This will be helpful to define a decal system later, since I need both textures to create a really good decal, and I didn’t want to create separate systems…
Basically an image can have multiple layers, the only restriction being that all the layers have to have the same size.
Up until now, the artists would create these Image Banks by hand, positioning images in a big image and creating a text file by hand, specifying where each element was. This was time consuming and very error-prone, and this was one of the motivations for the image bank editor.
The way the image bank editor works is very straightforward… You create an image bank component, and add pages to it… Each page can have different sizes and support different layers. Then you import images to a specific page (with all layers being a different source DDS image). Then you can move the images around, using the normal tools of the trade (snaps to grid, to other objects, padding support with visual warning where two images are overlapping, etc)…
When the artist is satisfied with the image bank, he can “Generate” it and the system will create the atlas and XML file, and it becomes available to all the editor system. The component can then be deleted (it can always be created again from the image bank), or left alone.
You can also add mountpoints on the images. On the sample above, you can see the character has a sword on his hand, but if we had a character that could yield a sword or an axe (for example), we could add a mountpoint to his hand and in the game run time, attach another object to a specific mountpoint.
I’m very proud of the editor as a whole, and this component is very cool in action, since I believe it will cut down development time for 2d games a big deal (artists could lose up to 3 or 4 hours creating an atlas by hand, and add 2 more hours or so due to small errors, like a wrong position (easy to spot) or a wrong hotspot (harder to spot)).
You can see the editor in action above… the frame rate is crap, think it is because of the on-the-fly encoding… This component doesn’t perform as well as I’d want, but it’s easy to understand, considering that each image has to be drawn separately (in its own draw call), because we’re trying to create the image bank that will solve that problem in game…
Next stop in my travels in game development land will take me to rebuilding the fonts for Something Fishy, so I can start trying to port the game to tablets.
The year was 1987 and I finally got my own ZX Spectrum… I didn’t have money for games (not even copied games, let alone legal copies, which you never saw in Portugal), so I quickly learned how to program and did my first game (a text adventure), two weeks after I got it.
Anyway, that didn’t stop me from raiding friend’s houses and getting some games:
R-Type was a shoot-em-up, a horizontal scrolling game in which you destroyed wave after wave of enemies and got powerups for your weapons… Great fun, and on the ZX-Spectrum, the game was so massive you had to load the game in pieces (which implied restarting play after you passed a level). It was released in 1987 for the arcades, developed by a company called Irem.
One of the powerups was particularly memorable: a beam that would fire in 45 degrees angles in relation to your ship and bounce off the scenario… When you got this one, you definitely had an edge…
This was probably the first game I’ve ever finished on my ZX Spectrum, and it took me loads of hours…
Although this is a 1987 game, I only got my Amiga in 1990, and this was one of the first games I played…
Pirates is a game by Sid Meier (of Civilization fame) and developed by Microprose… It was also one of the first games to have the name of the main designer in the title.
In this game, you play as a pirate in the Spanish Main and you had to look for treasures, steal ships, rob cities, get status and reputation with some crowns, etc… It was a sandbox game, way before these became popular… You could build entire stories in your mind with the game serving as a framework…
The game was kind of hard for the time (I was a bit young still), since you had so much you could do at any moment… from going into taverns in friendly cities and finding that the Spanish Silver Convoy was going to pass some place at some time, and then go there to attack them and plunder, to getting status with the French Crown to get some lands and titles, the game didn’t have an “ending” by itself… you were free to chose whatever you wanted…
Never did get the hang of the ground city assaults, though…
This game really had an effect on what I wanted to do as a game developer in the future years (although I never acted in that direction, to be honest)… I’d already played sandbox games like Elite before, but Pirates gave you a feeling of belonging to a living place, and did that with gentle nudges into “story-like” elements that really appealed to me, much more than the just open and vast world of Elite.
That’s it for today, I know it has been a short entry, but tomorrow I’ll have another post up, about the Image Bank editing tool I’ve finished on SurgeEd (maybe complete with video!)…
Well, another Blizzcon has gone by and some news came from one of my favorite game developers…
No release date for Diablo III, but it seems the release is close, so crossing my fingers the game is as good as it looks (and to be honest, to see if it has aged well… It’s been almost 10 years since I’ve played Diablo, and I’ve played WoW in the meantime, that takes a lot of the Diablo ideas ten steps forward, so let’s see how it feels nowadays…)
No release date aswell for “Starcraft II: Heart of the Swarm”, and I can’t wait to play it… think it’s the most excited I’ve been for the release of an RTS ever! The DOTA thing they’re going to release doesn’t excite me that much, but I’ve never been a big fan of DOTA-type games, to be honest. It seems they’re trying to do something special with the genre, though…
And the big news… “Mists of Pandaria”, the new expansion for WoW has been announced (also without a release date)… This was expected, and to be honest I’m more or less disappointed with it.
Now for my main complaint: no epic-ness!
There’s no "”big menace” (the whole “focus on the war between the Alliance and Horde” seems like a cop-out, since I couldn’t care in the littlest – most of that war seems to be driven by petty interests and 1000 year old history… Maybe players in PvP realms feel it, but most players in PvE realms couldn’t care less). The game has some new lore coming in because of the damn pandas (they were enslaved by some guys, so there’s some bosses there), but no epic threat… Come on, we’ve fought Elemental Lords, Elder Gods (and other demi-Gods), a Lich King, armies of undead, several bad-ass dragons (including one that ripped apart the damn world!), and now we’re kicking the ass of some guys that enslaved pandas?! Seems like anti-climatic…
Of course, this might all be a part of Blizzard’s plan to do a weak-ass expansion while “Star Wars: the Old Republic”, “Diablo III” and “Starcraft II” roll out, so they don’t “waste” good content, but it seems like a dangerous game… I’m almost considering quitting the game, and I’ve spent almost 7 years of my life playing it!
There’s more information coming out in the next months, so I might change my mind about a lot of things, but I can’t stop looking at this as the decline of World of Warcraft… still, it was 7 years, it was a very good run!
I’ve been feeling the urge for playing a good 4X (eXplore, eXpand, eXploit, eXterminate) game for some time now, in the same vein as the old Master of Orion, Deuteros or Sins of a Solar Empire, but I haven’t found nothing that tickles my fancy…
Tried out “10 Min Space Strategy”, and although it was good, the AI made the experience a bit annoying (not hard, just annoying); it also lacked the depth of the aforementioned titles…
Although I’m still searching, I started thinking on the whole 4X genre and I had an idea that I haven’t seen implemented and I would appreciate: a mix of 4X and RPG…
First, for some definition: when I’m talking about RPG, I’m talking more precisely of the CRPG aspect of it, and more to the point, the stats and character building.
I’m aware that most 4X games have a certain RPGish characteristic to it… You evolve your civilization (character) through resources (experience). Some of them even have experience levels associated to your units, etc…
But the idea that came to me was more related to “character development trees”:
This is the World of Warcraft talent tree (for mages)… Every time you level up, you get a point that can spend on this tree. Although you select in the start of the game your class (and that effects what you can do, what roles you can take and how you achieve it), this affects the way you approach the game and changes a million things in the gameplay style (hence most high-level players spend an insane amount of time fine-tuning this).
There are 4X games that allow you to define “racial traits” when you start a game, but as far as I know, none of them allows you to have a dynamic/changeable tree that modifies the way you play the game while you play it, and I think that would be awesome…
I can think of several mechanics associated to this… Simple model, you get a point to apply in your “civilization tree” the first time you do some meaningful action (first planet explored, your first colony, your first defense against invaders, first death star, whatever). A bit more complex model would be to get some “civilizational experience” every time you perform a meaningful action (not only the first time). This would be a bit harder to adjust (for example, destroying a planet controlled by a weak opponent shouldn’t affect that civilizational experience that much). An even more complex model would be to have different trees and different experience levels (“Explore” tree, “Exploit” tree, “Expand” tree, “Exterminate” tree).
I think this would add an additional depth to the game, and an interesting one at that, specially if the designers would spend enough time thinking about the tree(s) and the elements within, considering all the four facets of the game…
Of course, this might be just a matter of semantics… there are plenty of 4X games that kind of do this through the tech-trees/research, but the fact you could change the civilization tree during the game, tweaking it to the particular needs (of course with some penalization, so you wouldn’t do that every 2 minutes) would lead to some interesting gameplay in my opinion…
Another thing I’d like to see in a 4X game (haven’t seen it yet as well) would be ground combats, although I admit that might add a layer of micromanagement that might not be suited to this sort of game… but it would rock to fight a battle in different layers (or more precisely, let the computer fight the battles, since I appreciate that more in my 4X… space combat strategy is a different beast in my opinion), having to decide before hand what kind of units my drop-ships would carry, and that could affect the amount of resources/facilities that could be salvaged from the planet (instead of just using an orbital bombardment to wipe it out).
Currently I have my hands full, with my spare time being occupied with “SurgeEditor”, “Something Fishy” port, and the “Cell.Ection” development for me to be able to tackle a new project, but I’d like to see this developed so I could play it, so get busy people!