• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 14:31
CET 20:31
KST 04:31
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Intel X Team Liquid Seoul event: Showmatches and Meet the Pros9[ASL20] Finals Preview: Arrival13TL.net Map Contest #21: Voting10[ASL20] Ro4 Preview: Descent11Team TLMC #5: Winners Announced!3
Community News
Weekly Cups (Oct 20-26): MaxPax, Clem, Creator win62025 RSL Offline Finals Dates + Ticket Sales!10BSL21 Open Qualifiers Week & CONFIRM PARTICIPATION3Crank Gathers Season 2: SC II Pro Teams12Merivale 8 Open - LAN - Stellar Fest5
StarCraft 2
General
RotterdaM "Serral is the GOAT, and it's not close" Weekly Cups (Oct 20-26): MaxPax, Clem, Creator win Weekly Cups (Oct 13-19): Clem Goes for Four DreamHack Open 2013 revealed Intel X Team Liquid Seoul event: Showmatches and Meet the Pros
Tourneys
Crank Gathers Season 2: SC II Pro Teams Merivale 8 Open - LAN - Stellar Fest SC4ALL $6,000 Open LAN in Philadelphia Kirktown Chat Brawl #9 $50 8:30PM EST 2025 RSL Offline Finals Dates + Ticket Sales!
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 498 Wheel of Misfortune|Cradle of Death Mutation # 497 Battle Haredened Mutation # 496 Endless Infection Mutation # 495 Rest In Peace
Brood War
General
What's going on with b.net? Map pack for 3v3/4v4/FFA games BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion Ladder Map Matchup Stats
Tourneys
BSL21 Open Qualifiers Week & CONFIRM PARTICIPATION [ASL20] Grand Finals Small VOD Thread 2.0 The Casual Games of the Week Thread
Strategy
How to stay on top of macro? PvZ map balance Current Meta Soma's 9 hatch build from ASL Game 2
Other Games
General Games
General RTS Discussion Thread Path of Exile Stormgate/Frost Giant Megathread Nintendo Switch Thread The Perfect Game
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread Canadian Politics Mega-thread The Big Programming Thread
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread Movie Discussion! Korean Music Discussion Series you have seen recently...
Sports
MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion 2024 - 2026 Football Thread NBA General Discussion
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Recent Gifted Posts
Blogs
Challenge: Maths isn't all…
Hildegard
more word salad -- pay no h…
Peanutsc
Career Paths and Skills for …
TrAiDoS
Reality "theory" prov…
perfectspheres
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1778 users

Developing a game prototype: Day 0 - Introduction

Blogs > heishe
Post a Reply
heishe
Profile Blog Joined June 2009
Germany2284 Posts
February 13 2012 20:25 GMT
#1
What I'm going to do

It's semester vacation and in order to not fall into the depths of procrastination, I've decided to take on a little project for the next couple of weeks.

