• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 09:05
CEST 15:05
KST 22:05
  • 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
TL.net Map Contest #21: Voting10[ASL20] Ro4 Preview: Descent11Team TLMC #5: Winners Announced!3[ASL20] Ro8 Preview Pt2: Holding On9Maestros of the Game: Live Finals Preview (RO4)5
Community News
Chinese SC2 server to reopen; live all-star event in Hangzhou5Weekly Cups (Oct 13-19): Clem Goes for Four0BSL Team A vs Koreans - Sat-Sun 16:00 CET6Weekly Cups (Oct 6-12): Four star herO85.0.15 Patch Balance Hotfix (2025-10-8)80
StarCraft 2
General
Chinese SC2 server to reopen; live all-star event in Hangzhou The New Patch Killed Mech! Team Liquid Map Contest #21 - Presented by Monster Energy herO joins T1 Weekly Cups (Oct 13-19): Clem Goes for Four
Tourneys
SC2's Safe House 2 - October 18 & 19 INu's Battles #13 - ByuN vs Zoun Tenacious Turtle Tussle Sparkling Tuna Cup - Weekly Open Tournament $1,200 WardiTV October (Oct 21st-31st)
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 496 Endless Infection Mutation # 495 Rest In Peace Mutation # 494 Unstable Environment Mutation # 493 Quick Killers
Brood War
General
BW General Discussion Is there anyway to get a private coach? BSL Season 21 OGN to release AI-upscaled StarLeague from Feb 24 BW caster Sayle
Tourneys
[Megathread] Daily Proleagues [ASL20] Semifinal B SC4ALL $1,500 Open Bracket LAN Azhi's Colosseum - Anonymous Tournament
Strategy
[I] TvZ Strategies and Builds [I] TvP Strategies and Build Roaring Currents ASL final Current Meta
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile Nintendo Switch Thread Dawn of War IV ZeroSpace Megathread
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
Russo-Ukrainian War Thread US Politics Mega-thread The Chess Thread Things Aren’t Peaceful in Palestine Men's Fashion Thread
Fan Clubs
The herO Fan Club!
Media & Entertainment
Series you have seen recently... Anime Discussion Thread [Manga] One Piece Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion MLB/Baseball 2023 NBA General Discussion TeamLiquid Health and Fitness Initiative For 2023
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
Certified Crazy
Hildegard
The Heroism of Pepe the Fro…
Peanutsc
Rocket League: Traits, Abili…
TrAiDoS
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1231 users

Creating my first game - Part 1

Blogs > Leftwing
Post a Reply
Leftwing
Profile Blog Joined January 2011
Canada229 Posts
January 06 2012 06:48 GMT
#1
This blog is going to be about the development of my first game, which none of you will likely ever play or actually see. Depending on my results and how things work out I may post some screenshots of what it looks like.

Now to help you understand a bit about me:
I am an 18 YO kid about to graduate HS and take Computer Science in University somewhere here in my Province of Ontario.
I am a novice programmer. I know the basics of C++, and am currently learning Java from scratch.
I am creating this program in - you guessed it - Java. It may not be the best choice, but at the moment it is the best option I believe I can use.

Now about the game:

Will be a single player RPG. Will have Shit - or no graphics. Chances are if I ever graduate from text-input/output it will be in shitty paint.
The game will be simple - very simple.
If the game is to have graphics, it will be 2D, Likely a side scroller.

My goals for the game from beginning to end.

Player interaction with the world (through text input)
AI monster attack events (displaying damage taken and given)
Have a damage System (calculates damage based on lvl and attack skill)
Have a level system (player and monster)
Have a HP system
Have Monster types(Melee/Distance/Stationary)
Have items (potions, weapons, armors etc.)
Add player classes (melee, ranged, magic)
Add skills for classes (Sword, Axe, Club, Distance, Magic LVL)
Add a Quest (main objective for the player is to complete the quest)

