• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 16:11
CEST 22:11
KST 05:11
  • 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
Code S Season 1 - RO8 Preview3[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16[ASL21] Ro16 Preview Pt2: All Star10
Community News
Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event11Code S Season 1 (2026) - RO12 Results12026 GSL Season 1 Qualifiers25Maestros of the Game 2 announced9
StarCraft 2
General
Code S Season 1 - RO8 Preview Behind the Blue - Team Liquid History Book Weekly Cups (April 27-May 4): Clem takes triple Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Code S Season 1 (2026) - RO12 Results
Tourneys
GSL Code S Season 1 (2026) Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 5 - Qualifiers and Main Event StarCraft Evolution League (SC Evo Biweekly) 2026 GSL Season 2 Qualifiers
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
Mutation # 524 Death and Taxes The PondCast: SC2 News & Results Mutation # 523 Firewall Mutation # 522 Flip My Base
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ (Spoiler) Asl ro8 D winner interview BW General Discussion Do we have a pimpest plays list? AI Question
Tourneys
[ASL21] Ro8 Day 4 [ASL21] Ro8 Day 3 [Megathread] Daily Proleagues [ASL21] Ro8 Day 2
Strategy
Simple Questions, Simple Answers Fighting Spirit mining rates What's the deal with APM & what's its true value Any training maps people recommend?
Other Games
General Games
Dawn of War IV Stormgate/Frost Giant Megathread OutLive 25 (RTS Game) Daigo vs Menard Best of 10 Nintendo Switch Thread
Dota 2
The Story of Wings Gaming
League of Legends
G2 just beat GenG in First stand
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
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread European Politico-economics QA Mega-thread 3D technology/software discussion Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread Formula 1 Discussion McBoner: A hockey love story
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Movie Stars In Video Games: …
TrAiDoS
ramps on octagon
StaticNine
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1648 users

Game Programming: Ascii Games

Blogs > CecilSunkure
Post a Reply
1 2 3 Next All
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-07-05 18:48:28
July 03 2012 22:31 GMT
#1


I've made a couple different posts about game programming, though everyone that read them seemed to not really know how to piece everything together to finally get off the ground writing their own game within the Windows Console.

I've been creating a series of posts back at my blog about creating a Window's console game from scratch in C. This post will act as a culmination of many different posts throughout my blog in the form of an open source game engine called AsciiEngine.

AsciiEngine is a free open source game engine for Windows XP, Vista, and Win7 that allows the user to easily create and display images within a Windows console. The engine also automates the tedious task of customizing aspects of the console, such as a font or palette color. By using AsciiEngine, users can easily construct interactive programs (games!) without the overhead of setting up all of the various system components required to run a game within the Windows console.

AsciiEngine actually runs within the Windows console. No GDI or anything, just displaying colored text within the console! This makes for a very interesting way to create games. I feel coding a game in the Windows console is a wonderful way for beginning programmers to take off in creating something very cool without using black box libraries; if you make a game in the console on your own you really should understand everything that's going on in your program. AsciiEngine intends to provide a good reference point for anyone trying to make something from scratch on their own, as well as a jumping off point for others who don't want to necessarily learn all of what's going on to get things up and running in the Console.


[image loading]
Screenshot of the AsciiEngine demo. Pressing enter pastes
sun images onto random locations.


Features include:
  • Game loop integrated into Game State Manager via function pointers
  • Game State Manager
  • Simple framerate controller
  • Various console related functions for easy customization of the console window
  • Complete graphics function set for drawing 2D images
  • Input template complete for simple keystroke detection
  • Simple image format that allows for variable size
  • Integrated hash table for storing images
  • Extremely simple creation/deletion of images
  • Implementation of my simple 2D collision library
  • Implementation of my simple 2D vector library
  • Highly organised object manager using the factory pattern
    • Allows for easy creation/handling/deletion of game objects
    • Incredibly simple to create new object types

I can recall a time in the past when I first started programming. A lot of my troubles stemmed from figuring out how all the basic programming tools (loops, functions, etc.) could fit together to construct an actual game. Hopefully my efforts here can help anyone else in the same position. I know there's a lot of people that would love to know how to code their own games, but feel like it's hard to learn in a practical way.

I really loved making my own Ascii game, and would be really excited to see anything anyone makes





Here's some screenshots of a game I made when I didn't know hardly anything about programming. This game was made my first semester of college, it's called TerraNisi. It wasn't actually made with AsciiEngine, but it'd be incredibly simple to make it within AsciiEngine:

[image loading]
Intro picture!

[image loading]
Screenshot of some gameplay

[image loading]
Only the most cutest and funny villain evar.




Link to TerraNisi: LINK
Link to AsciiEngine Info: LINK
Link to AsciiEngine: LINK




Feel free to email me at: r.gaul@digipen.edu if you have any questions about making a game. For some reason getting other people interested in game programming is just so fun, so don't be shy in asking for help with programming or anything else! I'm also completely open to any criticism/suggestions on the project.

***
fabiano
Profile Blog Joined August 2009
Brazil4644 Posts
July 03 2012 22:50 GMT
#2
This is beautiful. I'll check it out for sure, sounds loads of fun :D
"When the geyser died, a probe came out" - SirJolt
Mossen
Profile Blog Joined December 2010
43 Posts
Last Edited: 2012-07-03 22:54:27
July 03 2012 22:54 GMT
#3
So, you wrote this? Nice work! How many colors does it support? And what is the max resolution? Also, does it support text input, like if you wanted to have a picture, and the user can also enter text at a prompt for commands?
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-07-03 23:42:34
July 03 2012 23:04 GMT
#4
On July 04 2012 07:50 fabiano wrote:
This is beautiful. I'll check it out for sure, sounds loads of fun :D

Hey sweet! Do post back here to show off what you've done

On July 04 2012 07:54 Mossen wrote:
So, you wrote this? Nice work! How many colors does it support? And what is the max resolution? Also, does it support text input, like if you wanted to have a picture, and the user can also enter text at a prompt for commands?

Yes I did write this. It supports quite a few colors by default, though you can only have 16 colors active in your palette. Luckily I've figured out (with help from programmers unkown on the internet) how to set a custom color palette.

There's no functionality within AsciiEngine for command line input currently, but it'd be very easy to create. I wrote a post on creating a custom scripting language, you can pretty easily write your own parser for input commands. The functionality to show what the user is writing on the screen would also be really easy to make as well -- I put something like this into TerraNisi, but it only supported one character at a time for simplicity.

Edit: Any resolution.
EsX_Raptor
Profile Blog Joined February 2008
United States2802 Posts
July 03 2012 23:06 GMT
#5
You should try reverse-engineering Dwarf Fortress.
DRTnOOber
Profile Blog Joined February 2012
New Zealand476 Posts
July 03 2012 23:09 GMT
#6
It certainly is a unique way to develop games. The issue I have is that although you can create some pretty fun games this way, there isn't really a market for sharing or selling them. I don't know why but that gets to me when I'm making a game; unless I know it could potentially go somewhere I find it hard to invest the time.

I've been finding that Android is actually a really nice platform for creating beginner games at the moment. The only tricky bit is setting up your development environment but there is a full tutorial online on how to set up Eclipse IDE for Android development: http://developer.android.com/sdk/installing/installing-adt.html

The game engine I've been using is called AndEngine and is designed for 2D graphics only: http://www.andengine.org/

And if you're into 3D graphics there's a nice free engine called JPCT-AE: http://www.jpct.net/jpct-ae/

At the end of the day you need to understand programming and how to structure a program in order to make games from scratch. It's a fallacy that anyone can download some tools and make a game... it just doesn't work that way.

In saying that your game looks awesome Reminds me of the past. Very quirky idea.
But I'm off creep... and so I slow down, what are hellions doing here? I don't belong here...
Mstring
Profile Joined September 2011
Australia510 Posts
July 04 2012 00:34 GMT
#7
Your artwork is impressive. You have a gift.

No console for me though, I'm an OpenGL/GLFW convert XD
Tiegrr
Profile Blog Joined September 2010
United States607 Posts
July 04 2012 01:58 GMT
#8
I <3 Calcifer! :3
fire_brand
Profile Blog Joined October 2009
Canada1123 Posts
July 04 2012 03:13 GMT
#9
Let's make games together cecil. I need someone with ideas and programming knowledge to demand art from me.
Random player, pixel enthusiast, crappy illustrator, offlane/support
NB
Profile Blog Joined February 2010
Netherlands12045 Posts
July 04 2012 07:13 GMT
#10
the last picture looks like a portrait in Mario N64 .
Im daed. Follow me @TL_NB
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
July 04 2012 08:29 GMT
#11
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.

Personally I feel beginner programmers who want to become more advanced should generally not use premade engines but instead learn to make their own since that gives a completely different perspective on what is possible. To a reasonable degree of course, using SDL or your asciiengine is fine since they help with background annoying stuff, while using stuff like Unity is, IMO, abstracting the developer too far away from the groundwork.
Talin
Profile Blog Joined September 2010
Montenegro10532 Posts
July 04 2012 09:50 GMT
#12
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.


Going by the same reasoning I'd recommend Pygame over SDL for even more fun (and rapid) development. It's basically an SDL wrapper, but you get the advantage of using Python which is as accessible as programming languages get.
Tobberoth
Profile Joined August 2010
Sweden6375 Posts
July 04 2012 10:01 GMT
#13
On July 04 2012 18:50 Talin wrote:
Show nested quote +
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.


Going by the same reasoning I'd recommend Pygame over SDL for even more fun (and rapid) development. It's basically an SDL wrapper, but you get the advantage of using Python which is as accessible as programming languages get.

Well yeah, that's what I meant. If you're a beginning programmer who want to make games, going to C is probably not a good idea. There are SDL wrappers for all languages imaginable, so it's really easy to get started with.
Chef
Profile Blog Joined August 2005
10810 Posts
July 04 2012 12:23 GMT
#14
Does this mean Howl's Moving Castle is just a fanfiction of your game?
LEGEND!! LEGEND!!
Random()
Profile Blog Joined August 2004
Kyrgyz Republic1462 Posts
Last Edited: 2012-07-04 14:45:15
July 04 2012 14:40 GMT
#15
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.

Personally I feel beginner programmers who want to become more advanced should generally not use premade engines but instead learn to make their own since that gives a completely different perspective on what is possible. To a reasonable degree of course, using SDL or your asciiengine is fine since they help with background annoying stuff, while using stuff like Unity is, IMO, abstracting the developer too far away from the groundwork.


That is what I was thinking when I first decided that I'd like to make games, and well, I have spent A LOT of time building my own 3D engine, and although that indeed gave me a better understanding of how those things work, that has not helped me to actually make a game and obviously it really sucked compared to OGRE or Unity :-)

I think that as long as you understand what someone's library is doing, not necessarily how, that is sufficient. That is if your goal is to make a working product, and not become a "better programmer" :-)
Random()
Profile Blog Joined August 2004
Kyrgyz Republic1462 Posts
July 04 2012 14:48 GMT
#16
I wonder if it is possible to gather a group of enthusiasts here on TL and make a funny little game project...
Talin
Profile Blog Joined September 2010
Montenegro10532 Posts
July 04 2012 15:10 GMT
#17
On July 04 2012 23:48 Random() wrote:
I wonder if it is possible to gather a group of enthusiasts here on TL and make a funny little game project...


To gather a group? Probably. To actually get something finished? Much less likely.

But it would be a fun experience nonetheless (I'd be up for it personally!).
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
July 04 2012 15:43 GMT
#18
On July 04 2012 17:29 Tobberoth wrote:
Cool and all, but I'm surprised you say that writing console based games is a good start for beginners because they don't have to use black box libraries, yet the point of your post is to talk about your black box library, AsciiEngine. I mean, in the same sense that AsciiEngine sets up a lot of boring stuff for you so you can focus on making the game, so does SDL, difference being that SDL supports "proper graphics". I would think most beginner developers would get more benefit, and have more fun, makind SDL games over Ascii games.

That does make sense, but since this is open source if someone wanted, they could use it simply as a reference point for starting their own project. That's the point I was trying to make, if that makes any sense.
imPermanenCe
Profile Joined July 2011
Netherlands595 Posts
July 04 2012 17:56 GMT
#19
On July 04 2012 12:13 fire_brand wrote:
Let's make games together cecil. I need someone with ideas and programming knowledge to demand art from me.

You may make art for my games :D
Micro at its best is like an elegant dance between two people trying to achieve a similar end.
memcpy
Profile Blog Joined April 2010
United States459 Posts
July 05 2012 05:22 GMT
#20
Nice work. Do you use an in game editor to draw art?
1 2 3 Next All
Please log in or register to reply.
Live Events Refresh
Next event in 13h 19m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 505
IndyStarCraft 130
JuggernautJason60
UpATreeSC 60
EmSc Tv 8
StarCraft: Brood War
Britney 15927
Calm 3396
Mini 263
Soma 174
Dewaltoss 94
Mind 49
sSak 47
Aegong 40
Pusan 12
Dota 2
monkeys_forever367
Counter-Strike
fl0m2181
Heroes of the Storm
Liquid`Hasu447
Other Games
Grubby2181
FrodaN1592
Liquid`RaSZi1314
B2W.Neo528
C9.Mang0210
ArmadaUGS177
Trikslyr48
Fuzer 40
ZombieGrub35
Organizations
Other Games
BasetradeTV566
Dota 2
PGL Dota 2 - Main Stream25
StarCraft 2
EmSc Tv 8
EmSc2Tv 8
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 18 non-featured ]
StarCraft 2
• Adnapsc2 15
• Reevou 3
• Kozan
• LaughNgamezSOOP
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• IndyKCrew
StarCraft: Brood War
• Michael_bg 5
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV515
• lizZardDota275
League of Legends
• imaqtpie2070
• TFBlade1022
Other Games
• Shiphtur297
Upcoming Events
GSL
13h 19m
SHIN vs Zoun
ByuN vs herO
OSC
14h 49m
OSC
16h 49m
Replay Cast
1d 3h
Escore
1d 13h
The PondCast
1d 13h
WardiTV Invitational
1d 14h
Zoun vs Ryung
Lambo vs ShoWTimE
Big Brain Bouts
1d 19h
Fjant vs Bly
Serral vs Shameless
OSC
2 days
Replay Cast
2 days
[ Show More ]
CranKy Ducklings
2 days
RSL Revival
2 days
SHIN vs Bunny
ByuN vs Shameless
WardiTV Invitational
2 days
Krystianer vs TriGGeR
Cure vs Rogue
uThermal 2v2 Circuit
2 days
BSL
2 days
Replay Cast
3 days
Sparkling Tuna Cup
3 days
RSL Revival
3 days
Cure vs Zoun
Clem vs Lambo
WardiTV Invitational
3 days
BSL
3 days
GSL
4 days
Afreeca Starleague
4 days
Soma vs Leta
Monday Night Weeklies
4 days
CranKy Ducklings
5 days
Afreeca Starleague
5 days
Light vs Flash
Replay Cast
6 days
Liquipedia Results

Completed

Proleague 2026-05-05
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
YSL S3
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026

Upcoming

Escore Tournament S2: W6
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
Escore Tournament S2: W7
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
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 © 2026 TLnet. All Rights Reserved.