Starting on the 15th this month, I will take about four weeks to brainstorm some ideas and fully implement them in a working game prototype. I will post a blog with progress every working day (I won't do anything on weekends) and by the time the thing is finished (or the time is over) I will upload the prototype for you to play.

Besides outlining what I've done to the gameplay itself, the blogs will focus on the technical aspect of development. You will probably see some class diagrams or links to slides or PDFs that explain some technical concept that I'm going to apply.

Motivation

I've been a hobbyist game-developer for quite some time now. I think in 2007 I finished my first game, which has since been long lost and lies in some HDD graveyard among other broken hard drives of mine. It was a simple breakout clone with some extra features.

Since then, I haven't really finished any games. I always discovered some technical challenge related to game development, implemented it, and that was basically that. I've written maybe a dozen small "prototype-alphas", meaning that I would implement one specific mechanic to see if it would motivate me to work on it for a longer timespan, notice that it didn't and be done with it. Then I've written a couple of tech demos and two frameworks/engines.

After all this time and work, I have nothing to publically show for it. I have accumulated a decent amount of important knowledge, but none of my works are online and free to see for people who are interested in it.

That's what I want to change.

The main goal will be to have something to put on a website and say: "This is mine. I hope you enjoy it and have your 10 minutes of fun with it". That would be great. I want to start building a portfolio. I have bigger goals for games (and had them for a long time now), meaning emotions I want people to feel or philosophical ideas that I want to present, but that's none of my concern right now. The focus is on taking an idea, implementing and polishing it to the end, and then having something to show for it.

The schedule

There's no real schedule. Since I already have the basic gameplay idea that I want to implement (more on that in the next section), I will devote the entire 15th to think about what it is probably doable in these 30 days, cut half of it since programmers always overestimate what is doable, and then flesh out the details of those ideas.

Then, I'm going to pin down what kind of systems I need before starting, and set up the basic infrastructure that is required for me to prototype the game. I already have all technical systems that I'm going to need in a little engine that I wrote a couple of months ago, so most of that work will be to create a couple of new folders in Windows and rename a couple of files.

The Game (oh, yeah, you just lost it)

The basic core of the game that I want to get working first will be simple, one on one, player vs NPC swordfighting.

The player uses their mouse or one of the analog sticks of their gamepad to directly control the weapon in the hands of the player character.

The player reacts to swings from the opponent by using the mouse / analog stick to swing their own weapon against the weapon of the opponent, and swings at weak spots in the defense of the opponent to do damage. The goal is to exploit weaknesses in the opponents fighting behaviour and trying to get in hits without taking any yourself.

The idea is that every movement of the mouse or the analog stick on your gamepad should be reflected as a movement of the sword in the game. If you move your mouse fast, it will do more damage, but the resulting momentum of your weapon will make it harder to swing it back in the other direction, exposing a weakness in your defense that can be used by your opponent. Similarly, making slow and careful movements makes it easy to keep your weapon under control, hence providing optimal defense. However, it also makes it hard to do any damage.

I want to make the combat feel quite fast, so it isn't going to be easy. Optimally there would be enemies who use a certain fighting style, and then you, the player, has to learn and get to know that style and quickly react to movements of your opponents weapon. Optimally it would be akin to learning how to counter builds in SC or SC2, where you can theoretically react very quickly and successfully if you see some build for the first time, but you will be able to counter it a lot more effectively and with less brain power required if you play against it a lot. You become more badass over time.

This will of course immediately introduce some elements of rogue-likes, since learning something will make you die a lot, but I haven't throught that through that much yet. That's what Day 1 is for.

The game is played from the top down perspective, by the way.

From a game-development perspective, the primary challenge of implementing this combat system will be to figure out the exact control scheme. Does the sword automatically swing back to it's default position if the player doesn't move his mouse? Or will it remain static where the player moved it last after he doesn't use the mouse anymore?

Apart from that, the only important point is that I'm going to spend about 0 time on the graphical representation, since it will be a prototype only. The player character and the enemies will likely be colored circles, and the weapons will look like thick, colored lines.

Maybe, and that's a huge maybe, if I get everything working a week early or so, I might spend some time creating rudimentary character and environment art, just for the sake of spending some time on it (I can't draw at all). But even then, I'll probably rather spend the time polishing gameplay more or introducing new elements, like playing around with different weapon types or something.

What I'm starting with

The engine that I'm using to write this thing is self-written and pretty powerful. It's for 2D games only, but still it is capable of some advanced features that you rarely see in 2D games. I originally wrote it for another game prototype that I wanted to develop, which would've been a stealth game, so my engine now supports real time lighting and shadows, custom shaders, fully integrated TILED-Map-Editor, scripting with LUA, basic AI things like pathfinding and state machines, and some other things I can't think of right now. None of which I'm going to need for the prototype that I'm going to make now.

The engine is still useful though since it provides me with basic gamestate and resource management, as well as a simple to use entity-component-system for every object that somehow needs to be represented in the game (I will go into details of this on day two, I think, since I need to make a couple of changes to that system before I can start programming the game), and a lot of bonus stuff that I would otherwise have to do from the ground up (collision detection, math stuff, etc.). Most importantly though, I'm already very familiar with it (since I wrote it), so I won't have to spend time to get going with some other engine.

Oh, the whole thing will be written in C++ and the engine is largely based on the groundworks of the SFML library.

