About Christina Antoinette Neofotistou (twitter: @castpixel)

Illustrator and gamedev. Hardcore gamer since 1984


reach me @ [email protected]


Christina Antoinette Neofotistou's Trophies

Featured in GeekyJuegos.com
Awarded by GeekyJuegos
on January 9, 2016
All hail the queen!
Awarded by bitserum
on August 29, 2013
The Construct 2 User Award
Awarded by 7Soul
on December 19, 2012

Christina Antoinette Neofotistou's Archive

#LD38 I’m in!

Wednesday, April 19th, 2017 2:46 pm

I’m in! I usually make cute but unfinished unfun games. Let’s see if I can do better this time!

photoshop cs5, construct 2





Dungeon crawler making of

Wednesday, December 16th, 2015 7:08 pm


Hi all!

Here’s a post-mortem for Lands of TSR Lore , my tiny dungeon crawler made from scratch!

This was my 10th Ludum Dare and I thought I’d treat myself.

Early on I realized I will have no fun if I follow the theme, my ideas weren’t exceptional. What I thought was a fun idea about growth was, in fact, just an idea about leveling up in an rpg. Nothing better was coming, and since my internet connection chose that time to abandon me for 6 hours (yes, thank you internet gods), I felt less and less inspired.

Instead of despairing and spoiling all the fun for myself, like I usually do, I decided I’d just make a tiny rpg thingy. An old-school 2D (2.5D?) dungeon crawler, like Eye of the Beholder, Lands of Lore, Wizardry, Etrian Odyssey, the sort of games that felt magical to me, because the potential was there for a 3D world made of carefully pixeled pixelart. The closest pixelart can get to being immersive, without actual 3D transformations like wolfenstein (which kind of spoils it for me).

So, what went well?
First of all, a TON of code. I spent a ton more time coding than any other LD. I also spent a ton more time coding than I did content creation, which is refreshing because I’m always self-conscious that my art is better than my code is. Here’s all my “event groups” (it’s how Construct 2 allows you to organize code).


Each of those groups contains 3-4 dozen events. And not just if/then statements and quick solutions, I had to think hard about the algorithm that renders this:


into *this*:this2
Here’s the code by the way:

After a lot of headscratching, trigonometry saved the day: I made code that can read a bunch of 2d tile positions in the 4 cardinal directions at once, instead of having to input each separately. This code reduction is important, because tiles, monsters and objects (and later on, decorations) are going to be using the same function. Making changes is certainly easier the less code I have.
The basic idea was: the sine and cosine of 0,90,180 and 270 degrees have this useful property of having values of -1,0,1. So why not incorporate the code for checking for North/South and East/West in the same line, but multiply each half with either sin() or cos(), half the line is multiplied by 0, and the other half remains.

field-of-visionThe inventory: I started this on a whim near the end, so you could pick up those shields.

Naturally I fumbled with the visualization code for the inventory and didn’t want to waste more time on it. Therefore all the shields you pick up just crumble to dust. I’m sorry ^-^’ The crumbly ancient shield graphic is from Eye of the Beholder by the way, I thought it was funny, since it’s a 24 year old game. I certainly feel old for having played it when it came out 😀

I made a wall set by using a 1-point perspective set of lines, and decided I wanted some extra bits sticking out in corners, for the thing to look more 3-dimensional (ergo the pillars in the front row)

full wallset template
I also thought how cool it would be to have the dungeon sort of smoothly transition from one tile to another, like Land of Lore first did. I probably used the same trick as they did, I used r0j0hound’s html5 canvas plugin for Construct, which allows me to take a screenshot and then manipulate it (scale it up) over the course of 3 frames, while also repositioning it to keep the horizon line level. This,  along with mirroring the floor and wall graphics with each step (still a little buggy) gives a very solid illusion of moving forward, comparable to even recent AAA titles (Etrian Odyssey).

The whole game window is 192×108 pixels, smaller than SNES resolution, the height is smaller than even gameboy resolution. It’s the only way to get away with pixelart that looks good and polished.


Tiny screen size means it’s not overkill to have 11 frames of attack animation. It’s basically a 50×50 sprite, quite reasonable for platformers and such, and absolutely screen-filling at this size 😀
slime slime

I like the dungeon music I wrote, inspired by Wizardry and Westwood studios’ brilliant Adlib music, using a Yamaha chip emulator called JuceOPLVSTi

Dungeon Music

More things that went right:

  • I enjoyed  myself! I’m going through a very rough personal time, with more stress than I’ve ever had, and yet on Saturday morning I was singing MISTER I’LL MAKE A MAN OUT OF YOUUUUUU from Mulan at the top of my lungs with a smile on my face.
  • I felt alternately worthless and god-like while coming up with solutions to  math problems
  • a lot of code (under the hood) makes this a lot more complex and a lot more expandable than it looks. For example weapon slots are properly coded and will be fully functional once I make a proper inventory. Weapons have d20 stats, chance to hit is calculated based on Armor Class, strength bonuses apply, etc. It’s all rather pleasing for my geeky side.
  • editing levels is a dream come true for me! Make a top-down tile-based map, as big or complex as I like, and it instantly gets shown in 3D. Through a 3D engine that *I* made, and completely understand. That’s magic for a person like me who lacks a lot of math knowledge that makes 3D representation feasible.
  • the fact that our tools have come so far from 1991, that a single person can in 3 days replicate technology that was state of the art in AAA games back then, makes me SO happy to be indie
  • I had one person say they *love* the game. That’s all you can hope for, that’s all you need, one person.

