Concept artist and amateur coder.
The Madk Award for Excellence in Graphic Art
Awarded by madk
on January 2, 2010
The "I Wish I Could Draw Like That" Award
Awarded by SonnyBone
on January 2, 2010
The "I Would Pay Money For This" Award
Awarded by SonnyBone
on January 2, 2010
The Graphics Wizard Award
Awarded by samel
on December 15, 2009
A lot of people seem to be exploring the idea of using a new language for Ludumdare. Wouldn’t it be neat if we could create an archive consisting of simple code in different languages which can get you started with 2D game programming specifically? The demos should be very thin vertical slices of the first things that you need to master as a games programmer, such as opening a window/screen, loading an image and drawing it, outputting text, loading and playing a sound, setting up constants, variable and using arrays to draw enemies/maps. If we could agree on a standard demo (or function collection), it could serve as a kind of Rosetta Stone because the learner knows what the code is supposed to be doing.
I started on a version and feature crept it into a complete “game” so I remade a separate first version which is much cleaner and easier to reference. Uploaded both version along with assets here:
Not sure how this could be organized, as this place is getting chaotic very soon. Maybe it’s something for the next LD.
I’ve been a little lazy, and now I’m paying the price. Fortunately I had a rather simple idea and the game is almost feature complete (at the cost of clean code…).
The game plays a bit like the old You-Go-They-Go Daleks/Robots, meaning, a bunch of enemies follow you around, trying to corner you, but in my version you have ONE big bomb and a few laser blasts (which are used to detonate the bomb once deployed). Spare laser guns (ammo) scattered around also doubles as exploding barrels. Laser blasts can go through multiple enemies and can also destroy bushes. The goal is to line or lump the enemies up and be as efficient as possible.
The graphics are inspired by Rebelstar Raiders. I’m gonna do an arcadey border for the HUD now I think.
Here’s what I was working on – a sort of Atlantis meets Rampart game with a hint of Scorched Earth and TD. Waves of enemies assault from the flanks, lobbing projectiles at the peaceful potato growing Atlantians, eroding their island.
I was feature creeping faster than I could work as usual. While I had something playable by the time of the deadline, it didn’t feel right to submit it formally. So here’s an informal preview.
It’s still missing a lot of stuff, like unit variation (air stuff is needed to force the player to adapt his aim) and level balance, a Game Over check… and more stuff listed in the ingame ToDo list.
Time spent: Dead ends >> Code > Art >>> Sound. I used BlitzMax.
I ran into a dead end with my first project, a Yaoi dungeon crawler (dungeon “master” *wink wink*). Something about minimal outfits being reveled?
With maybe a third of the time left I started on an Atlantis meets Rampart game.
The story is that they are potato farmers. Hostile forces assault from the sea, the peninsula and air. The island shrinks (becomes minimal?) as it is destructible and if the bottom gravel is removed the whole column sinks. The player gains income from potato farms and some multiplier buildings, and may purchase turrets (fires like individual Scorched Earth tanks at end of turn). There are buildings and fortifications and other stuff to buy too.
Back to code/art/music.
I don’t know what a framework is, but I wrote one, I think. I will be my secret weapon. No man’s land may be littered by corpses of my former self, but this time I might just run a little farther before being mercilessly gunned down by optimistic time estimations and delusional designs.
Arne’s Tiny BlitzMax Screen-GUI-Text thing – Rushed together in 2 days.
I’ll be working with Blecki and BurnZeZ on something. Having waked up 5hrs after the theme announcement, my third idea (the first two were lost in the waking haze) was to do some sort of Defender (old arcade game) game set on a curved scrolling playield, but the idea mutated into some sort of Asteroids Choplifter Thrust thing which I called Asterceptor. Having scrolled through the pages here, I see a few sort of similar playfield ideas.
However, Blecki and BurnZeZ had some headstart and were already working on a… thing with floating blocks which sort of gravitate together and snap into larger continents. We don’t really know where we’re heading with it, but it could be interesting. Here’s one idea.
After having failed consistently with my 48 hr entries, I think I’d like to try my luck at the Jam, taking the role as gfx/art guy. My art can be seen on androidarts.com. Drop a comment below if you’re interested in writing that text that make things go. Things that are not broken. If you are smart, we can be strong!
Eherm. As a side note, I thought it would be fun if LD had some sort of mascot, so I drew a bunch of proposals. Not sure what to think of them though.
So, I didn’t submit my game because all that the player can do at the moment is exploring around. I was planning to do some enemies of course, but time (and wrist RSI) punched me in the face.
+ There are now 3 Fog levels, black, fogged, lit. Looked better when I blurred and colorized the fogged images a bit.
+ Scrolling screen around edges. Visibility is increased by the number of rays passing through a tile, meaning I get a sort of peripheral anti-aliasing I guess.
+ Scrolling centers on character moving near edge.
+ Selection box that blinks and follows moving characters.
+ Made some quick button gfx (idle, hover, pressed).
+ Started on bottom GUI. Mouse knows better if it’s on the map or not. GUI is selected tile/unit sensitive.
+ Sloppy gfx for some furniture (4). Noodled on other gfx as well.
+ Separated walk blocking and sight blocking.
+ Default Chryssalids spawn in Alien Containment area.
+ Lowered walls so they don’t exactly obscure the tile behind.
Aside from feature creeping as usual, my drawing hand RSI is making it very difficult to work. Here’s the progress so far on Chryssalid Escape. The goal of the game is to sneak out of Alien Containment and reach the exit. X-COM soldiers stand in your way, but perhaps they can be used to increase your numbers? See previous post for more details.
Screenshot. Bit of a mess. The perspective isn’t really working as good as isometric, and the walls should not be exactly 2 tiles high (they do overlap).
FEATURES SO FAR:
+ Ambient sounds. Very easy to make and remarkably similar to how X-COM sounds.
+ Footsteps. Other sounds are waiting to be used.
+ Graphics for 16 floor tiles, 5 wall tiles, and 4 Chryssalids. Using X-COM sprites as inspiration.
+ Map (128*64) in multiple layers that can be scrolled and edited a little ingame (mouse). Loads data from Photoshop Raw (which is my map editor).
+ Units (characters) with action points. Can Move, turn, strafe, collide.
+ Brute force Line of Sight rays. Hidden units not drawn.
+ Simple Immediate Mode GUI. Keyboard can also be used.
+ Data structures for the various units (mostly unused atm).
– Add (and layout) all buttons for control (mostly using keyboard atm).
– Button Gfx.
– Title screen with art, New game (reset all), Resume game, Quit and all that.
– Win and lose conditions (count Units, step on exit tile). Finish art for win screen.
– Rest of the Wall, Unit, Obstacle, Effect Gfx.
– Figure out where to store corpses and destroyed obstacles.
– Enemy roaming ai (use existing movement methods).
– Enemy stalking, noting target points.
– Enemy shooting and projectiles.
– Make sure the camera is focusing on visible enemy action and projectiles.
– Minimap. Pixmap that can be updated. Click on it to scroll.
– Edge scrolling instead of the wonky map click scrolling.
– Chryssalids bumping into obstacle and enemies should use existing damage function. Obstacles might need resistance values.
– Chryssalid Zombie and Cocoon transformation timers.
+ 805 lines of BlitzMax Code
+ Tiles are 48*32 px, asin(2 / 3) = 41.8103149 degrees (90 = up).
+ Using lots of constants to set things up, so I can change resolution and such somewhat easily later with the game adapting to it.
+ Art drawn at 4x in Photoshop.
First I wanted to do something in the vein of Last Armageddon. Demons, their homeworld ravaged by aliens, have to find keys to a portal in their ruined city and escape to Earth. Magic vs Tech. Dragon Quest style, maybe with a Dangerous Swimsuit in there somewhere.
Then I felt like doing a TBS. As a twist, you play as the Chryssalids who have to escape the Alien Containment, with the X-COM soldiers hunting them down. The Chryssalids are simple “Alien” units with no upgrades or equipment (to code), but they can increase their numbers by infesting soldiers (in close combat). To offset this, the soldiers get more dangerous as the game progresses. The soldiers act more as stupid semi-mobile turrets that you can sneak up on. Perhaps they advance towards the position where they last saw something, allowing you to set traps (or get killed more efficiently).
I was thinking the game should be a single level that has to be traversed, the escape being the hangar/elevator rooms.
Unfortunately, I might need to code some pathfinding stuff, and the line of sight stuff is not trivial either. It requires some clever ray stepping (Digital Differential Analysis?), and something to speed recalculations due to movement up (adding and subtracting in the fog array as unit see and unsee?). I don’t know. On the other hand, a TBS could afford very slow update rates. Right now I just shoot a lot of rays at a high resolution. It obviously doesn’t work that well even though it’s costly.
Right now I’ve got a map class, some simple scrolling/drawing/selecting and brute force LoS. Working in BlitzMax. The engine is still pretty abstract and adaptable. I might switch to a more manageable project or just watch funny youtube videos all day while pondering the more important stuff that I should be doing.
I’ve made steady progress, but engines with tile map and object-object collisions can take a while to write, and it was not until this afternoon that I managed to start programming enemies, treasures, combat mechanics, levels and other such content. The game itself still looks nearly identical to the last screenshot, even though there’s a lot more under the hood. I haven’t made any art yet, except for this hastily put together promo-doodle, which suggests to you that my game will take place in my Hydon setting.
Anyways, I’ll work on the project a little more tomorrow. Hopefully I’ll have something playable within days.
Things have not being going that well for me. I had to rewrite my engine two times. The first time I tried synchronized grid-based movement for the characters. They would use a global variable to slide from cell to cell… but I couldn’t figure out a way to make queues and priorities work. Who would get first dibs on an empty cell? What if there was a really complex queue? Would they figure out a way to move out of the way? It also looked a bit strange with characters not being able to move into seemingly empty cells because someone had called dibs on them.
So I tried something a bit more analog, but made a mess of the code and there were big problems with getting stuck against tiles and not sliding against them properly. The maze is really tight so you need to be able to easily slip around corners.
Finally, I managed to write a huge chunk of code which slides the player around edges, e.g. if pressing against a wall the game will look for a gap nearby and walk the character towards it. I also added buckets which helps me with depth sorting (overlapping) and it will also make collisions easier to detect later. Some characters will be vulnerable from the back. Slimes are sort of omnidirectional though.
There’s a lot of work left, but perhaps I shouldn’t underestimate what I have finished so far. Regardless, it will be a busy day tomorrow.