If you've made it this far

Thanks for reading! I see that you are probably interested in this and I hope you will enjoy my future blogs, too!


*****
If you value your soul, never look into the eye of a horse. Your soul will forever be lost in the void of the horse.
ClysmiC
Profile Blog Joined December 2010
United States2192 Posts
Last Edited: 2012-02-13 20:32:33
February 13 2012 20:29 GMT
#2
This looks awesome, and it's a sweet concept. I hope you stick to this game, I'll definitely follow your blog. Best of luck!

Edit: It'd be cool if you could incorporate rotation of the mouse into the engine somehow. Although I don't know if there's anything on a controller or gamepad that could play a similar role, unless it incorporates 2 analog sticks... or if it's even possible to detect mouse orientation.
micronesia
Profile Blog Joined July 2006
United States24729 Posts
February 13 2012 20:31 GMT
#3
Sounds very interesting. I'd love to be able to take something that ambitious on... but I'm much earlier in my studies than you are XD
ModeratorThere are animal crackers for people and there are people crackers for animals.
DuBlooNz
Profile Blog Joined February 2011
United Kingdom103 Posts
February 13 2012 21:21 GMT
#4
This sounds really good!!
Will you be releasing it for people to download at all?
Follow me on Twitter @DuBlooNzSC2 (-_(-_(-_(-_-)_-)_-)_-)
shannn
Profile Blog Joined May 2010
Netherlands2891 Posts
February 13 2012 21:42 GMT
#5
Hey man, I know how you feel
It's really hard to stay focussed and still 30 days for your game. It sounds reasonable with the demands you've set up.
Is it only going to be on PC? The concept sounds nice.
I'm actually eager on the class diagram you stated My game has a class diagram with a simple MVC with 1 class for each view-controller-model. I did it because well I'm the most familiar with it and didn't want to step out of my boundaries yet on my first real game :D

I had to look up what the entity-component-system was. Never heard of it before.
I then got into some link to SO and the first answer about entity-component-system contained Object oriented programming becoming a dead end. Whether or not this is true is still shocking to me and I'm really curious to this new type of programming for me.
Still don't understand it a 100% yet but I look forward to your game progress
http://www.teamliquid.net/forum/viewpost.php?post_id=6321864 Epic post.
heishe
Profile Blog Joined June 2009
Germany2284 Posts
Last Edited: 2012-02-13 23:59:59
February 13 2012 21:44 GMT
#6
On February 14 2012 06:21 DuBlooNz wrote:
This sounds really good!!
Will you be releasing it for people to download at all?


Yep. At the very least I will upload the final state of the project at the end of these four weeks. I might upload the weekly results or something, but I'm completely unsure how much I'm going to have done after one week, for example, so I might not have anything worth uploading.

On February 14 2012 06:42 shannn wrote:
Hey man, I know how you feel
It's really hard to stay focussed and still 30 days for your game. It sounds reasonable with the demands you've set up.
Is it only going to be on PC? The concept sounds nice.


Yes, it's going to be PC only. I'm actually very interested in doing something for Android or iOS devices, simply for the sake of working with very limited hardware, but I simply can't afford it right now. If I want to develop for something other than the PC, there's at least some cost associated with it. For example, you actually have to have one of the devices to test your stuff with!

But maybe I'll get that chance later this year, because I want to intern at a pretty big research institute for applied sciences (Fraunhofer Society, maybe some of you heard of them) and they have some projects going on in that area.

On February 14 2012 06:42 shannn wrote:
I'm actually eager on the class diagram you stated My game has a class diagram with a simple MVC with 1 class for each view-controller-model. I did it because well I'm the most familiar with it and didn't want to step out of my boundaries yet on my first real game :D


Well, I can't post the class diagram of my whole game. That would take me a long while and it would be a loooong post. But if I go into the details of how I structure a certain component of the code, class diagrams will probably be useful to show the architecture of it without having to post the code or writing too many words about it.

On February 14 2012 06:42 shannn wrote:
I had to look up what the entity-component-system was. Never heard of it before.
I then got into some link to SO and the first answer about entity-component-system contained Object oriented programming becoming a dead end. Whether or not this is true is still shocking to me and I'm really curious to this new type of programming for me.
Still don't understand it a 100% yet but I look forward to your game progress