Basically my plan is to learn enough that I can create basic events and eventually graduate to more complex stuff, however the first challenge I will have is where to start, and to be honest with you, I have no idea. Hopefully some of you Programmers on this site could help me along the way, or just guide me along a path. If anyone is interested in helping/assisting I'd be extremely grateful and welcoming.

So, this is where my first blog ends and my project begins. So far I've planned my damage and hit% system, but nothing has been coded. I have no idea where to start, but something tells me I'm designing something that won't be needed until later.

Thanks for anyone who took the time to read this, hopefully this doesn't just die off and I can get something big started here.

Until next time,
Leftwing


*****
Chronopolis
Profile Joined April 2009
Canada1484 Posts
Last Edited: 2012-01-06 07:14:53
January 06 2012 07:03 GMT
#2
Being roughly (metaphorically) in your shoes, I don't have much in the way of advice to offer. http://www-cs-students.stanford.edu/~amitp/gameprog.html is something nice to get lost in.

I screwed around in java trying to make a scrolling shoot-em up (I didn't get that far*). The menu is difficult add later on from what I found, so make sure you make your build a gameStart function that is repeatable and can be placed in some button code. although java has some built in gui to help you do that. (Still hard to understand). Java has documentation, it might help to take a close look. You definitely want to look up tutorials on tile-based games, possibly collision detection.

Don't spend too much time with sprites, but you probably will anyways (its addicting)

Some tricky parts that you'll need to figure out are how to store and load rpg data, and stuff like weapon stats or what not. Just make sure to google around hard to see if someone else has made a tutorial for what you are trying to do, before coding it yourself.
-Menu system
-Way of storing stats and arrays
-A plan of what classes for what units
Some website goes on to say, don't build engines, build a game. Start with something repititive (like make monster 1) and only then go back and build code to regulate it (make a class of monsters type, array of monsters)

Sorry for the jumbled post and good luck on your game!

*Basically what I ended up with was a 1 button menu game which had 1 spirite that could jump and fly on an invisible ground and fire a 360 spray of projectiles with alot of different sprites loaded from a spritesheet. And a esc button.
Leftwing
Profile Blog Joined January 2011
Canada229 Posts
January 06 2012 07:25 GMT
#3
On January 06 2012 16:03 Chronopolis wrote:
Being roughly (metaphorically) in your shoes, I don't have much in the way of advice to offer. http://www-cs-students.stanford.edu/~amitp/gameprog.html is something nice to get lost in.

I screwed around in java trying to make a scrolling shoot-em up (I didn't get that far). The menu is difficult add later on from what I found, so make sure you make your gameStart repeatable. although java has some built in gui to help you do that. (Still hard to understand). Java has documentation, it might help to take a close look. You definitely want to look up tutorials on tile-based games, possibly collision detection.

Some tricky parts that you'll need to figure out are how to store and load rpg data, and stuff like weapon stats or what not. Just make sure to google around hard to see if someone else has made a tutorial for what you are trying to do, before coding it yourself.


RPG data will be stored in XML files, this will include monster information, weapon/armor stats and other things that I might add early on. I have some experience with tile based games (Tibia) as I've been involved in the creation of private servers (known as Open Tibia), however that is C++ and not Java.

What I'm struggling with is understanding where to start. The thing that comes to mind first is creating the world and generating it's boundaries and rules, from there I think adding interaction with a player and then AI would be a good start, however that will likely be the hardest thing of all.

I found a tutorial that explains creating a world in Java, so that's where I'll be starting.
Osmoses
Profile Blog Joined October 2008
Sweden5302 Posts
January 06 2012 07:36 GMT
#4
Most programmers probably started a project like yours and got bored with it after a week. I would advice you to start smaller. Don't make one game for all of those things, rather make several with some of them. The most fun is in the polishing, and you're never going to get there if you spend all your time on the foundations. Also, I've found that whenever a hobby-project becomes too big and complicated I tend to lose interest :p Be sure to keep it organized, neat and simple.
Excuse me hun, but what is your name? Vivian? I woke up next to you naked and, uh, did we, um?
Leftwing
Profile Blog Joined January 2011
Canada229 Posts
January 06 2012 07:48 GMT
#5
On January 06 2012 16:36 Osmoses wrote:
Most programmers probably started a project like yours and got bored with it after a week. I would advice you to start smaller. Don't make one game for all of those things, rather make several with some of them. The most fun is in the polishing, and you're never going to get there if you spend all your time on the foundations. Also, I've found that whenever a hobby-project becomes too big and complicated I tend to lose interest :p Be sure to keep it organized, neat and simple.


Yup, that's what my girlfriend told me LOL. Basically my goal here is to create each piece step by step, one piece at a time. The way I'm planning to make this is essentially each piece will be added seperately to the game and development proceeds. Hopefully this way I don't get bored. Also, as long as someone is here to help me along the way I will manage to stay on task, so, keep commenting!

Thanks for the suggestions!
beg
Profile Blog Joined May 2010
991 Posts
Last Edited: 2012-01-06 08:02:51
January 06 2012 08:01 GMT
#6
if it's too big, look for people to do this together with. someone doing the art, someone doing the maps, someone doing the story, maybe a second coder...

try to make it a smartphone game that you can sell. that would be epic motivation.



hf gl
shannn
Profile Blog Joined May 2010
Netherlands2891 Posts
Last Edited: 2012-01-06 08:35:25
January 06 2012 08:23 GMT
#7
I'm also making a game but for iOS using Objective-C with Cocos2D as the framework (here,here,here) :D

I've learned at my college when starting any kind of software it's advised to first describe what your goals are.
After you've defined the goals, you then want to write down what your game should do, functions and non-functions.
Then you write down a priority list (I'd suggest using the MoSCoW list, google it ) of your functions.

That's just the documentation start.

When you're done with the documentation start you start writing down what entities/models classes you store your data in.
These are just holding the data in your game, e.g. you have a player that holds attributes like health,mana,attack,defense,armor etc. This is just 1 model class which only holds the data. You don't do anything yet with this class.
When you're done defining your entity/model classes you look at all the functions you have and you divide them all into controller classes. This is not final, just a rough basic start for your controllers.

Doing the above will probably require at least a month or more if you're working alone casually. HFGL P
The documentation and defining the entity/model classes took me a day and this is just a basic game.

It is advisable to always start with the core functions of your game and work from that point on (the basics first).
Like my game is a 2D RPG with battle systems like Final Fantasy thus my core functions are within the battle system.

Edit:
Oh and like others have said. Try to keep it simple :D
I first had a lot of redundant code and i'm spending more time into improving the code (my game is working with a few bugs) and trying to keep it simple. This is definitely the hardest part for any beginning (or experienced) programmer :D

Edit2:
haha

On January 06 2012 17:01 beg wrote:
if it's too big, look for people to do this together with. someone doing the art, someone doing the maps, someone doing the story, maybe a second coder...

try to make it a smartphone game that you can sell. that would be epic motivation.



hf gl

I'm doing this exactly :> It looks nice to have a game on your iPhone you created
http://www.teamliquid.net/forum/viewpost.php?post_id=6321864 Epic post.
Loser777
Profile Blog Joined January 2008
1931 Posts
January 06 2012 09:10 GMT
#8
I'd advise you to make your game as old school (text-based) as possible if you want to avoid spending the time learning Java's graphics API//libraries for games. From my perspective it sounds like it'll probably take you longer to write the quest that the game implements rather than implementing the code--though that depends on how experienced you are with Java.

At the very basic level you should plan our your classes and types before jumping into coding and be sure to develop incrementally! Write tester classes--even for things that seem trivial.
6581
Leftwing
Profile Blog Joined January 2011
Canada229 Posts
January 06 2012 09:29 GMT
#9
Well so far I've managed to make due with the graphic libraries, I managed to get a background and a moving character. The next step is to make the character follow boundaries set (instead of floating in the air and moving outside the background). Once I can do that I think it'll be a good start.

I've been looking into iPhone and Android app stuff for the past little while because my buddy has already been doing this for some time (Check out Corners! in the Android App store!), and I feel like that would be the next thing to get involved in. That said, I want to finish what I've started here.

@beg - Unfortunately this isn't my dreams where I get to work with a group of guys all creating some monstrous game that will take the internet by storm and make games like WoW and Maplestory pale in comparison. I just want to make something that I can be satisfied with knowing I can get a head start in this business.

Anyways, it's 4:30 and I have a life I have to wake up and live tomorrow, so goodnight! Another adventure awaits tomorrow!
CharlieBrownsc
Profile Blog Joined December 2010
Canada598 Posts
January 06 2012 09:36 GMT
#10
A) Don't do java, it's one of the worst programming languages to use as a learning language. It teaches you terrible habits, ie: solving most problems by just finding a class that works

B) Where are you going for cs?
SC2 ID: CharlieBrown.318, #1 bitbybit.Prime fan
Osmoses
Profile Blog Joined October 2008
Sweden5302 Posts
January 06 2012 11:36 GMT
#11
On January 06 2012 18:36 CharlieBrownsc wrote:
Don't do java, it's one of the worst programming languages to use as a learning language. It teaches you terrible habits, ie: solving most problems by just finding a class that works

That's just how modern coding works, why reinvent the wheel? Because knowing the intricacies of pixel drawing is going to help you make a better game?
Excuse me hun, but what is your name? Vivian? I woke up next to you naked and, uh, did we, um?
Leftwing
Profile Blog Joined January 2011
Canada229 Posts
January 06 2012 16:37 GMT
#12
On January 06 2012 18:36 CharlieBrownsc wrote:
A) Don't do java, it's one of the worst programming languages to use as a learning language. It teaches you terrible habits, ie: solving most problems by just finding a class that works