What went wrong:

  • I didn’t match any of the themes. I don’t mind, but people do
  • no gameplay apart from killing a few slimes and getting to the exit.

I know people make genius experiences for LD that last hours or have that wow factor and innovation. I admire and respect them, and hope I’ll have that spark of creativity myself some day. Until then, I’m happy to just chip away at little problems, learning to think like a coder, making game spaces I can explore. Thanks for being here for the ride and reading about it.

I love LD!

Growth – rpg Field of vision

Sunday, December 13th, 2015 1:06 pm

Doesn’t seem like much, but I managed a field of vision that works independent of direction, instead of writing tedious statements like

-> X-1, Y-1 -> render tile

Trigonometry is great

field-of-vision Clipboard01

Growth- rpg: Smooth navigation

Saturday, December 12th, 2015 3:52 pm

Smooth navigation, courtesy of Canvas. Now to tackle turningdungeon engine2

Growth – rpg

Saturday, December 12th, 2015 10:39 am

I had no internet for half a day :S
It doesn’t matter, because this is too ambitious to do anything with. But I won’t give up! Here’s my unnamed dungeon crawler:


I’m in!

Friday, December 11th, 2015 11:35 am

I’m in!
This time severely limited by time and mental reserves, but, it’s my 10th Ludum Dare! Maybe I can make it count!

Photoshop CS5 for the graphics, Fruity Loops for sound and Construct 2 for code.
As per usual, I expect to make a pretty pixelart game that is very little fun.

Here’s some stuff I pixeled earlier

Good luck everyone <3



My monster sim non-game

Wednesday, August 26th, 2015 1:19 pm

monster play2
Sometimes, LD is just a space for me to experiment and learn.
This is what I made this time. The results for this entry are going to be

FUN: zero
THEME: 100%

Play” it here

I’m in

Friday, August 21st, 2015 3:45 pm

I’m in! This will be my 9th LD.
Photoshop CS5, Flstudio and Construct 2 as usual

I don’t always finish or make fun games, in fact I mostly make half-formed engines. But I always have fun and learn tons of news things.

This was my latest LD game:


Ice Story Results

Tuesday, May 12th, 2015 3:01 am


If I go by the voting results, I’m apparently getting worse at gamemaking. Slight improvement on Fun and audio.

This makes no sense to me, as Ice Story is my most fun game yet. Getting the same results even though I’ve improved a ton is very counter-intuitive and disappointing. I was quite proud and thought about developing further. Now I’m not so sure (but still proud of it!)

I made a post compo version based on the feedback and uploaded on Newgrounds. People hated it even more.
Anyway, good show everyone, hope you had fun

Coolness 87% #34

Graphics(Jam) 4.54 #42

Audio(Jam) 4.02 #123

Mood(Jam) 3.70 #124

Overall(Jam) 3.77 #187

Fun(Jam) 3.55 #397

Humor(Jam) 3.12 #511

Innovation(Jam) 3.10 #640

Theme(Jam) 3.18


Pico 8

Monday, May 11th, 2015 10:44 am

Out of curiosity, has anyone made a game with PICO-8 for this LD? I’d love to play it

I tried my hand at PICO-8, and its wonderful limitations caused this to happen:

Ice Story ( 氷物語 ) post-compo version

Tuesday, May 5th, 2015 3:30 pm

Thanks to the enormous feedback, I managed to squash a lot of bugs and I rearranged the level difficulty for my game Ice story. The main new feature is new controls for non-querty keyboards. The spell button is now mapped to [Z], [W] and [Y] instead of just [Z]. I also changed the throw key from [Z]+[X] to just [C]

Thank you for the help everyone!

Play the compo version HERE . Remember to rate the pre-compo version/screenshot1 screenshot2 screenshot3



Full of FM synthesis, Sega arcade-quality goodness.

Get it HERE or, better yet, play the GAME


So you know how sometimes a game feels like it already exists, and you are just discovering it, instead of inventing it? This is one of those.


Ice story (氷物語 – Koori Monogatari) is my loving take on Bubble Bobble and Snow Bros, and specifically the arcade versions I played as a kid, with a mix of Rocket Slime.b4tumblr_m3dhj5fT3g1qazvr5

My main thinking was to have ice as a weapon, but the freeze spell is not the weapon, that’s just middle-ware. No, the actual weapon is the sequence of events you need to perform, sort of a ritual, a routine, in order to get rid of the dinos. Freezing enemies to perfection, then flicking them in the air by performing the Dash special move, then successfully catching them on the rebound.