It's based on the idea of maximizing reuse and minimizing unnecessary overhead when constructing game objects. It presents a way of literally composing a type of object (the "player", "enemy", "spaceship", etc.) out of different components (which are basically containers of logic and data). I'll post a quick introduction to the topic in the day two blog.

I can't say if the object oriented programming approach is becoming a dead end (I lack experience for that). Most AAA studios still use component-based entities and are very happy with it. If you look around at www.gdcvault.com you should find a couple of nice lectures by the likes of Naughty Dog or the Prototype guys on the topic.

On February 14 2012 06:42 shannn wrote:
Still don't understand it a 100% yet but I look forward to your game progress


Thanks!
If you value your soul, never look into the eye of a horse. Your soul will forever be lost in the void of the horse.
Ideas
Profile Blog Joined April 2008
United States8141 Posts
February 13 2012 22:32 GMT
#7
this sounds cool. good luck!
Free Palestine
Please log in or register to reply.
Live Events Refresh
BSL 21
19:00
Open Quali #4
LiquipediaDiscussion
SC4ALL
15:00
Day 2
Artosis973
LiquipediaDiscussion
SC4ALL
15:00
SC4ALL - Day 2
TriGGeR vs Mixu
Percival vs TBD
RotterdaM1020
ComeBackTV 697
IndyStarCraft 208
CranKy Ducklings148
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 1020
IndyStarCraft 208
BRAT_OK 49
JuggernautJason42
Railgan 30
MindelVK 13
StarCraft: Brood War
ZZZero.O 63
Dota 2
qojqva3593
Fuzer 322
Counter-Strike
fl0m1177
byalli428
Heroes of the Storm
Khaldor261
Liquid`Hasu231
Other Games
Artosis973
B2W.Neo853
Beastyqt747
mouzStarbuck186
Grubby155
QueenE86
Organizations
Other Games
gamesdonequick1766
Counter-Strike
PGL423
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• StrangeGG 40
• Adnapsc2 20
• Legendk 2
• Kozan
• Migwel
• AfreecaTV YouTube
• intothetv
• sooper7s
• IndyKCrew
• LaughNgamezSOOP
StarCraft: Brood War
• Azhi_Dahaki23
• HerbMon 15
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• Ler102
Other Games
• imaqtpie1466
• WagamamaTV366
• Shiphtur272
Upcoming Events
Replay Cast
13h 29m
Wardi Open
16h 29m
Monday Night Weeklies
21h 29m
Replay Cast
1d 3h
Sparkling Tuna Cup
1d 14h
WardiTV Korean Royale
1d 16h
LAN Event
1d 19h
Replay Cast
2 days
WardiTV Korean Royale
2 days
LAN Event
2 days
[ Show More ]
OSC
3 days
The PondCast
3 days
LAN Event
3 days
Replay Cast
4 days
LAN Event
4 days
Korean StarCraft League
5 days
CranKy Ducklings
5 days
WardiTV Korean Royale
5 days
LAN Event
5 days
IPSL
5 days
dxtr13 vs OldBoy
Napoleon vs Doodle
Replay Cast
6 days
Sparkling Tuna Cup
6 days
WardiTV Korean Royale
6 days
LAN Event
6 days
IPSL
6 days
JDConan vs WIZARD
WolFix vs Cross
Liquipedia Results

Completed

CSL 2025 AUTUMN (S18)
CranK Gathers Season 2: SC II Pro Teams
Eternal Conflict S1

Ongoing

BSL 21 Points
BSL 21 Team A
C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
SOOP Univ League 2025
SC4ALL: Brood War
SC4ALL: StarCraft II
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025

Upcoming

YSL S2
BSL Season 21
SLON Tour Season 2
BSL 21 Non-Korean Championship
HSC XXVIII
RSL Offline Finals
WardiTV 2025
RSL Revival: Season 3
Stellar Fest
META Madness #9
BLAST Bounty Winter 2026: Closed Qualifier
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.