B) Where are you going for cs?


Queen's or U of T, I applied at York as a fall-back (my grades are just on the bubble of getting in for Queen's).
Zocat
Profile Joined April 2010
Germany2229 Posts
Last Edited: 2012-01-06 19:24:38
January 06 2012 19:23 GMT
#13
On January 06 2012 16:25 Leftwing wrote:
What I'm struggling with is understanding where to start. The thing that comes to mind first is creating the world and generating it's boundaries and rules, from there I think adding interaction with a player and then AI would be a good start, however that will likely be the hardest thing of all.

I found a tutorial that explains creating a world in Java, so that's where I'll be starting.


Start with a basic design document.
Which classes will you need, how do they interact with other classes/data/user input.
Think about your gameloop.
This design doc will answer your question "What should I start with first" btw

"I just start to program" is like the worst decision you can ever make.
CharlieBrownsc
Profile Blog Joined December 2010
Canada598 Posts
Last Edited: 2012-01-17 10:18:27
January 17 2012 10:14 GMT
#14
On January 07 2012 01:37 Leftwing wrote:
Show nested quote +
On January 06 2012 18:36 CharlieBrownsc wrote:
A) Don't do java, it's one of the worst programming languages to use as a learning language. It teaches you terrible habits, ie: solving most problems by just finding a class that works

