mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-08-30 04:30:01 +02:00
Add server side game developer roadmap
This commit is contained in:
@@ -7,10 +7,13 @@ import {
|
|||||||
renderTopicProgress,
|
renderTopicProgress,
|
||||||
updateResourceProgress,
|
updateResourceProgress,
|
||||||
} from '../../lib/resource-progress';
|
} from '../../lib/resource-progress';
|
||||||
import type { ResourceProgressType, ResourceType } from '../../lib/resource-progress';
|
import type {
|
||||||
|
ResourceProgressType,
|
||||||
|
ResourceType,
|
||||||
|
} from '../../lib/resource-progress';
|
||||||
import { pageProgressMessage } from '../../stores/page';
|
import { pageProgressMessage } from '../../stores/page';
|
||||||
import { showLoginPopup } from '../../lib/popup';
|
import { showLoginPopup } from '../../lib/popup';
|
||||||
import {replaceChildren} from "../../lib/dom.ts";
|
import { replaceChildren } from '../../lib/dom.ts';
|
||||||
|
|
||||||
export class Renderer {
|
export class Renderer {
|
||||||
resourceId: string;
|
resourceId: string;
|
||||||
@@ -95,7 +98,7 @@ export class Renderer {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
return renderResourceProgress(
|
return renderResourceProgress(
|
||||||
this.resourceType as ResourceType,
|
this.resourceType as ResourceType,
|
||||||
this.resourceId
|
this.resourceId,
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@@ -143,7 +146,7 @@ export class Renderer {
|
|||||||
this.jsonToSvg(
|
this.jsonToSvg(
|
||||||
this.resourceType === 'roadmap'
|
this.resourceType === 'roadmap'
|
||||||
? `/${this.resourceId}.json`
|
? `/${this.resourceId}.json`
|
||||||
: `/best-practices/${this.resourceId}.json`
|
: `/best-practices/${this.resourceId}.json`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -183,7 +186,7 @@ export class Renderer {
|
|||||||
resourceType: this.resourceType as ResourceType,
|
resourceType: this.resourceType as ResourceType,
|
||||||
topicId,
|
topicId,
|
||||||
},
|
},
|
||||||
newStatus
|
newStatus,
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
renderTopicProgress(topicId, newStatus);
|
renderTopicProgress(topicId, newStatus);
|
||||||
@@ -217,7 +220,7 @@ export class Renderer {
|
|||||||
const normalizedGroupId = groupId.replace(/^\d+-/, '');
|
const normalizedGroupId = groupId.replace(/^\d+-/, '');
|
||||||
this.updateTopicStatus(
|
this.updateTopicStatus(
|
||||||
normalizedGroupId,
|
normalizedGroupId,
|
||||||
!isCurrentStatusDone ? 'done' : 'pending'
|
!isCurrentStatusDone ? 'done' : 'pending',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,9 +246,12 @@ export class Renderer {
|
|||||||
action: `${this.resourceType} / ${this.resourceId}`,
|
action: `${this.resourceType} / ${this.resourceId}`,
|
||||||
label: externalLink,
|
label: externalLink,
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
window.open(`https://${externalLink}`);
|
window.open(`https://${externalLink}`);
|
||||||
|
} else {
|
||||||
|
window.location.href = `https://${externalLink}`;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,7 +271,7 @@ export class Renderer {
|
|||||||
resourceType: this.resourceType,
|
resourceType: this.resourceType,
|
||||||
resourceId: this.resourceId,
|
resourceId: this.resourceId,
|
||||||
},
|
},
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -280,7 +286,7 @@ export class Renderer {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.updateTopicStatus(
|
this.updateTopicStatus(
|
||||||
normalizedGroupId,
|
normalizedGroupId,
|
||||||
!isCurrentStatusLearning ? 'learning' : 'pending'
|
!isCurrentStatusLearning ? 'learning' : 'pending',
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -289,7 +295,7 @@ export class Renderer {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.updateTopicStatus(
|
this.updateTopicStatus(
|
||||||
normalizedGroupId,
|
normalizedGroupId,
|
||||||
!isCurrentStatusSkipped ? 'skipped' : 'pending'
|
!isCurrentStatusSkipped ? 'skipped' : 'pending',
|
||||||
);
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -302,7 +308,7 @@ export class Renderer {
|
|||||||
resourceId: this.resourceId,
|
resourceId: this.resourceId,
|
||||||
resourceType: this.resourceType,
|
resourceType: this.resourceType,
|
||||||
},
|
},
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
5
src/data/roadmaps/server-side-game-developer/faqs.astro
Normal file
5
src/data/roadmaps/server-side-game-developer/faqs.astro
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
import type { FAQType } from '../../components/FAQs/FAQs.astro';
|
||||||
|
|
||||||
|
export const faqs: FAQType[] = [];
|
||||||
|
---
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
pdfUrl: '/pdfs/roadmaps/server-side-game-developer.pdf'
|
||||||
|
order: 17
|
||||||
|
briefTitle: 'Server Side Game Developer'
|
||||||
|
briefDescription: 'Roadmap to becoming a Server Side Game Developer in 2023'
|
||||||
|
title: 'Server Side Game Developer'
|
||||||
|
description: 'Roadmap to becoming a Server Side Game Developer in 2023'
|
||||||
|
hasTopics: true
|
||||||
|
isNew: true
|
||||||
|
isHidden: true
|
||||||
|
schema:
|
||||||
|
headline: 'Server Side Game Developer Roadmap'
|
||||||
|
description: 'Learn what Server Side Game Development is, what server side game developers do and how to become one using our community-driven roadmap.'
|
||||||
|
imageUrl: 'https://roadmap.sh/roadmaps/server-side-game-developer.png'
|
||||||
|
datePublished: '2023-10-26'
|
||||||
|
dateModified: '2023-10-26'
|
||||||
|
seo:
|
||||||
|
title: 'Server Side Game Developer Roadmap'
|
||||||
|
description: 'Learn what Server Side Game Development is, what server side game developers do and how to become one using our community-driven roadmap.'
|
||||||
|
keywords:
|
||||||
|
- 'server side game developer roadmap 2023'
|
||||||
|
- 'server side game developer roadmap 2023'
|
||||||
|
- 'guide to becoming a server side game developer'
|
||||||
|
- 'guide to becoming a server side game developer'
|
||||||
|
- 'server side game developer roadmap'
|
||||||
|
- 'server side game developer'
|
||||||
|
- 'server side game engineer'
|
||||||
|
- 'server side game skills'
|
||||||
|
- 'server side game development'
|
||||||
|
- 'server side game development skills'
|
||||||
|
- 'server side game development skills test'
|
||||||
|
- 'server side game engineer roadmap'
|
||||||
|
- 'server side game developer roadmap'
|
||||||
|
- 'become a server side game developer'
|
||||||
|
- 'server side game developer career path'
|
||||||
|
- 'skills for game development'
|
||||||
|
- 'learn server side game development'
|
||||||
|
- 'what is server side game development'
|
||||||
|
- 'server side game developer quiz'
|
||||||
|
- 'server side game developer interview questions'
|
||||||
|
relatedRoadmaps:
|
||||||
|
- 'backend'
|
||||||
|
sitemap:
|
||||||
|
priority: 1
|
||||||
|
changefreq: 'monthly'
|
||||||
|
tags:
|
||||||
|
- 'roadmap'
|
||||||
|
- 'main-sitemap'
|
||||||
|
- 'role-roadmap'
|
||||||
|
---
|
@@ -8,7 +8,8 @@ export interface RoadmapFrontmatter {
|
|||||||
title: string;
|
title: string;
|
||||||
description: string;
|
description: string;
|
||||||
hasTopics: boolean;
|
hasTopics: boolean;
|
||||||
isForkable: boolean;
|
isForkable?: boolean;
|
||||||
|
isHidden: boolean;
|
||||||
isNew: boolean;
|
isNew: boolean;
|
||||||
isUpcoming: boolean;
|
isUpcoming: boolean;
|
||||||
tnsBannerLink?: string;
|
tnsBannerLink?: string;
|
||||||
|
@@ -29,7 +29,9 @@ const videos = await getAllVideos();
|
|||||||
|
|
||||||
<FeaturedItems
|
<FeaturedItems
|
||||||
heading='Role based Roadmaps'
|
heading='Role based Roadmaps'
|
||||||
featuredItems={roleRoadmaps.map((roadmapItem) => ({
|
featuredItems={roleRoadmaps
|
||||||
|
.filter((roadmapItem) => !roadmapItem.frontmatter.isHidden)
|
||||||
|
.map((roadmapItem) => ({
|
||||||
text: roadmapItem.frontmatter.briefTitle,
|
text: roadmapItem.frontmatter.briefTitle,
|
||||||
url: `/${roadmapItem.id}`,
|
url: `/${roadmapItem.id}`,
|
||||||
isNew: roadmapItem.frontmatter.isNew,
|
isNew: roadmapItem.frontmatter.isNew,
|
||||||
@@ -40,7 +42,9 @@ const videos = await getAllVideos();
|
|||||||
|
|
||||||
<FeaturedItems
|
<FeaturedItems
|
||||||
heading='Skill based Roadmaps'
|
heading='Skill based Roadmaps'
|
||||||
featuredItems={skillRoadmaps.map((roadmapItem) => ({
|
featuredItems={skillRoadmaps
|
||||||
|
.filter((roadmapItem) => !roadmapItem.frontmatter.isHidden)
|
||||||
|
.map((roadmapItem) => ({
|
||||||
text:
|
text:
|
||||||
roadmapItem.frontmatter.briefTitle === 'Go'
|
roadmapItem.frontmatter.briefTitle === 'Go'
|
||||||
? 'Go Roadmap'
|
? 'Go Roadmap'
|
||||||
|
Reference in New Issue
Block a user