I tried to make the routine interesting and satisfying, so you’d get into it fast and it would hopefully become habitual and pleasurable. I know it has for me. Controls are kind of tough at first, they might need tweaking to appeal to first-time players. On the other hand, I may make the judgement call that players should just deal with these controls, because they reward you with considerable power and versatility once you’ve mastered them. We’ll see.

Here’s all the Technical Stuff ™: I used Photoshop CS5 for graphics and animation. As usual I start with a messy mockup that contains every sprite and work my way up to more refined sprites and tiles in a new file if necessary. Here’s some process on the main character, an ice mage called Nya. Her favorite food is narutomaki. I based her loosely on my friend and pixelartist @vagaaabond (go check her out).nya runThere was some worldbuildinggoing on in the background, even if it didn’t explicitly make it in the game. It’s still there somehow.
Nya is a peace-loving nerd who likes nothing better than to study her ice magic alone. In quiet.  She is interrupted by an infestation of, um, dinosaurs falling from the sky. This is clearly the doing of her friend Kya. Why can’t she be content with being an ice mage too? Why does she have to dabble in chaos and prehistoric monsters?
I thought some blend of japanese culture and western fantasy would be cute. I also stumbled upon an article that said job recruiters in the US strongly dislike “black” names in application forms and don’t call back 27% more often than “white” names. This is obvious to anyone who’s ever encountered racism and I also don’t mind making white people uncomfortable, so I chose “Nya” from that list, although I might make it Shaquandra in my post combo version.


Then came level building. I really had to stop myself from making these, they were so fun. I made 10 and decided to stick with that, so I could playtest and refine them sufficiently, at the same time as I was checking the engine for (tons of) bugs.

Another interesting thing happened during level design that convinced me this game was on the right track. See, I had already made a “hurry up” mayhem mode to incentivize the player to solve the level faster. It looks like rocks randomly spawning from above and then falling until they meet a platform with some camera shake, like so:rocks fall

So I had an idea for a level that called for destructible terrain. I thought of scrapping it at first, because I didn’t have time to make an exploding terrain animation. But then it hit me, I already have one. I made an invisible “bomb” object over the terrain I wanted destroyed and wrote a function to the effect that “when terrain is destroyed, make the terrain tiles disappear and create a rock there”. The illusion is perfect, and it comes from thinking “inside the box”, re-using vocabulary that my game already had. That was a first for me, and it’s a very powerful feeling.

level with bomb

I used a free YM2151 emulator VOPM for the sounds, and let me tell you, it made a whole lot of difference. The YM chip was hardware by Yamaha famously used in the Sega Genesis, and some awesome person has made a collection of instrument presets from actual Sega games. Just the thing for a dev in a hurry. I was never proficient with FM synthesis, but comfortable enough to tweak the already pretty stellar presets into something more usable for my sounds.
I managed a pretty self-contained and cute soundtrack consisting of an intro tune, 2 in-game themes and a gameover jingle. I’ll upload those shortly too.


the main gist of my intro idea stayed intact despite the time constraints of the jam, all because of Construct 2′ awesome visual editor. It’s basically “type this on screen” then wait 1 second, then do something else. It goes on for a while 😀

intro code
And another thing that saved me tons of time was making the tutorial “action replay” pre-animated. I’ll explain: I captured a short segment of me playing the game, and because it’s pixelart, it came out crystal clear and tiny at 125kBytes. Compare that to the hassle of making code for actually recording your position and button presses at every dt. Since Construct 2 imports GIF files as sprites (very reliably too!) it was easy to go back and annotate the controls.ttorial


LDjam is super fun and awesome!
Also here’s the spritesheet with all my graphics for the game.

Thanks for reading this far, play the game, rate it, hate it, have fun with it and in general 😀

Christina out!





I’m in!

Friday, April 17th, 2015 1:37 pm

I’m in!

Photoshop CS5, Construct 2 and FLstudio are my weapons as usual.
This is my 8th LD! Here’s some of my past, un-fun but pretty to look at games 😀 I regret nothing!
Hopefully more women and girls will participate this year.

Have fun everyone!

<3 Christina
13139-shot0.png-eq-900-500 13139-shot0.png-eq-900-500 13139-shot1.png-eq-900-500 131339-shot0.png-eq-900-500 143139-shot0.png-eq-900-500

Super Snow Girl

Sunday, December 28th, 2014 5:59 pm
my beat-em-up experiment for Ludum Dare

my beat-em-up experiment for Ludum Dare

Why not give my beat-em-up experiment a try?

I didn’t mean to complete this. Just to have fun with graphics and mechanics. And it worked!
What I learnt on this project:
Enemy AI, beatem-up Z-movement, Finite State Machines, hitboxes and attack boxes.

Super Snow Girl

You rock, LD.

Super Snow Girl gameplay

Thursday, December 11th, 2014 2:30 pm

Gameplay gif of my beatemup engine “Super Snow Girl”

nw 2014-12-11 23-16-12-19

[cache: storing page]