B) Where are you going for cs?


Queen's or U of T, I applied at York as a fall-back (my grades are just on the bubble of getting in for Queen's).


No waterloo?

Oh well, still good schools
www.uwaterloorejects.com
I have to be a little bit biased

But on the topic of the programming. Practice modularization, and seperating the concerns of your program.

ie:Try to keep whatever does highscores as separate from whatever does levelling up, and so on and so forth. If they are interdependent, rather than integrated, changing the implementation of one part of the game won't mean you have to go scrolling through pages of code to make everything function

Heed this advice especially when dealing with UI and graphic projection. Get those functional early, and fine-tune them last

It makes tackling large things much less daunting
SC2 ID: CharlieBrown.318, #1 bitbybit.Prime fan
fanta[Rn]
Profile Blog Joined October 2004
Japan2465 Posts
Last Edited: 2012-01-17 14:22:33
January 17 2012 14:19 GMT
#15
Edit: Actually yeah, listen to the others too. Think about your game before actually writing any piece of code. But below is how you start coding


while(true)
{
render()
update()
}


That is how you start. During update you read keys and update all the changes to the game and then you render it. Then break the loop whenever the user chooses to exit the game

I can actually send you the source to a labyrinth "game" that I wrote recently. It's in Ruby and it's just terrible console output that I clear every time (flickers like crazy) but you can see how I went about the game and game scenario etc.
fanta[Rn]
Profile Blog Joined October 2004
Japan2465 Posts
January 17 2012 14:27 GMT
#16
Here's the code, I tried to comment it somewhat.
Disregard the Maze class, that might be too much for now. It's just an implementation of graph theory.

