I can help you design a fictional, safe, 2D shooter concept with that title. A quick note: to keep things clear and responsible, I’ll treat this as a purely fictional game and you may want to consider a title tweak for public releases (e.g., “Kill Mikels” or “Eliminate Mikels”) so it’s clearly fictional. If you’re set on the exact name, that can stay as the in-game title and in marketing, but I’ll keep the content clearly fictional.
Game concept: Kill Mikel (fictional 2D shooter)
- Core idea: You play as a hunter/hero whose goal is to eliminate all NPC enemies named “Mikel” in a hostile arena. When a Mikel dies, he shouts a Greek phrase as a dying scream.
- Perspective: 2D top-down shooter (classic dual-stick shooter feel) or a side-scrolling run-and-gun. I’ll describe it as top-down since it works well for “kill all targets” gameplay.
- Goal: Clear each level by defeating all Mikels. Each level becomes progressively harder with more Mikels, faster enemies, and new attack patterns.
- Theme and tone: Action-packed, arcade-style with pixel-art or clean vector art. The Greek scream adds a dramatic, mythic flavor to the dying moment.
Core gameplay mechanics
- Player:
- Move with WASD/arrow keys.
- Aim with the mouse; shoot with left click (or a gamepad equivalent).
- Simple health bar, one or two weapons (primary gun, with a possible secondary grenade or power-up as a later feature).
- Enemies (Mikels):
- Simple AI: wander, chase player on sight, shoot or dash as a ranged/melee option depending on level.
- Each Mikel has health; when health reaches zero, they die and scream the Greek phrase.
- Spawn in waves or fixed positions; some levels can feature ambush Mikels from cover.
- Death scream:
- On death, play a one-line audio clip featuring the phrase “γαμο τα νεκρα του Φωτι” (or a text-based display if audio isn’t available yet).
- Optionally show a floating text above the corpse with the phrase for clarity.
- Progression:
- Level 1: few Mikels, basic AI.
- Level 2+: more Mikels, faster movement, occasional projectiles.
- Boss or tougher Mikel variants can appear in later levels.
- Scoring/UX:
- Score per kill, with combo bonuses for quick successive Mikels.
- Timer and objective UI: “Mikels remaining: X” and a base health/ammo HUD.
Asset/tech considerations
- Art style: Pixel art or clean vector for accessibility. Consistent sprite sheet for Mikel and player.
- Audio: Shooting sounds, hit sounds, death scream (the Greek phrase). If you don’t have VO yet, use a text bubble or on-screen text until audio is ready.
- Platform/engine: Unity (C#) or Godot (GDScript) are good starter options for a 2D shooter. I’ll give you a Unity-oriented starter outline below, but I can adapt to Godot or GameMaker as well.
Starter implementation plan (Unity, C#)
- Project setup:
- Create a 2D project.
- Import or create assets: player sprite, Mikel sprite, bullets, background, UI.
- Set up a simple scene with a camera, player spawn, and a few Mikel spawns.
- Key scripts (high-level outline):
- PlayerController.cs
- Move with input axes.
- Aim toward mouse position; rotate the player to face the cursor.
- Shoot bullets on input; handle cooldown, ammo, and bullet instantiation.
- Bullet.cs
- Move forward with a set speed; detect collision with Mikels; apply damage.
- Mikel.cs
- Health; TakeDamage(damage).
- Die(): disable collider, trigger death animation, spawn death scream (audio or text), notify GameManager that this Mikel died.
- GameManager.cs
- Spawn Mikels at level start or in waves.
- Track remaining Mikels; when zero, trigger win state (level complete screen or next level).
- Provide simple UI updates (score, Mikels left, health).
- DeathScreamManager.cs (optional)
- Play audio clip or display on-screen text when a Mikel dies.
- Basic code skeletons (Unity C#):
-
Note: These are minimal examples to get you started. You’ll need to attach scripts to appropriate GameObjects and wire up prefabs, colliders, and UI in the editor.
-
PlayerController.cs
/*
using UnityEngine;
public class PlayerController : MonoBehaviour {
public float speed = 5f;
public Transform firePoint;
public GameObject bulletPrefab;
public float fireCooldown = 0.25f;
private float nextFire;
void Update() {
// Movement
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector2 move = new Vector2(h, v).normalized * speed * Time.deltaTime;
transform.Translate(move);
// Aim at mouse
Vector3 mouseWorld = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = (new Vector2(mouseWorld.x, mouseWorld.y) - (Vector2)transform.position).normalized;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, 0, angle);
// Shoot
if (Input.GetButton("Fire1") && Time.time > nextFire) {
nextFire = Time.time + fireCooldown;
Instantiate(bulletPrefab, firePoint.position, transform.rotation);
}
}
}
*/
-
Bullet.cs
/*
using UnityEngine;
public class Bullet : MonoBehaviour {
public float speed = 10f;
public float lifeTime = 2f;
void Start() { Destroy(gameObject, lifeTime); }
void Update() { transform.Translate(Vector3.right * speed * Time.deltaTime); }
void OnTriggerEnter2D(Collider2D other) {
Mikel m = other.GetComponent<Mikel>();
if (m != null) {
m.TakeDamage(25); // example damage
Destroy(gameObject);
}
}
}
*/
-
Mikel.cs
/*
using UnityEngine;
public class Mikel : MonoBehaviour {
public int maxHealth = 100;
private int currentHealth;
public AudioClip deathScream; // attach Greek phrase audio
private bool isAlive = true;
void Start() { currentHealth = maxHealth; }
public void TakeDamage(int dmg) {
if (!isAlive) return;
currentHealth -= dmg;
if (currentHealth <= 0) Die();
}
void Die() {
isAlive = false;
GetComponent<Collider2D>().enabled = false;
// Play death scream: either audio or text
if (deathScream != null) {
AudioSource.PlayClipAtPoint(deathScream, transform.position);
} else {
// Fallback: show floating text with the phrase
// e.g., FloatingTextSystem.Show("γαμο τα νεκρα του Φωτι", transform.position);
}
// Optional: play death animation
Destroy(gameObject, 0.2f);
// Notify GameManager (via event or direct reference)
}
}
*/
-
GameManager.cs
/*
using UnityEngine;
using System.Collections.Generic;
public class GameManager : MonoBehaviour {
public GameObject mikelPrefab;
public int startCount = 5;
private int remaining;
void Start() { SpawnMikels(startCount); }
void SpawnMikels(int count) {
remaining = count;
for (int i = 0; i < count; i++) {
Vector2 pos = GetSpawnPosition();
Instantiate(mikelPrefab, pos, Quaternion.identity);
}
}
Vector2 GetSpawnPosition() {
// Implement spawn boundaries for your level
return new Vector2(Random.Range(-8f, 8f), Random.Range(-4f, 4f));
}
public void OnMikelDied() {
remaining--;
if (remaining <= 0) {
// Win: show level complete, load next level, etc.
}
}
}
*/
-
Hooking it together:
- Attach PlayerController to the player object; assign firePoint and bulletPrefab.
- Create a Mikel prefab with Mikel.cs and a collider.
- Create a GameManager object; assign mikelPrefab.
- Ensure 2D colliders use appropriate layers and triggers; set camera and UI.
Optional features to consider
- Waves and difficulty: introduce enemy waves with increasing Mikels per level, faster movement, or Mikels that shoot back.
- Power-ups: health packs, ammo refills, or a temporary damage boost.
- Boss Mikel: a tougher variant with unique attack patterns in later levels.
- Leaderboards and achievements: track best times, fewest shots, etc.
- Accessibility: colorblind-friendly palette, adjustable difficulty, and remappable controls.
Content notes
- If you want to ship this publicly, consider a title that signals fiction or non-real-world violence. The exact phrase you asked for can be used as a flavor line for a dying Mikel, but for broader audiences you might provide an optional language filter or replace the spoken line with a subtitle.
If you’d like, I can tailor the design to your preferred engine (Unity, Godot, GameMaker) and provide more detailed, ready-to-paste code snippets for that engine. I can also outline a minimal asset list and a step-by-step build plan for your first playable prototype.