Skip to content
View coding-pelican's full-sized avatar

Organizations

@Plodio
Block or Report

Block or report coding-pelican

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
coding-pelican/README.md

๐Ÿ‘‹๐Ÿป Hey, there! I'm Gyeongtae Kim

๐Ÿ”— Accessible Version

๐Ÿ’ฌ About Me

SWEngineer* coding_pelican = new_SWEngineer(
  person: new_Person(
    behaviour: (Behaviour*)new_PelicanLike(
      name: "Gyeongtae Kim"
    ),
    hobby: "๐Ÿ“ธ Photography"
           "๐Ÿƒ๐Ÿป Running & Jogging"
           "๐Ÿ—ฃ๏ธ Learning languages"
  ),
  mainDomain: "Game Engine Development",
  skills: (SkillList){
    .languages = (Skill*)(Language[]){
      C, CPlusPlus, CSharp, Python
    },
    .engines = (Skill*)(Engine[]){
      Unity, Godot
    },
    .tools = (Skill*)(Tool[]){
      Git, CMake, VSCode
    }
  },
  specialSkills: "๐Ÿข Proud owner of an epic tech neck"
                 "๐Ÿฆ– Cheers every time code execution speeds up by 0.01 seconds"
                 "๐Ÿ† On a record-breaking caffeine-free streak (since 2022-09-05)"
);

FoodList_Append(
  coding_pelican->person->favoriteFoods_,
  new_Food("๐Ÿ•Pizza")
);
FoodList_Append(
  coding_pelican->person->favoriteFoods_,
  new_Food("๐Ÿ”Chicken")
);

coding_pelican
  ->person
  ->behaviour
  ->IFoodEatable.EatFood(
    (IFoodEatable*)coding_pelican->person->behaviour,
    coding_pelican->person->favoriteFoods_->foods[0][0]
  );

// output:
// 'Gyeongtae Kim' swallows '๐Ÿ•Pizza' without chewing!

๐Ÿ“ซ Contact Links

๐Ÿ“– Story?

๐ŸŽฎ My Journey: From a Curious Boy to a Game Engine Developer

๐Ÿ‘ฆ Once Upon a Time...

There was a young boy with unusual hobbies: DOS game emulation and game localization. He was quite the geek, though he didn't realize it at the time.

One day, curiosity struck him. Instead of developing games within a game development environment, he wondered what it would be like to develop games in the real world.

His best friend encouraged him, "Just give it a try!" "Why not! Let's do it!" he replied. He stumbled upon a Java-based block-coding app and began his journey into game development.

That young boy, once filled with dreams, is now an engineer who develops his own game engines.

What happened in between? Keep reading to find out!

From "I'll Make Everything Myself!๐Ÿ˜†"

"Who needs a game engine to create a fun game? I can create fun games even without a game engine!" โ€” The past me

This statement isn't entirely wrong. The boy disliked dependencies and wanted to build everything from himself.

He actually made a pretty fun game, his first project titled 'We are Going'.

It was fun but full of issues, as you'd expect from a first project:

  • ๐ŸŒ "A text adventure game dropping to 16 FPS?"
  • ๐ŸŒช๏ธ "The UI elements are flying around!"
  • ๐Ÿคทโ€โ™‚๏ธ "All the play story logs are gone!"

To "I'll Create to Understand Better๐Ÿค”"

"What I cannot create, I do not understand." โ€” Richard Feynman

Overwhelmed by bug reports and the worst performance issues across multiple projects, he realized he needed a solid foundation and systematic approach to create stable, high-performance games that could bring his ideas to life.

  • He learned half of C (it was harder and less fun than Java).
  • Developed simple mini-games (a top-down shooter and a Super Hexagon clone) with Godot.
  • Learned C# and Unity.

Feeling stagnant in his learning, he ventured into non-game domains, exploring various languages and frameworks to expand his knowledge.

He faced a common challenge: lack of foundational knowledge, leaving many concepts unclear.

  • He delved into algorithms and data structures.
  • Studied C++ and participated in informatics Olympiads and various programming competitions.
  • Sought to understand computers and paradigms, grasping about memory management and diving into fundamentals of CS, English, discrete mathematics, and programming.

By connecting these dots and revisiting C, the scattered puzzle pieces finally fell into place.

True understanding. He realized that by directly working with concepts and building things himself, he could gain insights and integrate background knowledge more effectively.

He began to enjoy developing high-quality software more than just high-performance games.

Through numerous collaborations and freelance work, delivering quality softwares to clients became a source of joy, extending beyond just his own games and projects.

๐Ÿ’ป Technical Perspective

While my main domain remains game development, my approach has evolved. I still want to create great game software. Often, this involves using existing game engines, which led me to build my own.

Understanding the "black box" of game engines is, I believe, The path to creating great software.


Hits

Pinned

  1. coding-pelican coding-pelican Public

    Who is Gyeongtae Kim?

  2. macrometa macrometa Public

    Macrometa: Macro Metaprogramming (MCMT) Library for C

    C 2

  3. c-style-guide c-style-guide Public

    Guidelines for modern C coding, including style conventions and layout organization.

    C 1

  4. suez-adventure-unity-gamejam suez-adventure-unity-gamejam Public

    2022 ๋Œ€ํ•œ๋ฏผ๊ตญ ๊ฒŒ์ž„์žผ

    ShaderLab

  5. Project-Infected Project-Infected Public

    ๊ฐœ๋ฐœํ•˜๋Š” ๋„๋น„ ๋™์•„๋ฆฌ 2D ์œ ๋‹ˆํ‹ฐ ๊ฒŒ์ž„ ํ”„๋กœ์ ํŠธ

    C#

  6. Roguelike-Game Roguelike-Game Public

    ์‹œํ—˜ ์‚ผ์•„ ๋งŒ๋“ค์–ด ๋ณด๋Š” ๋กœ๊ทธ๋ผ์ดํฌ ๊ฒŒ์ž„

    C#