http://pastebin.com/16RuR7YH
Please log in or register to reply.
Live Events Refresh
Wardi Open
11:00
October Qualifier #1
WardiTV811
IndyStarCraft 143
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Lowko346
IndyStarCraft 143
LamboSC2 79
Codebar 19
StarCraft: Brood War
Britney 42304
Calm 8281
Rain 3938
Horang2 1739
Hyuk 1273
Bisu 1107
Jaedong 1085
Flash 797
firebathero 565
Soma 508
[ Show more ]
Light 421
Larva 343
Mini 329
Stork 309
actioN 283
ZerO 250
EffOrt 232
Snow 179
Pusan 174
BeSt 165
Soulkey 138
Shuttle 136
Hyun 123
PianO 109
sSak 108
Killer 80
scan(afreeca) 70
Rush 66
ggaemo 60
JYJ58
Sharp 35
Shinee 30
Movie 29
sorry 27
TY 26
soO 24
Free 19
Shine 16
Bale 16
Sacsri 14
Noble 11
HiyA 10
Yoon 10
Terrorterran 8
Icarus 6
Hm[arnc] 5
Mong 1
Dota 2
Gorgc2135
qojqva1359
Dendi460
XaKoH 394
XcaliburYe163
BananaSlamJamma118
syndereN60
Counter-Strike
oskar90
markeloff66
edward22
Other Games
summit1g8174
singsing2348
olofmeister1322
B2W.Neo779
hiko543
Sick169
Fuzer 131
Happy100
Liquid`LucifroN99
Mew2King58
QueenE38
Trikslyr29
ArmadaUGS14
ZerO(Twitch)9
Organizations
Counter-Strike
PGL417
StarCraft 2
IntoTheiNu 27
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 14 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV419
• Noizen53
League of Legends
• Jankos3774
• TFBlade315
Upcoming Events
Wardi Open
1h 25m
PiGosaur Monday
10h 55m
Replay Cast
20h 55m
Tenacious Turtle Tussle
1d 9h
The PondCast
1d 20h
OSC
1d 22h
WardiTV Invitational
2 days
Online Event
3 days
RSL Revival
3 days
RSL Revival
3 days
[ Show More ]
WardiTV Invitational
3 days
Afreeca Starleague
4 days
Snow vs Soma
Sparkling Tuna Cup
4 days
WardiTV Invitational
4 days
CrankTV Team League
4 days
RSL Revival
5 days
Wardi Open
5 days
CrankTV Team League
5 days
Replay Cast
6 days
WardiTV Invitational
6 days
CrankTV Team League
6 days
Liquipedia Results

Completed

Acropolis #4 - TS2
WardiTV TLMC #15
HCC Europe

Ongoing

BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
C-Race Season 1
IPSL Winter 2025-26
EC S1
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
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual

Upcoming

SC4ALL: Brood War
BSL Season 21
BSL 21 Team A
BSL 21 Non-Korean Championship
RSL Offline Finals
RSL Revival: Season 3
Stellar Fest
SC4ALL: StarCraft II
CranK Gathers Season 2: SC II Pro Teams
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 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.